vendor: 2,706 bytes, lines 1-77
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/******/ // define getter function for harmony exports 37/******/ __webpack_require__.d = function(exports, name, getter) { 38/******/ if(!__webpack_require__.o(exports, name)) { 39/******/ Object.defineProperty(exports, name, { 40/******/ configurable: false, 41/******/ enumerable: true, 42/******/ get: getter 43/******/ }); 44/******/ } 45/******/ }; 46/******/ 47/******/ // getDefaultExport function for compatibility with non-harmony modules 48/******/ __webpack_require__.n = function(module) { 49/******/ var getter = module && module.__esModule ? 50/******/ function getDefault() { return module['default']; } : 51/******/ function getModuleExports() { return module; }; 52/******/ __webpack_require__.d(getter, 'a', getter); 53/******/ return getter; 54/******/ }; 55/******/ 56/******/ // Object.prototype.hasOwnProperty.call 57/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 58/******/ 59/******/ // __webpack_public_path__ 60/******/ __webpack_require__.p = "/"; 61/******/ 62/******/ // Load entry module and return exports 63/******/ return __webpack_require__(__webpack_require__.s = 139); 64/******/ }) 65/************************************************************************/ 66/******/ ([ 67/* 0 */ 68/***/ (function(module, exports, __webpack_require__) { 69 70/* WEBPACK VAR INJECTION */(function(module) {var require;//! moment.js 71//! version : 2.29.1 72//! authors : Tim Wood, Iskren Chernev, Moment.js contributors 73//! license : MIT 74//! momentjs.com 75 76;(function (global, factory) { 77 true
vendor: 62,854 bytes, lines 77-2161
77 ? module.exports = factory() : 78 typeof define === 'function' && define.amd ? define(factory) : 79 global.moment = factory() 80}(this, (function () { 'use strict'; 81 82 var hookCallback; 83 84 function hooks() { 85 return hookCallback.apply(null, arguments); 86 } 87 88 // This is done to register the method called with moment() 89 // without creating circular dependencies. 90 function setHookCallback(callback) { 91 hookCallback = callback; 92 } 93 94 function isArray(input) { 95 return ( 96 input instanceof Array || 97 Object.prototype.toString.call(input) === '[object Array]' 98 ); 99 } 100 101 function isObject(input) { 102 // IE8 will treat undefined and null as object if it wasn't for 103 // input != null 104 return ( 105 input != null && 106 Object.prototype.toString.call(input) === '[object Object]' 107 ); 108 } 109 110 function hasOwnProp(a, b) { 111 return Object.prototype.hasOwnProperty.call(a, b); 112 } 113 114 function isObjectEmpty(obj) { 115 if (Object.getOwnPropertyNames) { 116 return Object.getOwnPropertyNames(obj).length === 0; 117 } else { 118 var k; 119 for (k in obj) { 120 if (hasOwnProp(obj, k)) { 121 return false; 122 } 123 } 124 return true; 125 } 126 } 127 128 function isUndefined(input) { 129 return input === void 0; 130 } 131 132 function isNumber(input) { 133 return ( 134 typeof input === 'number' || 135 Object.prototype.toString.call(input) === '[object Number]' 136 ); 137 } 138 139 function isDate(input) { 140 return ( 141 input instanceof Date || 142 Object.prototype.toString.call(input) === '[object Date]' 143 ); 144 } 145 146 function map(arr, fn) { 147 var res = [], 148 i; 149 for (i = 0; i < arr.length; ++i) { 150 res.push(fn(arr[i], i)); 151 } 152 return res; 153 } 154 155 function extend(a, b) { 156 for (var i in b) { 157 if (hasOwnProp(b, i)) { 158 a[i] = b[i]; 159 } 160 } 161 162 if (hasOwnProp(b, 'toString')) { 163 a.toString = b.toString; 164 } 165 166 if (hasOwnProp(b, 'valueOf')) { 167 a.valueOf = b.valueOf; 168 } 169 170 return a; 171 } 172 173 function createUTC(input, format, locale, strict) { 174 return createLocalOrUTC(input, format, locale, strict, true).utc(); 175 } 176 177 function defaultParsingFlags() { 178 // We need to deep clone this object. 179 return { 180 empty: false, 181 unusedTokens: [], 182 unusedInput: [], 183 overflow: -2, 184 charsLeftOver: 0, 185 nullInput: false, 186 invalidEra: null, 187 invalidMonth: null, 188 invalidFormat: false, 189 userInvalidated: false, 190 iso: false, 191 parsedDateParts: [], 192 era: null, 193 meridiem: null, 194 rfc2822: false, 195 weekdayMismatch: false, 196 }; 197 } 198 199 function getParsingFlags(m) { 200 if (m._pf == null) { 201 m._pf = defaultParsingFlags(); 202 } 203 return m._pf; 204 } 205 206 var some; 207 if (Array.prototype.some) { 208 some = Array.prototype.some; 209 } else { 210 some = function (fun) { 211 var t = Object(this), 212 len = t.length >>> 0, 213 i; 214 215 for (i = 0; i < len; i++) { 216 if (i in t && fun.call(this, t[i], i, t)) { 217 return true; 218 } 219 } 220 221 return false; 222 }; 223 } 224 225 function isValid(m) { 226 if (m._isValid == null) { 227 var flags = getParsingFlags(m), 228 parsedParts = some.call(flags.parsedDateParts, function (i) { 229 return i != null; 230 }), 231 isNowValid = 232 !isNaN(m._d.getTime()) && 233 flags.overflow < 0 && 234 !flags.empty && 235 !flags.invalidEra && 236 !flags.invalidMonth && 237 !flags.invalidWeekday && 238 !flags.weekdayMismatch && 239 !flags.nullInput && 240 !flags.invalidFormat && 241 !flags.userInvalidated && 242 (!flags.meridiem || (flags.meridiem && parsedParts)); 243 244 if (m._strict) { 245 isNowValid = 246 isNowValid && 247 flags.charsLeftOver === 0 && 248 flags.unusedTokens.length === 0 && 249 flags.bigHour === undefined; 250 } 251 252 if (Object.isFrozen == null || !Object.isFrozen(m)) { 253 m._isValid = isNowValid; 254 } else { 255 return isNowValid; 256 } 257 } 258 return m._isValid; 259 } 260 261 function createInvalid(flags) { 262 var m = createUTC(NaN); 263 if (flags != null) { 264 extend(getParsingFlags(m), flags); 265 } else { 266 getParsingFlags(m).userInvalidated = true; 267 } 268 269 return m; 270 } 271 272 // Plugins that add properties should also add the key here (null value), 273 // so we can properly clone ourselves. 274 var momentProperties = (hooks.momentProperties = []), 275 updateInProgress = false; 276 277 function copyConfig(to, from) { 278 var i, prop, val; 279 280 if (!isUndefined(from._isAMomentObject)) { 281 to._isAMomentObject = from._isAMomentObject; 282 } 283 if (!isUndefined(from._i)) { 284 to._i = from._i; 285 } 286 if (!isUndefined(from._f)) { 287 to._f = from._f; 288 } 289 if (!isUndefined(from._l)) { 290 to._l = from._l; 291 } 292 if (!isUndefined(from._strict)) { 293 to._strict = from._strict; 294 } 295 if (!isUndefined(from._tzm)) { 296 to._tzm = from._tzm; 297 } 298 if (!isUndefined(from._isUTC)) { 299 to._isUTC = from._isUTC; 300 } 301 if (!isUndefined(from._offset)) { 302 to._offset = from._offset; 303 } 304 if (!isUndefined(from._pf)) { 305 to._pf = getParsingFlags(from); 306 } 307 if (!isUndefined(from._locale)) { 308 to._locale = from._locale; 309 } 310 311 if (momentProperties.length > 0) { 312 for (i = 0; i < momentProperties.length; i++) { 313 prop = momentProperties[i]; 314 val = from[prop]; 315 if (!isUndefined(val)) { 316 to[prop] = val; 317 } 318 } 319 } 320 321 return to; 322 } 323 324 // Moment prototype object 325 function Moment(config) { 326 copyConfig(this, config); 327 this._d = new Date(config._d != null ? config._d.getTime() : NaN); 328 if (!this.isValid()) { 329 this._d = new Date(NaN); 330 } 331 // Prevent infinite loop in case updateOffset creates new moment 332 // objects. 333 if (updateInProgress === false) { 334 updateInProgress = true; 335 hooks.updateOffset(this); 336 updateInProgress = false; 337 } 338 } 339 340 function isMoment(obj) { 341 return ( 342 obj instanceof Moment || (obj != null && obj._isAMomentObject != null) 343 ); 344 } 345 346 function warn(msg) { 347 if ( 348 hooks.suppressDeprecationWarnings === false && 349 typeof console !== 'undefined' && 350 console.warn 351 ) { 352 console.warn('Deprecation warning: ' + msg); 353 } 354 } 355 356 function deprecate(msg, fn) { 357 var firstTime = true; 358 359 return extend(function () { 360 if (hooks.deprecationHandler != null) { 361 hooks.deprecationHandler(null, msg); 362 } 363 if (firstTime) { 364 var args = [], 365 arg, 366 i, 367 key; 368 for (i = 0; i < arguments.length; i++) { 369 arg = ''; 370 if (typeof arguments[i] === 'object') { 371 arg += '\n[' + i + '] '; 372 for (key in arguments[0]) { 373 if (hasOwnProp(arguments[0], key)) { 374 arg += key + ': ' + arguments[0][key] + ', '; 375 } 376 } 377 arg = arg.slice(0, -2); // Remove trailing comma and space 378 } else { 379 arg = arguments[i]; 380 } 381 args.push(arg); 382 } 383 warn( 384 msg + 385 '\nArguments: ' + 386 Array.prototype.slice.call(args).join('') + 387 '\n' + 388 new Error().stack 389 ); 390 firstTime = false; 391 } 392 return fn.apply(this, arguments); 393 }, fn); 394 } 395 396 var deprecations = {}; 397 398 function deprecateSimple(name, msg) { 399 if (hooks.deprecationHandler != null) { 400 hooks.deprecationHandler(name, msg); 401 } 402 if (!deprecations[name]) { 403 warn(msg); 404 deprecations[name] = true; 405 } 406 } 407 408 hooks.suppressDeprecationWarnings = false; 409 hooks.deprecationHandler = null; 410 411 function isFunction(input) { 412 return ( 413 (typeof Function !== 'undefined' && input instanceof Function) || 414 Object.prototype.toString.call(input) === '[object Function]' 415 ); 416 } 417 418 function set(config) { 419 var prop, i; 420 for (i in config) { 421 if (hasOwnProp(config, i)) { 422 prop = config[i]; 423 if (isFunction(prop)) { 424 this[i] = prop; 425 } else { 426 this['_' + i] = prop; 427 } 428 } 429 } 430 this._config = config; 431 // Lenient ordinal parsing accepts just a number in addition to 432 // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. 433 // TODO: Remove "ordinalParse" fallback in next major release. 434 this._dayOfMonthOrdinalParseLenient = new RegExp( 435 (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + 436 '|' + 437 /\d{1,2}/.source 438 ); 439 } 440 441 function mergeConfigs(parentConfig, childConfig) { 442 var res = extend({}, parentConfig), 443 prop; 444 for (prop in childConfig) { 445 if (hasOwnProp(childConfig, prop)) { 446 if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { 447 res[prop] = {}; 448 extend(res[prop], parentConfig[prop]); 449 extend(res[prop], childConfig[prop]); 450 } else if (childConfig[prop] != null) { 451 res[prop] = childConfig[prop]; 452 } else { 453 delete res[prop]; 454 } 455 } 456 } 457 for (prop in parentConfig) { 458 if ( 459 hasOwnProp(parentConfig, prop) && 460 !hasOwnProp(childConfig, prop) && 461 isObject(parentConfig[prop]) 462 ) { 463 // make sure changes to properties don't modify parent config 464 res[prop] = extend({}, res[prop]); 465 } 466 } 467 return res; 468 } 469 470 function Locale(config) { 471 if (config != null) { 472 this.set(config); 473 } 474 } 475 476 var keys; 477 478 if (Object.keys) { 479 keys = Object.keys; 480 } else { 481 keys = function (obj) { 482 var i, 483 res = []; 484 for (i in obj) { 485 if (hasOwnProp(obj, i)) { 486 res.push(i); 487 } 488 } 489 return res; 490 }; 491 } 492 493 var defaultCalendar = { 494 sameDay: '[Today at] LT', 495 nextDay: '[Tomorrow at] LT', 496 nextWeek: 'dddd [at] LT', 497 lastDay: '[Yesterday at] LT', 498 lastWeek: '[Last] dddd [at] LT', 499 sameElse: 'L', 500 }; 501 502 function calendar(key, mom, now) { 503 var output = this._calendar[key] || this._calendar['sameElse']; 504 return isFunction(output) ? output.call(mom, now) : output; 505 } 506 507 function zeroFill(number, targetLength, forceSign) { 508 var absNumber = '' + Math.abs(number), 509 zerosToFill = targetLength - absNumber.length, 510 sign = number >= 0; 511 return ( 512 (sign ? (forceSign ? '+' : '') : '-') + 513 Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + 514 absNumber 515 ); 516 } 517 518 var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, 519 localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, 520 formatFunctions = {}, 521 formatTokenFunctions = {}; 522 523 // token: 'M' 524 // padded: ['MM', 2] 525 // ordinal: 'Mo' 526 // callback: function () { this.month() + 1 } 527 function addFormatToken(token, padded, ordinal, callback) { 528 var func = callback; 529 if (typeof callback === 'string') { 530 func = function () { 531 return this[callback](); 532 }; 533 } 534 if (token) { 535 formatTokenFunctions[token] = func; 536 } 537 if (padded) { 538 formatTokenFunctions[padded[0]] = function () { 539 return zeroFill(func.apply(this, arguments), padded[1], padded[2]); 540 }; 541 } 542 if (ordinal) { 543 formatTokenFunctions[ordinal] = function () { 544 return this.localeData().ordinal( 545 func.apply(this, arguments), 546 token 547 ); 548 }; 549 } 550 } 551 552 function removeFormattingTokens(input) { 553 if (input.match(/\[[\s\S]/)) { 554 return input.replace(/^\[|\]$/g, ''); 555 } 556 return input.replace(/\\/g, ''); 557 } 558 559 function makeFormatFunction(format) { 560 var array = format.match(formattingTokens), 561 i, 562 length; 563 564 for (i = 0, length = array.length; i < length; i++) { 565 if (formatTokenFunctions[array[i]]) { 566 array[i] = formatTokenFunctions[array[i]]; 567 } else { 568 array[i] = removeFormattingTokens(array[i]); 569 } 570 } 571 572 return function (mom) { 573 var output = '', 574 i; 575 for (i = 0; i < length; i++) { 576 output += isFunction(array[i]) 577 ? array[i].call(mom, format) 578 : array[i]; 579 } 580 return output; 581 }; 582 } 583 584 // format date using native date object 585 function formatMoment(m, format) { 586 if (!m.isValid()) { 587 return m.localeData().invalidDate(); 588 } 589 590 format = expandFormat(format, m.localeData()); 591 formatFunctions[format] = 592 formatFunctions[format] || makeFormatFunction(format); 593 594 return formatFunctions[format](m); 595 } 596 597 function expandFormat(format, locale) { 598 var i = 5; 599 600 function replaceLongDateFormatTokens(input) { 601 return locale.longDateFormat(input) || input; 602 } 603 604 localFormattingTokens.lastIndex = 0; 605 while (i >= 0 && localFormattingTokens.test(format)) { 606 format = format.replace( 607 localFormattingTokens, 608 replaceLongDateFormatTokens 609 ); 610 localFormattingTokens.lastIndex = 0; 611 i -= 1; 612 } 613 614 return format; 615 } 616 617 var defaultLongDateFormat = { 618 LTS: 'h:mm:ss A', 619 LT: 'h:mm A', 620 L: 'MM/DD/YYYY', 621 LL: 'MMMM D, YYYY', 622 LLL: 'MMMM D, YYYY h:mm A', 623 LLLL: 'dddd, MMMM D, YYYY h:mm A', 624 }; 625 626 function longDateFormat(key) { 627 var format = this._longDateFormat[key], 628 formatUpper = this._longDateFormat[key.toUpperCase()]; 629 630 if (format || !formatUpper) { 631 return format; 632 } 633 634 this._longDateFormat[key] = formatUpper 635 .match(formattingTokens) 636 .map(function (tok) { 637 if ( 638 tok === 'MMMM' || 639 tok === 'MM' || 640 tok === 'DD' || 641 tok === 'dddd' 642 ) { 643 return tok.slice(1); 644 } 645 return tok; 646 }) 647 .join(''); 648 649 return this._longDateFormat[key]; 650 } 651 652 var defaultInvalidDate = 'Invalid date'; 653 654 function invalidDate() { 655 return this._invalidDate; 656 } 657 658 var defaultOrdinal = '%d', 659 defaultDayOfMonthOrdinalParse = /\d{1,2}/; 660 661 function ordinal(number) { 662 return this._ordinal.replace('%d', number); 663 } 664 665 var defaultRelativeTime = { 666 future: 'in %s', 667 past: '%s ago', 668 s: 'a few seconds', 669 ss: '%d seconds', 670 m: 'a minute', 671 mm: '%d minutes', 672 h: 'an hour', 673 hh: '%d hours', 674 d: 'a day', 675 dd: '%d days', 676 w: 'a week', 677 ww: '%d weeks', 678 M: 'a month', 679 MM: '%d months', 680 y: 'a year', 681 yy: '%d years', 682 }; 683 684 function relativeTime(number, withoutSuffix, string, isFuture) { 685 var output = this._relativeTime[string]; 686 return isFunction(output) 687 ? output(number, withoutSuffix, string, isFuture) 688 : output.replace(/%d/i, number); 689 } 690 691 function pastFuture(diff, output) { 692 var format = this._relativeTime[diff > 0 ? 'future' : 'past']; 693 return isFunction(format) ? format(output) : format.replace(/%s/i, output); 694 } 695 696 var aliases = {}; 697 698 function addUnitAlias(unit, shorthand) { 699 var lowerCase = unit.toLowerCase(); 700 aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; 701 } 702 703 function normalizeUnits(units) { 704 return typeof units === 'string' 705 ? aliases[units] || aliases[units.toLowerCase()] 706 : undefined; 707 } 708 709 function normalizeObjectUnits(inputObject) { 710 var normalizedInput = {}, 711 normalizedProp, 712 prop; 713 714 for (prop in inputObject) { 715 if (hasOwnProp(inputObject, prop)) { 716 normalizedProp = normalizeUnits(prop); 717 if (normalizedProp) { 718 normalizedInput[normalizedProp] = inputObject[prop]; 719 } 720 } 721 } 722 723 return normalizedInput; 724 } 725 726 var priorities = {}; 727 728 function addUnitPriority(unit, priority) { 729 priorities[unit] = priority; 730 } 731 732 function getPrioritizedUnits(unitsObj) { 733 var units = [], 734 u; 735 for (u in unitsObj) { 736 if (hasOwnProp(unitsObj, u)) { 737 units.push({ unit: u, priority: priorities[u] }); 738 } 739 } 740 units.sort(function (a, b) { 741 return a.priority - b.priority; 742 }); 743 return units; 744 } 745 746 function isLeapYear(year) { 747 return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; 748 } 749 750 function absFloor(number) { 751 if (number < 0) { 752 // -0 -> 0 753 return Math.ceil(number) || 0; 754 } else { 755 return Math.floor(number); 756 } 757 } 758 759 function toInt(argumentForCoercion) { 760 var coercedNumber = +argumentForCoercion, 761 value = 0; 762 763 if (coercedNumber !== 0 && isFinite(coercedNumber)) { 764 value = absFloor(coercedNumber); 765 } 766 767 return value; 768 } 769 770 function makeGetSet(unit, keepTime) { 771 return function (value) { 772 if (value != null) { 773 set$1(this, unit, value); 774 hooks.updateOffset(this, keepTime); 775 return this; 776 } else { 777 return get(this, unit); 778 } 779 }; 780 } 781 782 function get(mom, unit) { 783 return mom.isValid() 784 ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() 785 : NaN; 786 } 787 788 function set$1(mom, unit, value) { 789 if (mom.isValid() && !isNaN(value)) { 790 if ( 791 unit === 'FullYear' && 792 isLeapYear(mom.year()) && 793 mom.month() === 1 && 794 mom.date() === 29 795 ) { 796 value = toInt(value); 797 mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit]( 798 value, 799 mom.month(), 800 daysInMonth(value, mom.month()) 801 ); 802 } else { 803 mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); 804 } 805 } 806 } 807 808 // MOMENTS 809 810 function stringGet(units) { 811 units = normalizeUnits(units); 812 if (isFunction(this[units])) { 813 return this[units](); 814 } 815 return this; 816 } 817 818 function stringSet(units, value) { 819 if (typeof units === 'object') { 820 units = normalizeObjectUnits(units); 821 var prioritized = getPrioritizedUnits(units), 822 i; 823 for (i = 0; i < prioritized.length; i++) { 824 this[prioritized[i].unit](units[prioritized[i].unit]); 825 } 826 } else { 827 units = normalizeUnits(units); 828 if (isFunction(this[units])) { 829 return this[units](value); 830 } 831 } 832 return this; 833 } 834 835 var match1 = /\d/, // 0 - 9 836 match2 = /\d\d/, // 00 - 99 837 match3 = /\d{3}/, // 000 - 999 838 match4 = /\d{4}/, // 0000 - 9999 839 match6 = /[+-]?\d{6}/, // -999999 - 999999 840 match1to2 = /\d\d?/, // 0 - 99 841 match3to4 = /\d\d\d\d?/, // 999 - 9999 842 match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 843 match1to3 = /\d{1,3}/, // 0 - 999 844 match1to4 = /\d{1,4}/, // 0 - 9999 845 match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 846 matchUnsigned = /\d+/, // 0 - inf 847 matchSigned = /[+-]?\d+/, // -inf - inf 848 matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z 849 matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z 850 matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 851 // any word (or two) characters or numbers including two/three word month in arabic. 852 // includes scottish gaelic two word and hyphenated months 853 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, 854 regexes; 855 856 regexes = {}; 857 858 function addRegexToken(token, regex, strictRegex) { 859 regexes[token] = isFunction(regex) 860 ? regex 861 : function (isStrict, localeData) { 862 return isStrict && strictRegex ? strictRegex : regex; 863 }; 864 } 865 866 function getParseRegexForToken(token, config) { 867 if (!hasOwnProp(regexes, token)) { 868 return new RegExp(unescapeFormat(token)); 869 } 870 871 return regexes[token](config._strict, config._locale); 872 } 873 874 // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript 875 function unescapeFormat(s) { 876 return regexEscape( 877 s 878 .replace('\\', '') 879 .replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function ( 880 matched, 881 p1, 882 p2, 883 p3, 884 p4 885 ) { 886 return p1 || p2 || p3 || p4; 887 }) 888 ); 889 } 890 891 function regexEscape(s) { 892 return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); 893 } 894 895 var tokens = {}; 896 897 function addParseToken(token, callback) { 898 var i, 899 func = callback; 900 if (typeof token === 'string') { 901 token = [token]; 902 } 903 if (isNumber(callback)) { 904 func = function (input, array) { 905 array[callback] = toInt(input); 906 }; 907 } 908 for (i = 0; i < token.length; i++) { 909 tokens[token[i]] = func; 910 } 911 } 912 913 function addWeekParseToken(token, callback) { 914 addParseToken(token, function (input, array, config, token) { 915 config._w = config._w || {}; 916 callback(input, config._w, config, token); 917 }); 918 } 919 920 function addTimeToArrayFromToken(token, input, config) { 921 if (input != null && hasOwnProp(tokens, token)) { 922 tokens[token](input, config._a, config, token); 923 } 924 } 925 926 var YEAR = 0, 927 MONTH = 1, 928 DATE = 2, 929 HOUR = 3, 930 MINUTE = 4, 931 SECOND = 5, 932 MILLISECOND = 6, 933 WEEK = 7, 934 WEEKDAY = 8; 935 936 function mod(n, x) { 937 return ((n % x) + x) % x; 938 } 939 940 var indexOf; 941 942 if (Array.prototype.indexOf) { 943 indexOf = Array.prototype.indexOf; 944 } else { 945 indexOf = function (o) { 946 // I know 947 var i; 948 for (i = 0; i < this.length; ++i) { 949 if (this[i] === o) { 950 return i; 951 } 952 } 953 return -1; 954 }; 955 } 956 957 function daysInMonth(year, month) { 958 if (isNaN(year) || isNaN(month)) { 959 return NaN; 960 } 961 var modMonth = mod(month, 12); 962 year += (month - modMonth) / 12; 963 return modMonth === 1 964 ? isLeapYear(year) 965 ? 29 966 : 28 967 : 31 - ((modMonth % 7) % 2); 968 } 969 970 // FORMATTING 971 972 addFormatToken('M', ['MM', 2], 'Mo', function () { 973 return this.month() + 1; 974 }); 975 976 addFormatToken('MMM', 0, 0, function (format) { 977 return this.localeData().monthsShort(this, format); 978 }); 979 980 addFormatToken('MMMM', 0, 0, function (format) { 981 return this.localeData().months(this, format); 982 }); 983 984 // ALIASES 985 986 addUnitAlias('month', 'M'); 987 988 // PRIORITY 989 990 addUnitPriority('month', 8); 991 992 // PARSING 993 994 addRegexToken('M', match1to2); 995 addRegexToken('MM', match1to2, match2); 996 addRegexToken('MMM', function (isStrict, locale) { 997 return locale.monthsShortRegex(isStrict); 998 }); 999 addRegexToken('MMMM', function (isStrict, locale) { 1000 return locale.monthsRegex(isStrict); 1001 }); 1002 1003 addParseToken(['M', 'MM'], function (input, array) { 1004 array[MONTH] = toInt(input) - 1; 1005 }); 1006 1007 addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { 1008 var month = config._locale.monthsParse(input, token, config._strict); 1009 // if we didn't find a month name, mark the date as invalid. 1010 if (month != null) { 1011 array[MONTH] = month; 1012 } else { 1013 getParsingFlags(config).invalidMonth = input; 1014 } 1015 }); 1016 1017 // LOCALES 1018 1019 var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 1020 '_' 1021 ), 1022 defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split( 1023 '_' 1024 ), 1025 MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, 1026 defaultMonthsShortRegex = matchWord, 1027 defaultMonthsRegex = matchWord; 1028 1029 function localeMonths(m, format) { 1030 if (!m) { 1031 return isArray(this._months) 1032 ? this._months 1033 : this._months['standalone']; 1034 } 1035 return isArray(this._months) 1036 ? this._months[m.month()] 1037 : this._months[ 1038 (this._months.isFormat || MONTHS_IN_FORMAT).test(format) 1039 ? 'format' 1040 : 'standalone' 1041 ][m.month()]; 1042 } 1043 1044 function localeMonthsShort(m, format) { 1045 if (!m) { 1046 return isArray(this._monthsShort) 1047 ? this._monthsShort 1048 : this._monthsShort['standalone']; 1049 } 1050 return isArray(this._monthsShort) 1051 ? this._monthsShort[m.month()] 1052 : this._monthsShort[ 1053 MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' 1054 ][m.month()]; 1055 } 1056 1057 function handleStrictParse(monthName, format, strict) { 1058 var i, 1059 ii, 1060 mom, 1061 llc = monthName.toLocaleLowerCase(); 1062 if (!this._monthsParse) { 1063 // this is not used 1064 this._monthsParse = []; 1065 this._longMonthsParse = []; 1066 this._shortMonthsParse = []; 1067 for (i = 0; i < 12; ++i) { 1068 mom = createUTC([2000, i]); 1069 this._shortMonthsParse[i] = this.monthsShort( 1070 mom, 1071 '' 1072 ).toLocaleLowerCase(); 1073 this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); 1074 } 1075 } 1076 1077 if (strict) { 1078 if (format === 'MMM') { 1079 ii = indexOf.call(this._shortMonthsParse, llc); 1080 return ii !== -1 ? ii : null; 1081 } else { 1082 ii = indexOf.call(this._longMonthsParse, llc); 1083 return ii !== -1 ? ii : null; 1084 } 1085 } else { 1086 if (format === 'MMM') { 1087 ii = indexOf.call(this._shortMonthsParse, llc); 1088 if (ii !== -1) { 1089 return ii; 1090 } 1091 ii = indexOf.call(this._longMonthsParse, llc); 1092 return ii !== -1 ? ii : null; 1093 } else { 1094 ii = indexOf.call(this._longMonthsParse, llc); 1095 if (ii !== -1) { 1096 return ii; 1097 } 1098 ii = indexOf.call(this._shortMonthsParse, llc); 1099 return ii !== -1 ? ii : null; 1100 } 1101 } 1102 } 1103 1104 function localeMonthsParse(monthName, format, strict) { 1105 var i, mom, regex; 1106 1107 if (this._monthsParseExact) { 1108 return handleStrictParse.call(this, monthName, format, strict); 1109 } 1110 1111 if (!this._monthsParse) { 1112 this._monthsParse = []; 1113 this._longMonthsParse = []; 1114 this._shortMonthsParse = []; 1115 } 1116 1117 // TODO: add sorting 1118 // Sorting makes sure if one month (or abbr) is a prefix of another 1119 // see sorting in computeMonthsParse 1120 for (i = 0; i < 12; i++) { 1121 // make the regex if we don't have it already 1122 mom = createUTC([2000, i]); 1123 if (strict && !this._longMonthsParse[i]) { 1124 this._longMonthsParse[i] = new RegExp( 1125 '^' + this.months(mom, '').replace('.', '') + '$', 1126 'i' 1127 ); 1128 this._shortMonthsParse[i] = new RegExp( 1129 '^' + this.monthsShort(mom, '').replace('.', '') + '$', 1130 'i' 1131 ); 1132 } 1133 if (!strict && !this._monthsParse[i]) { 1134 regex = 1135 '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); 1136 this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); 1137 } 1138 // test the regex 1139 if ( 1140 strict && 1141 format === 'MMMM' && 1142 this._longMonthsParse[i].test(monthName) 1143 ) { 1144 return i; 1145 } else if ( 1146 strict && 1147 format === 'MMM' && 1148 this._shortMonthsParse[i].test(monthName) 1149 ) { 1150 return i; 1151 } else if (!strict && this._monthsParse[i].test(monthName)) { 1152 return i; 1153 } 1154 } 1155 } 1156 1157 // MOMENTS 1158 1159 function setMonth(mom, value) { 1160 var dayOfMonth; 1161 1162 if (!mom.isValid()) { 1163 // No op 1164 return mom; 1165 } 1166 1167 if (typeof value === 'string') { 1168 if (/^\d+$/.test(value)) { 1169 value = toInt(value); 1170 } else { 1171 value = mom.localeData().monthsParse(value); 1172 // TODO: Another silent failure? 1173 if (!isNumber(value)) { 1174 return mom; 1175 } 1176 } 1177 } 1178 1179 dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); 1180 mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); 1181 return mom; 1182 } 1183 1184 function getSetMonth(value) { 1185 if (value != null) { 1186 setMonth(this, value); 1187 hooks.updateOffset(this, true); 1188 return this; 1189 } else { 1190 return get(this, 'Month'); 1191 } 1192 } 1193 1194 function getDaysInMonth() { 1195 return daysInMonth(this.year(), this.month()); 1196 } 1197 1198 function monthsShortRegex(isStrict) { 1199 if (this._monthsParseExact) { 1200 if (!hasOwnProp(this, '_monthsRegex')) { 1201 computeMonthsParse.call(this); 1202 } 1203 if (isStrict) { 1204 return this._monthsShortStrictRegex; 1205 } else { 1206 return this._monthsShortRegex; 1207 } 1208 } else { 1209 if (!hasOwnProp(this, '_monthsShortRegex')) { 1210 this._monthsShortRegex = defaultMonthsShortRegex; 1211 } 1212 return this._monthsShortStrictRegex && isStrict 1213 ? this._monthsShortStrictRegex 1214 : this._monthsShortRegex; 1215 } 1216 } 1217 1218 function monthsRegex(isStrict) { 1219 if (this._monthsParseExact) { 1220 if (!hasOwnProp(this, '_monthsRegex')) { 1221 computeMonthsParse.call(this); 1222 } 1223 if (isStrict) { 1224 return this._monthsStrictRegex; 1225 } else { 1226 return this._monthsRegex; 1227 } 1228 } else { 1229 if (!hasOwnProp(this, '_monthsRegex')) { 1230 this._monthsRegex = defaultMonthsRegex; 1231 } 1232 return this._monthsStrictRegex && isStrict 1233 ? this._monthsStrictRegex 1234 : this._monthsRegex; 1235 } 1236 } 1237 1238 function computeMonthsParse() { 1239 function cmpLenRev(a, b) { 1240 return b.length - a.length; 1241 } 1242 1243 var shortPieces = [], 1244 longPieces = [], 1245 mixedPieces = [], 1246 i, 1247 mom; 1248 for (i = 0; i < 12; i++) { 1249 // make the regex if we don't have it already 1250 mom = createUTC([2000, i]); 1251 shortPieces.push(this.monthsShort(mom, '')); 1252 longPieces.push(this.months(mom, '')); 1253 mixedPieces.push(this.months(mom, '')); 1254 mixedPieces.push(this.monthsShort(mom, '')); 1255 } 1256 // Sorting makes sure if one month (or abbr) is a prefix of another it 1257 // will match the longer piece. 1258 shortPieces.sort(cmpLenRev); 1259 longPieces.sort(cmpLenRev); 1260 mixedPieces.sort(cmpLenRev); 1261 for (i = 0; i < 12; i++) { 1262 shortPieces[i] = regexEscape(shortPieces[i]); 1263 longPieces[i] = regexEscape(longPieces[i]); 1264 } 1265 for (i = 0; i < 24; i++) { 1266 mixedPieces[i] = regexEscape(mixedPieces[i]); 1267 } 1268 1269 this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); 1270 this._monthsShortRegex = this._monthsRegex; 1271 this._monthsStrictRegex = new RegExp( 1272 '^(' + longPieces.join('|') + ')', 1273 'i' 1274 ); 1275 this._monthsShortStrictRegex = new RegExp( 1276 '^(' + shortPieces.join('|') + ')', 1277 'i' 1278 ); 1279 } 1280 1281 // FORMATTING 1282 1283 addFormatToken('Y', 0, 0, function () { 1284 var y = this.year(); 1285 return y <= 9999 ? zeroFill(y, 4) : '+' + y; 1286 }); 1287 1288 addFormatToken(0, ['YY', 2], 0, function () { 1289 return this.year() % 100; 1290 }); 1291 1292 addFormatToken(0, ['YYYY', 4], 0, 'year'); 1293 addFormatToken(0, ['YYYYY', 5], 0, 'year'); 1294 addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); 1295 1296 // ALIASES 1297 1298 addUnitAlias('year', 'y'); 1299 1300 // PRIORITIES 1301 1302 addUnitPriority('year', 1); 1303 1304 // PARSING 1305 1306 addRegexToken('Y', matchSigned); 1307 addRegexToken('YY', match1to2, match2); 1308 addRegexToken('YYYY', match1to4, match4); 1309 addRegexToken('YYYYY', match1to6, match6); 1310 addRegexToken('YYYYYY', match1to6, match6); 1311 1312 addParseToken(['YYYYY', 'YYYYYY'], YEAR); 1313 addParseToken('YYYY', function (input, array) { 1314 array[YEAR] = 1315 input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); 1316 }); 1317 addParseToken('YY', function (input, array) { 1318 array[YEAR] = hooks.parseTwoDigitYear(input); 1319 }); 1320 addParseToken('Y', function (input, array) { 1321 array[YEAR] = parseInt(input, 10); 1322 }); 1323 1324 // HELPERS 1325 1326 function daysInYear(year) { 1327 return isLeapYear(year) ? 366 : 365; 1328 } 1329 1330 // HOOKS 1331 1332 hooks.parseTwoDigitYear = function (input) { 1333 return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); 1334 }; 1335 1336 // MOMENTS 1337 1338 var getSetYear = makeGetSet('FullYear', true); 1339 1340 function getIsLeapYear() { 1341 return isLeapYear(this.year()); 1342 } 1343 1344 function createDate(y, m, d, h, M, s, ms) { 1345 // can't just apply() to create a date: 1346 // https://stackoverflow.com/q/181348 1347 var date; 1348 // the date constructor remaps years 0-99 to 1900-1999 1349 if (y < 100 && y >= 0) { 1350 // preserve leap years using a full 400 year cycle, then reset 1351 date = new Date(y + 400, m, d, h, M, s, ms); 1352 if (isFinite(date.getFullYear())) { 1353 date.setFullYear(y); 1354 } 1355 } else { 1356 date = new Date(y, m, d, h, M, s, ms); 1357 } 1358 1359 return date; 1360 } 1361 1362 function createUTCDate(y) { 1363 var date, args; 1364 // the Date.UTC function remaps years 0-99 to 1900-1999 1365 if (y < 100 && y >= 0) { 1366 args = Array.prototype.slice.call(arguments); 1367 // preserve leap years using a full 400 year cycle, then reset 1368 args[0] = y + 400; 1369 date = new Date(Date.UTC.apply(null, args)); 1370 if (isFinite(date.getUTCFullYear())) { 1371 date.setUTCFullYear(y); 1372 } 1373 } else { 1374 date = new Date(Date.UTC.apply(null, arguments)); 1375 } 1376 1377 return date; 1378 } 1379 1380 // start-of-first-week - start-of-year 1381 function firstWeekOffset(year, dow, doy) { 1382 var // first-week day -- which january is always in the first week (4 for iso, 1 for other) 1383 fwd = 7 + dow - doy, 1384 // first-week day local weekday -- which local weekday is fwd 1385 fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; 1386 1387 return -fwdlw + fwd - 1; 1388 } 1389 1390 // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday 1391 function dayOfYearFromWeeks(year, week, weekday, dow, doy) { 1392 var localWeekday = (7 + weekday - dow) % 7, 1393 weekOffset = firstWeekOffset(year, dow, doy), 1394 dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, 1395 resYear, 1396 resDayOfYear; 1397 1398 if (dayOfYear <= 0) { 1399 resYear = year - 1; 1400 resDayOfYear = daysInYear(resYear) + dayOfYear; 1401 } else if (dayOfYear > daysInYear(year)) { 1402 resYear = year + 1; 1403 resDayOfYear = dayOfYear - daysInYear(year); 1404 } else { 1405 resYear = year; 1406 resDayOfYear = dayOfYear; 1407 } 1408 1409 return { 1410 year: resYear, 1411 dayOfYear: resDayOfYear, 1412 }; 1413 } 1414 1415 function weekOfYear(mom, dow, doy) { 1416 var weekOffset = firstWeekOffset(mom.year(), dow, doy), 1417 week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, 1418 resWeek, 1419 resYear; 1420 1421 if (week < 1) { 1422 resYear = mom.year() - 1; 1423 resWeek = week + weeksInYear(resYear, dow, doy); 1424 } else if (week > weeksInYear(mom.year(), dow, doy)) { 1425 resWeek = week - weeksInYear(mom.year(), dow, doy); 1426 resYear = mom.year() + 1; 1427 } else { 1428 resYear = mom.year(); 1429 resWeek = week; 1430 } 1431 1432 return { 1433 week: resWeek, 1434 year: resYear, 1435 }; 1436 } 1437 1438 function weeksInYear(year, dow, doy) { 1439 var weekOffset = firstWeekOffset(year, dow, doy), 1440 weekOffsetNext = firstWeekOffset(year + 1, dow, doy); 1441 return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; 1442 } 1443 1444 // FORMATTING 1445 1446 addFormatToken('w', ['ww', 2], 'wo', 'week'); 1447 addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); 1448 1449 // ALIASES 1450 1451 addUnitAlias('week', 'w'); 1452 addUnitAlias('isoWeek', 'W'); 1453 1454 // PRIORITIES 1455 1456 addUnitPriority('week', 5); 1457 addUnitPriority('isoWeek', 5); 1458 1459 // PARSING 1460 1461 addRegexToken('w', match1to2); 1462 addRegexToken('ww', match1to2, match2); 1463 addRegexToken('W', match1to2); 1464 addRegexToken('WW', match1to2, match2); 1465 1466 addWeekParseToken(['w', 'ww', 'W', 'WW'], function ( 1467 input, 1468 week, 1469 config, 1470 token 1471 ) { 1472 week[token.substr(0, 1)] = toInt(input); 1473 }); 1474 1475 // HELPERS 1476 1477 // LOCALES 1478 1479 function localeWeek(mom) { 1480 return weekOfYear(mom, this._week.dow, this._week.doy).week; 1481 } 1482 1483 var defaultLocaleWeek = { 1484 dow: 0, // Sunday is the first day of the week. 1485 doy: 6, // The week that contains Jan 6th is the first week of the year. 1486 }; 1487 1488 function localeFirstDayOfWeek() { 1489 return this._week.dow; 1490 } 1491 1492 function localeFirstDayOfYear() { 1493 return this._week.doy; 1494 } 1495 1496 // MOMENTS 1497 1498 function getSetWeek(input) { 1499 var week = this.localeData().week(this); 1500 return input == null ? week : this.add((input - week) * 7, 'd'); 1501 } 1502 1503 function getSetISOWeek(input) { 1504 var week = weekOfYear(this, 1, 4).week; 1505 return input == null ? week : this.add((input - week) * 7, 'd'); 1506 } 1507 1508 // FORMATTING 1509 1510 addFormatToken('d', 0, 'do', 'day'); 1511 1512 addFormatToken('dd', 0, 0, function (format) { 1513 return this.localeData().weekdaysMin(this, format); 1514 }); 1515 1516 addFormatToken('ddd', 0, 0, function (format) { 1517 return this.localeData().weekdaysShort(this, format); 1518 }); 1519 1520 addFormatToken('dddd', 0, 0, function (format) { 1521 return this.localeData().weekdays(this, format); 1522 }); 1523 1524 addFormatToken('e', 0, 0, 'weekday'); 1525 addFormatToken('E', 0, 0, 'isoWeekday'); 1526 1527 // ALIASES 1528 1529 addUnitAlias('day', 'd'); 1530 addUnitAlias('weekday', 'e'); 1531 addUnitAlias('isoWeekday', 'E'); 1532 1533 // PRIORITY 1534 addUnitPriority('day', 11); 1535 addUnitPriority('weekday', 11); 1536 addUnitPriority('isoWeekday', 11); 1537 1538 // PARSING 1539 1540 addRegexToken('d', match1to2); 1541 addRegexToken('e', match1to2); 1542 addRegexToken('E', match1to2); 1543 addRegexToken('dd', function (isStrict, locale) { 1544 return locale.weekdaysMinRegex(isStrict); 1545 }); 1546 addRegexToken('ddd', function (isStrict, locale) { 1547 return locale.weekdaysShortRegex(isStrict); 1548 }); 1549 addRegexToken('dddd', function (isStrict, locale) { 1550 return locale.weekdaysRegex(isStrict); 1551 }); 1552 1553 addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { 1554 var weekday = config._locale.weekdaysParse(input, token, config._strict); 1555 // if we didn't get a weekday name, mark the date as invalid 1556 if (weekday != null) { 1557 week.d = weekday; 1558 } else { 1559 getParsingFlags(config).invalidWeekday = input; 1560 } 1561 }); 1562 1563 addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { 1564 week[token] = toInt(input); 1565 }); 1566 1567 // HELPERS 1568 1569 function parseWeekday(input, locale) { 1570 if (typeof input !== 'string') { 1571 return input; 1572 } 1573 1574 if (!isNaN(input)) { 1575 return parseInt(input, 10); 1576 } 1577 1578 input = locale.weekdaysParse(input); 1579 if (typeof input === 'number') { 1580 return input; 1581 } 1582 1583 return null; 1584 } 1585 1586 function parseIsoWeekday(input, locale) { 1587 if (typeof input === 'string') { 1588 return locale.weekdaysParse(input) % 7 || 7; 1589 } 1590 return isNaN(input) ? null : input; 1591 } 1592 1593 // LOCALES 1594 function shiftWeekdays(ws, n) { 1595 return ws.slice(n, 7).concat(ws.slice(0, n)); 1596 } 1597 1598 var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 1599 '_' 1600 ), 1601 defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 1602 defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 1603 defaultWeekdaysRegex = matchWord, 1604 defaultWeekdaysShortRegex = matchWord, 1605 defaultWeekdaysMinRegex = matchWord; 1606 1607 function localeWeekdays(m, format) { 1608 var weekdays = isArray(this._weekdays) 1609 ? this._weekdays 1610 : this._weekdays[ 1611 m && m !== true && this._weekdays.isFormat.test(format) 1612 ? 'format' 1613 : 'standalone' 1614 ]; 1615 return m === true 1616 ? shiftWeekdays(weekdays, this._week.dow) 1617 : m 1618 ? weekdays[m.day()] 1619 : weekdays; 1620 } 1621 1622 function localeWeekdaysShort(m) { 1623 return m === true 1624 ? shiftWeekdays(this._weekdaysShort, this._week.dow) 1625 : m 1626 ? this._weekdaysShort[m.day()] 1627 : this._weekdaysShort; 1628 } 1629 1630 function localeWeekdaysMin(m) { 1631 return m === true 1632 ? shiftWeekdays(this._weekdaysMin, this._week.dow) 1633 : m 1634 ? this._weekdaysMin[m.day()] 1635 : this._weekdaysMin; 1636 } 1637 1638 function handleStrictParse$1(weekdayName, format, strict) { 1639 var i, 1640 ii, 1641 mom, 1642 llc = weekdayName.toLocaleLowerCase(); 1643 if (!this._weekdaysParse) { 1644 this._weekdaysParse = []; 1645 this._shortWeekdaysParse = []; 1646 this._minWeekdaysParse = []; 1647 1648 for (i = 0; i < 7; ++i) { 1649 mom = createUTC([2000, 1]).day(i); 1650 this._minWeekdaysParse[i] = this.weekdaysMin( 1651 mom, 1652 '' 1653 ).toLocaleLowerCase(); 1654 this._shortWeekdaysParse[i] = this.weekdaysShort( 1655 mom, 1656 '' 1657 ).toLocaleLowerCase(); 1658 this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); 1659 } 1660 } 1661 1662 if (strict) { 1663 if (format === 'dddd') { 1664 ii = indexOf.call(this._weekdaysParse, llc); 1665 return ii !== -1 ? ii : null; 1666 } else if (format === 'ddd') { 1667 ii = indexOf.call(this._shortWeekdaysParse, llc); 1668 return ii !== -1 ? ii : null; 1669 } else { 1670 ii = indexOf.call(this._minWeekdaysParse, llc); 1671 return ii !== -1 ? ii : null; 1672 } 1673 } else { 1674 if (format === 'dddd') { 1675 ii = indexOf.call(this._weekdaysParse, llc); 1676 if (ii !== -1) { 1677 return ii; 1678 } 1679 ii = indexOf.call(this._shortWeekdaysParse, llc); 1680 if (ii !== -1) { 1681 return ii; 1682 } 1683 ii = indexOf.call(this._minWeekdaysParse, llc); 1684 return ii !== -1 ? ii : null; 1685 } else if (format === 'ddd') { 1686 ii = indexOf.call(this._shortWeekdaysParse, llc); 1687 if (ii !== -1) { 1688 return ii; 1689 } 1690 ii = indexOf.call(this._weekdaysParse, llc); 1691 if (ii !== -1) { 1692 return ii; 1693 } 1694 ii = indexOf.call(this._minWeekdaysParse, llc); 1695 return ii !== -1 ? ii : null; 1696 } else { 1697 ii = indexOf.call(this._minWeekdaysParse, llc); 1698 if (ii !== -1) { 1699 return ii; 1700 } 1701 ii = indexOf.call(this._weekdaysParse, llc); 1702 if (ii !== -1) { 1703 return ii; 1704 } 1705 ii = indexOf.call(this._shortWeekdaysParse, llc); 1706 return ii !== -1 ? ii : null; 1707 } 1708 } 1709 } 1710 1711 function localeWeekdaysParse(weekdayName, format, strict) { 1712 var i, mom, regex; 1713 1714 if (this._weekdaysParseExact) { 1715 return handleStrictParse$1.call(this, weekdayName, format, strict); 1716 } 1717 1718 if (!this._weekdaysParse) { 1719 this._weekdaysParse = []; 1720 this._minWeekdaysParse = []; 1721 this._shortWeekdaysParse = []; 1722 this._fullWeekdaysParse = []; 1723 } 1724 1725 for (i = 0; i < 7; i++) { 1726 // make the regex if we don't have it already 1727 1728 mom = createUTC([2000, 1]).day(i); 1729 if (strict && !this._fullWeekdaysParse[i]) { 1730 this._fullWeekdaysParse[i] = new RegExp( 1731 '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 1732 'i' 1733 ); 1734 this._shortWeekdaysParse[i] = new RegExp( 1735 '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 1736 'i' 1737 ); 1738 this._minWeekdaysParse[i] = new RegExp( 1739 '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 1740 'i' 1741 ); 1742 } 1743 if (!this._weekdaysParse[i]) { 1744 regex = 1745 '^' + 1746 this.weekdays(mom, '') + 1747 '|^' + 1748 this.weekdaysShort(mom, '') + 1749 '|^' + 1750 this.weekdaysMin(mom, ''); 1751 this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); 1752 } 1753 // test the regex 1754 if ( 1755 strict && 1756 format === 'dddd' && 1757 this._fullWeekdaysParse[i].test(weekdayName) 1758 ) { 1759 return i; 1760 } else if ( 1761 strict && 1762 format === 'ddd' && 1763 this._shortWeekdaysParse[i].test(weekdayName) 1764 ) { 1765 return i; 1766 } else if ( 1767 strict && 1768 format === 'dd' && 1769 this._minWeekdaysParse[i].test(weekdayName) 1770 ) { 1771 return i; 1772 } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { 1773 return i; 1774 } 1775 } 1776 } 1777 1778 // MOMENTS 1779 1780 function getSetDayOfWeek(input) { 1781 if (!this.isValid()) { 1782 return input != null ? this : NaN; 1783 } 1784 var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); 1785 if (input != null) { 1786 input = parseWeekday(input, this.localeData()); 1787 return this.add(input - day, 'd'); 1788 } else { 1789 return day; 1790 } 1791 } 1792 1793 function getSetLocaleDayOfWeek(input) { 1794 if (!this.isValid()) { 1795 return input != null ? this : NaN; 1796 } 1797 var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; 1798 return input == null ? weekday : this.add(input - weekday, 'd'); 1799 } 1800 1801 function getSetISODayOfWeek(input) { 1802 if (!this.isValid()) { 1803 return input != null ? this : NaN; 1804 } 1805 1806 // behaves the same as moment#day except 1807 // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) 1808 // as a setter, sunday should belong to the previous week. 1809 1810 if (input != null) { 1811 var weekday = parseIsoWeekday(input, this.localeData()); 1812 return this.day(this.day() % 7 ? weekday : weekday - 7); 1813 } else { 1814 return this.day() || 7; 1815 } 1816 } 1817 1818 function weekdaysRegex(isStrict) { 1819 if (this._weekdaysParseExact) { 1820 if (!hasOwnProp(this, '_weekdaysRegex')) { 1821 computeWeekdaysParse.call(this); 1822 } 1823 if (isStrict) { 1824 return this._weekdaysStrictRegex; 1825 } else { 1826 return this._weekdaysRegex; 1827 } 1828 } else { 1829 if (!hasOwnProp(this, '_weekdaysRegex')) { 1830 this._weekdaysRegex = defaultWeekdaysRegex; 1831 } 1832 return this._weekdaysStrictRegex && isStrict 1833 ? this._weekdaysStrictRegex 1834 : this._weekdaysRegex; 1835 } 1836 } 1837 1838 function weekdaysShortRegex(isStrict) { 1839 if (this._weekdaysParseExact) { 1840 if (!hasOwnProp(this, '_weekdaysRegex')) { 1841 computeWeekdaysParse.call(this); 1842 } 1843 if (isStrict) { 1844 return this._weekdaysShortStrictRegex; 1845 } else { 1846 return this._weekdaysShortRegex; 1847 } 1848 } else { 1849 if (!hasOwnProp(this, '_weekdaysShortRegex')) { 1850 this._weekdaysShortRegex = defaultWeekdaysShortRegex; 1851 } 1852 return this._weekdaysShortStrictRegex && isStrict 1853 ? this._weekdaysShortStrictRegex 1854 : this._weekdaysShortRegex; 1855 } 1856 } 1857 1858 function weekdaysMinRegex(isStrict) { 1859 if (this._weekdaysParseExact) { 1860 if (!hasOwnProp(this, '_weekdaysRegex')) { 1861 computeWeekdaysParse.call(this); 1862 } 1863 if (isStrict) { 1864 return this._weekdaysMinStrictRegex; 1865 } else { 1866 return this._weekdaysMinRegex; 1867 } 1868 } else { 1869 if (!hasOwnProp(this, '_weekdaysMinRegex')) { 1870 this._weekdaysMinRegex = defaultWeekdaysMinRegex; 1871 } 1872 return this._weekdaysMinStrictRegex && isStrict 1873 ? this._weekdaysMinStrictRegex 1874 : this._weekdaysMinRegex; 1875 } 1876 } 1877 1878 function computeWeekdaysParse() { 1879 function cmpLenRev(a, b) { 1880 return b.length - a.length; 1881 } 1882 1883 var minPieces = [], 1884 shortPieces = [], 1885 longPieces = [], 1886 mixedPieces = [], 1887 i, 1888 mom, 1889 minp, 1890 shortp, 1891 longp; 1892 for (i = 0; i < 7; i++) { 1893 // make the regex if we don't have it already 1894 mom = createUTC([2000, 1]).day(i); 1895 minp = regexEscape(this.weekdaysMin(mom, '')); 1896 shortp = regexEscape(this.weekdaysShort(mom, '')); 1897 longp = regexEscape(this.weekdays(mom, '')); 1898 minPieces.push(minp); 1899 shortPieces.push(shortp); 1900 longPieces.push(longp); 1901 mixedPieces.push(minp); 1902 mixedPieces.push(shortp); 1903 mixedPieces.push(longp); 1904 } 1905 // Sorting makes sure if one weekday (or abbr) is a prefix of another it 1906 // will match the longer piece. 1907 minPieces.sort(cmpLenRev); 1908 shortPieces.sort(cmpLenRev); 1909 longPieces.sort(cmpLenRev); 1910 mixedPieces.sort(cmpLenRev); 1911 1912 this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); 1913 this._weekdaysShortRegex = this._weekdaysRegex; 1914 this._weekdaysMinRegex = this._weekdaysRegex; 1915 1916 this._weekdaysStrictRegex = new RegExp( 1917 '^(' + longPieces.join('|') + ')', 1918 'i' 1919 ); 1920 this._weekdaysShortStrictRegex = new RegExp( 1921 '^(' + shortPieces.join('|') + ')', 1922 'i' 1923 ); 1924 this._weekdaysMinStrictRegex = new RegExp( 1925 '^(' + minPieces.join('|') + ')', 1926 'i' 1927 ); 1928 } 1929 1930 // FORMATTING 1931 1932 function hFormat() { 1933 return this.hours() % 12 || 12; 1934 } 1935 1936 function kFormat() { 1937 return this.hours() || 24; 1938 } 1939 1940 addFormatToken('H', ['HH', 2], 0, 'hour'); 1941 addFormatToken('h', ['hh', 2], 0, hFormat); 1942 addFormatToken('k', ['kk', 2], 0, kFormat); 1943 1944 addFormatToken('hmm', 0, 0, function () { 1945 return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); 1946 }); 1947 1948 addFormatToken('hmmss', 0, 0, function () { 1949 return ( 1950 '' + 1951 hFormat.apply(this) + 1952 zeroFill(this.minutes(), 2) + 1953 zeroFill(this.seconds(), 2) 1954 ); 1955 }); 1956 1957 addFormatToken('Hmm', 0, 0, function () { 1958 return '' + this.hours() + zeroFill(this.minutes(), 2); 1959 }); 1960 1961 addFormatToken('Hmmss', 0, 0, function () { 1962 return ( 1963 '' + 1964 this.hours() + 1965 zeroFill(this.minutes(), 2) + 1966 zeroFill(this.seconds(), 2) 1967 ); 1968 }); 1969 1970 function meridiem(token, lowercase) { 1971 addFormatToken(token, 0, 0, function () { 1972 return this.localeData().meridiem( 1973 this.hours(), 1974 this.minutes(), 1975 lowercase 1976 ); 1977 }); 1978 } 1979 1980 meridiem('a', true); 1981 meridiem('A', false); 1982 1983 // ALIASES 1984 1985 addUnitAlias('hour', 'h'); 1986 1987 // PRIORITY 1988 addUnitPriority('hour', 13); 1989 1990 // PARSING 1991 1992 function matchMeridiem(isStrict, locale) { 1993 return locale._meridiemParse; 1994 } 1995 1996 addRegexToken('a', matchMeridiem); 1997 addRegexToken('A', matchMeridiem); 1998 addRegexToken('H', match1to2); 1999 addRegexToken('h', match1to2); 2000 addRegexToken('k', match1to2); 2001 addRegexToken('HH', match1to2, match2); 2002 addRegexToken('hh', match1to2, match2); 2003 addRegexToken('kk', match1to2, match2); 2004 2005 addRegexToken('hmm', match3to4); 2006 addRegexToken('hmmss', match5to6); 2007 addRegexToken('Hmm', match3to4); 2008 addRegexToken('Hmmss', match5to6); 2009 2010 addParseToken(['H', 'HH'], HOUR); 2011 addParseToken(['k', 'kk'], function (input, array, config) { 2012 var kInput = toInt(input); 2013 array[HOUR] = kInput === 24 ? 0 : kInput; 2014 }); 2015 addParseToken(['a', 'A'], function (input, array, config) { 2016 config._isPm = config._locale.isPM(input); 2017 config._meridiem = input; 2018 }); 2019 addParseToken(['h', 'hh'], function (input, array, config) { 2020 array[HOUR] = toInt(input); 2021 getParsingFlags(config).bigHour = true; 2022 }); 2023 addParseToken('hmm', function (input, array, config) { 2024 var pos = input.length - 2; 2025 array[HOUR] = toInt(input.substr(0, pos)); 2026 array[MINUTE] = toInt(input.substr(pos)); 2027 getParsingFlags(config).bigHour = true; 2028 }); 2029 addParseToken('hmmss', function (input, array, config) { 2030 var pos1 = input.length - 4, 2031 pos2 = input.length - 2; 2032 array[HOUR] = toInt(input.substr(0, pos1)); 2033 array[MINUTE] = toInt(input.substr(pos1, 2)); 2034 array[SECOND] = toInt(input.substr(pos2)); 2035 getParsingFlags(config).bigHour = true; 2036 }); 2037 addParseToken('Hmm', function (input, array, config) { 2038 var pos = input.length - 2; 2039 array[HOUR] = toInt(input.substr(0, pos)); 2040 array[MINUTE] = toInt(input.substr(pos)); 2041 }); 2042 addParseToken('Hmmss', function (input, array, config) { 2043 var pos1 = input.length - 4, 2044 pos2 = input.length - 2; 2045 array[HOUR] = toInt(input.substr(0, pos1)); 2046 array[MINUTE] = toInt(input.substr(pos1, 2)); 2047 array[SECOND] = toInt(input.substr(pos2)); 2048 }); 2049 2050 // LOCALES 2051 2052 function localeIsPM(input) { 2053 // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays 2054 // Using charAt should be more compatible. 2055 return (input + '').toLowerCase().charAt(0) === 'p'; 2056 } 2057 2058 var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, 2059 // Setting the hour should keep the time, because the user explicitly 2060 // specified which hour they want. So trying to maintain the same hour (in 2061 // a new timezone) makes sense. Adding/subtracting hours does not follow 2062 // this rule. 2063 getSetHour = makeGetSet('Hours', true); 2064 2065 function localeMeridiem(hours, minutes, isLower) { 2066 if (hours > 11) { 2067 return isLower ? 'pm' : 'PM'; 2068 } else { 2069 return isLower ? 'am' : 'AM'; 2070 } 2071 } 2072 2073 var baseConfig = { 2074 calendar: defaultCalendar, 2075 longDateFormat: defaultLongDateFormat, 2076 invalidDate: defaultInvalidDate, 2077 ordinal: defaultOrdinal, 2078 dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, 2079 relativeTime: defaultRelativeTime, 2080 2081 months: defaultLocaleMonths, 2082 monthsShort: defaultLocaleMonthsShort, 2083 2084 week: defaultLocaleWeek, 2085 2086 weekdays: defaultLocaleWeekdays, 2087 weekdaysMin: defaultLocaleWeekdaysMin, 2088 weekdaysShort: defaultLocaleWeekdaysShort, 2089 2090 meridiemParse: defaultLocaleMeridiemParse, 2091 }; 2092 2093 // internal storage for locale config files 2094 var locales = {}, 2095 localeFamilies = {}, 2096 globalLocale; 2097 2098 function commonPrefix(arr1, arr2) { 2099 var i, 2100 minl = Math.min(arr1.length, arr2.length); 2101 for (i = 0; i < minl; i += 1) { 2102 if (arr1[i] !== arr2[i]) { 2103 return i; 2104 } 2105 } 2106 return minl; 2107 } 2108 2109 function normalizeLocale(key) { 2110 return key ? key.toLowerCase().replace('_', '-') : key; 2111 } 2112 2113 // pick the locale from the array 2114 // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each 2115 // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root 2116 function chooseLocale(names) { 2117 var i = 0, 2118 j, 2119 next, 2120 locale, 2121 split; 2122 2123 while (i < names.length) { 2124 split = normalizeLocale(names[i]).split('-'); 2125 j = split.length; 2126 next = normalizeLocale(names[i + 1]); 2127 next = next ? next.split('-') : null; 2128 while (j > 0) { 2129 locale = loadLocale(split.slice(0, j).join('-')); 2130 if (locale) { 2131 return locale; 2132 } 2133 if ( 2134 next && 2135 next.length >= j && 2136 commonPrefix(split, next) >= j - 1 2137 ) { 2138 //the next array item is better than a shallower substring of this one 2139 break; 2140 } 2141 j--; 2142 } 2143 i++; 2144 } 2145 return globalLocale; 2146 } 2147 2148 function loadLocale(name) { 2149 var oldLocale = null, 2150 aliasedRequire; 2151 // TODO: Find a better way to register and load all the locales in Node 2152 if ( 2153 locales[name] === undefined && 2154 typeof module !== 'undefined' && 2155 module && 2156 module.exports 2157 ) { 2158 try { 2159 oldLocale = globalLocale._abbr; 2160 aliasedRequire = require; 2161
2161__webpack_require__(153)("./"
vendor: 15,527 bytes, lines 2161-2612
2161 + name); 2162 getSetGlobalLocale(oldLocale); 2163 } catch (e) { 2164 // mark as not found to avoid repeating expensive file require call causing high CPU 2165 // when trying to find en-US, en_US, en-us for every format call 2166 locales[name] = null; // null means not found 2167 } 2168 } 2169 return locales[name]; 2170 } 2171 2172 // This function will load locale and then set the global locale. If 2173 // no arguments are passed in, it will simply return the current global 2174 // locale key. 2175 function getSetGlobalLocale(key, values) { 2176 var data; 2177 if (key) { 2178 if (isUndefined(values)) { 2179 data = getLocale(key); 2180 } else { 2181 data = defineLocale(key, values); 2182 } 2183 2184 if (data) { 2185 // moment.duration._locale = moment._locale = data; 2186 globalLocale = data; 2187 } else { 2188 if (typeof console !== 'undefined' && console.warn) { 2189 //warn user if arguments are passed but the locale could not be set 2190 console.warn( 2191 'Locale ' + key + ' not found. Did you forget to load it?' 2192 ); 2193 } 2194 } 2195 } 2196 2197 return globalLocale._abbr; 2198 } 2199 2200 function defineLocale(name, config) { 2201 if (config !== null) { 2202 var locale, 2203 parentConfig = baseConfig; 2204 config.abbr = name; 2205 if (locales[name] != null) { 2206 deprecateSimple( 2207 'defineLocaleOverride', 2208 'use moment.updateLocale(localeName, config) to change ' + 2209 'an existing locale. moment.defineLocale(localeName, ' + 2210 'config) should only be used for creating a new locale ' + 2211 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' 2212 ); 2213 parentConfig = locales[name]._config; 2214 } else if (config.parentLocale != null) { 2215 if (locales[config.parentLocale] != null) { 2216 parentConfig = locales[config.parentLocale]._config; 2217 } else { 2218 locale = loadLocale(config.parentLocale); 2219 if (locale != null) { 2220 parentConfig = locale._config; 2221 } else { 2222 if (!localeFamilies[config.parentLocale]) { 2223 localeFamilies[config.parentLocale] = []; 2224 } 2225 localeFamilies[config.parentLocale].push({ 2226 name: name, 2227 config: config, 2228 }); 2229 return null; 2230 } 2231 } 2232 } 2233 locales[name] = new Locale(mergeConfigs(parentConfig, config)); 2234 2235 if (localeFamilies[name]) { 2236 localeFamilies[name].forEach(function (x) { 2237 defineLocale(x.name, x.config); 2238 }); 2239 } 2240 2241 // backwards compat for now: also set the locale 2242 // make sure we set the locale AFTER all child locales have been 2243 // created, so we won't end up with the child locale set. 2244 getSetGlobalLocale(name); 2245 2246 return locales[name]; 2247 } else { 2248 // useful for testing 2249 delete locales[name]; 2250 return null; 2251 } 2252 } 2253 2254 function updateLocale(name, config) { 2255 if (config != null) { 2256 var locale, 2257 tmpLocale, 2258 parentConfig = baseConfig; 2259 2260 if (locales[name] != null && locales[name].parentLocale != null) { 2261 // Update existing child locale in-place to avoid memory-leaks 2262 locales[name].set(mergeConfigs(locales[name]._config, config)); 2263 } else { 2264 // MERGE 2265 tmpLocale = loadLocale(name); 2266 if (tmpLocale != null) { 2267 parentConfig = tmpLocale._config; 2268 } 2269 config = mergeConfigs(parentConfig, config); 2270 if (tmpLocale == null) { 2271 // updateLocale is called for creating a new locale 2272 // Set abbr so it will have a name (getters return 2273 // undefined otherwise). 2274 config.abbr = name; 2275 } 2276 locale = new Locale(config); 2277 locale.parentLocale = locales[name]; 2278 locales[name] = locale; 2279 } 2280 2281 // backwards compat for now: also set the locale 2282 getSetGlobalLocale(name); 2283 } else { 2284 // pass null for config to unupdate, useful for tests 2285 if (locales[name] != null) { 2286 if (locales[name].parentLocale != null) { 2287 locales[name] = locales[name].parentLocale; 2288 if (name === getSetGlobalLocale()) { 2289 getSetGlobalLocale(name); 2290 } 2291 } else if (locales[name] != null) { 2292 delete locales[name]; 2293 } 2294 } 2295 } 2296 return locales[name]; 2297 } 2298 2299 // returns locale data 2300 function getLocale(key) { 2301 var locale; 2302 2303 if (key && key._locale && key._locale._abbr) { 2304 key = key._locale._abbr; 2305 } 2306 2307 if (!key) { 2308 return globalLocale; 2309 } 2310 2311 if (!isArray(key)) { 2312 //short-circuit everything else 2313 locale = loadLocale(key); 2314 if (locale) { 2315 return locale; 2316 } 2317 key = [key]; 2318 } 2319 2320 return chooseLocale(key); 2321 } 2322 2323 function listLocales() { 2324 return keys(locales); 2325 } 2326 2327 function checkOverflow(m) { 2328 var overflow, 2329 a = m._a; 2330 2331 if (a && getParsingFlags(m).overflow === -2) { 2332 overflow = 2333 a[MONTH] < 0 || a[MONTH] > 11 2334 ? MONTH 2335 : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) 2336 ? DATE 2337 : a[HOUR] < 0 || 2338 a[HOUR] > 24 || 2339 (a[HOUR] === 24 && 2340 (a[MINUTE] !== 0 || 2341 a[SECOND] !== 0 || 2342 a[MILLISECOND] !== 0)) 2343 ? HOUR 2344 : a[MINUTE] < 0 || a[MINUTE] > 59 2345 ? MINUTE 2346 : a[SECOND] < 0 || a[SECOND] > 59 2347 ? SECOND 2348 : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 2349 ? MILLISECOND 2350 : -1; 2351 2352 if ( 2353 getParsingFlags(m)._overflowDayOfYear && 2354 (overflow < YEAR || overflow > DATE) 2355 ) { 2356 overflow = DATE; 2357 } 2358 if (getParsingFlags(m)._overflowWeeks && overflow === -1) { 2359 overflow = WEEK; 2360 } 2361 if (getParsingFlags(m)._overflowWeekday && overflow === -1) { 2362 overflow = WEEKDAY; 2363 } 2364 2365 getParsingFlags(m).overflow = overflow; 2366 } 2367 2368 return m; 2369 } 2370 2371 // iso 8601 regex 2372 // 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) 2373 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)?)?$/, 2374 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)?)?$/, 2375 tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, 2376 isoDates = [ 2377 ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], 2378 ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], 2379 ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], 2380 ['GGGG-[W]WW', /\d{4}-W\d\d/, false], 2381 ['YYYY-DDD', /\d{4}-\d{3}/], 2382 ['YYYY-MM', /\d{4}-\d\d/, false], 2383 ['YYYYYYMMDD', /[+-]\d{10}/], 2384 ['YYYYMMDD', /\d{8}/], 2385 ['GGGG[W]WWE', /\d{4}W\d{3}/], 2386 ['GGGG[W]WW', /\d{4}W\d{2}/, false], 2387 ['YYYYDDD', /\d{7}/], 2388 ['YYYYMM', /\d{6}/, false], 2389 ['YYYY', /\d{4}/, false], 2390 ], 2391 // iso time formats and regexes 2392 isoTimes = [ 2393 ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], 2394 ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], 2395 ['HH:mm:ss', /\d\d:\d\d:\d\d/], 2396 ['HH:mm', /\d\d:\d\d/], 2397 ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], 2398 ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], 2399 ['HHmmss', /\d\d\d\d\d\d/], 2400 ['HHmm', /\d\d\d\d/], 2401 ['HH', /\d\d/], 2402 ], 2403 aspNetJsonRegex = /^\/?Date\((-?\d+)/i, 2404 // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 2405 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}))$/, 2406 obsOffsets = { 2407 UT: 0, 2408 GMT: 0, 2409 EDT: -4 * 60, 2410 EST: -5 * 60, 2411 CDT: -5 * 60, 2412 CST: -6 * 60, 2413 MDT: -6 * 60, 2414 MST: -7 * 60, 2415 PDT: -7 * 60, 2416 PST: -8 * 60, 2417 }; 2418 2419 // date from iso format 2420 function configFromISO(config) { 2421 var i, 2422 l, 2423 string = config._i, 2424 match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), 2425 allowTime, 2426 dateFormat, 2427 timeFormat, 2428 tzFormat; 2429 2430 if (match) { 2431 getParsingFlags(config).iso = true; 2432 2433 for (i = 0, l = isoDates.length; i < l; i++) { 2434 if (isoDates[i][1].exec(match[1])) { 2435 dateFormat = isoDates[i][0]; 2436 allowTime = isoDates[i][2] !== false; 2437 break; 2438 } 2439 } 2440 if (dateFormat == null) { 2441 config._isValid = false; 2442 return; 2443 } 2444 if (match[3]) { 2445 for (i = 0, l = isoTimes.length; i < l; i++) { 2446 if (isoTimes[i][1].exec(match[3])) { 2447 // match[2] should be 'T' or space 2448 timeFormat = (match[2] || ' ') + isoTimes[i][0]; 2449 break; 2450 } 2451 } 2452 if (timeFormat == null) { 2453 config._isValid = false; 2454 return; 2455 } 2456 } 2457 if (!allowTime && timeFormat != null) { 2458 config._isValid = false; 2459 return; 2460 } 2461 if (match[4]) { 2462 if (tzRegex.exec(match[4])) { 2463 tzFormat = 'Z'; 2464 } else { 2465 config._isValid = false; 2466 return; 2467 } 2468 } 2469 config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); 2470 configFromStringAndFormat(config); 2471 } else { 2472 config._isValid = false; 2473 } 2474 } 2475 2476 function extractFromRFC2822Strings( 2477 yearStr, 2478 monthStr, 2479 dayStr, 2480 hourStr, 2481 minuteStr, 2482 secondStr 2483 ) { 2484 var result = [ 2485 untruncateYear(yearStr), 2486 defaultLocaleMonthsShort.indexOf(monthStr), 2487 parseInt(dayStr, 10), 2488 parseInt(hourStr, 10), 2489 parseInt(minuteStr, 10), 2490 ]; 2491 2492 if (secondStr) { 2493 result.push(parseInt(secondStr, 10)); 2494 } 2495 2496 return result; 2497 } 2498 2499 function untruncateYear(yearStr) { 2500 var year = parseInt(yearStr, 10); 2501 if (year <= 49) { 2502 return 2000 + year; 2503 } else if (year <= 999) { 2504 return 1900 + year; 2505 } 2506 return year; 2507 } 2508 2509 function preprocessRFC2822(s) { 2510 // Remove comments and folding whitespace and replace multiple-spaces with a single space 2511 return s 2512 .replace(/\([^)]*\)|[\n\t]/g, ' ') 2513 .replace(/(\s\s+)/g, ' ') 2514 .replace(/^\s\s*/, '') 2515 .replace(/\s\s*$/, ''); 2516 } 2517 2518 function checkWeekday(weekdayStr, parsedInput, config) { 2519 if (weekdayStr) { 2520 // TODO: Replace the vanilla JS Date object with an independent day-of-week check. 2521 var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), 2522 weekdayActual = new Date( 2523 parsedInput[0], 2524 parsedInput[1], 2525 parsedInput[2] 2526 ).getDay(); 2527 if (weekdayProvided !== weekdayActual) { 2528 getParsingFlags(config).weekdayMismatch = true; 2529 config._isValid = false; 2530 return false; 2531 } 2532 } 2533 return true; 2534 } 2535 2536 function calculateOffset(obsOffset, militaryOffset, numOffset) { 2537 if (obsOffset) { 2538 return obsOffsets[obsOffset]; 2539 } else if (militaryOffset) { 2540 // the only allowed military tz is Z 2541 return 0; 2542 } else { 2543 var hm = parseInt(numOffset, 10), 2544 m = hm % 100, 2545 h = (hm - m) / 100; 2546 return h * 60 + m; 2547 } 2548 } 2549 2550 // date and time from ref 2822 format 2551 function configFromRFC2822(config) { 2552 var match = rfc2822.exec(preprocessRFC2822(config._i)), 2553 parsedArray; 2554 if (match) { 2555 parsedArray = extractFromRFC2822Strings( 2556 match[4], 2557 match[3], 2558 match[2], 2559 match[5], 2560 match[6], 2561 match[7] 2562 ); 2563 if (!checkWeekday(match[1], parsedArray, config)) { 2564 return; 2565 } 2566 2567 config._a = parsedArray; 2568 config._tzm = calculateOffset(match[8], match[9], match[10]); 2569 2570 config._d = createUTCDate.apply(null, config._a); 2571 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); 2572 2573 getParsingFlags(config).rfc2822 = true; 2574 } else { 2575 config._isValid = false; 2576 } 2577 } 2578 2579 // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict 2580 function configFromString(config) { 2581 var matched = aspNetJsonRegex.exec(config._i); 2582 if (matched !== null) { 2583 config._d = new Date(+matched[1]); 2584 return; 2585 } 2586 2587 configFromISO(config); 2588 if (config._isValid === false) { 2589 delete config._isValid; 2590 } else { 2591 return; 2592 } 2593 2594 configFromRFC2822(config); 2595 if (config._isValid === false) { 2596 delete config._isValid; 2597 } else { 2598 return; 2599 } 2600 2601 if (config._strict) { 2602 config._isValid = false; 2603 } else { 2604 // Final attempt, use Input Fallback 2605 hooks.createFromInputFallback(config); 2606 } 2607 } 2608 2609 hooks.createFromInputFallback = deprecate( 2610 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 2611 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 2612 'discouraged
2612. Please refer to
vendor: 37,148 bytes, lines 2612-3797
2612http://momentjs.com/guides/#/warnings/js-date/ for more info.', 2613 function (config) { 2614 config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); 2615 } 2616 ); 2617 2618 // Pick the first defined of two or three arguments. 2619 function defaults(a, b, c) { 2620 if (a != null) { 2621 return a; 2622 } 2623 if (b != null) { 2624 return b; 2625 } 2626 return c; 2627 } 2628 2629 function currentDateArray(config) { 2630 // hooks is actually the exported moment object 2631 var nowValue = new Date(hooks.now()); 2632 if (config._useUTC) { 2633 return [ 2634 nowValue.getUTCFullYear(), 2635 nowValue.getUTCMonth(), 2636 nowValue.getUTCDate(), 2637 ]; 2638 } 2639 return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; 2640 } 2641 2642 // convert an array to a date. 2643 // the array should mirror the parameters below 2644 // note: all values past the year are optional and will default to the lowest possible value. 2645 // [year, month, day , hour, minute, second, millisecond] 2646 function configFromArray(config) { 2647 var i, 2648 date, 2649 input = [], 2650 currentDate, 2651 expectedWeekday, 2652 yearToUse; 2653 2654 if (config._d) { 2655 return; 2656 } 2657 2658 currentDate = currentDateArray(config); 2659 2660 //compute day of the year from weeks and weekdays 2661 if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { 2662 dayOfYearFromWeekInfo(config); 2663 } 2664 2665 //if the day of the year is set, figure out what it is 2666 if (config._dayOfYear != null) { 2667 yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); 2668 2669 if ( 2670 config._dayOfYear > daysInYear(yearToUse) || 2671 config._dayOfYear === 0 2672 ) { 2673 getParsingFlags(config)._overflowDayOfYear = true; 2674 } 2675 2676 date = createUTCDate(yearToUse, 0, config._dayOfYear); 2677 config._a[MONTH] = date.getUTCMonth(); 2678 config._a[DATE] = date.getUTCDate(); 2679 } 2680 2681 // Default to current date. 2682 // * if no year, month, day of month are given, default to today 2683 // * if day of month is given, default month and year 2684 // * if month is given, default only year 2685 // * if year is given, don't default anything 2686 for (i = 0; i < 3 && config._a[i] == null; ++i) { 2687 config._a[i] = input[i] = currentDate[i]; 2688 } 2689 2690 // Zero out whatever was not defaulted, including time 2691 for (; i < 7; i++) { 2692 config._a[i] = input[i] = 2693 config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i]; 2694 } 2695 2696 // Check for 24:00:00.000 2697 if ( 2698 config._a[HOUR] === 24 && 2699 config._a[MINUTE] === 0 && 2700 config._a[SECOND] === 0 && 2701 config._a[MILLISECOND] === 0 2702 ) { 2703 config._nextDay = true; 2704 config._a[HOUR] = 0; 2705 } 2706 2707 config._d = (config._useUTC ? createUTCDate : createDate).apply( 2708 null, 2709 input 2710 ); 2711 expectedWeekday = config._useUTC 2712 ? config._d.getUTCDay() 2713 : config._d.getDay(); 2714 2715 // Apply timezone offset from input. The actual utcOffset can be changed 2716 // with parseZone. 2717 if (config._tzm != null) { 2718 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); 2719 } 2720 2721 if (config._nextDay) { 2722 config._a[HOUR] = 24; 2723 } 2724 2725 // check for mismatching day of week 2726 if ( 2727 config._w && 2728 typeof config._w.d !== 'undefined' && 2729 config._w.d !== expectedWeekday 2730 ) { 2731 getParsingFlags(config).weekdayMismatch = true; 2732 } 2733 } 2734 2735 function dayOfYearFromWeekInfo(config) { 2736 var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; 2737 2738 w = config._w; 2739 if (w.GG != null || w.W != null || w.E != null) { 2740 dow = 1; 2741 doy = 4; 2742 2743 // TODO: We need to take the current isoWeekYear, but that depends on 2744 // how we interpret now (local, utc, fixed offset). So create 2745 // a now version of current config (take local/utc/offset flags, and 2746 // create now). 2747 weekYear = defaults( 2748 w.GG, 2749 config._a[YEAR], 2750 weekOfYear(createLocal(), 1, 4).year 2751 ); 2752 week = defaults(w.W, 1); 2753 weekday = defaults(w.E, 1); 2754 if (weekday < 1 || weekday > 7) { 2755 weekdayOverflow = true; 2756 } 2757 } else { 2758 dow = config._locale._week.dow; 2759 doy = config._locale._week.doy; 2760 2761 curWeek = weekOfYear(createLocal(), dow, doy); 2762 2763 weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); 2764 2765 // Default to current week. 2766 week = defaults(w.w, curWeek.week); 2767 2768 if (w.d != null) { 2769 // weekday -- low day numbers are considered next week 2770 weekday = w.d; 2771 if (weekday < 0 || weekday > 6) { 2772 weekdayOverflow = true; 2773 } 2774 } else if (w.e != null) { 2775 // local weekday -- counting starts from beginning of week 2776 weekday = w.e + dow; 2777 if (w.e < 0 || w.e > 6) { 2778 weekdayOverflow = true; 2779 } 2780 } else { 2781 // default to beginning of week 2782 weekday = dow; 2783 } 2784 } 2785 if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { 2786 getParsingFlags(config)._overflowWeeks = true; 2787 } else if (weekdayOverflow != null) { 2788 getParsingFlags(config)._overflowWeekday = true; 2789 } else { 2790 temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); 2791 config._a[YEAR] = temp.year; 2792 config._dayOfYear = temp.dayOfYear; 2793 } 2794 } 2795 2796 // constant that refers to the ISO standard 2797 hooks.ISO_8601 = function () {}; 2798 2799 // constant that refers to the RFC 2822 form 2800 hooks.RFC_2822 = function () {}; 2801 2802 // date from string and format string 2803 function configFromStringAndFormat(config) { 2804 // TODO: Move this to another part of the creation flow to prevent circular deps 2805 if (config._f === hooks.ISO_8601) { 2806 configFromISO(config); 2807 return; 2808 } 2809 if (config._f === hooks.RFC_2822) { 2810 configFromRFC2822(config); 2811 return; 2812 } 2813 config._a = []; 2814 getParsingFlags(config).empty = true; 2815 2816 // This array is used to make a Date, either with `new Date` or `Date.UTC` 2817 var string = '' + config._i, 2818 i, 2819 parsedInput, 2820 tokens, 2821 token, 2822 skipped, 2823 stringLength = string.length, 2824 totalParsedInputLength = 0, 2825 era; 2826 2827 tokens = 2828 expandFormat(config._f, config._locale).match(formattingTokens) || []; 2829 2830 for (i = 0; i < tokens.length; i++) { 2831 token = tokens[i]; 2832 parsedInput = (string.match(getParseRegexForToken(token, config)) || 2833 [])[0]; 2834 if (parsedInput) { 2835 skipped = string.substr(0, string.indexOf(parsedInput)); 2836 if (skipped.length > 0) { 2837 getParsingFlags(config).unusedInput.push(skipped); 2838 } 2839 string = string.slice( 2840 string.indexOf(parsedInput) + parsedInput.length 2841 ); 2842 totalParsedInputLength += parsedInput.length; 2843 } 2844 // don't parse if it's not a known token 2845 if (formatTokenFunctions[token]) { 2846 if (parsedInput) { 2847 getParsingFlags(config).empty = false; 2848 } else { 2849 getParsingFlags(config).unusedTokens.push(token); 2850 } 2851 addTimeToArrayFromToken(token, parsedInput, config); 2852 } else if (config._strict && !parsedInput) { 2853 getParsingFlags(config).unusedTokens.push(token); 2854 } 2855 } 2856 2857 // add remaining unparsed input length to the string 2858 getParsingFlags(config).charsLeftOver = 2859 stringLength - totalParsedInputLength; 2860 if (string.length > 0) { 2861 getParsingFlags(config).unusedInput.push(string); 2862 } 2863 2864 // clear _12h flag if hour is <= 12 2865 if ( 2866 config._a[HOUR] <= 12 && 2867 getParsingFlags(config).bigHour === true && 2868 config._a[HOUR] > 0 2869 ) { 2870 getParsingFlags(config).bigHour = undefined; 2871 } 2872 2873 getParsingFlags(config).parsedDateParts = config._a.slice(0); 2874 getParsingFlags(config).meridiem = config._meridiem; 2875 // handle meridiem 2876 config._a[HOUR] = meridiemFixWrap( 2877 config._locale, 2878 config._a[HOUR], 2879 config._meridiem 2880 ); 2881 2882 // handle era 2883 era = getParsingFlags(config).era; 2884 if (era !== null) { 2885 config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); 2886 } 2887 2888 configFromArray(config); 2889 checkOverflow(config); 2890 } 2891 2892 function meridiemFixWrap(locale, hour, meridiem) { 2893 var isPm; 2894 2895 if (meridiem == null) { 2896 // nothing to do 2897 return hour; 2898 } 2899 if (locale.meridiemHour != null) { 2900 return locale.meridiemHour(hour, meridiem); 2901 } else if (locale.isPM != null) { 2902 // Fallback 2903 isPm = locale.isPM(meridiem); 2904 if (isPm && hour < 12) { 2905 hour += 12; 2906 } 2907 if (!isPm && hour === 12) { 2908 hour = 0; 2909 } 2910 return hour; 2911 } else { 2912 // this is not supposed to happen 2913 return hour; 2914 } 2915 } 2916 2917 // date from string and array of format strings 2918 function configFromStringAndArray(config) { 2919 var tempConfig, 2920 bestMoment, 2921 scoreToBeat, 2922 i, 2923 currentScore, 2924 validFormatFound, 2925 bestFormatIsValid = false; 2926 2927 if (config._f.length === 0) { 2928 getParsingFlags(config).invalidFormat = true; 2929 config._d = new Date(NaN); 2930 return; 2931 } 2932 2933 for (i = 0; i < config._f.length; i++) { 2934 currentScore = 0; 2935 validFormatFound = false; 2936 tempConfig = copyConfig({}, config); 2937 if (config._useUTC != null) { 2938 tempConfig._useUTC = config._useUTC; 2939 } 2940 tempConfig._f = config._f[i]; 2941 configFromStringAndFormat(tempConfig); 2942 2943 if (isValid(tempConfig)) { 2944 validFormatFound = true; 2945 } 2946 2947 // if there is any input that was not parsed add a penalty for that format 2948 currentScore += getParsingFlags(tempConfig).charsLeftOver; 2949 2950 //or tokens 2951 currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; 2952 2953 getParsingFlags(tempConfig).score = currentScore; 2954 2955 if (!bestFormatIsValid) { 2956 if ( 2957 scoreToBeat == null || 2958 currentScore < scoreToBeat || 2959 validFormatFound 2960 ) { 2961 scoreToBeat = currentScore; 2962 bestMoment = tempConfig; 2963 if (validFormatFound) { 2964 bestFormatIsValid = true; 2965 } 2966 } 2967 } else { 2968 if (currentScore < scoreToBeat) { 2969 scoreToBeat = currentScore; 2970 bestMoment = tempConfig; 2971 } 2972 } 2973 } 2974 2975 extend(config, bestMoment || tempConfig); 2976 } 2977 2978 function configFromObject(config) { 2979 if (config._d) { 2980 return; 2981 } 2982 2983 var i = normalizeObjectUnits(config._i), 2984 dayOrDate = i.day === undefined ? i.date : i.day; 2985 config._a = map( 2986 [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], 2987 function (obj) { 2988 return obj && parseInt(obj, 10); 2989 } 2990 ); 2991 2992 configFromArray(config); 2993 } 2994 2995 function createFromConfig(config) { 2996 var res = new Moment(checkOverflow(prepareConfig(config))); 2997 if (res._nextDay) { 2998 // Adding is smart enough around DST 2999 res.add(1, 'd'); 3000 res._nextDay = undefined; 3001 } 3002 3003 return res; 3004 } 3005 3006 function prepareConfig(config) { 3007 var input = config._i, 3008 format = config._f; 3009 3010 config._locale = config._locale || getLocale(config._l); 3011 3012 if (input === null || (format === undefined && input === '')) { 3013 return createInvalid({ nullInput: true }); 3014 } 3015 3016 if (typeof input === 'string') { 3017 config._i = input = config._locale.preparse(input); 3018 } 3019 3020 if (isMoment(input)) { 3021 return new Moment(checkOverflow(input)); 3022 } else if (isDate(input)) { 3023 config._d = input; 3024 } else if (isArray(format)) { 3025 configFromStringAndArray(config); 3026 } else if (format) { 3027 configFromStringAndFormat(config); 3028 } else { 3029 configFromInput(config); 3030 } 3031 3032 if (!isValid(config)) { 3033 config._d = null; 3034 } 3035 3036 return config; 3037 } 3038 3039 function configFromInput(config) { 3040 var input = config._i; 3041 if (isUndefined(input)) { 3042 config._d = new Date(hooks.now()); 3043 } else if (isDate(input)) { 3044 config._d = new Date(input.valueOf()); 3045 } else if (typeof input === 'string') { 3046 configFromString(config); 3047 } else if (isArray(input)) { 3048 config._a = map(input.slice(0), function (obj) { 3049 return parseInt(obj, 10); 3050 }); 3051 configFromArray(config); 3052 } else if (isObject(input)) { 3053 configFromObject(config); 3054 } else if (isNumber(input)) { 3055 // from milliseconds 3056 config._d = new Date(input); 3057 } else { 3058 hooks.createFromInputFallback(config); 3059 } 3060 } 3061 3062 function createLocalOrUTC(input, format, locale, strict, isUTC) { 3063 var c = {}; 3064 3065 if (format === true || format === false) { 3066 strict = format; 3067 format = undefined; 3068 } 3069 3070 if (locale === true || locale === false) { 3071 strict = locale; 3072 locale = undefined; 3073 } 3074 3075 if ( 3076 (isObject(input) && isObjectEmpty(input)) || 3077 (isArray(input) && input.length === 0) 3078 ) { 3079 input = undefined; 3080 } 3081 // object construction must be done this way. 3082 // https://github.com/moment/moment/issues/1423 3083 c._isAMomentObject = true; 3084 c._useUTC = c._isUTC = isUTC; 3085 c._l = locale; 3086 c._i = input; 3087 c._f = format; 3088 c._strict = strict; 3089 3090 return createFromConfig(c); 3091 } 3092 3093 function createLocal(input, format, locale, strict) { 3094 return createLocalOrUTC(input, format, locale, strict, false); 3095 } 3096 3097 var prototypeMin = deprecate( 3098 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', 3099 function () { 3100 var other = createLocal.apply(null, arguments); 3101 if (this.isValid() && other.isValid()) { 3102 return other < this ? this : other; 3103 } else { 3104 return createInvalid(); 3105 } 3106 } 3107 ), 3108 prototypeMax = deprecate( 3109 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', 3110 function () { 3111 var other = createLocal.apply(null, arguments); 3112 if (this.isValid() && other.isValid()) { 3113 return other > this ? this : other; 3114 } else { 3115 return createInvalid(); 3116 } 3117 } 3118 ); 3119 3120 // Pick a moment m from moments so that m[fn](other) is true for all 3121 // other. This relies on the function fn to be transitive. 3122 // 3123 // moments should either be an array of moment objects or an array, whose 3124 // first element is an array of moment objects. 3125 function pickBy(fn, moments) { 3126 var res, i; 3127 if (moments.length === 1 && isArray(moments[0])) { 3128 moments = moments[0]; 3129 } 3130 if (!moments.length) { 3131 return createLocal(); 3132 } 3133 res = moments[0]; 3134 for (i = 1; i < moments.length; ++i) { 3135 if (!moments[i].isValid() || moments[i][fn](res)) { 3136 res = moments[i]; 3137 } 3138 } 3139 return res; 3140 } 3141 3142 // TODO: Use [].sort instead? 3143 function min() { 3144 var args = [].slice.call(arguments, 0); 3145 3146 return pickBy('isBefore', args); 3147 } 3148 3149 function max() { 3150 var args = [].slice.call(arguments, 0); 3151 3152 return pickBy('isAfter', args); 3153 } 3154 3155 var now = function () { 3156 return Date.now ? Date.now() : +new Date(); 3157 }; 3158 3159 var ordering = [ 3160 'year', 3161 'quarter', 3162 'month', 3163 'week', 3164 'day', 3165 'hour', 3166 'minute', 3167 'second', 3168 'millisecond', 3169 ]; 3170 3171 function isDurationValid(m) { 3172 var key, 3173 unitHasDecimal = false, 3174 i; 3175 for (key in m) { 3176 if ( 3177 hasOwnProp(m, key) && 3178 !( 3179 indexOf.call(ordering, key) !== -1 && 3180 (m[key] == null || !isNaN(m[key])) 3181 ) 3182 ) { 3183 return false; 3184 } 3185 } 3186 3187 for (i = 0; i < ordering.length; ++i) { 3188 if (m[ordering[i]]) { 3189 if (unitHasDecimal) { 3190 return false; // only allow non-integers for smallest unit 3191 } 3192 if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { 3193 unitHasDecimal = true; 3194 } 3195 } 3196 } 3197 3198 return true; 3199 } 3200 3201 function isValid$1() { 3202 return this._isValid; 3203 } 3204 3205 function createInvalid$1() { 3206 return createDuration(NaN); 3207 } 3208 3209 function Duration(duration) { 3210 var normalizedInput = normalizeObjectUnits(duration), 3211 years = normalizedInput.year || 0, 3212 quarters = normalizedInput.quarter || 0, 3213 months = normalizedInput.month || 0, 3214 weeks = normalizedInput.week || normalizedInput.isoWeek || 0, 3215 days = normalizedInput.day || 0, 3216 hours = normalizedInput.hour || 0, 3217 minutes = normalizedInput.minute || 0, 3218 seconds = normalizedInput.second || 0, 3219 milliseconds = normalizedInput.millisecond || 0; 3220 3221 this._isValid = isDurationValid(normalizedInput); 3222 3223 // representation for dateAddRemove 3224 this._milliseconds = 3225 +milliseconds + 3226 seconds * 1e3 + // 1000 3227 minutes * 6e4 + // 1000 * 60 3228 hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 3229 // Because of dateAddRemove treats 24 hours as different from a 3230 // day when working around DST, we need to store them separately 3231 this._days = +days + weeks * 7; 3232 // It is impossible to translate months into days without knowing 3233 // which months you are are talking about, so we have to store 3234 // it separately. 3235 this._months = +months + quarters * 3 + years * 12; 3236 3237 this._data = {}; 3238 3239 this._locale = getLocale(); 3240 3241 this._bubble(); 3242 } 3243 3244 function isDuration(obj) { 3245 return obj instanceof Duration; 3246 } 3247 3248 function absRound(number) { 3249 if (number < 0) { 3250 return Math.round(-1 * number) * -1; 3251 } else { 3252 return Math.round(number); 3253 } 3254 } 3255 3256 // compare two arrays, return the number of differences 3257 function compareArrays(array1, array2, dontConvert) { 3258 var len = Math.min(array1.length, array2.length), 3259 lengthDiff = Math.abs(array1.length - array2.length), 3260 diffs = 0, 3261 i; 3262 for (i = 0; i < len; i++) { 3263 if ( 3264 (dontConvert && array1[i] !== array2[i]) || 3265 (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) 3266 ) { 3267 diffs++; 3268 } 3269 } 3270 return diffs + lengthDiff; 3271 } 3272 3273 // FORMATTING 3274 3275 function offset(token, separator) { 3276 addFormatToken(token, 0, 0, function () { 3277 var offset = this.utcOffset(), 3278 sign = '+'; 3279 if (offset < 0) { 3280 offset = -offset; 3281 sign = '-'; 3282 } 3283 return ( 3284 sign + 3285 zeroFill(~~(offset / 60), 2) + 3286 separator + 3287 zeroFill(~~offset % 60, 2) 3288 ); 3289 }); 3290 } 3291 3292 offset('Z', ':'); 3293 offset('ZZ', ''); 3294 3295 // PARSING 3296 3297 addRegexToken('Z', matchShortOffset); 3298 addRegexToken('ZZ', matchShortOffset); 3299 addParseToken(['Z', 'ZZ'], function (input, array, config) { 3300 config._useUTC = true; 3301 config._tzm = offsetFromString(matchShortOffset, input); 3302 }); 3303 3304 // HELPERS 3305 3306 // timezone chunker 3307 // '+10:00' > ['10', '00'] 3308 // '-1530' > ['-15', '30'] 3309 var chunkOffset = /([\+\-]|\d\d)/gi; 3310 3311 function offsetFromString(matcher, string) { 3312 var matches = (string || '').match(matcher), 3313 chunk, 3314 parts, 3315 minutes; 3316 3317 if (matches === null) { 3318 return null; 3319 } 3320 3321 chunk = matches[matches.length - 1] || []; 3322 parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; 3323 minutes = +(parts[1] * 60) + toInt(parts[2]); 3324 3325 return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; 3326 } 3327 3328 // Return a moment from input, that is local/utc/zone equivalent to model. 3329 function cloneWithOffset(input, model) { 3330 var res, diff; 3331 if (model._isUTC) { 3332 res = model.clone(); 3333 diff = 3334 (isMoment(input) || isDate(input) 3335 ? input.valueOf() 3336 : createLocal(input).valueOf()) - res.valueOf(); 3337 // Use low-level api, because this fn is low-level api. 3338 res._d.setTime(res._d.valueOf() + diff); 3339 hooks.updateOffset(res, false); 3340 return res; 3341 } else { 3342 return createLocal(input).local(); 3343 } 3344 } 3345 3346 function getDateOffset(m) { 3347 // On Firefox.24 Date#getTimezoneOffset returns a floating point. 3348 // https://github.com/moment/moment/pull/1871 3349 return -Math.round(m._d.getTimezoneOffset()); 3350 } 3351 3352 // HOOKS 3353 3354 // This function will be called whenever a moment is mutated. 3355 // It is intended to keep the offset in sync with the timezone. 3356 hooks.updateOffset = function () {}; 3357 3358 // MOMENTS 3359 3360 // keepLocalTime = true means only change the timezone, without 3361 // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> 3362 // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset 3363 // +0200, so we adjust the time as needed, to be valid. 3364 // 3365 // Keeping the time actually adds/subtracts (one hour) 3366 // from the actual represented time. That is why we call updateOffset 3367 // a second time. In case it wants us to change the offset again 3368 // _changeInProgress == true case, then we have to adjust, because 3369 // there is no such time in the given timezone. 3370 function getSetOffset(input, keepLocalTime, keepMinutes) { 3371 var offset = this._offset || 0, 3372 localAdjust; 3373 if (!this.isValid()) { 3374 return input != null ? this : NaN; 3375 } 3376 if (input != null) { 3377 if (typeof input === 'string') { 3378 input = offsetFromString(matchShortOffset, input); 3379 if (input === null) { 3380 return this; 3381 } 3382 } else if (Math.abs(input) < 16 && !keepMinutes) { 3383 input = input * 60; 3384 } 3385 if (!this._isUTC && keepLocalTime) { 3386 localAdjust = getDateOffset(this); 3387 } 3388 this._offset = input; 3389 this._isUTC = true; 3390 if (localAdjust != null) { 3391 this.add(localAdjust, 'm'); 3392 } 3393 if (offset !== input) { 3394 if (!keepLocalTime || this._changeInProgress) { 3395 addSubtract( 3396 this, 3397 createDuration(input - offset, 'm'), 3398 1, 3399 false 3400 ); 3401 } else if (!this._changeInProgress) { 3402 this._changeInProgress = true; 3403 hooks.updateOffset(this, true); 3404 this._changeInProgress = null; 3405 } 3406 } 3407 return this; 3408 } else { 3409 return this._isUTC ? offset : getDateOffset(this); 3410 } 3411 } 3412 3413 function getSetZone(input, keepLocalTime) { 3414 if (input != null) { 3415 if (typeof input !== 'string') { 3416 input = -input; 3417 } 3418 3419 this.utcOffset(input, keepLocalTime); 3420 3421 return this; 3422 } else { 3423 return -this.utcOffset(); 3424 } 3425 } 3426 3427 function setOffsetToUTC(keepLocalTime) { 3428 return this.utcOffset(0, keepLocalTime); 3429 } 3430 3431 function setOffsetToLocal(keepLocalTime) { 3432 if (this._isUTC) { 3433 this.utcOffset(0, keepLocalTime); 3434 this._isUTC = false; 3435 3436 if (keepLocalTime) { 3437 this.subtract(getDateOffset(this), 'm'); 3438 } 3439 } 3440 return this; 3441 } 3442 3443 function setOffsetToParsedOffset() { 3444 if (this._tzm != null) { 3445 this.utcOffset(this._tzm, false, true); 3446 } else if (typeof this._i === 'string') { 3447 var tZone = offsetFromString(matchOffset, this._i); 3448 if (tZone != null) { 3449 this.utcOffset(tZone); 3450 } else { 3451 this.utcOffset(0, true); 3452 } 3453 } 3454 return this; 3455 } 3456 3457 function hasAlignedHourOffset(input) { 3458 if (!this.isValid()) { 3459 return false; 3460 } 3461 input = input ? createLocal(input).utcOffset() : 0; 3462 3463 return (this.utcOffset() - input) % 60 === 0; 3464 } 3465 3466 function isDaylightSavingTime() { 3467 return ( 3468 this.utcOffset() > this.clone().month(0).utcOffset() || 3469 this.utcOffset() > this.clone().month(5).utcOffset() 3470 ); 3471 } 3472 3473 function isDaylightSavingTimeShifted() { 3474 if (!isUndefined(this._isDSTShifted)) { 3475 return this._isDSTShifted; 3476 } 3477 3478 var c = {}, 3479 other; 3480 3481 copyConfig(c, this); 3482 c = prepareConfig(c); 3483 3484 if (c._a) { 3485 other = c._isUTC ? createUTC(c._a) : createLocal(c._a); 3486 this._isDSTShifted = 3487 this.isValid() && compareArrays(c._a, other.toArray()) > 0; 3488 } else { 3489 this._isDSTShifted = false; 3490 } 3491 3492 return this._isDSTShifted; 3493 } 3494 3495 function isLocal() { 3496 return this.isValid() ? !this._isUTC : false; 3497 } 3498 3499 function isUtcOffset() { 3500 return this.isValid() ? this._isUTC : false; 3501 } 3502 3503 function isUtc() { 3504 return this.isValid() ? this._isUTC && this._offset === 0 : false; 3505 } 3506 3507 // ASP.NET json date format regex 3508 var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, 3509 // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html 3510 // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere 3511 // and further modified to allow for strings containing both week and day 3512 isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; 3513 3514 function createDuration(input, key) { 3515 var duration = input, 3516 // matching against regexp is expensive, do it on demand 3517 match = null, 3518 sign, 3519 ret, 3520 diffRes; 3521 3522 if (isDuration(input)) { 3523 duration = { 3524 ms: input._milliseconds, 3525 d: input._days, 3526 M: input._months, 3527 }; 3528 } else if (isNumber(input) || !isNaN(+input)) { 3529 duration = {}; 3530 if (key) { 3531 duration[key] = +input; 3532 } else { 3533 duration.milliseconds = +input; 3534 } 3535 } else if ((match = aspNetRegex.exec(input))) { 3536 sign = match[1] === '-' ? -1 : 1; 3537 duration = { 3538 y: 0, 3539 d: toInt(match[DATE]) * sign, 3540 h: toInt(match[HOUR]) * sign, 3541 m: toInt(match[MINUTE]) * sign, 3542 s: toInt(match[SECOND]) * sign, 3543 ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match 3544 }; 3545 } else if ((match = isoRegex.exec(input))) { 3546 sign = match[1] === '-' ? -1 : 1; 3547 duration = { 3548 y: parseIso(match[2], sign), 3549 M: parseIso(match[3], sign), 3550 w: parseIso(match[4], sign), 3551 d: parseIso(match[5], sign), 3552 h: parseIso(match[6], sign), 3553 m: parseIso(match[7], sign), 3554 s: parseIso(match[8], sign), 3555 }; 3556 } else if (duration == null) { 3557 // checks for null or undefined 3558 duration = {}; 3559 } else if ( 3560 typeof duration === 'object' && 3561 ('from' in duration || 'to' in duration) 3562 ) { 3563 diffRes = momentsDifference( 3564 createLocal(duration.from), 3565 createLocal(duration.to) 3566 ); 3567 3568 duration = {}; 3569 duration.ms = diffRes.milliseconds; 3570 duration.M = diffRes.months; 3571 } 3572 3573 ret = new Duration(duration); 3574 3575 if (isDuration(input) && hasOwnProp(input, '_locale')) { 3576 ret._locale = input._locale; 3577 } 3578 3579 if (isDuration(input) && hasOwnProp(input, '_isValid')) { 3580 ret._isValid = input._isValid; 3581 } 3582 3583 return ret; 3584 } 3585 3586 createDuration.fn = Duration.prototype; 3587 createDuration.invalid = createInvalid$1; 3588 3589 function parseIso(inp, sign) { 3590 // We'd normally use ~~inp for this, but unfortunately it also 3591 // converts floats to ints. 3592 // inp may be undefined, so careful calling replace on it. 3593 var res = inp && parseFloat(inp.replace(',', '.')); 3594 // apply sign while we're at it 3595 return (isNaN(res) ? 0 : res) * sign; 3596 } 3597 3598 function positiveMomentsDifference(base, other) { 3599 var res = {}; 3600 3601 res.months = 3602 other.month() - base.month() + (other.year() - base.year()) * 12; 3603 if (base.clone().add(res.months, 'M').isAfter(other)) { 3604 --res.months; 3605 } 3606 3607 res.milliseconds = +other - +base.clone().add(res.months, 'M'); 3608 3609 return res; 3610 } 3611 3612 function momentsDifference(base, other) { 3613 var res; 3614 if (!(base.isValid() && other.isValid())) { 3615 return { milliseconds: 0, months: 0 }; 3616 } 3617 3618 other = cloneWithOffset(other, base); 3619 if (base.isBefore(other)) { 3620 res = positiveMomentsDifference(base, other); 3621 } else { 3622 res = positiveMomentsDifference(other, base); 3623 res.milliseconds = -res.milliseconds; 3624 res.months = -res.months; 3625 } 3626 3627 return res; 3628 } 3629 3630 // TODO: remove 'name' arg after deprecation is removed 3631 function createAdder(direction, name) { 3632 return function (val, period) { 3633 var dur, tmp; 3634 //invert the arguments, but complain about it 3635 if (period !== null && !isNaN(+period)) { 3636 deprecateSimple( 3637 name, 3638 'moment().' + 3639 name + 3640 '(period, number) is deprecated. Please use moment().' + 3641 name + 3642 '(number, period). ' + 3643 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' 3644 ); 3645 tmp = val; 3646 val = period; 3647 period = tmp; 3648 } 3649 3650 dur = createDuration(val, period); 3651 addSubtract(this, dur, direction); 3652 return this; 3653 }; 3654 } 3655 3656 function addSubtract(mom, duration, isAdding, updateOffset) { 3657 var milliseconds = duration._milliseconds, 3658 days = absRound(duration._days), 3659 months = absRound(duration._months); 3660 3661 if (!mom.isValid()) { 3662 // No op 3663 return; 3664 } 3665 3666 updateOffset = updateOffset == null ? true : updateOffset; 3667 3668 if (months) { 3669 setMonth(mom, get(mom, 'Month') + months * isAdding); 3670 } 3671 if (days) { 3672 set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); 3673 } 3674 if (milliseconds) { 3675 mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); 3676 } 3677 if (updateOffset) { 3678 hooks.updateOffset(mom, days || months); 3679 } 3680 } 3681 3682 var add = createAdder(1, 'add'), 3683 subtract = createAdder(-1, 'subtract'); 3684 3685 function isString(input) { 3686 return typeof input === 'string' || input instanceof String; 3687 } 3688 3689 // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined 3690 function isMomentInput(input) { 3691 return ( 3692 isMoment(input) || 3693 isDate(input) || 3694 isString(input) || 3695 isNumber(input) || 3696 isNumberOrStringArray(input) || 3697 isMomentInputObject(input) || 3698 input === null || 3699 input === undefined 3700 ); 3701 } 3702 3703 function isMomentInputObject(input) { 3704 var objectTest = isObject(input) && !isObjectEmpty(input), 3705 propertyTest = false, 3706 properties = [ 3707 'years', 3708 'year', 3709 'y', 3710 'months', 3711 'month', 3712 'M', 3713 'days', 3714 'day', 3715 'd', 3716 'dates', 3717 'date', 3718 'D', 3719 'hours', 3720 'hour', 3721 'h', 3722 'minutes', 3723 'minute', 3724 'm', 3725 'seconds', 3726 'second', 3727 's', 3728 'milliseconds', 3729 'millisecond', 3730 'ms', 3731 ], 3732 i, 3733 property; 3734 3735 for (i = 0; i < properties.length; i += 1) { 3736 property = properties[i]; 3737 propertyTest = propertyTest || hasOwnProp(input, property); 3738 } 3739 3740 return objectTest && propertyTest; 3741 } 3742 3743 function isNumberOrStringArray(input) { 3744 var arrayTest = isArray(input), 3745 dataTypeTest = false; 3746 if (arrayTest) { 3747 dataTypeTest = 3748 input.filter(function (item) { 3749 return !isNumber(item) && isString(input); 3750 }).length === 0; 3751 } 3752 return arrayTest && dataTypeTest; 3753 } 3754 3755 function isCalendarSpec(input) { 3756 var objectTest = isObject(input) && !isObjectEmpty(input), 3757 propertyTest = false, 3758 properties = [ 3759 'sameDay', 3760 'nextDay', 3761 'lastDay', 3762 'nextWeek', 3763 'lastWeek', 3764 'sameElse', 3765 ], 3766 i, 3767 property; 3768 3769 for (i = 0; i < properties.length; i += 1) { 3770 property = properties[i]; 3771 propertyTest = propertyTest || hasOwnProp(input, property); 3772 } 3773 3774 return objectTest && propertyTest; 3775 } 3776 3777 function getCalendarFormat(myMoment, now) { 3778 var diff = myMoment.diff(now, 'days', true); 3779 return diff < -6 3780 ? 'sameElse' 3781 : diff < -1 3782 ? 'lastWeek' 3783 : diff < 0 3784 ? 'lastDay' 3785 : diff < 1 3786 ? 'sameDay' 3787 : diff < 2 3788 ? 'nextDay' 3789 : diff < 7 3790 ? 'nextWeek' 3791 : 'sameElse'; 3792 } 3793 3794 function calendar$1(time, formats) { 3795 // Support for single parameter, formats only overload to the calendar function 3796 if (arguments.length === 1) { 3797 if (
3797!arguments[0]) { 3798 time = undefined; 3799 formats = undefined; 3800 } else
vendor: 21,292 bytes, lines 3800-4478
3800 if (isMomentInput(arguments[0])) { 3801 time = arguments[0]; 3802 formats = undefined; 3803 } else if (isCalendarSpec(arguments[0])) { 3804 formats = arguments[0]; 3805 time = undefined; 3806 } 3807 } 3808 // We want to compare the start of today, vs this. 3809 // Getting start-of-today depends on whether we're local/utc/offset or not. 3810 var now = time || createLocal(), 3811 sod = cloneWithOffset(now, this).startOf('day'), 3812 format = hooks.calendarFormat(this, sod) || 'sameElse', 3813 output = 3814 formats && 3815 (isFunction(formats[format]) 3816 ? formats[format].call(this, now) 3817 : formats[format]); 3818 3819 return this.format( 3820 output || this.localeData().calendar(format, this, createLocal(now)) 3821 ); 3822 } 3823 3824 function clone() { 3825 return new Moment(this); 3826 } 3827 3828 function isAfter(input, units) { 3829 var localInput = isMoment(input) ? input : createLocal(input); 3830 if (!(this.isValid() && localInput.isValid())) { 3831 return false; 3832 } 3833 units = normalizeUnits(units) || 'millisecond'; 3834 if (units === 'millisecond') { 3835 return this.valueOf() > localInput.valueOf(); 3836 } else { 3837 return localInput.valueOf() < this.clone().startOf(units).valueOf(); 3838 } 3839 } 3840 3841 function isBefore(input, units) { 3842 var localInput = isMoment(input) ? input : createLocal(input); 3843 if (!(this.isValid() && localInput.isValid())) { 3844 return false; 3845 } 3846 units = normalizeUnits(units) || 'millisecond'; 3847 if (units === 'millisecond') { 3848 return this.valueOf() < localInput.valueOf(); 3849 } else { 3850 return this.clone().endOf(units).valueOf() < localInput.valueOf(); 3851 } 3852 } 3853 3854 function isBetween(from, to, units, inclusivity) { 3855 var localFrom = isMoment(from) ? from : createLocal(from), 3856 localTo = isMoment(to) ? to : createLocal(to); 3857 if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { 3858 return false; 3859 } 3860 inclusivity = inclusivity || '()'; 3861 return ( 3862 (inclusivity[0] === '(' 3863 ? this.isAfter(localFrom, units) 3864 : !this.isBefore(localFrom, units)) && 3865 (inclusivity[1] === ')' 3866 ? this.isBefore(localTo, units) 3867 : !this.isAfter(localTo, units)) 3868 ); 3869 } 3870 3871 function isSame(input, units) { 3872 var localInput = isMoment(input) ? input : createLocal(input), 3873 inputMs; 3874 if (!(this.isValid() && localInput.isValid())) { 3875 return false; 3876 } 3877 units = normalizeUnits(units) || 'millisecond'; 3878 if (units === 'millisecond') { 3879 return this.valueOf() === localInput.valueOf(); 3880 } else { 3881 inputMs = localInput.valueOf(); 3882 return ( 3883 this.clone().startOf(units).valueOf() <= inputMs && 3884 inputMs <= this.clone().endOf(units).valueOf() 3885 ); 3886 } 3887 } 3888 3889 function isSameOrAfter(input, units) { 3890 return this.isSame(input, units) || this.isAfter(input, units); 3891 } 3892 3893 function isSameOrBefore(input, units) { 3894 return this.isSame(input, units) || this.isBefore(input, units); 3895 } 3896 3897 function diff(input, units, asFloat) { 3898 var that, zoneDelta, output; 3899 3900 if (!this.isValid()) { 3901 return NaN; 3902 } 3903 3904 that = cloneWithOffset(input, this); 3905 3906 if (!that.isValid()) { 3907 return NaN; 3908 } 3909 3910 zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; 3911 3912 units = normalizeUnits(units); 3913 3914 switch (units) { 3915 case 'year': 3916 output = monthDiff(this, that) / 12; 3917 break; 3918 case 'month': 3919 output = monthDiff(this, that); 3920 break; 3921 case 'quarter': 3922 output = monthDiff(this, that) / 3; 3923 break; 3924 case 'second': 3925 output = (this - that) / 1e3; 3926 break; // 1000 3927 case 'minute': 3928 output = (this - that) / 6e4; 3929 break; // 1000 * 60 3930 case 'hour': 3931 output = (this - that) / 36e5; 3932 break; // 1000 * 60 * 60 3933 case 'day': 3934 output = (this - that - zoneDelta) / 864e5; 3935 break; // 1000 * 60 * 60 * 24, negate dst 3936 case 'week': 3937 output = (this - that - zoneDelta) / 6048e5; 3938 break; // 1000 * 60 * 60 * 24 * 7, negate dst 3939 default: 3940 output = this - that; 3941 } 3942 3943 return asFloat ? output : absFloor(output); 3944 } 3945 3946 function monthDiff(a, b) { 3947 if (a.date() < b.date()) { 3948 // end-of-month calculations work correct when the start month has more 3949 // days than the end month. 3950 return -monthDiff(b, a); 3951 } 3952 // difference in months 3953 var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), 3954 // b is in (anchor - 1 month, anchor + 1 month) 3955 anchor = a.clone().add(wholeMonthDiff, 'months'), 3956 anchor2, 3957 adjust; 3958 3959 if (b - anchor < 0) { 3960 anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); 3961 // linear across the month 3962 adjust = (b - anchor) / (anchor - anchor2); 3963 } else { 3964 anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); 3965 // linear across the month 3966 adjust = (b - anchor) / (anchor2 - anchor); 3967 } 3968 3969 //check for negative zero, return zero if negative zero 3970 return -(wholeMonthDiff + adjust) || 0; 3971 } 3972 3973 hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; 3974 hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; 3975 3976 function toString() { 3977 return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); 3978 } 3979 3980 function toISOString(keepOffset) { 3981 if (!this.isValid()) { 3982 return null; 3983 } 3984 var utc = keepOffset !== true, 3985 m = utc ? this.clone().utc() : this; 3986 if (m.year() < 0 || m.year() > 9999) { 3987 return formatMoment( 3988 m, 3989 utc 3990 ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' 3991 : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' 3992 ); 3993 } 3994 if (isFunction(Date.prototype.toISOString)) { 3995 // native implementation is ~50x faster, use it when we can 3996 if (utc) { 3997 return this.toDate().toISOString(); 3998 } else { 3999 return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) 4000 .toISOString() 4001 .replace('Z', formatMoment(m, 'Z')); 4002 } 4003 } 4004 return formatMoment( 4005 m, 4006 utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' 4007 ); 4008 } 4009 4010 /** 4011 * Return a human readable representation of a moment that can 4012 * also be evaluated to get a new moment which is the same 4013 * 4014 * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects 4015 */ 4016 function inspect() { 4017 if (!this.isValid()) { 4018 return 'moment.invalid(/* ' + this._i + ' */)'; 4019 } 4020 var func = 'moment', 4021 zone = '', 4022 prefix, 4023 year, 4024 datetime, 4025 suffix; 4026 if (!this.isLocal()) { 4027 func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; 4028 zone = 'Z'; 4029 } 4030 prefix = '[' + func + '("]'; 4031 year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; 4032 datetime = '-MM-DD[T]HH:mm:ss.SSS'; 4033 suffix = zone + '[")]'; 4034 4035 return this.format(prefix + year + datetime + suffix); 4036 } 4037 4038 function format(inputString) { 4039 if (!inputString) { 4040 inputString = this.isUtc() 4041 ? hooks.defaultFormatUtc 4042 : hooks.defaultFormat; 4043 } 4044 var output = formatMoment(this, inputString); 4045 return this.localeData().postformat(output); 4046 } 4047 4048 function from(time, withoutSuffix) { 4049 if ( 4050 this.isValid() && 4051 ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) 4052 ) { 4053 return createDuration({ to: this, from: time }) 4054 .locale(this.locale()) 4055 .humanize(!withoutSuffix); 4056 } else { 4057 return this.localeData().invalidDate(); 4058 } 4059 } 4060 4061 function fromNow(withoutSuffix) { 4062 return this.from(createLocal(), withoutSuffix); 4063 } 4064 4065 function to(time, withoutSuffix) { 4066 if ( 4067 this.isValid() && 4068 ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) 4069 ) { 4070 return createDuration({ from: this, to: time }) 4071 .locale(this.locale()) 4072 .humanize(!withoutSuffix); 4073 } else { 4074 return this.localeData().invalidDate(); 4075 } 4076 } 4077 4078 function toNow(withoutSuffix) { 4079 return this.to(createLocal(), withoutSuffix); 4080 } 4081 4082 // If passed a locale key, it will set the locale for this 4083 // instance. Otherwise, it will return the locale configuration 4084 // variables for this instance. 4085 function locale(key) { 4086 var newLocaleData; 4087 4088 if (key === undefined) { 4089 return this._locale._abbr; 4090 } else { 4091 newLocaleData = getLocale(key); 4092 if (newLocaleData != null) { 4093 this._locale = newLocaleData; 4094 } 4095 return this; 4096 } 4097 } 4098 4099 var lang = deprecate( 4100 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', 4101 function (key) { 4102 if (key === undefined) { 4103 return this.localeData(); 4104 } else { 4105 return this.locale(key); 4106 } 4107 } 4108 ); 4109 4110 function localeData() { 4111 return this._locale; 4112 } 4113 4114 var MS_PER_SECOND = 1000, 4115 MS_PER_MINUTE = 60 * MS_PER_SECOND, 4116 MS_PER_HOUR = 60 * MS_PER_MINUTE, 4117 MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; 4118 4119 // actual modulo - handles negative numbers (for dates before 1970): 4120 function mod$1(dividend, divisor) { 4121 return ((dividend % divisor) + divisor) % divisor; 4122 } 4123 4124 function localStartOfDate(y, m, d) { 4125 // the date constructor remaps years 0-99 to 1900-1999 4126 if (y < 100 && y >= 0) { 4127 // preserve leap years using a full 400 year cycle, then reset 4128 return new Date(y + 400, m, d) - MS_PER_400_YEARS; 4129 } else { 4130 return new Date(y, m, d).valueOf(); 4131 } 4132 } 4133 4134 function utcStartOfDate(y, m, d) { 4135 // Date.UTC remaps years 0-99 to 1900-1999 4136 if (y < 100 && y >= 0) { 4137 // preserve leap years using a full 400 year cycle, then reset 4138 return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; 4139 } else { 4140 return Date.UTC(y, m, d); 4141 } 4142 } 4143 4144 function startOf(units) { 4145 var time, startOfDate; 4146 units = normalizeUnits(units); 4147 if (units === undefined || units === 'millisecond' || !this.isValid()) { 4148 return this; 4149 } 4150 4151 startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; 4152 4153 switch (units) { 4154 case 'year': 4155 time = startOfDate(this.year(), 0, 1); 4156 break; 4157 case 'quarter': 4158 time = startOfDate( 4159 this.year(), 4160 this.month() - (this.month() % 3), 4161 1 4162 ); 4163 break; 4164 case 'month': 4165 time = startOfDate(this.year(), this.month(), 1); 4166 break; 4167 case 'week': 4168 time = startOfDate( 4169 this.year(), 4170 this.month(), 4171 this.date() - this.weekday() 4172 ); 4173 break; 4174 case 'isoWeek': 4175 time = startOfDate( 4176 this.year(), 4177 this.month(), 4178 this.date() - (this.isoWeekday() - 1) 4179 ); 4180 break; 4181 case 'day': 4182 case 'date': 4183 time = startOfDate(this.year(), this.month(), this.date()); 4184 break; 4185 case 'hour': 4186 time = this._d.valueOf(); 4187 time -= mod$1( 4188 time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), 4189 MS_PER_HOUR 4190 ); 4191 break; 4192 case 'minute': 4193 time = this._d.valueOf(); 4194 time -= mod$1(time, MS_PER_MINUTE); 4195 break; 4196 case 'second': 4197 time = this._d.valueOf(); 4198 time -= mod$1(time, MS_PER_SECOND); 4199 break; 4200 } 4201 4202 this._d.setTime(time); 4203 hooks.updateOffset(this, true); 4204 return this; 4205 } 4206 4207 function endOf(units) { 4208 var time, startOfDate; 4209 units = normalizeUnits(units); 4210 if (units === undefined || units === 'millisecond' || !this.isValid()) { 4211 return this; 4212 } 4213 4214 startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; 4215 4216 switch (units) { 4217 case 'year': 4218 time = startOfDate(this.year() + 1, 0, 1) - 1; 4219 break; 4220 case 'quarter': 4221 time = 4222 startOfDate( 4223 this.year(), 4224 this.month() - (this.month() % 3) + 3, 4225 1 4226 ) - 1; 4227 break; 4228 case 'month': 4229 time = startOfDate(this.year(), this.month() + 1, 1) - 1; 4230 break; 4231 case 'week': 4232 time = 4233 startOfDate( 4234 this.year(), 4235 this.month(), 4236 this.date() - this.weekday() + 7 4237 ) - 1; 4238 break; 4239 case 'isoWeek': 4240 time = 4241 startOfDate( 4242 this.year(), 4243 this.month(), 4244 this.date() - (this.isoWeekday() - 1) + 7 4245 ) - 1; 4246 break; 4247 case 'day': 4248 case 'date': 4249 time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; 4250 break; 4251 case 'hour': 4252 time = this._d.valueOf(); 4253 time += 4254 MS_PER_HOUR - 4255 mod$1( 4256 time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), 4257 MS_PER_HOUR 4258 ) - 4259 1; 4260 break; 4261 case 'minute': 4262 time = this._d.valueOf(); 4263 time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; 4264 break; 4265 case 'second': 4266 time = this._d.valueOf(); 4267 time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; 4268 break; 4269 } 4270 4271 this._d.setTime(time); 4272 hooks.updateOffset(this, true); 4273 return this; 4274 } 4275 4276 function valueOf() { 4277 return this._d.valueOf() - (this._offset || 0) * 60000; 4278 } 4279 4280 function unix() { 4281 return Math.floor(this.valueOf() / 1000); 4282 } 4283 4284 function toDate() { 4285 return new Date(this.valueOf()); 4286 } 4287 4288 function toArray() { 4289 var m = this; 4290 return [ 4291 m.year(), 4292 m.month(), 4293 m.date(), 4294 m.hour(), 4295 m.minute(), 4296 m.second(), 4297 m.millisecond(), 4298 ]; 4299 } 4300 4301 function toObject() { 4302 var m = this; 4303 return { 4304 years: m.year(), 4305 months: m.month(), 4306 date: m.date(), 4307 hours: m.hours(), 4308 minutes: m.minutes(), 4309 seconds: m.seconds(), 4310 milliseconds: m.milliseconds(), 4311 }; 4312 } 4313 4314 function toJSON() { 4315 // new Date(NaN).toJSON() === null 4316 return this.isValid() ? this.toISOString() : null; 4317 } 4318 4319 function isValid$2() { 4320 return isValid(this); 4321 } 4322 4323 function parsingFlags() { 4324 return extend({}, getParsingFlags(this)); 4325 } 4326 4327 function invalidAt() { 4328 return getParsingFlags(this).overflow; 4329 } 4330 4331 function creationData() { 4332 return { 4333 input: this._i, 4334 format: this._f, 4335 locale: this._locale, 4336 isUTC: this._isUTC, 4337 strict: this._strict, 4338 }; 4339 } 4340 4341 addFormatToken('N', 0, 0, 'eraAbbr'); 4342 addFormatToken('NN', 0, 0, 'eraAbbr'); 4343 addFormatToken('NNN', 0, 0, 'eraAbbr'); 4344 addFormatToken('NNNN', 0, 0, 'eraName'); 4345 addFormatToken('NNNNN', 0, 0, 'eraNarrow'); 4346 4347 addFormatToken('y', ['y', 1], 'yo', 'eraYear'); 4348 addFormatToken('y', ['yy', 2], 0, 'eraYear'); 4349 addFormatToken('y', ['yyy', 3], 0, 'eraYear'); 4350 addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); 4351 4352 addRegexToken('N', matchEraAbbr); 4353 addRegexToken('NN', matchEraAbbr); 4354 addRegexToken('NNN', matchEraAbbr); 4355 addRegexToken('NNNN', matchEraName); 4356 addRegexToken('NNNNN', matchEraNarrow); 4357 4358 addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function ( 4359 input, 4360 array, 4361 config, 4362 token 4363 ) { 4364 var era = config._locale.erasParse(input, token, config._strict); 4365 if (era) { 4366 getParsingFlags(config).era = era; 4367 } else { 4368 getParsingFlags(config).invalidEra = input; 4369 } 4370 }); 4371 4372 addRegexToken('y', matchUnsigned); 4373 addRegexToken('yy', matchUnsigned); 4374 addRegexToken('yyy', matchUnsigned); 4375 addRegexToken('yyyy', matchUnsigned); 4376 addRegexToken('yo', matchEraYearOrdinal); 4377 4378 addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); 4379 addParseToken(['yo'], function (input, array, config, token) { 4380 var match; 4381 if (config._locale._eraYearOrdinalRegex) { 4382 match = input.match(config._locale._eraYearOrdinalRegex); 4383 } 4384 4385 if (config._locale.eraYearOrdinalParse) { 4386 array[YEAR] = config._locale.eraYearOrdinalParse(input, match); 4387 } else { 4388 array[YEAR] = parseInt(input, 10); 4389 } 4390 }); 4391 4392 function localeEras(m, format) { 4393 var i, 4394 l, 4395 date, 4396 eras = this._eras || getLocale('en')._eras; 4397 for (i = 0, l = eras.length; i < l; ++i) { 4398 switch (typeof eras[i].since) { 4399 case 'string': 4400 // truncate time 4401 date = hooks(eras[i].since).startOf('day'); 4402 eras[i].since = date.valueOf(); 4403 break; 4404 } 4405 4406 switch (typeof eras[i].until) { 4407 case 'undefined': 4408 eras[i].until = +Infinity; 4409 break; 4410 case 'string': 4411 // truncate time 4412 date = hooks(eras[i].until).startOf('day').valueOf(); 4413 eras[i].until = date.valueOf(); 4414 break; 4415 } 4416 } 4417 return eras; 4418 } 4419 4420 function localeErasParse(eraName, format, strict) { 4421 var i, 4422 l, 4423 eras = this.eras(), 4424 name, 4425 abbr, 4426 narrow; 4427 eraName = eraName.toUpperCase(); 4428 4429 for (i = 0, l = eras.length; i < l; ++i) { 4430 name = eras[i].name.toUpperCase(); 4431 abbr = eras[i].abbr.toUpperCase(); 4432 narrow = eras[i].narrow.toUpperCase(); 4433 4434 if (strict) { 4435 switch (format) { 4436 case 'N': 4437 case 'NN': 4438 case 'NNN': 4439 if (abbr === eraName) { 4440 return eras[i]; 4441 } 4442 break; 4443 4444 case 'NNNN': 4445 if (name === eraName) { 4446 return eras[i]; 4447 } 4448 break; 4449 4450 case 'NNNNN': 4451 if (narrow === eraName) { 4452 return eras[i]; 4453 } 4454 break; 4455 } 4456 } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { 4457 return eras[i]; 4458 } 4459 } 4460 } 4461 4462 function localeErasConvertYear(era, year) { 4463 var dir = era.since <= era.until ? +1 : -1; 4464 if (year === undefined) { 4465 return hooks(era.since).year(); 4466 } else { 4467 return hooks(era.since).year() + (year - era.offset) * dir; 4468 } 4469 } 4470 4471 function getEraName() { 4472 var i, 4473 l, 4474 val, 4475 eras = this.localeData().eras(); 4476 for (i = 0, l = eras.length; i < l; ++i) { 4477 // truncate time 4478 val = this.
vendor: 1,666 bytes, lines 4478-4541
4478clone().startOf('day').valueOf(); 4479 4480 if (eras[i].since <= val && val <= eras[i].until) { 4481 return eras[i].name; 4482 } 4483 if (eras[i].until <= val && val <= eras[i].since) { 4484 return eras[i].name; 4485 } 4486 } 4487 4488 return ''; 4489 } 4490 4491 function getEraNarrow() { 4492 var i, 4493 l, 4494 val, 4495 eras = this.localeData().eras(); 4496 for (i = 0, l = eras.length; i < l; ++i) { 4497 // truncate time 4498 val = this.clone().startOf('day').valueOf(); 4499 4500 if (eras[i].since <= val && val <= eras[i].until) { 4501 return eras[i].narrow; 4502 } 4503 if (eras[i].until <= val && val <= eras[i].since) { 4504 return eras[i].narrow; 4505 } 4506 } 4507 4508 return ''; 4509 } 4510 4511 function getEraAbbr() { 4512 var i, 4513 l, 4514 val, 4515 eras = this.localeData().eras(); 4516 for (i = 0, l = eras.length; i < l; ++i) { 4517 // truncate time 4518 val = this.clone().startOf('day').valueOf(); 4519 4520 if (eras[i].since <= val && val <= eras[i].until) { 4521 return eras[i].abbr; 4522 } 4523 if (eras[i].until <= val && val <= eras[i].since) { 4524 return eras[i].abbr; 4525 } 4526 } 4527 4528 return ''; 4529 } 4530 4531 function getEraYear() { 4532 var i, 4533 l, 4534 dir, 4535 val, 4536 eras = this.localeData().eras(); 4537 for (i = 0, l = eras.length; i < l; ++i) { 4538 dir = eras[i].since <= eras[i].until ? +1 : -1; 4539 4540 // truncate time 4541 val = this.clone()
vendor: 33,286 bytes, lines 4541-5692
4541.startOf('day').valueOf(); 4542 4543 if ( 4544 (eras[i].since <= val && val <= eras[i].until) || 4545 (eras[i].until <= val && val <= eras[i].since) 4546 ) { 4547 return ( 4548 (this.year() - hooks(eras[i].since).year()) * dir + 4549 eras[i].offset 4550 ); 4551 } 4552 } 4553 4554 return this.year(); 4555 } 4556 4557 function erasNameRegex(isStrict) { 4558 if (!hasOwnProp(this, '_erasNameRegex')) { 4559 computeErasParse.call(this); 4560 } 4561 return isStrict ? this._erasNameRegex : this._erasRegex; 4562 } 4563 4564 function erasAbbrRegex(isStrict) { 4565 if (!hasOwnProp(this, '_erasAbbrRegex')) { 4566 computeErasParse.call(this); 4567 } 4568 return isStrict ? this._erasAbbrRegex : this._erasRegex; 4569 } 4570 4571 function erasNarrowRegex(isStrict) { 4572 if (!hasOwnProp(this, '_erasNarrowRegex')) { 4573 computeErasParse.call(this); 4574 } 4575 return isStrict ? this._erasNarrowRegex : this._erasRegex; 4576 } 4577 4578 function matchEraAbbr(isStrict, locale) { 4579 return locale.erasAbbrRegex(isStrict); 4580 } 4581 4582 function matchEraName(isStrict, locale) { 4583 return locale.erasNameRegex(isStrict); 4584 } 4585 4586 function matchEraNarrow(isStrict, locale) { 4587 return locale.erasNarrowRegex(isStrict); 4588 } 4589 4590 function matchEraYearOrdinal(isStrict, locale) { 4591 return locale._eraYearOrdinalRegex || matchUnsigned; 4592 } 4593 4594 function computeErasParse() { 4595 var abbrPieces = [], 4596 namePieces = [], 4597 narrowPieces = [], 4598 mixedPieces = [], 4599 i, 4600 l, 4601 eras = this.eras(); 4602 4603 for (i = 0, l = eras.length; i < l; ++i) { 4604 namePieces.push(regexEscape(eras[i].name)); 4605 abbrPieces.push(regexEscape(eras[i].abbr)); 4606 narrowPieces.push(regexEscape(eras[i].narrow)); 4607 4608 mixedPieces.push(regexEscape(eras[i].name)); 4609 mixedPieces.push(regexEscape(eras[i].abbr)); 4610 mixedPieces.push(regexEscape(eras[i].narrow)); 4611 } 4612 4613 this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); 4614 this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); 4615 this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); 4616 this._erasNarrowRegex = new RegExp( 4617 '^(' + narrowPieces.join('|') + ')', 4618 'i' 4619 ); 4620 } 4621 4622 // FORMATTING 4623 4624 addFormatToken(0, ['gg', 2], 0, function () { 4625 return this.weekYear() % 100; 4626 }); 4627 4628 addFormatToken(0, ['GG', 2], 0, function () { 4629 return this.isoWeekYear() % 100; 4630 }); 4631 4632 function addWeekYearFormatToken(token, getter) { 4633 addFormatToken(0, [token, token.length], 0, getter); 4634 } 4635 4636 addWeekYearFormatToken('gggg', 'weekYear'); 4637 addWeekYearFormatToken('ggggg', 'weekYear'); 4638 addWeekYearFormatToken('GGGG', 'isoWeekYear'); 4639 addWeekYearFormatToken('GGGGG', 'isoWeekYear'); 4640 4641 // ALIASES 4642 4643 addUnitAlias('weekYear', 'gg'); 4644 addUnitAlias('isoWeekYear', 'GG'); 4645 4646 // PRIORITY 4647 4648 addUnitPriority('weekYear', 1); 4649 addUnitPriority('isoWeekYear', 1); 4650 4651 // PARSING 4652 4653 addRegexToken('G', matchSigned); 4654 addRegexToken('g', matchSigned); 4655 addRegexToken('GG', match1to2, match2); 4656 addRegexToken('gg', match1to2, match2); 4657 addRegexToken('GGGG', match1to4, match4); 4658 addRegexToken('gggg', match1to4, match4); 4659 addRegexToken('GGGGG', match1to6, match6); 4660 addRegexToken('ggggg', match1to6, match6); 4661 4662 addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function ( 4663 input, 4664 week, 4665 config, 4666 token 4667 ) { 4668 week[token.substr(0, 2)] = toInt(input); 4669 }); 4670 4671 addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { 4672 week[token] = hooks.parseTwoDigitYear(input); 4673 }); 4674 4675 // MOMENTS 4676 4677 function getSetWeekYear(input) { 4678 return getSetWeekYearHelper.call( 4679 this, 4680 input, 4681 this.week(), 4682 this.weekday(), 4683 this.localeData()._week.dow, 4684 this.localeData()._week.doy 4685 ); 4686 } 4687 4688 function getSetISOWeekYear(input) { 4689 return getSetWeekYearHelper.call( 4690 this, 4691 input, 4692 this.isoWeek(), 4693 this.isoWeekday(), 4694 1, 4695 4 4696 ); 4697 } 4698 4699 function getISOWeeksInYear() { 4700 return weeksInYear(this.year(), 1, 4); 4701 } 4702 4703 function getISOWeeksInISOWeekYear() { 4704 return weeksInYear(this.isoWeekYear(), 1, 4); 4705 } 4706 4707 function getWeeksInYear() { 4708 var weekInfo = this.localeData()._week; 4709 return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); 4710 } 4711 4712 function getWeeksInWeekYear() { 4713 var weekInfo = this.localeData()._week; 4714 return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); 4715 } 4716 4717 function getSetWeekYearHelper(input, week, weekday, dow, doy) { 4718 var weeksTarget; 4719 if (input == null) { 4720 return weekOfYear(this, dow, doy).year; 4721 } else { 4722 weeksTarget = weeksInYear(input, dow, doy); 4723 if (week > weeksTarget) { 4724 week = weeksTarget; 4725 } 4726 return setWeekAll.call(this, input, week, weekday, dow, doy); 4727 } 4728 } 4729 4730 function setWeekAll(weekYear, week, weekday, dow, doy) { 4731 var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), 4732 date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); 4733 4734 this.year(date.getUTCFullYear()); 4735 this.month(date.getUTCMonth()); 4736 this.date(date.getUTCDate()); 4737 return this; 4738 } 4739 4740 // FORMATTING 4741 4742 addFormatToken('Q', 0, 'Qo', 'quarter'); 4743 4744 // ALIASES 4745 4746 addUnitAlias('quarter', 'Q'); 4747 4748 // PRIORITY 4749 4750 addUnitPriority('quarter', 7); 4751 4752 // PARSING 4753 4754 addRegexToken('Q', match1); 4755 addParseToken('Q', function (input, array) { 4756 array[MONTH] = (toInt(input) - 1) * 3; 4757 }); 4758 4759 // MOMENTS 4760 4761 function getSetQuarter(input) { 4762 return input == null 4763 ? Math.ceil((this.month() + 1) / 3) 4764 : this.month((input - 1) * 3 + (this.month() % 3)); 4765 } 4766 4767 // FORMATTING 4768 4769 addFormatToken('D', ['DD', 2], 'Do', 'date'); 4770 4771 // ALIASES 4772 4773 addUnitAlias('date', 'D'); 4774 4775 // PRIORITY 4776 addUnitPriority('date', 9); 4777 4778 // PARSING 4779 4780 addRegexToken('D', match1to2); 4781 addRegexToken('DD', match1to2, match2); 4782 addRegexToken('Do', function (isStrict, locale) { 4783 // TODO: Remove "ordinalParse" fallback in next major release. 4784 return isStrict 4785 ? locale._dayOfMonthOrdinalParse || locale._ordinalParse 4786 : locale._dayOfMonthOrdinalParseLenient; 4787 }); 4788 4789 addParseToken(['D', 'DD'], DATE); 4790 addParseToken('Do', function (input, array) { 4791 array[DATE] = toInt(input.match(match1to2)[0]); 4792 }); 4793 4794 // MOMENTS 4795 4796 var getSetDayOfMonth = makeGetSet('Date', true); 4797 4798 // FORMATTING 4799 4800 addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); 4801 4802 // ALIASES 4803 4804 addUnitAlias('dayOfYear', 'DDD'); 4805 4806 // PRIORITY 4807 addUnitPriority('dayOfYear', 4); 4808 4809 // PARSING 4810 4811 addRegexToken('DDD', match1to3); 4812 addRegexToken('DDDD', match3); 4813 addParseToken(['DDD', 'DDDD'], function (input, array, config) { 4814 config._dayOfYear = toInt(input); 4815 }); 4816 4817 // HELPERS 4818 4819 // MOMENTS 4820 4821 function getSetDayOfYear(input) { 4822 var dayOfYear = 4823 Math.round( 4824 (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 4825 ) + 1; 4826 return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); 4827 } 4828 4829 // FORMATTING 4830 4831 addFormatToken('m', ['mm', 2], 0, 'minute'); 4832 4833 // ALIASES 4834 4835 addUnitAlias('minute', 'm'); 4836 4837 // PRIORITY 4838 4839 addUnitPriority('minute', 14); 4840 4841 // PARSING 4842 4843 addRegexToken('m', match1to2); 4844 addRegexToken('mm', match1to2, match2); 4845 addParseToken(['m', 'mm'], MINUTE); 4846 4847 // MOMENTS 4848 4849 var getSetMinute = makeGetSet('Minutes', false); 4850 4851 // FORMATTING 4852 4853 addFormatToken('s', ['ss', 2], 0, 'second'); 4854 4855 // ALIASES 4856 4857 addUnitAlias('second', 's'); 4858 4859 // PRIORITY 4860 4861 addUnitPriority('second', 15); 4862 4863 // PARSING 4864 4865 addRegexToken('s', match1to2); 4866 addRegexToken('ss', match1to2, match2); 4867 addParseToken(['s', 'ss'], SECOND); 4868 4869 // MOMENTS 4870 4871 var getSetSecond = makeGetSet('Seconds', false); 4872 4873 // FORMATTING 4874 4875 addFormatToken('S', 0, 0, function () { 4876 return ~~(this.millisecond() / 100); 4877 }); 4878 4879 addFormatToken(0, ['SS', 2], 0, function () { 4880 return ~~(this.millisecond() / 10); 4881 }); 4882 4883 addFormatToken(0, ['SSS', 3], 0, 'millisecond'); 4884 addFormatToken(0, ['SSSS', 4], 0, function () { 4885 return this.millisecond() * 10; 4886 }); 4887 addFormatToken(0, ['SSSSS', 5], 0, function () { 4888 return this.millisecond() * 100; 4889 }); 4890 addFormatToken(0, ['SSSSSS', 6], 0, function () { 4891 return this.millisecond() * 1000; 4892 }); 4893 addFormatToken(0, ['SSSSSSS', 7], 0, function () { 4894 return this.millisecond() * 10000; 4895 }); 4896 addFormatToken(0, ['SSSSSSSS', 8], 0, function () { 4897 return this.millisecond() * 100000; 4898 }); 4899 addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { 4900 return this.millisecond() * 1000000; 4901 }); 4902 4903 // ALIASES 4904 4905 addUnitAlias('millisecond', 'ms'); 4906 4907 // PRIORITY 4908 4909 addUnitPriority('millisecond', 16); 4910 4911 // PARSING 4912 4913 addRegexToken('S', match1to3, match1); 4914 addRegexToken('SS', match1to3, match2); 4915 addRegexToken('SSS', match1to3, match3); 4916 4917 var token, getSetMillisecond; 4918 for (token = 'SSSS'; token.length <= 9; token += 'S') { 4919 addRegexToken(token, matchUnsigned); 4920 } 4921 4922 function parseMs(input, array) { 4923 array[MILLISECOND] = toInt(('0.' + input) * 1000); 4924 } 4925 4926 for (token = 'S'; token.length <= 9; token += 'S') { 4927 addParseToken(token, parseMs); 4928 } 4929 4930 getSetMillisecond = makeGetSet('Milliseconds', false); 4931 4932 // FORMATTING 4933 4934 addFormatToken('z', 0, 0, 'zoneAbbr'); 4935 addFormatToken('zz', 0, 0, 'zoneName'); 4936 4937 // MOMENTS 4938 4939 function getZoneAbbr() { 4940 return this._isUTC ? 'UTC' : ''; 4941 } 4942 4943 function getZoneName() { 4944 return this._isUTC ? 'Coordinated Universal Time' : ''; 4945 } 4946 4947 var proto = Moment.prototype; 4948 4949 proto.add = add; 4950 proto.calendar = calendar$1; 4951 proto.clone = clone; 4952 proto.diff = diff; 4953 proto.endOf = endOf; 4954 proto.format = format; 4955 proto.from = from; 4956 proto.fromNow = fromNow; 4957 proto.to = to; 4958 proto.toNow = toNow; 4959 proto.get = stringGet; 4960 proto.invalidAt = invalidAt; 4961 proto.isAfter = isAfter; 4962 proto.isBefore = isBefore; 4963 proto.isBetween = isBetween; 4964 proto.isSame = isSame; 4965 proto.isSameOrAfter = isSameOrAfter; 4966 proto.isSameOrBefore = isSameOrBefore; 4967 proto.isValid = isValid$2; 4968 proto.lang = lang; 4969 proto.locale = locale; 4970 proto.localeData = localeData; 4971 proto.max = prototypeMax; 4972 proto.min = prototypeMin; 4973 proto.parsingFlags = parsingFlags; 4974 proto.set = stringSet; 4975 proto.startOf = startOf; 4976 proto.subtract = subtract; 4977 proto.toArray = toArray; 4978 proto.toObject = toObject; 4979 proto.toDate = toDate; 4980 proto.toISOString = toISOString; 4981 proto.inspect = inspect; 4982 if (typeof Symbol !== 'undefined' && Symbol.for != null) { 4983 proto[Symbol.for('nodejs.util.inspect.custom')] = function () { 4984 return 'Moment<' + this.format() + '>'; 4985 }; 4986 } 4987 proto.toJSON = toJSON; 4988 proto.toString = toString; 4989 proto.unix = unix; 4990 proto.valueOf = valueOf; 4991 proto.creationData = creationData; 4992 proto.eraName = getEraName; 4993 proto.eraNarrow = getEraNarrow; 4994 proto.eraAbbr = getEraAbbr; 4995 proto.eraYear = getEraYear; 4996 proto.year = getSetYear; 4997 proto.isLeapYear = getIsLeapYear; 4998 proto.weekYear = getSetWeekYear; 4999 proto.isoWeekYear = getSetISOWeekYear; 5000 proto.quarter = proto.quarters = getSetQuarter; 5001 proto.month = getSetMonth; 5002 proto.daysInMonth = getDaysInMonth; 5003 proto.week = proto.weeks = getSetWeek; 5004 proto.isoWeek = proto.isoWeeks = getSetISOWeek; 5005 proto.weeksInYear = getWeeksInYear; 5006 proto.weeksInWeekYear = getWeeksInWeekYear; 5007 proto.isoWeeksInYear = getISOWeeksInYear; 5008 proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; 5009 proto.date = getSetDayOfMonth; 5010 proto.day = proto.days = getSetDayOfWeek; 5011 proto.weekday = getSetLocaleDayOfWeek; 5012 proto.isoWeekday = getSetISODayOfWeek; 5013 proto.dayOfYear = getSetDayOfYear; 5014 proto.hour = proto.hours = getSetHour; 5015 proto.minute = proto.minutes = getSetMinute; 5016 proto.second = proto.seconds = getSetSecond; 5017 proto.millisecond = proto.milliseconds = getSetMillisecond; 5018 proto.utcOffset = getSetOffset; 5019 proto.utc = setOffsetToUTC; 5020 proto.local = setOffsetToLocal; 5021 proto.parseZone = setOffsetToParsedOffset; 5022 proto.hasAlignedHourOffset = hasAlignedHourOffset; 5023 proto.isDST = isDaylightSavingTime; 5024 proto.isLocal = isLocal; 5025 proto.isUtcOffset = isUtcOffset; 5026 proto.isUtc = isUtc; 5027 proto.isUTC = isUtc; 5028 proto.zoneAbbr = getZoneAbbr; 5029 proto.zoneName = getZoneName; 5030 proto.dates = deprecate( 5031 'dates accessor is deprecated. Use date instead.', 5032 getSetDayOfMonth 5033 ); 5034 proto.months = deprecate( 5035 'months accessor is deprecated. Use month instead', 5036 getSetMonth 5037 ); 5038 proto.years = deprecate( 5039 'years accessor is deprecated. Use year instead', 5040 getSetYear 5041 ); 5042 proto.zone = deprecate( 5043 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', 5044 getSetZone 5045 ); 5046 proto.isDSTShifted = deprecate( 5047 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', 5048 isDaylightSavingTimeShifted 5049 ); 5050 5051 function createUnix(input) { 5052 return createLocal(input * 1000); 5053 } 5054 5055 function createInZone() { 5056 return createLocal.apply(null, arguments).parseZone(); 5057 } 5058 5059 function preParsePostFormat(string) { 5060 return string; 5061 } 5062 5063 var proto$1 = Locale.prototype; 5064 5065 proto$1.calendar = calendar; 5066 proto$1.longDateFormat = longDateFormat; 5067 proto$1.invalidDate = invalidDate; 5068 proto$1.ordinal = ordinal; 5069 proto$1.preparse = preParsePostFormat; 5070 proto$1.postformat = preParsePostFormat; 5071 proto$1.relativeTime = relativeTime; 5072 proto$1.pastFuture = pastFuture; 5073 proto$1.set = set; 5074 proto$1.eras = localeEras; 5075 proto$1.erasParse = localeErasParse; 5076 proto$1.erasConvertYear = localeErasConvertYear; 5077 proto$1.erasAbbrRegex = erasAbbrRegex; 5078 proto$1.erasNameRegex = erasNameRegex; 5079 proto$1.erasNarrowRegex = erasNarrowRegex; 5080 5081 proto$1.months = localeMonths; 5082 proto$1.monthsShort = localeMonthsShort; 5083 proto$1.monthsParse = localeMonthsParse; 5084 proto$1.monthsRegex = monthsRegex; 5085 proto$1.monthsShortRegex = monthsShortRegex; 5086 proto$1.week = localeWeek; 5087 proto$1.firstDayOfYear = localeFirstDayOfYear; 5088 proto$1.firstDayOfWeek = localeFirstDayOfWeek; 5089 5090 proto$1.weekdays = localeWeekdays; 5091 proto$1.weekdaysMin = localeWeekdaysMin; 5092 proto$1.weekdaysShort = localeWeekdaysShort; 5093 proto$1.weekdaysParse = localeWeekdaysParse; 5094 5095 proto$1.weekdaysRegex = weekdaysRegex; 5096 proto$1.weekdaysShortRegex = weekdaysShortRegex; 5097 proto$1.weekdaysMinRegex = weekdaysMinRegex; 5098 5099 proto$1.isPM = localeIsPM; 5100 proto$1.meridiem = localeMeridiem; 5101 5102 function get$1(format, index, field, setter) { 5103 var locale = getLocale(), 5104 utc = createUTC().set(setter, index); 5105 return locale[field](utc, format); 5106 } 5107 5108 function listMonthsImpl(format, index, field) { 5109 if (isNumber(format)) { 5110 index = format; 5111 format = undefined; 5112 } 5113 5114 format = format || ''; 5115 5116 if (index != null) { 5117 return get$1(format, index, field, 'month'); 5118 } 5119 5120 var i, 5121 out = []; 5122 for (i = 0; i < 12; i++) { 5123 out[i] = get$1(format, i, field, 'month'); 5124 } 5125 return out; 5126 } 5127 5128 // () 5129 // (5) 5130 // (fmt, 5) 5131 // (fmt) 5132 // (true) 5133 // (true, 5) 5134 // (true, fmt, 5) 5135 // (true, fmt) 5136 function listWeekdaysImpl(localeSorted, format, index, field) { 5137 if (typeof localeSorted === 'boolean') { 5138 if (isNumber(format)) { 5139 index = format; 5140 format = undefined; 5141 } 5142 5143 format = format || ''; 5144 } else { 5145 format = localeSorted; 5146 index = format; 5147 localeSorted = false; 5148 5149 if (isNumber(format)) { 5150 index = format; 5151 format = undefined; 5152 } 5153 5154 format = format || ''; 5155 } 5156 5157 var locale = getLocale(), 5158 shift = localeSorted ? locale._week.dow : 0, 5159 i, 5160 out = []; 5161 5162 if (index != null) { 5163 return get$1(format, (index + shift) % 7, field, 'day'); 5164 } 5165 5166 for (i = 0; i < 7; i++) { 5167 out[i] = get$1(format, (i + shift) % 7, field, 'day'); 5168 } 5169 return out; 5170 } 5171 5172 function listMonths(format, index) { 5173 return listMonthsImpl(format, index, 'months'); 5174 } 5175 5176 function listMonthsShort(format, index) { 5177 return listMonthsImpl(format, index, 'monthsShort'); 5178 } 5179 5180 function listWeekdays(localeSorted, format, index) { 5181 return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); 5182 } 5183 5184 function listWeekdaysShort(localeSorted, format, index) { 5185 return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); 5186 } 5187 5188 function listWeekdaysMin(localeSorted, format, index) { 5189 return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); 5190 } 5191 5192 getSetGlobalLocale('en', { 5193 eras: [ 5194 { 5195 since: '0001-01-01', 5196 until: +Infinity, 5197 offset: 1, 5198 name: 'Anno Domini', 5199 narrow: 'AD', 5200 abbr: 'AD', 5201 }, 5202 { 5203 since: '0000-12-31', 5204 until: -Infinity, 5205 offset: 1, 5206 name: 'Before Christ', 5207 narrow: 'BC', 5208 abbr: 'BC', 5209 }, 5210 ], 5211 dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, 5212 ordinal: function (number) { 5213 var b = number % 10, 5214 output = 5215 toInt((number % 100) / 10) === 1 5216 ? 'th' 5217 : b === 1 5218 ? 'st' 5219 : b === 2 5220 ? 'nd' 5221 : b === 3 5222 ? 'rd' 5223 : 'th'; 5224 return number + output; 5225 }, 5226 }); 5227 5228 // Side effect imports 5229 5230 hooks.lang = deprecate( 5231 'moment.lang is deprecated. Use moment.locale instead.', 5232 getSetGlobalLocale 5233 ); 5234 hooks.langData = deprecate( 5235 'moment.langData is deprecated. Use moment.localeData instead.', 5236 getLocale 5237 ); 5238 5239 var mathAbs = Math.abs; 5240 5241 function abs() { 5242 var data = this._data; 5243 5244 this._milliseconds = mathAbs(this._milliseconds); 5245 this._days = mathAbs(this._days); 5246 this._months = mathAbs(this._months); 5247 5248 data.milliseconds = mathAbs(data.milliseconds); 5249 data.seconds = mathAbs(data.seconds); 5250 data.minutes = mathAbs(data.minutes); 5251 data.hours = mathAbs(data.hours); 5252 data.months = mathAbs(data.months); 5253 data.years = mathAbs(data.years); 5254 5255 return this; 5256 } 5257 5258 function addSubtract$1(duration, input, value, direction) { 5259 var other = createDuration(input, value); 5260 5261 duration._milliseconds += direction * other._milliseconds; 5262 duration._days += direction * other._days; 5263 duration._months += direction * other._months; 5264 5265 return duration._bubble(); 5266 } 5267 5268 // supports only 2.0-style add(1, 's') or add(duration) 5269 function add$1(input, value) { 5270 return addSubtract$1(this, input, value, 1); 5271 } 5272 5273 // supports only 2.0-style subtract(1, 's') or subtract(duration) 5274 function subtract$1(input, value) { 5275 return addSubtract$1(this, input, value, -1); 5276 } 5277 5278 function absCeil(number) { 5279 if (number < 0) { 5280 return Math.floor(number); 5281 } else { 5282 return Math.ceil(number); 5283 } 5284 } 5285 5286 function bubble() { 5287 var milliseconds = this._milliseconds, 5288 days = this._days, 5289 months = this._months, 5290 data = this._data, 5291 seconds, 5292 minutes, 5293 hours, 5294 years, 5295 monthsFromDays; 5296 5297 // if we have a mix of positive and negative values, bubble down first 5298 // check: https://github.com/moment/moment/issues/2166 5299 if ( 5300 !( 5301 (milliseconds >= 0 && days >= 0 && months >= 0) || 5302 (milliseconds <= 0 && days <= 0 && months <= 0) 5303 ) 5304 ) { 5305 milliseconds += absCeil(monthsToDays(months) + days) * 864e5; 5306 days = 0; 5307 months = 0; 5308 } 5309 5310 // The following code bubbles up values, see the tests for 5311 // examples of what that means. 5312 data.milliseconds = milliseconds % 1000; 5313 5314 seconds = absFloor(milliseconds / 1000); 5315 data.seconds = seconds % 60; 5316 5317 minutes = absFloor(seconds / 60); 5318 data.minutes = minutes % 60; 5319 5320 hours = absFloor(minutes / 60); 5321 data.hours = hours % 24; 5322 5323 days += absFloor(hours / 24); 5324 5325 // convert days to months 5326 monthsFromDays = absFloor(daysToMonths(days)); 5327 months += monthsFromDays; 5328 days -= absCeil(monthsToDays(monthsFromDays)); 5329 5330 // 12 months -> 1 year 5331 years = absFloor(months / 12); 5332 months %= 12; 5333 5334 data.days = days; 5335 data.months = months; 5336 data.years = years; 5337 5338 return this; 5339 } 5340 5341 function daysToMonths(days) { 5342 // 400 years have 146097 days (taking into account leap year rules) 5343 // 400 years have 12 months === 4800 5344 return (days * 4800) / 146097; 5345 } 5346 5347 function monthsToDays(months) { 5348 // the reverse of daysToMonths 5349 return (months * 146097) / 4800; 5350 } 5351 5352 function as(units) { 5353 if (!this.isValid()) { 5354 return NaN; 5355 } 5356 var days, 5357 months, 5358 milliseconds = this._milliseconds; 5359 5360 units = normalizeUnits(units); 5361 5362 if (units === 'month' || units === 'quarter' || units === 'year') { 5363 days = this._days + milliseconds / 864e5; 5364 months = this._months + daysToMonths(days); 5365 switch (units) { 5366 case 'month': 5367 return months; 5368 case 'quarter': 5369 return months / 3; 5370 case 'year': 5371 return months / 12; 5372 } 5373 } else { 5374 // handle milliseconds separately because of floating point math errors (issue #1867) 5375 days = this._days + Math.round(monthsToDays(this._months)); 5376 switch (units) { 5377 case 'week': 5378 return days / 7 + milliseconds / 6048e5; 5379 case 'day': 5380 return days + milliseconds / 864e5; 5381 case 'hour': 5382 return days * 24 + milliseconds / 36e5; 5383 case 'minute': 5384 return days * 1440 + milliseconds / 6e4; 5385 case 'second': 5386 return days * 86400 + milliseconds / 1000; 5387 // Math.floor prevents floating point math errors here 5388 case 'millisecond': 5389 return Math.floor(days * 864e5) + milliseconds; 5390 default: 5391 throw new Error('Unknown unit ' + units); 5392 } 5393 } 5394 } 5395 5396 // TODO: Use this.as('ms')? 5397 function valueOf$1() { 5398 if (!this.isValid()) { 5399 return NaN; 5400 } 5401 return ( 5402 this._milliseconds + 5403 this._days * 864e5 + 5404 (this._months % 12) * 2592e6 + 5405 toInt(this._months / 12) * 31536e6 5406 ); 5407 } 5408 5409 function makeAs(alias) { 5410 return function () { 5411 return this.as(alias); 5412 }; 5413 } 5414 5415 var asMilliseconds = makeAs('ms'), 5416 asSeconds = makeAs('s'), 5417 asMinutes = makeAs('m'), 5418 asHours = makeAs('h'), 5419 asDays = makeAs('d'), 5420 asWeeks = makeAs('w'), 5421 asMonths = makeAs('M'), 5422 asQuarters = makeAs('Q'), 5423 asYears = makeAs('y'); 5424 5425 function clone$1() { 5426 return createDuration(this); 5427 } 5428 5429 function get$2(units) { 5430 units = normalizeUnits(units); 5431 return this.isValid() ? this[units + 's']() : NaN; 5432 } 5433 5434 function makeGetter(name) { 5435 return function () { 5436 return this.isValid() ? this._data[name] : NaN; 5437 }; 5438 } 5439 5440 var milliseconds = makeGetter('milliseconds'), 5441 seconds = makeGetter('seconds'), 5442 minutes = makeGetter('minutes'), 5443 hours = makeGetter('hours'), 5444 days = makeGetter('days'), 5445 months = makeGetter('months'), 5446 years = makeGetter('years'); 5447 5448 function weeks() { 5449 return absFloor(this.days() / 7); 5450 } 5451 5452 var round = Math.round, 5453 thresholds = { 5454 ss: 44, // a few seconds to seconds 5455 s: 45, // seconds to minute 5456 m: 45, // minutes to hour 5457 h: 22, // hours to day 5458 d: 26, // days to month/week 5459 w: null, // weeks to month 5460 M: 11, // months to year 5461 }; 5462 5463 // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize 5464 function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { 5465 return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); 5466 } 5467 5468 function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { 5469 var duration = createDuration(posNegDuration).abs(), 5470 seconds = round(duration.as('s')), 5471 minutes = round(duration.as('m')), 5472 hours = round(duration.as('h')), 5473 days = round(duration.as('d')), 5474 months = round(duration.as('M')), 5475 weeks = round(duration.as('w')), 5476 years = round(duration.as('y')), 5477 a = 5478 (seconds <= thresholds.ss && ['s', seconds]) || 5479 (seconds < thresholds.s && ['ss', seconds]) || 5480 (minutes <= 1 && ['m']) || 5481 (minutes < thresholds.m && ['mm', minutes]) || 5482 (hours <= 1 && ['h']) || 5483 (hours < thresholds.h && ['hh', hours]) || 5484 (days <= 1 && ['d']) || 5485 (days < thresholds.d && ['dd', days]); 5486 5487 if (thresholds.w != null) { 5488 a = 5489 a || 5490 (weeks <= 1 && ['w']) || 5491 (weeks < thresholds.w && ['ww', weeks]); 5492 } 5493 a = a || 5494 (months <= 1 && ['M']) || 5495 (months < thresholds.M && ['MM', months]) || 5496 (years <= 1 && ['y']) || ['yy', years]; 5497 5498 a[2] = withoutSuffix; 5499 a[3] = +posNegDuration > 0; 5500 a[4] = locale; 5501 return substituteTimeAgo.apply(null, a); 5502 } 5503 5504 // This function allows you to set the rounding function for relative time strings 5505 function getSetRelativeTimeRounding(roundingFunction) { 5506 if (roundingFunction === undefined) { 5507 return round; 5508 } 5509 if (typeof roundingFunction === 'function') { 5510 round = roundingFunction; 5511 return true; 5512 } 5513 return false; 5514 } 5515 5516 // This function allows you to set a threshold for relative time strings 5517 function getSetRelativeTimeThreshold(threshold, limit) { 5518 if (thresholds[threshold] === undefined) { 5519 return false; 5520 } 5521 if (limit === undefined) { 5522 return thresholds[threshold]; 5523 } 5524 thresholds[threshold] = limit; 5525 if (threshold === 's') { 5526 thresholds.ss = limit - 1; 5527 } 5528 return true; 5529 } 5530 5531 function humanize(argWithSuffix, argThresholds) { 5532 if (!this.isValid()) { 5533 return this.localeData().invalidDate(); 5534 } 5535 5536 var withSuffix = false, 5537 th = thresholds, 5538 locale, 5539 output; 5540 5541 if (typeof argWithSuffix === 'object') { 5542 argThresholds = argWithSuffix; 5543 argWithSuffix = false; 5544 } 5545 if (typeof argWithSuffix === 'boolean') { 5546 withSuffix = argWithSuffix; 5547 } 5548 if (typeof argThresholds === 'object') { 5549 th = Object.assign({}, thresholds, argThresholds); 5550 if (argThresholds.s != null && argThresholds.ss == null) { 5551 th.ss = argThresholds.s - 1; 5552 } 5553 } 5554 5555 locale = this.localeData(); 5556 output = relativeTime$1(this, !withSuffix, th, locale); 5557 5558 if (withSuffix) { 5559 output = locale.pastFuture(+this, output); 5560 } 5561 5562 return locale.postformat(output); 5563 } 5564 5565 var abs$1 = Math.abs; 5566 5567 function sign(x) { 5568 return (x > 0) - (x < 0) || +x; 5569 } 5570 5571 function toISOString$1() { 5572 // for ISO strings we do not use the normal bubbling rules: 5573 // * milliseconds bubble up until they become hours 5574 // * days do not bubble at all 5575 // * months bubble up until they become years 5576 // This is because there is no context-free conversion between hours and days 5577 // (think of clock changes) 5578 // and also not between days and months (28-31 days per month) 5579 if (!this.isValid()) { 5580 return this.localeData().invalidDate(); 5581 } 5582 5583 var seconds = abs$1(this._milliseconds) / 1000, 5584 days = abs$1(this._days), 5585 months = abs$1(this._months), 5586 minutes, 5587 hours, 5588 years, 5589 s, 5590 total = this.asSeconds(), 5591 totalSign, 5592 ymSign, 5593 daysSign, 5594 hmsSign; 5595 5596 if (!total) { 5597 // this is the same as C#'s (Noda) and python (isodate)... 5598 // but not other JS (goog.date) 5599 return 'P0D'; 5600 } 5601 5602 // 3600 seconds -> 60 minutes -> 1 hour 5603 minutes = absFloor(seconds / 60); 5604 hours = absFloor(minutes / 60); 5605 seconds %= 60; 5606 minutes %= 60; 5607 5608 // 12 months -> 1 year 5609 years = absFloor(months / 12); 5610 months %= 12; 5611 5612 // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js 5613 s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; 5614 5615 totalSign = total < 0 ? '-' : ''; 5616 ymSign = sign(this._months) !== sign(total) ? '-' : ''; 5617 daysSign = sign(this._days) !== sign(total) ? '-' : ''; 5618 hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; 5619 5620 return ( 5621 totalSign + 5622 'P' + 5623 (years ? ymSign + years + 'Y' : '') + 5624 (months ? ymSign + months + 'M' : '') + 5625 (days ? daysSign + days + 'D' : '') + 5626 (hours || minutes || seconds ? 'T' : '') + 5627 (hours ? hmsSign + hours + 'H' : '') + 5628 (minutes ? hmsSign + minutes + 'M' : '') + 5629 (seconds ? hmsSign + s + 'S' : '') 5630 ); 5631 } 5632 5633 var proto$2 = Duration.prototype; 5634 5635 proto$2.isValid = isValid$1; 5636 proto$2.abs = abs; 5637 proto$2.add = add$1; 5638 proto$2.subtract = subtract$1; 5639 proto$2.as = as; 5640 proto$2.asMilliseconds = asMilliseconds; 5641 proto$2.asSeconds = asSeconds; 5642 proto$2.asMinutes = asMinutes; 5643 proto$2.asHours = asHours; 5644 proto$2.asDays = asDays; 5645 proto$2.asWeeks = asWeeks; 5646 proto$2.asMonths = asMonths; 5647 proto$2.asQuarters = asQuarters; 5648 proto$2.asYears = asYears; 5649 proto$2.valueOf = valueOf$1; 5650 proto$2._bubble = bubble; 5651 proto$2.clone = clone$1; 5652 proto$2.get = get$2; 5653 proto$2.milliseconds = milliseconds; 5654 proto$2.seconds = seconds; 5655 proto$2.minutes = minutes; 5656 proto$2.hours = hours; 5657 proto$2.days = days; 5658 proto$2.weeks = weeks; 5659 proto$2.months = months; 5660 proto$2.years = years; 5661 proto$2.humanize = humanize; 5662 proto$2.toISOString = toISOString$1; 5663 proto$2.toString = toISOString$1; 5664 proto$2.toJSON = toISOString$1; 5665 proto$2.locale = locale; 5666 proto$2.localeData = localeData; 5667 5668 proto$2.toIsoString = deprecate( 5669 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', 5670 toISOString$1 5671 ); 5672 proto$2.lang = lang; 5673 5674 // FORMATTING 5675 5676 addFormatToken('X', 0, 0, 'unix'); 5677 addFormatToken('x', 0, 0, 'valueOf'); 5678 5679 // PARSING 5680 5681 addRegexToken('x', matchSigned); 5682 addRegexToken('X', matchTimestamp); 5683 addParseToken('X', function (input, array, config) { 5684 config._d = new Date(parseFloat(input) * 1000); 5685 }); 5686 addParseToken('x', function (input, array, config) { 5687 config._d = new Date(toInt(input)); 5688 }); 5689 5690 //! moment.js 5691 5692 hooks.version = '2.2
56929.1'; 5693 5694 setHookCallback(createLocal); 5695 5696 hooks.fn = proto; 5697 hooks.min = min; 5698 hooks.max = max; 5699 hooks.now = now; 5700 hooks.utc = createUTC; 5701 hooks.unix = createUnix; 5702 hooks.months = listMonths; 5703 hooks.isDate = isDate; 5704 hooks.locale = getSetGlobalLocale; 5705 hooks.invalid = createInvalid; 5706 hooks.duration = createDuration; 5707 hooks.isMoment = isMoment; 5708 hooks.weekdays = listWeekdays; 5709 hooks.parseZone = createInZone; 5710 hooks.localeData = getLocale; 5711 hooks.isDuration = isDuration; 5712 hooks.monthsShort = listMonthsShort; 5713 hooks.weekdaysMin = listWeekdaysMin; 5714 hooks.defineLocale = defineLocale; 5715 hooks.updateLocale = updateLocale; 5716 hooks.locales = listLocales; 5717 hooks.weekdaysShort = listWeekdaysShort; 5718 hooks.normalizeUnits = normalizeUnits; 5719 hooks.relativeTimeRounding = getSetRelativeTimeRounding; 5720 hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; 5721 hooks.calendarFormat = getCalendarFormat; 5722 hooks.prototype = proto; 5723 5724 // currently HTML5 input type only supports 24-hour formats 5725 hooks.HTML5_FMT = { 5726 DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" /> 5727 DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" /> 5728 DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" /> 5729 DATE: 'YYYY-MM-DD', // <input type="date" /> 5730 TIME: 'HH:mm', // <input type="time" /> 5731 TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" /> 5732 TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" /> 5733 WEEK: 'GGGG-[W]WW', // <input type="week" /> 5734 MONTH: 'YYYY-MM', // <input type="month" /> 5735 }; 5736 5737 return hooks; 5738 5739}))); 5740 5741/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3)(module))) 5742 5743/***/ }), 5744/* 1 */ 5745/***/ (function(module, exports, __webpack_require__) { 5746 5747/* WEBPACK VAR INJECTION */(function(global, module) {var __WEBPACK_AMD_DEFINE_RESULT__;/** 5748 * @license 5749 * Lodash <https://lodash.com/> 5750 * Copyright OpenJS Foundation and other contributors <https://openjsf.org/> 5751 * Released under MIT license <https://lodash.com/license> 5752 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE> 5753 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors 5754 */ 5755;(function() { 5756 5757 /** Used as a safe reference for `undefined` in pre-ES5 environments. */ 5758 var undefined
vendor: 12,195 bytes, lines 5758-6061
5758; 5759 5760 /** Used as the semantic version number. */ 5761 var VERSION = '4.17.21'; 5762 5763 /** Used as the size to enable large array optimizations. */ 5764 var LARGE_ARRAY_SIZE = 200; 5765 5766 /** Error message constants. */ 5767 var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.', 5768 FUNC_ERROR_TEXT = 'Expected a function', 5769 INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`'; 5770 5771 /** Used to stand-in for `undefined` hash values. */ 5772 var HASH_UNDEFINED = '__lodash_hash_undefined__'; 5773 5774 /** Used as the maximum memoize cache size. */ 5775 var MAX_MEMOIZE_SIZE = 500; 5776 5777 /** Used as the internal argument placeholder. */ 5778 var PLACEHOLDER = '__lodash_placeholder__'; 5779 5780 /** Used to compose bitmasks for cloning. */ 5781 var CLONE_DEEP_FLAG = 1, 5782 CLONE_FLAT_FLAG = 2, 5783 CLONE_SYMBOLS_FLAG = 4; 5784 5785 /** Used to compose bitmasks for value comparisons. */ 5786 var COMPARE_PARTIAL_FLAG = 1, 5787 COMPARE_UNORDERED_FLAG = 2; 5788 5789 /** Used to compose bitmasks for function metadata. */ 5790 var WRAP_BIND_FLAG = 1, 5791 WRAP_BIND_KEY_FLAG = 2, 5792 WRAP_CURRY_BOUND_FLAG = 4, 5793 WRAP_CURRY_FLAG = 8, 5794 WRAP_CURRY_RIGHT_FLAG = 16, 5795 WRAP_PARTIAL_FLAG = 32, 5796 WRAP_PARTIAL_RIGHT_FLAG = 64, 5797 WRAP_ARY_FLAG = 128, 5798 WRAP_REARG_FLAG = 256, 5799 WRAP_FLIP_FLAG = 512; 5800 5801 /** Used as default options for `_.truncate`. */ 5802 var DEFAULT_TRUNC_LENGTH = 30, 5803 DEFAULT_TRUNC_OMISSION = '...'; 5804 5805 /** Used to detect hot functions by number of calls within a span of milliseconds. */ 5806 var HOT_COUNT = 800, 5807 HOT_SPAN = 16; 5808 5809 /** Used to indicate the type of lazy iteratees. */ 5810 var LAZY_FILTER_FLAG = 1, 5811 LAZY_MAP_FLAG = 2, 5812 LAZY_WHILE_FLAG = 3; 5813 5814 /** Used as references for various `Number` constants. */ 5815 var INFINITY = 1 / 0, 5816 MAX_SAFE_INTEGER = 9007199254740991, 5817 MAX_INTEGER = 1.7976931348623157e+308, 5818 NAN = 0 / 0; 5819 5820 /** Used as references for the maximum length and index of an array. */ 5821 var MAX_ARRAY_LENGTH = 4294967295, 5822 MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, 5823 HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; 5824 5825 /** Used to associate wrap methods with their bit flags. */ 5826 var wrapFlags = [ 5827 ['ary', WRAP_ARY_FLAG], 5828 ['bind', WRAP_BIND_FLAG], 5829 ['bindKey', WRAP_BIND_KEY_FLAG], 5830 ['curry', WRAP_CURRY_FLAG], 5831 ['curryRight', WRAP_CURRY_RIGHT_FLAG], 5832 ['flip', WRAP_FLIP_FLAG], 5833 ['partial', WRAP_PARTIAL_FLAG], 5834 ['partialRight', WRAP_PARTIAL_RIGHT_FLAG], 5835 ['rearg', WRAP_REARG_FLAG] 5836 ]; 5837 5838 /** `Object#toString` result references. */ 5839 var argsTag = '[object Arguments]', 5840 arrayTag = '[object Array]', 5841 asyncTag = '[object AsyncFunction]', 5842 boolTag = '[object Boolean]', 5843 dateTag = '[object Date]', 5844 domExcTag = '[object DOMException]', 5845 errorTag = '[object Error]', 5846 funcTag = '[object Function]', 5847 genTag = '[object GeneratorFunction]', 5848 mapTag = '[object Map]', 5849 numberTag = '[object Number]', 5850 nullTag = '[object Null]', 5851 objectTag = '[object Object]', 5852 promiseTag = '[object Promise]', 5853 proxyTag = '[object Proxy]', 5854 regexpTag = '[object RegExp]', 5855 setTag = '[object Set]', 5856 stringTag = '[object String]', 5857 symbolTag = '[object Symbol]', 5858 undefinedTag = '[object Undefined]', 5859 weakMapTag = '[object WeakMap]', 5860 weakSetTag = '[object WeakSet]'; 5861 5862 var arrayBufferTag = '[object ArrayBuffer]', 5863 dataViewTag = '[object DataView]', 5864 float32Tag = '[object Float32Array]', 5865 float64Tag = '[object Float64Array]', 5866 int8Tag = '[object Int8Array]', 5867 int16Tag = '[object Int16Array]', 5868 int32Tag = '[object Int32Array]', 5869 uint8Tag = '[object Uint8Array]', 5870 uint8ClampedTag = '[object Uint8ClampedArray]', 5871 uint16Tag = '[object Uint16Array]', 5872 uint32Tag = '[object Uint32Array]'; 5873 5874 /** Used to match empty string literals in compiled template source. */ 5875 var reEmptyStringLeading = /\b__p \+= '';/g, 5876 reEmptyStringMiddle = /\b(__p \+=) '' \+/g, 5877 reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; 5878 5879 /** Used to match HTML entities and HTML characters. */ 5880 var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, 5881 reUnescapedHtml = /[&<>"']/g, 5882 reHasEscapedHtml = RegExp(reEscapedHtml.source), 5883 reHasUnescapedHtml = RegExp(reUnescapedHtml.source); 5884 5885 /** Used to match template delimiters. */ 5886 var reEscape = /<%-([\s\S]+?)%>/g, 5887 reEvaluate = /<%([\s\S]+?)%>/g, 5888 reInterpolate = /<%=([\s\S]+?)%>/g; 5889 5890 /** Used to match property names within property paths. */ 5891 var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, 5892 reIsPlainProp = /^\w*$/, 5893 rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; 5894 5895 /** 5896 * Used to match `RegExp` 5897 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). 5898 */ 5899 var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, 5900 reHasRegExpChar = RegExp(reRegExpChar.source); 5901 5902 /** Used to match leading whitespace. */ 5903 var reTrimStart = /^\s+/; 5904 5905 /** Used to match a single whitespace character. */ 5906 var reWhitespace = /\s/; 5907 5908 /** Used to match wrap detail comments. */ 5909 var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, 5910 reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, 5911 reSplitDetails = /,? & /; 5912 5913 /** Used to match words composed of alphanumeric characters. */ 5914 var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; 5915 5916 /** 5917 * Used to validate the `validate` option in `_.template` variable. 5918 * 5919 * Forbids characters which could potentially change the meaning of the function argument definition: 5920 * - "()," (modification of function parameters) 5921 * - "=" (default value) 5922 * - "[]{}" (destructuring of function parameters) 5923 * - "/" (beginning of a comment) 5924 * - whitespace 5925 */ 5926 var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/; 5927 5928 /** Used to match backslashes in property paths. */ 5929 var reEscapeChar = /\\(\\)?/g; 5930 5931 /** 5932 * Used to match 5933 * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components). 5934 */ 5935 var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; 5936 5937 /** Used to match `RegExp` flags from their coerced string values. */ 5938 var reFlags = /\w*$/; 5939 5940 /** Used to detect bad signed hexadecimal string values. */ 5941 var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; 5942 5943 /** Used to detect binary string values. */ 5944 var reIsBinary = /^0b[01]+$/i; 5945 5946 /** Used to detect host constructors (Safari). */ 5947 var reIsHostCtor = /^\[object .+?Constructor\]$/; 5948 5949 /** Used to detect octal string values. */ 5950 var reIsOctal = /^0o[0-7]+$/i; 5951 5952 /** Used to detect unsigned integer values. */ 5953 var reIsUint = /^(?:0|[1-9]\d*)$/; 5954 5955 /** Used to match Latin Unicode letters (excluding mathematical operators). */ 5956 var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; 5957 5958 /** Used to ensure capturing order of template delimiters. */ 5959 var reNoMatch = /($^)/; 5960 5961 /** Used to match unescaped characters in compiled string literals. */ 5962 var reUnescapedString = /['\n\r\u2028\u2029\\]/g; 5963 5964 /** Used to compose unicode character classes. */ 5965 var rsAstralRange = '\\ud800-\\udfff', 5966 rsComboMarksRange = '\\u0300-\\u036f', 5967 reComboHalfMarksRange = '\\ufe20-\\ufe2f', 5968 rsComboSymbolsRange = '\\u20d0-\\u20ff', 5969 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, 5970 rsDingbatRange = '\\u2700-\\u27bf', 5971 rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff', 5972 rsMathOpRange = '\\xac\\xb1\\xd7\\xf7', 5973 rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf', 5974 rsPunctuationRange = '\\u2000-\\u206f', 5975 rsSpaceRange = ' \\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', 5976 rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde', 5977 rsVarRange = '\\ufe0e\\ufe0f', 5978 rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; 5979 5980 /** Used to compose unicode capture groups. */ 5981 var rsApos = "['\u2019]", 5982 rsAstral = '[' + rsAstralRange + ']', 5983 rsBreak = '[' + rsBreakRange + ']', 5984 rsCombo = '[' + rsComboRange + ']', 5985 rsDigits = '\\d+', 5986 rsDingbat = '[' + rsDingbatRange + ']', 5987 rsLower = '[' + rsLowerRange + ']', 5988 rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']', 5989 rsFitz = '\\ud83c[\\udffb-\\udfff]', 5990 rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', 5991 rsNonAstral = '[^' + rsAstralRange + ']', 5992 rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', 5993 rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', 5994 rsUpper = '[' + rsUpperRange + ']', 5995 rsZWJ = '\\u200d'; 5996 5997 /** Used to compose unicode regexes. */ 5998 var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')', 5999 rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')', 6000 rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?', 6001 rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?', 6002 reOptMod = rsModifier + '?', 6003 rsOptVar = '[' + rsVarRange + ']?', 6004 rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', 6005 rsOrdLower = '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])', 6006 rsOrdUpper = '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])', 6007 rsSeq = rsOptVar + reOptMod + rsOptJoin, 6008 rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq, 6009 rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; 6010 6011 /** Used to match apostrophes. */ 6012 var reApos = RegExp(rsApos, 'g'); 6013 6014 /** 6015 * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and 6016 * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols). 6017 */ 6018 var reComboMark = RegExp(rsCombo, 'g'); 6019 6020 /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ 6021 var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); 6022 6023 /** Used to match complex or compound words. */ 6024 var reUnicodeWord = RegExp([ 6025 rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', 6026 rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', 6027 rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, 6028 rsUpper + '+' + rsOptContrUpper, 6029 rsOrdUpper, 6030 rsOrdLower, 6031 rsDigits, 6032 rsEmoji 6033 ].join('|'), 'g'); 6034 6035 /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ 6036 var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); 6037 6038 /** Used to detect strings that need a more robust regexp to match words. */ 6039 var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; 6040 6041 /** Used to assign default `context` object properties. */ 6042 var contextProps = [ 6043 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array', 6044 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object', 6045 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array', 6046 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap', 6047 '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout' 6048 ]; 6049 6050 /** Used to make template sourceURLs easier to identify. */ 6051 var templateCounter = -1; 6052 6053 /** Used to identify `toStringTag` values of typed arrays. */ 6054 var typedArrayTags = {}; 6055 typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = 6056 typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = 6057 typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = 6058 typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = 6059 typedArrayTags[uint32Tag] = true; 6060 typedArrayTags[argsTag] = typedArrayTags[arrayTag] = 6061 typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
vendor: 5,923 bytes, lines 6062-6196
6062 typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = 6063 typedArrayTags[errorTag] = typedArrayTags[funcTag] = 6064 typedArrayTags[mapTag] = typedArrayTags[numberTag] = 6065 typedArrayTags[objectTag] = typedArrayTags[regexpTag] = 6066 typedArrayTags[setTag] = typedArrayTags[stringTag] = 6067 typedArrayTags[weakMapTag] = false; 6068 6069 /** Used to identify `toStringTag` values supported by `_.clone`. */ 6070 var cloneableTags = {}; 6071 cloneableTags[argsTag] = cloneableTags[arrayTag] = 6072 cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = 6073 cloneableTags[boolTag] = cloneableTags[dateTag] = 6074 cloneableTags[float32Tag] = cloneableTags[float64Tag] = 6075 cloneableTags[int8Tag] = cloneableTags[int16Tag] = 6076 cloneableTags[int32Tag] = cloneableTags[mapTag] = 6077 cloneableTags[numberTag] = cloneableTags[objectTag] = 6078 cloneableTags[regexpTag] = cloneableTags[setTag] = 6079 cloneableTags[stringTag] = cloneableTags[symbolTag] = 6080 cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = 6081 cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; 6082 cloneableTags[errorTag] = cloneableTags[funcTag] = 6083 cloneableTags[weakMapTag] = false; 6084 6085 /** Used to map Latin Unicode letters to basic Latin letters. */ 6086 var deburredLetters = { 6087 // Latin-1 Supplement block. 6088 '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', 6089 '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', 6090 '\xc7': 'C', '\xe7': 'c', 6091 '\xd0': 'D', '\xf0': 'd', 6092 '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', 6093 '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', 6094 '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', 6095 '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', 6096 '\xd1': 'N', '\xf1': 'n', 6097 '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', 6098 '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', 6099 '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', 6100 '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', 6101 '\xdd': 'Y', '\xfd': 'y', '\xff': 'y', 6102 '\xc6': 'Ae', '\xe6': 'ae', 6103 '\xde': 'Th', '\xfe': 'th', 6104 '\xdf': 'ss', 6105 // Latin Extended-A block. 6106 '\u0100': 'A', '\u0102': 'A', '\u0104': 'A', 6107 '\u0101': 'a', '\u0103': 'a', '\u0105': 'a', 6108 '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C', 6109 '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c', 6110 '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd', 6111 '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E', 6112 '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e', 6113 '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G', 6114 '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g', 6115 '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h', 6116 '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I', 6117 '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i', 6118 '\u0134': 'J', '\u0135': 'j', 6119 '\u0136': 'K', '\u0137': 'k', '\u0138': 'k', 6120 '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L', 6121 '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l', 6122 '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N', 6123 '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n', 6124 '\u014c': 'O', '\u014e': 'O', '\u0150': 'O', 6125 '\u014d': 'o', '\u014f': 'o', '\u0151': 'o', 6126 '\u0154': 'R', '\u0156': 'R', '\u0158': 'R', 6127 '\u0155': 'r', '\u0157': 'r', '\u0159': 'r', 6128 '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S', 6129 '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's', 6130 '\u0162': 'T', '\u0164': 'T', '\u0166': 'T', 6131 '\u0163': 't', '\u0165': 't', '\u0167': 't', 6132 '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U', 6133 '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u', 6134 '\u0174': 'W', '\u0175': 'w', 6135 '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y', 6136 '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z', 6137 '\u017a': 'z', '\u017c': 'z', '\u017e': 'z', 6138 '\u0132': 'IJ', '\u0133': 'ij', 6139 '\u0152': 'Oe', '\u0153': 'oe', 6140 '\u0149': "'n", '\u017f': 's' 6141 }; 6142 6143 /** Used to map characters to HTML entities. */ 6144 var htmlEscapes = { 6145 '&': '&', 6146 '<': '<', 6147 '>': '>', 6148 '"': '"', 6149 "'": ''' 6150 }; 6151 6152 /** Used to map HTML entities to characters. */ 6153 var htmlUnescapes = { 6154 '&': '&', 6155 '<': '<', 6156 '>': '>', 6157 '"': '"', 6158 ''': "'" 6159 }; 6160 6161 /** Used to escape characters for inclusion in compiled string literals. */ 6162 var stringEscapes = { 6163 '\\': '\\', 6164 "'": "'", 6165 '\n': 'n', 6166 '\r': 'r', 6167 '\u2028': 'u2028', 6168 '\u2029': 'u2029' 6169 }; 6170 6171 /** Built-in method references without a dependency on `root`. */ 6172 var freeParseFloat = parseFloat, 6173 freeParseInt = parseInt; 6174 6175 /** Detect free variable `global` from Node.js. */ 6176 var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; 6177 6178 /** Detect free variable `self`. */ 6179 var freeSelf = typeof self == 'object' && self && self.Object === Object && self; 6180 6181 /** Used as a reference to the global object. */ 6182 var root = freeGlobal || freeSelf || Function('return this')(); 6183 6184 /** Detect free variable `exports`. */ 6185 var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; 6186 6187 /** Detect free variable `module`. */ 6188 var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; 6189 6190 /** Detect the popular CommonJS extension `module.exports`. */ 6191 var moduleExports = freeModule && freeModule.exports === freeExports; 6192 6193 /** Detect free variable `process` from Node.js. */ 6194 var freeProcess = moduleExports && freeGlobal.process; 6195 6196 /** Used to access faster Node.js helpers. */
vendor: 8,860 bytes, lines 6197-6490
6197 var nodeUtil = (function() { 6198 try { 6199 // Use `util.types` for Node.js 10+. 6200 var types = freeModule && freeModule.require && freeModule.require('util').types; 6201 6202 if (types) { 6203 return types; 6204 } 6205 6206 // Legacy `process.binding('util')` for Node.js < 10. 6207 return freeProcess && freeProcess.binding && freeProcess.binding('util'); 6208 } catch (e) {} 6209 }()); 6210 6211 /* Node.js helper references. */ 6212 var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, 6213 nodeIsDate = nodeUtil && nodeUtil.isDate, 6214 nodeIsMap = nodeUtil && nodeUtil.isMap, 6215 nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, 6216 nodeIsSet = nodeUtil && nodeUtil.isSet, 6217 nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; 6218 6219 /*--------------------------------------------------------------------------*/ 6220 6221 /** 6222 * A faster alternative to `Function#apply`, this function invokes `func` 6223 * with the `this` binding of `thisArg` and the arguments of `args`. 6224 * 6225 * @private 6226 * @param {Function} func The function to invoke. 6227 * @param {*} thisArg The `this` binding of `func`. 6228 * @param {Array} args The arguments to invoke `func` with. 6229 * @returns {*} Returns the result of `func`. 6230 */ 6231 function apply(func, thisArg, args) { 6232 switch (args.length) { 6233 case 0: return func.call(thisArg); 6234 case 1: return func.call(thisArg, args[0]); 6235 case 2: return func.call(thisArg, args[0], args[1]); 6236 case 3: return func.call(thisArg, args[0], args[1], args[2]); 6237 } 6238 return func.apply(thisArg, args); 6239 } 6240 6241 /** 6242 * A specialized version of `baseAggregator` for arrays. 6243 * 6244 * @private 6245 * @param {Array} [array] The array to iterate over. 6246 * @param {Function} setter The function to set `accumulator` values. 6247 * @param {Function} iteratee The iteratee to transform keys. 6248 * @param {Object} accumulator The initial aggregated object. 6249 * @returns {Function} Returns `accumulator`. 6250 */ 6251 function arrayAggregator(array, setter, iteratee, accumulator) { 6252 var index = -1, 6253 length = array == null ? 0 : array.length; 6254 6255 while (++index < length) { 6256 var value = array[index]; 6257 setter(accumulator, value, iteratee(value), array); 6258 } 6259 return accumulator; 6260 } 6261 6262 /** 6263 * A specialized version of `_.forEach` for arrays without support for 6264 * iteratee shorthands. 6265 * 6266 * @private 6267 * @param {Array} [array] The array to iterate over. 6268 * @param {Function} iteratee The function invoked per iteration. 6269 * @returns {Array} Returns `array`. 6270 */ 6271 function arrayEach(array, iteratee) { 6272 var index = -1, 6273 length = array == null ? 0 : array.length; 6274 6275 while (++index < length) { 6276 if (iteratee(array[index], index, array) === false) { 6277 break; 6278 } 6279 } 6280 return array; 6281 } 6282 6283 /** 6284 * A specialized version of `_.forEachRight` for arrays without support for 6285 * iteratee shorthands. 6286 * 6287 * @private 6288 * @param {Array} [array] The array to iterate over. 6289 * @param {Function} iteratee The function invoked per iteration. 6290 * @returns {Array} Returns `array`. 6291 */ 6292 function arrayEachRight(array, iteratee) { 6293 var length = array == null ? 0 : array.length; 6294 6295 while (length--) { 6296 if (iteratee(array[length], length, array) === false) { 6297 break; 6298 } 6299 } 6300 return array; 6301 } 6302 6303 /** 6304 * A specialized version of `_.every` for arrays without support for 6305 * iteratee shorthands. 6306 * 6307 * @private 6308 * @param {Array} [array] The array to iterate over. 6309 * @param {Function} predicate The function invoked per iteration. 6310 * @returns {boolean} Returns `true` if all elements pass the predicate check, 6311 * else `false`. 6312 */ 6313 function arrayEvery(array, predicate) { 6314 var index = -1, 6315 length = array == null ? 0 : array.length; 6316 6317 while (++index < length) { 6318 if (!predicate(array[index], index, array)) { 6319 return false; 6320 } 6321 } 6322 return true; 6323 } 6324 6325 /** 6326 * A specialized version of `_.filter` for arrays without support for 6327 * iteratee shorthands. 6328 * 6329 * @private 6330 * @param {Array} [array] The array to iterate over. 6331 * @param {Function} predicate The function invoked per iteration. 6332 * @returns {Array} Returns the new filtered array. 6333 */ 6334 function arrayFilter(array, predicate) { 6335 var index = -1, 6336 length = array == null ? 0 : array.length, 6337 resIndex = 0, 6338 result = []; 6339 6340 while (++index < length) { 6341 var value = array[index]; 6342 if (predicate(value, index, array)) { 6343 result[resIndex++] = value; 6344 } 6345 } 6346 return result; 6347 } 6348 6349 /** 6350 * A specialized version of `_.includes` for arrays without support for 6351 * specifying an index to search from. 6352 * 6353 * @private 6354 * @param {Array} [array] The array to inspect. 6355 * @param {*} target The value to search for. 6356 * @returns {boolean} Returns `true` if `target` is found, else `false`. 6357 */ 6358 function arrayIncludes(array, value) { 6359 var length = array == null ? 0 : array.length; 6360 return !!length && baseIndexOf(array, value, 0) > -1; 6361 } 6362 6363 /** 6364 * This function is like `arrayIncludes` except that it accepts a comparator. 6365 * 6366 * @private 6367 * @param {Array} [array] The array to inspect. 6368 * @param {*} target The value to search for. 6369 * @param {Function} comparator The comparator invoked per element. 6370 * @returns {boolean} Returns `true` if `target` is found, else `false`. 6371 */ 6372 function arrayIncludesWith(array, value, comparator) { 6373 var index = -1, 6374 length = array == null ? 0 : array.length; 6375 6376 while (++index < length) { 6377 if (comparator(value, array[index])) { 6378 return true; 6379 } 6380 } 6381 return false; 6382 } 6383 6384 /** 6385 * A specialized version of `_.map` for arrays without support for iteratee 6386 * shorthands. 6387 * 6388 * @private 6389 * @param {Array} [array] The array to iterate over. 6390 * @param {Function} iteratee The function invoked per iteration. 6391 * @returns {Array} Returns the new mapped array. 6392 */ 6393 function arrayMap(array, iteratee) { 6394 var index = -1, 6395 length = array == null ? 0 : array.length, 6396 result = Array(length); 6397 6398 while (++index < length) { 6399 result[index] = iteratee(array[index], index, array); 6400 } 6401 return result; 6402 } 6403 6404 /** 6405 * Appends the elements of `values` to `array`. 6406 * 6407 * @private 6408 * @param {Array} array The array to modify. 6409 * @param {Array} values The values to append. 6410 * @returns {Array} Returns `array`. 6411 */ 6412 function arrayPush(array, values) { 6413 var index = -1, 6414 length = values.length, 6415 offset = array.length; 6416 6417 while (++index < length) { 6418 array[offset + index] = values[index]; 6419 } 6420 return array; 6421 } 6422 6423 /** 6424 * A specialized version of `_.reduce` for arrays without support for 6425 * iteratee shorthands. 6426 * 6427 * @private 6428 * @param {Array} [array] The array to iterate over. 6429 * @param {Function} iteratee The function invoked per iteration. 6430 * @param {*} [accumulator] The initial value. 6431 * @param {boolean} [initAccum] Specify using the first element of `array` as 6432 * the initial value. 6433 * @returns {*} Returns the accumulated value. 6434 */ 6435 function arrayReduce(array, iteratee, accumulator, initAccum) { 6436 var index = -1, 6437 length = array == null ? 0 : array.length; 6438 6439 if (initAccum && length) { 6440 accumulator = array[++index]; 6441 } 6442 while (++index < length) { 6443 accumulator = iteratee(accumulator, array[index], index, array); 6444 } 6445 return accumulator; 6446 } 6447 6448 /** 6449 * A specialized version of `_.reduceRight` for arrays without support for 6450 * iteratee shorthands. 6451 * 6452 * @private 6453 * @param {Array} [array] The array to iterate over. 6454 * @param {Function} iteratee The function invoked per iteration. 6455 * @param {*} [accumulator] The initial value. 6456 * @param {boolean} [initAccum] Specify using the last element of `array` as 6457 * the initial value. 6458 * @returns {*} Returns the accumulated value. 6459 */ 6460 function arrayReduceRight(array, iteratee, accumulator, initAccum) { 6461 var length = array == null ? 0 : array.length; 6462 if (initAccum && length) { 6463 accumulator = array[--length]; 6464 } 6465 while (length--) { 6466 accumulator = iteratee(accumulator, array[length], length, array); 6467 } 6468 return accumulator; 6469 } 6470 6471 /** 6472 * A specialized version of `_.some` for arrays without support for iteratee 6473 * shorthands. 6474 * 6475 * @private 6476 * @param {Array} [array] The array to iterate over. 6477 * @param {Function} predicate The function invoked per iteration. 6478 * @returns {boolean} Returns `true` if any element passes the predicate check, 6479 * else `false`. 6480 */ 6481 function arraySome(array, predicate) { 6482 var index = -1, 6483 length = array == null ? 0 : array.length; 6484 6485 while (++index < length) { 6486 if (predicate(array[index], index, array)) { 6487 return true; 6488 } 6489 } 6490 return false;
vendor: 12,899 bytes, lines 6491-6928
6491 } 6492 6493 /** 6494 * Gets the size of an ASCII `string`. 6495 * 6496 * @private 6497 * @param {string} string The string inspect. 6498 * @returns {number} Returns the string size. 6499 */ 6500 var asciiSize = baseProperty('length'); 6501 6502 /** 6503 * Converts an ASCII `string` to an array. 6504 * 6505 * @private 6506 * @param {string} string The string to convert. 6507 * @returns {Array} Returns the converted array. 6508 */ 6509 function asciiToArray(string) { 6510 return string.split(''); 6511 } 6512 6513 /** 6514 * Splits an ASCII `string` into an array of its words. 6515 * 6516 * @private 6517 * @param {string} The string to inspect. 6518 * @returns {Array} Returns the words of `string`. 6519 */ 6520 function asciiWords(string) { 6521 return string.match(reAsciiWord) || []; 6522 } 6523 6524 /** 6525 * The base implementation of methods like `_.findKey` and `_.findLastKey`, 6526 * without support for iteratee shorthands, which iterates over `collection` 6527 * using `eachFunc`. 6528 * 6529 * @private 6530 * @param {Array|Object} collection The collection to inspect. 6531 * @param {Function} predicate The function invoked per iteration. 6532 * @param {Function} eachFunc The function to iterate over `collection`. 6533 * @returns {*} Returns the found element or its key, else `undefined`. 6534 */ 6535 function baseFindKey(collection, predicate, eachFunc) { 6536 var result; 6537 eachFunc(collection, function(value, key, collection) { 6538 if (predicate(value, key, collection)) { 6539 result = key; 6540 return false; 6541 } 6542 }); 6543 return result; 6544 } 6545 6546 /** 6547 * The base implementation of `_.findIndex` and `_.findLastIndex` without 6548 * support for iteratee shorthands. 6549 * 6550 * @private 6551 * @param {Array} array The array to inspect. 6552 * @param {Function} predicate The function invoked per iteration. 6553 * @param {number} fromIndex The index to search from. 6554 * @param {boolean} [fromRight] Specify iterating from right to left. 6555 * @returns {number} Returns the index of the matched value, else `-1`. 6556 */ 6557 function baseFindIndex(array, predicate, fromIndex, fromRight) { 6558 var length = array.length, 6559 index = fromIndex + (fromRight ? 1 : -1); 6560 6561 while ((fromRight ? index-- : ++index < length)) { 6562 if (predicate(array[index], index, array)) { 6563 return index; 6564 } 6565 } 6566 return -1; 6567 } 6568 6569 /** 6570 * The base implementation of `_.indexOf` without `fromIndex` bounds checks. 6571 * 6572 * @private 6573 * @param {Array} array The array to inspect. 6574 * @param {*} value The value to search for. 6575 * @param {number} fromIndex The index to search from. 6576 * @returns {number} Returns the index of the matched value, else `-1`. 6577 */ 6578 function baseIndexOf(array, value, fromIndex) { 6579 return value === value 6580 ? strictIndexOf(array, value, fromIndex) 6581 : baseFindIndex(array, baseIsNaN, fromIndex); 6582 } 6583 6584 /** 6585 * This function is like `baseIndexOf` except that it accepts a comparator. 6586 * 6587 * @private 6588 * @param {Array} array The array to inspect. 6589 * @param {*} value The value to search for. 6590 * @param {number} fromIndex The index to search from. 6591 * @param {Function} comparator The comparator invoked per element. 6592 * @returns {number} Returns the index of the matched value, else `-1`. 6593 */ 6594 function baseIndexOfWith(array, value, fromIndex, comparator) { 6595 var index = fromIndex - 1, 6596 length = array.length; 6597 6598 while (++index < length) { 6599 if (comparator(array[index], value)) { 6600 return index; 6601 } 6602 } 6603 return -1; 6604 } 6605 6606 /** 6607 * The base implementation of `_.isNaN` without support for number objects. 6608 * 6609 * @private 6610 * @param {*} value The value to check. 6611 * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. 6612 */ 6613 function baseIsNaN(value) { 6614 return value !== value; 6615 } 6616 6617 /** 6618 * The base implementation of `_.mean` and `_.meanBy` without support for 6619 * iteratee shorthands. 6620 * 6621 * @private 6622 * @param {Array} array The array to iterate over. 6623 * @param {Function} iteratee The function invoked per iteration. 6624 * @returns {number} Returns the mean. 6625 */ 6626 function baseMean(array, iteratee) { 6627 var length = array == null ? 0 : array.length; 6628 return length ? (baseSum(array, iteratee) / length) : NAN; 6629 } 6630 6631 /** 6632 * The base implementation of `_.property` without support for deep paths. 6633 * 6634 * @private 6635 * @param {string} key The key of the property to get. 6636 * @returns {Function} Returns the new accessor function. 6637 */ 6638 function baseProperty(key) { 6639 return function(object) { 6640 return object == null ? undefined : object[key]; 6641 }; 6642 } 6643 6644 /** 6645 * The base implementation of `_.propertyOf` without support for deep paths. 6646 * 6647 * @private 6648 * @param {Object} object The object to query. 6649 * @returns {Function} Returns the new accessor function. 6650 */ 6651 function basePropertyOf(object) { 6652 return function(key) { 6653 return object == null ? undefined : object[key]; 6654 }; 6655 } 6656 6657 /** 6658 * The base implementation of `_.reduce` and `_.reduceRight`, without support 6659 * for iteratee shorthands, which iterates over `collection` using `eachFunc`. 6660 * 6661 * @private 6662 * @param {Array|Object} collection The collection to iterate over. 6663 * @param {Function} iteratee The function invoked per iteration. 6664 * @param {*} accumulator The initial value. 6665 * @param {boolean} initAccum Specify using the first or last element of 6666 * `collection` as the initial value. 6667 * @param {Function} eachFunc The function to iterate over `collection`. 6668 * @returns {*} Returns the accumulated value. 6669 */ 6670 function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { 6671 eachFunc(collection, function(value, index, collection) { 6672 accumulator = initAccum 6673 ? (initAccum = false, value) 6674 : iteratee(accumulator, value, index, collection); 6675 }); 6676 return accumulator; 6677 } 6678 6679 /** 6680 * The base implementation of `_.sortBy` which uses `comparer` to define the 6681 * sort order of `array` and replaces criteria objects with their corresponding 6682 * values. 6683 * 6684 * @private 6685 * @param {Array} array The array to sort. 6686 * @param {Function} comparer The function to define sort order. 6687 * @returns {Array} Returns `array`. 6688 */ 6689 function baseSortBy(array, comparer) { 6690 var length = array.length; 6691 6692 array.sort(comparer); 6693 while (length--) { 6694 array[length] = array[length].value; 6695 } 6696 return array; 6697 } 6698 6699 /** 6700 * The base implementation of `_.sum` and `_.sumBy` without support for 6701 * iteratee shorthands. 6702 * 6703 * @private 6704 * @param {Array} array The array to iterate over. 6705 * @param {Function} iteratee The function invoked per iteration. 6706 * @returns {number} Returns the sum. 6707 */ 6708 function baseSum(array, iteratee) { 6709 var result, 6710 index = -1, 6711 length = array.length; 6712 6713 while (++index < length) { 6714 var current = iteratee(array[index]); 6715 if (current !== undefined) { 6716 result = result === undefined ? current : (result + current); 6717 } 6718 } 6719 return result; 6720 } 6721 6722 /** 6723 * The base implementation of `_.times` without support for iteratee shorthands 6724 * or max array length checks. 6725 * 6726 * @private 6727 * @param {number} n The number of times to invoke `iteratee`. 6728 * @param {Function} iteratee The function invoked per iteration. 6729 * @returns {Array} Returns the array of results. 6730 */ 6731 function baseTimes(n, iteratee) { 6732 var index = -1, 6733 result = Array(n); 6734 6735 while (++index < n) { 6736 result[index] = iteratee(index); 6737 } 6738 return result; 6739 } 6740 6741 /** 6742 * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array 6743 * of key-value pairs for `object` corresponding to the property names of `props`. 6744 * 6745 * @private 6746 * @param {Object} object The object to query. 6747 * @param {Array} props The property names to get values for. 6748 * @returns {Object} Returns the key-value pairs. 6749 */ 6750 function baseToPairs(object, props) { 6751 return arrayMap(props, function(key) { 6752 return [key, object[key]]; 6753 }); 6754 } 6755 6756 /** 6757 * The base implementation of `_.trim`. 6758 * 6759 * @private 6760 * @param {string} string The string to trim. 6761 * @returns {string} Returns the trimmed string. 6762 */ 6763 function baseTrim(string) { 6764 return string 6765 ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') 6766 : string; 6767 } 6768 6769 /** 6770 * The base implementation of `_.unary` without support for storing metadata. 6771 * 6772 * @private 6773 * @param {Function} func The function to cap arguments for. 6774 * @returns {Function} Returns the new capped function. 6775 */ 6776 function baseUnary(func) { 6777 return function(value) { 6778 return func(value); 6779 }; 6780 } 6781 6782 /** 6783 * The base implementation of `_.values` and `_.valuesIn` which creates an 6784 * array of `object` property values corresponding to the property names 6785 * of `props`. 6786 * 6787 * @private 6788 * @param {Object} object The object to query. 6789 * @param {Array} props The property names to get values for. 6790 * @returns {Object} Returns the array of property values. 6791 */ 6792 function baseValues(object, props) { 6793 return arrayMap(props, function(key) { 6794 return object[key]; 6795 }); 6796 } 6797 6798 /** 6799 * Checks if a `cache` value for `key` exists. 6800 * 6801 * @private 6802 * @param {Object} cache The cache to query. 6803 * @param {string} key The key of the entry to check. 6804 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 6805 */ 6806 function cacheHas(cache, key) { 6807 return cache.has(key); 6808 } 6809 6810 /** 6811 * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol 6812 * that is not found in the character symbols. 6813 * 6814 * @private 6815 * @param {Array} strSymbols The string symbols to inspect. 6816 * @param {Array} chrSymbols The character symbols to find. 6817 * @returns {number} Returns the index of the first unmatched string symbol. 6818 */ 6819 function charsStartIndex(strSymbols, chrSymbols) { 6820 var index = -1, 6821 length = strSymbols.length; 6822 6823 while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} 6824 return index; 6825 } 6826 6827 /** 6828 * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol 6829 * that is not found in the character symbols. 6830 * 6831 * @private 6832 * @param {Array} strSymbols The string symbols to inspect. 6833 * @param {Array} chrSymbols The character symbols to find. 6834 * @returns {number} Returns the index of the last unmatched string symbol. 6835 */ 6836 function charsEndIndex(strSymbols, chrSymbols) { 6837 var index = strSymbols.length; 6838 6839 while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} 6840 return index; 6841 } 6842 6843 /** 6844 * Gets the number of `placeholder` occurrences in `array`. 6845 * 6846 * @private 6847 * @param {Array} array The array to inspect. 6848 * @param {*} placeholder The placeholder to search for. 6849 * @returns {number} Returns the placeholder count. 6850 */ 6851 function countHolders(array, placeholder) { 6852 var length = array.length, 6853 result = 0; 6854 6855 while (length--) { 6856 if (array[length] === placeholder) { 6857 ++result; 6858 } 6859 } 6860 return result; 6861 } 6862 6863 /** 6864 * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A 6865 * letters to basic Latin letters. 6866 * 6867 * @private 6868 * @param {string} letter The matched letter to deburr. 6869 * @returns {string} Returns the deburred letter. 6870 */ 6871 var deburrLetter = basePropertyOf(deburredLetters); 6872 6873 /** 6874 * Used by `_.escape` to convert characters to HTML entities. 6875 * 6876 * @private 6877 * @param {string} chr The matched character to escape. 6878 * @returns {string} Returns the escaped character. 6879 */ 6880 var escapeHtmlChar = basePropertyOf(htmlEscapes); 6881 6882 /** 6883 * Used by `_.template` to escape characters for inclusion in compiled string literals. 6884 * 6885 * @private 6886 * @param {string} chr The matched character to escape. 6887 * @returns {string} Returns the escaped character. 6888 */ 6889 function escapeStringChar(chr) { 6890 return '\\' + stringEscapes[chr]; 6891 } 6892 6893 /** 6894 * Gets the value at `key` of `object`. 6895 * 6896 * @private 6897 * @param {Object} [object] The object to query. 6898 * @param {string} key The key of the property to get. 6899 * @returns {*} Returns the property value. 6900 */ 6901 function getValue(object, key) { 6902 return object == null ? undefined : object[key]; 6903 } 6904 6905 /** 6906 * Checks if `string` contains Unicode symbols. 6907 * 6908 * @private 6909 * @param {string} string The string to inspect. 6910 * @returns {boolean} Returns `true` if a symbol is found, else `false`. 6911 */ 6912 function hasUnicode(string) { 6913 return reHasUnicode.test(string); 6914 } 6915 6916 /** 6917 * Checks if `string` contains a word composed of Unicode symbols. 6918 * 6919 * @private 6920 * @param {string} string The string to inspect. 6921 * @returns {boolean} Returns `true` if a word is found, else `false`. 6922 */ 6923 function hasUnicodeWord(string) { 6924 return reHasUnicodeWord.test(string); 6925 } 6926 6927 /** 6928 * Converts `iterator` to an array.
vendor: 8,214 bytes, lines 6929-7238
6929 * 6930 * @private 6931 * @param {Object} iterator The iterator to convert. 6932 * @returns {Array} Returns the converted array. 6933 */ 6934 function iteratorToArray(iterator) { 6935 var data, 6936 result = []; 6937 6938 while (!(data = iterator.next()).done) { 6939 result.push(data.value); 6940 } 6941 return result; 6942 } 6943 6944 /** 6945 * Converts `map` to its key-value pairs. 6946 * 6947 * @private 6948 * @param {Object} map The map to convert. 6949 * @returns {Array} Returns the key-value pairs. 6950 */ 6951 function mapToArray(map) { 6952 var index = -1, 6953 result = Array(map.size); 6954 6955 map.forEach(function(value, key) { 6956 result[++index] = [key, value]; 6957 }); 6958 return result; 6959 } 6960 6961 /** 6962 * Creates a unary function that invokes `func` with its argument transformed. 6963 * 6964 * @private 6965 * @param {Function} func The function to wrap. 6966 * @param {Function} transform The argument transform. 6967 * @returns {Function} Returns the new function. 6968 */ 6969 function overArg(func, transform) { 6970 return function(arg) { 6971 return func(transform(arg)); 6972 }; 6973 } 6974 6975 /** 6976 * Replaces all `placeholder` elements in `array` with an internal placeholder 6977 * and returns an array of their indexes. 6978 * 6979 * @private 6980 * @param {Array} array The array to modify. 6981 * @param {*} placeholder The placeholder to replace. 6982 * @returns {Array} Returns the new array of placeholder indexes. 6983 */ 6984 function replaceHolders(array, placeholder) { 6985 var index = -1, 6986 length = array.length, 6987 resIndex = 0, 6988 result = []; 6989 6990 while (++index < length) { 6991 var value = array[index]; 6992 if (value === placeholder || value === PLACEHOLDER) { 6993 array[index] = PLACEHOLDER; 6994 result[resIndex++] = index; 6995 } 6996 } 6997 return result; 6998 } 6999 7000 /** 7001 * Converts `set` to an array of its values. 7002 * 7003 * @private 7004 * @param {Object} set The set to convert. 7005 * @returns {Array} Returns the values. 7006 */ 7007 function setToArray(set) { 7008 var index = -1, 7009 result = Array(set.size); 7010 7011 set.forEach(function(value) { 7012 result[++index] = value; 7013 }); 7014 return result; 7015 } 7016 7017 /** 7018 * Converts `set` to its value-value pairs. 7019 * 7020 * @private 7021 * @param {Object} set The set to convert. 7022 * @returns {Array} Returns the value-value pairs. 7023 */ 7024 function setToPairs(set) { 7025 var index = -1, 7026 result = Array(set.size); 7027 7028 set.forEach(function(value) { 7029 result[++index] = [value, value]; 7030 }); 7031 return result; 7032 } 7033 7034 /** 7035 * A specialized version of `_.indexOf` which performs strict equality 7036 * comparisons of values, i.e. `===`. 7037 * 7038 * @private 7039 * @param {Array} array The array to inspect. 7040 * @param {*} value The value to search for. 7041 * @param {number} fromIndex The index to search from. 7042 * @returns {number} Returns the index of the matched value, else `-1`. 7043 */ 7044 function strictIndexOf(array, value, fromIndex) { 7045 var index = fromIndex - 1, 7046 length = array.length; 7047 7048 while (++index < length) { 7049 if (array[index] === value) { 7050 return index; 7051 } 7052 } 7053 return -1; 7054 } 7055 7056 /** 7057 * A specialized version of `_.lastIndexOf` which performs strict equality 7058 * comparisons of values, i.e. `===`. 7059 * 7060 * @private 7061 * @param {Array} array The array to inspect. 7062 * @param {*} value The value to search for. 7063 * @param {number} fromIndex The index to search from. 7064 * @returns {number} Returns the index of the matched value, else `-1`. 7065 */ 7066 function strictLastIndexOf(array, value, fromIndex) { 7067 var index = fromIndex + 1; 7068 while (index--) { 7069 if (array[index] === value) { 7070 return index; 7071 } 7072 } 7073 return index; 7074 } 7075 7076 /** 7077 * Gets the number of symbols in `string`. 7078 * 7079 * @private 7080 * @param {string} string The string to inspect. 7081 * @returns {number} Returns the string size. 7082 */ 7083 function stringSize(string) { 7084 return hasUnicode(string) 7085 ? unicodeSize(string) 7086 : asciiSize(string); 7087 } 7088 7089 /** 7090 * Converts `string` to an array. 7091 * 7092 * @private 7093 * @param {string} string The string to convert. 7094 * @returns {Array} Returns the converted array. 7095 */ 7096 function stringToArray(string) { 7097 return hasUnicode(string) 7098 ? unicodeToArray(string) 7099 : asciiToArray(string); 7100 } 7101 7102 /** 7103 * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace 7104 * character of `string`. 7105 * 7106 * @private 7107 * @param {string} string The string to inspect. 7108 * @returns {number} Returns the index of the last non-whitespace character. 7109 */ 7110 function trimmedEndIndex(string) { 7111 var index = string.length; 7112 7113 while (index-- && reWhitespace.test(string.charAt(index))) {} 7114 return index; 7115 } 7116 7117 /** 7118 * Used by `_.unescape` to convert HTML entities to characters. 7119 * 7120 * @private 7121 * @param {string} chr The matched character to unescape. 7122 * @returns {string} Returns the unescaped character. 7123 */ 7124 var unescapeHtmlChar = basePropertyOf(htmlUnescapes); 7125 7126 /** 7127 * Gets the size of a Unicode `string`. 7128 * 7129 * @private 7130 * @param {string} string The string inspect. 7131 * @returns {number} Returns the string size. 7132 */ 7133 function unicodeSize(string) { 7134 var result = reUnicode.lastIndex = 0; 7135 while (reUnicode.test(string)) { 7136 ++result; 7137 } 7138 return result; 7139 } 7140 7141 /** 7142 * Converts a Unicode `string` to an array. 7143 * 7144 * @private 7145 * @param {string} string The string to convert. 7146 * @returns {Array} Returns the converted array. 7147 */ 7148 function unicodeToArray(string) { 7149 return string.match(reUnicode) || []; 7150 } 7151 7152 /** 7153 * Splits a Unicode `string` into an array of its words. 7154 * 7155 * @private 7156 * @param {string} The string to inspect. 7157 * @returns {Array} Returns the words of `string`. 7158 */ 7159 function unicodeWords(string) { 7160 return string.match(reUnicodeWord) || []; 7161 } 7162 7163 /*--------------------------------------------------------------------------*/ 7164 7165 /** 7166 * Create a new pristine `lodash` function using the `context` object. 7167 * 7168 * @static 7169 * @memberOf _ 7170 * @since 1.1.0 7171 * @category Util 7172 * @param {Object} [context=root] The context object. 7173 * @returns {Function} Returns a new `lodash` function. 7174 * @example 7175 * 7176 * _.mixin({ 'foo': _.constant('foo') }); 7177 * 7178 * var lodash = _.runInContext(); 7179 * lodash.mixin({ 'bar': lodash.constant('bar') }); 7180 * 7181 * _.isFunction(_.foo); 7182 * // => true 7183 * _.isFunction(_.bar); 7184 * // => false 7185 * 7186 * lodash.isFunction(lodash.foo); 7187 * // => false 7188 * lodash.isFunction(lodash.bar); 7189 * // => true 7190 * 7191 * // Create a suped-up `defer` in Node.js. 7192 * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer; 7193 */ 7194 var runInContext = (function runInContext(context) { 7195 context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps)); 7196 7197 /** Built-in constructor references. */ 7198 var Array = context.Array, 7199 Date = context.Date, 7200 Error = context.Error, 7201 Function = context.Function, 7202 Math = context.Math, 7203 Object = context.Object, 7204 RegExp = context.RegExp, 7205 String = context.String, 7206 TypeError = context.TypeError; 7207 7208 /** Used for built-in method references. */ 7209 var arrayProto = Array.prototype, 7210 funcProto = Function.prototype, 7211 objectProto = Object.prototype; 7212 7213 /** Used to detect overreaching core-js shims. */ 7214 var coreJsData = context['__core-js_shared__']; 7215 7216 /** Used to resolve the decompiled source of functions. */ 7217 var funcToString = funcProto.toString; 7218 7219 /** Used to check objects for own properties. */ 7220 var hasOwnProperty = objectProto.hasOwnProperty; 7221 7222 /** Used to generate unique IDs. */ 7223 var idCounter = 0; 7224 7225 /** Used to detect methods masquerading as native. */ 7226 var maskSrcKey = (function() { 7227 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); 7228 return uid ? ('Symbol(src)_1.' + uid) : ''; 7229 }()); 7230 7231 /** 7232 * Used to resolve the 7233 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 7234 * of values. 7235 */ 7236 var nativeObjectToString = objectProto.toString; 7237 7238 /** Used to infer the `Object` constructor. */
vendor: 25,659 bytes, lines 7239-8036
7239 var objectCtorString = funcToString.call(Object); 7240 7241 /** Used to restore the original `_` reference in `_.noConflict`. */ 7242 var oldDash = root._; 7243 7244 /** Used to detect if a method is native. */ 7245 var reIsNative = RegExp('^' + 7246 funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') 7247 .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' 7248 ); 7249 7250 /** Built-in value references. */ 7251 var Buffer = moduleExports ? context.Buffer : undefined, 7252 Symbol = context.Symbol, 7253 Uint8Array = context.Uint8Array, 7254 allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined, 7255 getPrototype = overArg(Object.getPrototypeOf, Object), 7256 objectCreate = Object.create, 7257 propertyIsEnumerable = objectProto.propertyIsEnumerable, 7258 splice = arrayProto.splice, 7259 spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined, 7260 symIterator = Symbol ? Symbol.iterator : undefined, 7261 symToStringTag = Symbol ? Symbol.toStringTag : undefined; 7262 7263 var defineProperty = (function() { 7264 try { 7265 var func = getNative(Object, 'defineProperty'); 7266 func({}, '', {}); 7267 return func; 7268 } catch (e) {} 7269 }()); 7270 7271 /** Mocked built-ins. */ 7272 var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, 7273 ctxNow = Date && Date.now !== root.Date.now && Date.now, 7274 ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout; 7275 7276 /* Built-in method references for those with the same name as other `lodash` methods. */ 7277 var nativeCeil = Math.ceil, 7278 nativeFloor = Math.floor, 7279 nativeGetSymbols = Object.getOwnPropertySymbols, 7280 nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined, 7281 nativeIsFinite = context.isFinite, 7282 nativeJoin = arrayProto.join, 7283 nativeKeys = overArg(Object.keys, Object), 7284 nativeMax = Math.max, 7285 nativeMin = Math.min, 7286 nativeNow = Date.now, 7287 nativeParseInt = context.parseInt, 7288 nativeRandom = Math.random, 7289 nativeReverse = arrayProto.reverse; 7290 7291 /* Built-in method references that are verified to be native. */ 7292 var DataView = getNative(context, 'DataView'), 7293 Map = getNative(context, 'Map'), 7294 Promise = getNative(context, 'Promise'), 7295 Set = getNative(context, 'Set'), 7296 WeakMap = getNative(context, 'WeakMap'), 7297 nativeCreate = getNative(Object, 'create'); 7298 7299 /** Used to store function metadata. */ 7300 var metaMap = WeakMap && new WeakMap; 7301 7302 /** Used to lookup unminified function names. */ 7303 var realNames = {}; 7304 7305 /** Used to detect maps, sets, and weakmaps. */ 7306 var dataViewCtorString = toSource(DataView), 7307 mapCtorString = toSource(Map), 7308 promiseCtorString = toSource(Promise), 7309 setCtorString = toSource(Set), 7310 weakMapCtorString = toSource(WeakMap); 7311 7312 /** Used to convert symbols to primitives and strings. */ 7313 var symbolProto = Symbol ? Symbol.prototype : undefined, 7314 symbolValueOf = symbolProto ? symbolProto.valueOf : undefined, 7315 symbolToString = symbolProto ? symbolProto.toString : undefined; 7316 7317 /*------------------------------------------------------------------------*/ 7318 7319 /** 7320 * Creates a `lodash` object which wraps `value` to enable implicit method 7321 * chain sequences. Methods that operate on and return arrays, collections, 7322 * and functions can be chained together. Methods that retrieve a single value 7323 * or may return a primitive value will automatically end the chain sequence 7324 * and return the unwrapped value. Otherwise, the value must be unwrapped 7325 * with `_#value`. 7326 * 7327 * Explicit chain sequences, which must be unwrapped with `_#value`, may be 7328 * enabled using `_.chain`. 7329 * 7330 * The execution of chained methods is lazy, that is, it's deferred until 7331 * `_#value` is implicitly or explicitly called. 7332 * 7333 * Lazy evaluation allows several methods to support shortcut fusion. 7334 * Shortcut fusion is an optimization to merge iteratee calls; this avoids 7335 * the creation of intermediate arrays and can greatly reduce the number of 7336 * iteratee executions. Sections of a chain sequence qualify for shortcut 7337 * fusion if the section is applied to an array and iteratees accept only 7338 * one argument. The heuristic for whether a section qualifies for shortcut 7339 * fusion is subject to change. 7340 * 7341 * Chaining is supported in custom builds as long as the `_#value` method is 7342 * directly or indirectly included in the build. 7343 * 7344 * In addition to lodash methods, wrappers have `Array` and `String` methods. 7345 * 7346 * The wrapper `Array` methods are: 7347 * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` 7348 * 7349 * The wrapper `String` methods are: 7350 * `replace` and `split` 7351 * 7352 * The wrapper methods that support shortcut fusion are: 7353 * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, 7354 * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, 7355 * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` 7356 * 7357 * The chainable wrapper methods are: 7358 * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, 7359 * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, 7360 * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, 7361 * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, 7362 * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, 7363 * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, 7364 * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, 7365 * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, 7366 * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, 7367 * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, 7368 * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, 7369 * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, 7370 * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, 7371 * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, 7372 * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, 7373 * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, 7374 * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, 7375 * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, 7376 * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, 7377 * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, 7378 * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, 7379 * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, 7380 * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, 7381 * `zipObject`, `zipObjectDeep`, and `zipWith` 7382 * 7383 * The wrapper methods that are **not** chainable by default are: 7384 * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, 7385 * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, 7386 * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, 7387 * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, 7388 * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, 7389 * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, 7390 * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, 7391 * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, 7392 * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, 7393 * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, 7394 * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, 7395 * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, 7396 * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, 7397 * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, 7398 * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, 7399 * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, 7400 * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, 7401 * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, 7402 * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, 7403 * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, 7404 * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, 7405 * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, 7406 * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, 7407 * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, 7408 * `upperFirst`, `value`, and `words` 7409 * 7410 * @name _ 7411 * @constructor 7412 * @category Seq 7413 * @param {*} value The value to wrap in a `lodash` instance. 7414 * @returns {Object} Returns the new `lodash` wrapper instance. 7415 * @example 7416 * 7417 * function square(n) { 7418 * return n * n; 7419 * } 7420 * 7421 * var wrapped = _([1, 2, 3]); 7422 * 7423 * // Returns an unwrapped value. 7424 * wrapped.reduce(_.add); 7425 * // => 6 7426 * 7427 * // Returns a wrapped value. 7428 * var squares = wrapped.map(square); 7429 * 7430 * _.isArray(squares); 7431 * // => false 7432 * 7433 * _.isArray(squares.value()); 7434 * // => true 7435 */ 7436 function lodash(value) { 7437 if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { 7438 if (value instanceof LodashWrapper) { 7439 return value; 7440 } 7441 if (hasOwnProperty.call(value, '__wrapped__')) { 7442 return wrapperClone(value); 7443 } 7444 } 7445 return new LodashWrapper(value); 7446 } 7447 7448 /** 7449 * The base implementation of `_.create` without support for assigning 7450 * properties to the created object. 7451 * 7452 * @private 7453 * @param {Object} proto The object to inherit from. 7454 * @returns {Object} Returns the new object. 7455 */ 7456 var baseCreate = (function() { 7457 function object() {} 7458 return function(proto) { 7459 if (!isObject(proto)) { 7460 return {}; 7461 } 7462 if (objectCreate) { 7463 return objectCreate(proto); 7464 } 7465 object.prototype = proto; 7466 var result = new object; 7467 object.prototype = undefined; 7468 return result; 7469 }; 7470 }()); 7471 7472 /** 7473 * The function whose prototype chain sequence wrappers inherit from. 7474 * 7475 * @private 7476 */ 7477 function baseLodash() { 7478 // No operation performed. 7479 } 7480 7481 /** 7482 * The base constructor for creating `lodash` wrapper objects. 7483 * 7484 * @private 7485 * @param {*} value The value to wrap. 7486 * @param {boolean} [chainAll] Enable explicit method chain sequences. 7487 */ 7488 function LodashWrapper(value, chainAll) { 7489 this.__wrapped__ = value; 7490 this.__actions__ = []; 7491 this.__chain__ = !!chainAll; 7492 this.__index__ = 0; 7493 this.__values__ = undefined; 7494 } 7495 7496 /** 7497 * By default, the template delimiters used by lodash are like those in 7498 * embedded Ruby (ERB) as well as ES2015 template strings. Change the 7499 * following template settings to use alternative delimiters. 7500 * 7501 * @static 7502 * @memberOf _ 7503 * @type {Object} 7504 */ 7505 lodash.templateSettings = { 7506 7507 /** 7508 * Used to detect `data` property values to be HTML-escaped. 7509 * 7510 * @memberOf _.templateSettings 7511 * @type {RegExp} 7512 */ 7513 'escape': reEscape, 7514 7515 /** 7516 * Used to detect code to be evaluated. 7517 * 7518 * @memberOf _.templateSettings 7519 * @type {RegExp} 7520 */ 7521 'evaluate': reEvaluate, 7522 7523 /** 7524 * Used to detect `data` property values to inject. 7525 * 7526 * @memberOf _.templateSettings 7527 * @type {RegExp} 7528 */ 7529 'interpolate': reInterpolate, 7530 7531 /** 7532 * Used to reference the data object in the template text. 7533 * 7534 * @memberOf _.templateSettings 7535 * @type {string} 7536 */ 7537 'variable': '', 7538 7539 /** 7540 * Used to import variables into the compiled template. 7541 * 7542 * @memberOf _.templateSettings 7543 * @type {Object} 7544 */ 7545 'imports': { 7546 7547 /** 7548 * A reference to the `lodash` function. 7549 * 7550 * @memberOf _.templateSettings.imports 7551 * @type {Function} 7552 */ 7553 '_': lodash 7554 } 7555 }; 7556 7557 // Ensure wrappers are instances of `baseLodash`. 7558 lodash.prototype = baseLodash.prototype; 7559 lodash.prototype.constructor = lodash; 7560 7561 LodashWrapper.prototype = baseCreate(baseLodash.prototype); 7562 LodashWrapper.prototype.constructor = LodashWrapper; 7563 7564 /*------------------------------------------------------------------------*/ 7565 7566 /** 7567 * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. 7568 * 7569 * @private 7570 * @constructor 7571 * @param {*} value The value to wrap. 7572 */ 7573 function LazyWrapper(value) { 7574 this.__wrapped__ = value; 7575 this.__actions__ = []; 7576 this.__dir__ = 1; 7577 this.__filtered__ = false; 7578 this.__iteratees__ = []; 7579 this.__takeCount__ = MAX_ARRAY_LENGTH; 7580 this.__views__ = []; 7581 } 7582 7583 /** 7584 * Creates a clone of the lazy wrapper object. 7585 * 7586 * @private 7587 * @name clone 7588 * @memberOf LazyWrapper 7589 * @returns {Object} Returns the cloned `LazyWrapper` object. 7590 */ 7591 function lazyClone() { 7592 var result = new LazyWrapper(this.__wrapped__); 7593 result.__actions__ = copyArray(this.__actions__); 7594 result.__dir__ = this.__dir__; 7595 result.__filtered__ = this.__filtered__; 7596 result.__iteratees__ = copyArray(this.__iteratees__); 7597 result.__takeCount__ = this.__takeCount__; 7598 result.__views__ = copyArray(this.__views__); 7599 return result; 7600 } 7601 7602 /** 7603 * Reverses the direction of lazy iteration. 7604 * 7605 * @private 7606 * @name reverse 7607 * @memberOf LazyWrapper 7608 * @returns {Object} Returns the new reversed `LazyWrapper` object. 7609 */ 7610 function lazyReverse() { 7611 if (this.__filtered__) { 7612 var result = new LazyWrapper(this); 7613 result.__dir__ = -1; 7614 result.__filtered__ = true; 7615 } else { 7616 result = this.clone(); 7617 result.__dir__ *= -1; 7618 } 7619 return result; 7620 } 7621 7622 /** 7623 * Extracts the unwrapped value from its lazy wrapper. 7624 * 7625 * @private 7626 * @name value 7627 * @memberOf LazyWrapper 7628 * @returns {*} Returns the unwrapped value. 7629 */ 7630 function lazyValue() { 7631 var array = this.__wrapped__.value(), 7632 dir = this.__dir__, 7633 isArr = isArray(array), 7634 isRight = dir < 0, 7635 arrLength = isArr ? array.length : 0, 7636 view = getView(0, arrLength, this.__views__), 7637 start = view.start, 7638 end = view.end, 7639 length = end - start, 7640 index = isRight ? end : (start - 1), 7641 iteratees = this.__iteratees__, 7642 iterLength = iteratees.length, 7643 resIndex = 0, 7644 takeCount = nativeMin(length, this.__takeCount__); 7645 7646 if (!isArr || (!isRight && arrLength == length && takeCount == length)) { 7647 return baseWrapperValue(array, this.__actions__); 7648 } 7649 var result = []; 7650 7651 outer: 7652 while (length-- && resIndex < takeCount) { 7653 index += dir; 7654 7655 var iterIndex = -1, 7656 value = array[index]; 7657 7658 while (++iterIndex < iterLength) { 7659 var data = iteratees[iterIndex], 7660 iteratee = data.iteratee, 7661 type = data.type, 7662 computed = iteratee(value); 7663 7664 if (type == LAZY_MAP_FLAG) { 7665 value = computed; 7666 } else if (!computed) { 7667 if (type == LAZY_FILTER_FLAG) { 7668 continue outer; 7669 } else { 7670 break outer; 7671 } 7672 } 7673 } 7674 result[resIndex++] = value; 7675 } 7676 return result; 7677 } 7678 7679 // Ensure `LazyWrapper` is an instance of `baseLodash`. 7680 LazyWrapper.prototype = baseCreate(baseLodash.prototype); 7681 LazyWrapper.prototype.constructor = LazyWrapper; 7682 7683 /*------------------------------------------------------------------------*/ 7684 7685 /** 7686 * Creates a hash object. 7687 * 7688 * @private 7689 * @constructor 7690 * @param {Array} [entries] The key-value pairs to cache. 7691 */ 7692 function Hash(entries) { 7693 var index = -1, 7694 length = entries == null ? 0 : entries.length; 7695 7696 this.clear(); 7697 while (++index < length) { 7698 var entry = entries[index]; 7699 this.set(entry[0], entry[1]); 7700 } 7701 } 7702 7703 /** 7704 * Removes all key-value entries from the hash. 7705 * 7706 * @private 7707 * @name clear 7708 * @memberOf Hash 7709 */ 7710 function hashClear() { 7711 this.__data__ = nativeCreate ? nativeCreate(null) : {}; 7712 this.size = 0; 7713 } 7714 7715 /** 7716 * Removes `key` and its value from the hash. 7717 * 7718 * @private 7719 * @name delete 7720 * @memberOf Hash 7721 * @param {Object} hash The hash to modify. 7722 * @param {string} key The key of the value to remove. 7723 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 7724 */ 7725 function hashDelete(key) { 7726 var result = this.has(key) && delete this.__data__[key]; 7727 this.size -= result ? 1 : 0; 7728 return result; 7729 } 7730 7731 /** 7732 * Gets the hash value for `key`. 7733 * 7734 * @private 7735 * @name get 7736 * @memberOf Hash 7737 * @param {string} key The key of the value to get. 7738 * @returns {*} Returns the entry value. 7739 */ 7740 function hashGet(key) { 7741 var data = this.__data__; 7742 if (nativeCreate) { 7743 var result = data[key]; 7744 return result === HASH_UNDEFINED ? undefined : result; 7745 } 7746 return hasOwnProperty.call(data, key) ? data[key] : undefined; 7747 } 7748 7749 /** 7750 * Checks if a hash value for `key` exists. 7751 * 7752 * @private 7753 * @name has 7754 * @memberOf Hash 7755 * @param {string} key The key of the entry to check. 7756 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 7757 */ 7758 function hashHas(key) { 7759 var data = this.__data__; 7760 return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); 7761 } 7762 7763 /** 7764 * Sets the hash `key` to `value`. 7765 * 7766 * @private 7767 * @name set 7768 * @memberOf Hash 7769 * @param {string} key The key of the value to set. 7770 * @param {*} value The value to set. 7771 * @returns {Object} Returns the hash instance. 7772 */ 7773 function hashSet(key, value) { 7774 var data = this.__data__; 7775 this.size += this.has(key) ? 0 : 1; 7776 data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; 7777 return this; 7778 } 7779 7780 // Add methods to `Hash`. 7781 Hash.prototype.clear = hashClear; 7782 Hash.prototype['delete'] = hashDelete; 7783 Hash.prototype.get = hashGet; 7784 Hash.prototype.has = hashHas; 7785 Hash.prototype.set = hashSet; 7786 7787 /*------------------------------------------------------------------------*/ 7788 7789 /** 7790 * Creates an list cache object. 7791 * 7792 * @private 7793 * @constructor 7794 * @param {Array} [entries] The key-value pairs to cache. 7795 */ 7796 function ListCache(entries) { 7797 var index = -1, 7798 length = entries == null ? 0 : entries.length; 7799 7800 this.clear(); 7801 while (++index < length) { 7802 var entry = entries[index]; 7803 this.set(entry[0], entry[1]); 7804 } 7805 } 7806 7807 /** 7808 * Removes all key-value entries from the list cache. 7809 * 7810 * @private 7811 * @name clear 7812 * @memberOf ListCache 7813 */ 7814 function listCacheClear() { 7815 this.__data__ = []; 7816 this.size = 0; 7817 } 7818 7819 /** 7820 * Removes `key` and its value from the list cache. 7821 * 7822 * @private 7823 * @name delete 7824 * @memberOf ListCache 7825 * @param {string} key The key of the value to remove. 7826 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 7827 */ 7828 function listCacheDelete(key) { 7829 var data = this.__data__, 7830 index = assocIndexOf(data, key); 7831 7832 if (index < 0) { 7833 return false; 7834 } 7835 var lastIndex = data.length - 1; 7836 if (index == lastIndex) { 7837 data.pop(); 7838 } else { 7839 splice.call(data, index, 1); 7840 } 7841 --this.size; 7842 return true; 7843 } 7844 7845 /** 7846 * Gets the list cache value for `key`. 7847 * 7848 * @private 7849 * @name get 7850 * @memberOf ListCache 7851 * @param {string} key The key of the value to get. 7852 * @returns {*} Returns the entry value. 7853 */ 7854 function listCacheGet(key) { 7855 var data = this.__data__, 7856 index = assocIndexOf(data, key); 7857 7858 return index < 0 ? undefined : data[index][1]; 7859 } 7860 7861 /** 7862 * Checks if a list cache value for `key` exists. 7863 * 7864 * @private 7865 * @name has 7866 * @memberOf ListCache 7867 * @param {string} key The key of the entry to check. 7868 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 7869 */ 7870 function listCacheHas(key) { 7871 return assocIndexOf(this.__data__, key) > -1; 7872 } 7873 7874 /** 7875 * Sets the list cache `key` to `value`. 7876 * 7877 * @private 7878 * @name set 7879 * @memberOf ListCache 7880 * @param {string} key The key of the value to set. 7881 * @param {*} value The value to set. 7882 * @returns {Object} Returns the list cache instance. 7883 */ 7884 function listCacheSet(key, value) { 7885 var data = this.__data__, 7886 index = assocIndexOf(data, key); 7887 7888 if (index < 0) { 7889 ++this.size; 7890 data.push([key, value]); 7891 } else { 7892 data[index][1] = value; 7893 } 7894 return this; 7895 } 7896 7897 // Add methods to `ListCache`. 7898 ListCache.prototype.clear = listCacheClear; 7899 ListCache.prototype['delete'] = listCacheDelete; 7900 ListCache.prototype.get = listCacheGet; 7901 ListCache.prototype.has = listCacheHas; 7902 ListCache.prototype.set = listCacheSet; 7903 7904 /*------------------------------------------------------------------------*/ 7905 7906 /** 7907 * Creates a map cache object to store key-value pairs. 7908 * 7909 * @private 7910 * @constructor 7911 * @param {Array} [entries] The key-value pairs to cache. 7912 */ 7913 function MapCache(entries) { 7914 var index = -1, 7915 length = entries == null ? 0 : entries.length; 7916 7917 this.clear(); 7918 while (++index < length) { 7919 var entry = entries[index]; 7920 this.set(entry[0], entry[1]); 7921 } 7922 } 7923 7924 /** 7925 * Removes all key-value entries from the map. 7926 * 7927 * @private 7928 * @name clear 7929 * @memberOf MapCache 7930 */ 7931 function mapCacheClear() { 7932 this.size = 0; 7933 this.__data__ = { 7934 'hash': new Hash, 7935 'map': new (Map || ListCache), 7936 'string': new Hash 7937 }; 7938 } 7939 7940 /** 7941 * Removes `key` and its value from the map. 7942 * 7943 * @private 7944 * @name delete 7945 * @memberOf MapCache 7946 * @param {string} key The key of the value to remove. 7947 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 7948 */ 7949 function mapCacheDelete(key) { 7950 var result = getMapData(this, key)['delete'](key); 7951 this.size -= result ? 1 : 0; 7952 return result; 7953 } 7954 7955 /** 7956 * Gets the map value for `key`. 7957 * 7958 * @private 7959 * @name get 7960 * @memberOf MapCache 7961 * @param {string} key The key of the value to get. 7962 * @returns {*} Returns the entry value. 7963 */ 7964 function mapCacheGet(key) { 7965 return getMapData(this, key).get(key); 7966 } 7967 7968 /** 7969 * Checks if a map value for `key` exists. 7970 * 7971 * @private 7972 * @name has 7973 * @memberOf MapCache 7974 * @param {string} key The key of the entry to check. 7975 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 7976 */ 7977 function mapCacheHas(key) { 7978 return getMapData(this, key).has(key); 7979 } 7980 7981 /** 7982 * Sets the map `key` to `value`. 7983 * 7984 * @private 7985 * @name set 7986 * @memberOf MapCache 7987 * @param {string} key The key of the value to set. 7988 * @param {*} value The value to set. 7989 * @returns {Object} Returns the map cache instance. 7990 */ 7991 function mapCacheSet(key, value) { 7992 var data = getMapData(this, key), 7993 size = data.size; 7994 7995 data.set(key, value); 7996 this.size += data.size == size ? 0 : 1; 7997 return this; 7998 } 7999 8000 // Add methods to `MapCache`. 8001 MapCache.prototype.clear = mapCacheClear; 8002 MapCache.prototype['delete'] = mapCacheDelete; 8003 MapCache.prototype.get = mapCacheGet; 8004 MapCache.prototype.has = mapCacheHas; 8005 MapCache.prototype.set = mapCacheSet; 8006 8007 /*------------------------------------------------------------------------*/ 8008 8009 /** 8010 * 8011 * Creates an array cache object to store unique values. 8012 * 8013 * @private 8014 * @constructor 8015 * @param {Array} [values] The values to cache. 8016 */ 8017 function SetCache(values) { 8018 var index = -1, 8019 length = values == null ? 0 : values.length; 8020 8021 this.__data__ = new MapCache; 8022 while (++index < length) { 8023 this.add(values[index]); 8024 } 8025 } 8026 8027 /** 8028 * Adds `value` to the array cache. 8029 * 8030 * @private 8031 * @name add 8032 * @memberOf SetCache 8033 * @alias push 8034 * @param {*} value The value to cache. 8035 * @returns {Object} Returns the cache instance. 8036 */
vendor: 3,741 bytes, lines 8037-8173
8037 function setCacheAdd(value) { 8038 this.__data__.set(value, HASH_UNDEFINED); 8039 return this; 8040 } 8041 8042 /** 8043 * Checks if `value` is in the array cache. 8044 * 8045 * @private 8046 * @name has 8047 * @memberOf SetCache 8048 * @param {*} value The value to search for. 8049 * @returns {number} Returns `true` if `value` is found, else `false`. 8050 */ 8051 function setCacheHas(value) { 8052 return this.__data__.has(value); 8053 } 8054 8055 // Add methods to `SetCache`. 8056 SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; 8057 SetCache.prototype.has = setCacheHas; 8058 8059 /*------------------------------------------------------------------------*/ 8060 8061 /** 8062 * Creates a stack cache object to store key-value pairs. 8063 * 8064 * @private 8065 * @constructor 8066 * @param {Array} [entries] The key-value pairs to cache. 8067 */ 8068 function Stack(entries) { 8069 var data = this.__data__ = new ListCache(entries); 8070 this.size = data.size; 8071 } 8072 8073 /** 8074 * Removes all key-value entries from the stack. 8075 * 8076 * @private 8077 * @name clear 8078 * @memberOf Stack 8079 */ 8080 function stackClear() { 8081 this.__data__ = new ListCache; 8082 this.size = 0; 8083 } 8084 8085 /** 8086 * Removes `key` and its value from the stack. 8087 * 8088 * @private 8089 * @name delete 8090 * @memberOf Stack 8091 * @param {string} key The key of the value to remove. 8092 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 8093 */ 8094 function stackDelete(key) { 8095 var data = this.__data__, 8096 result = data['delete'](key); 8097 8098 this.size = data.size; 8099 return result; 8100 } 8101 8102 /** 8103 * Gets the stack value for `key`. 8104 * 8105 * @private 8106 * @name get 8107 * @memberOf Stack 8108 * @param {string} key The key of the value to get. 8109 * @returns {*} Returns the entry value. 8110 */ 8111 function stackGet(key) { 8112 return this.__data__.get(key); 8113 } 8114 8115 /** 8116 * Checks if a stack value for `key` exists. 8117 * 8118 * @private 8119 * @name has 8120 * @memberOf Stack 8121 * @param {string} key The key of the entry to check. 8122 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 8123 */ 8124 function stackHas(key) { 8125 return this.__data__.has(key); 8126 } 8127 8128 /** 8129 * Sets the stack `key` to `value`. 8130 * 8131 * @private 8132 * @name set 8133 * @memberOf Stack 8134 * @param {string} key The key of the value to set. 8135 * @param {*} value The value to set. 8136 * @returns {Object} Returns the stack cache instance. 8137 */ 8138 function stackSet(key, value) { 8139 var data = this.__data__; 8140 if (data instanceof ListCache) { 8141 var pairs = data.__data__; 8142 if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { 8143 pairs.push([key, value]); 8144 this.size = ++data.size; 8145 return this; 8146 } 8147 data = this.__data__ = new MapCache(pairs); 8148 } 8149 data.set(key, value); 8150 this.size = data.size; 8151 return this; 8152 } 8153 8154 // Add methods to `Stack`. 8155 Stack.prototype.clear = stackClear; 8156 Stack.prototype['delete'] = stackDelete; 8157 Stack.prototype.get = stackGet; 8158 Stack.prototype.has = stackHas; 8159 Stack.prototype.set = stackSet; 8160 8161 /*------------------------------------------------------------------------*/ 8162 8163 /** 8164 * Creates an array of the enumerable property names of the array-like `value`. 8165 * 8166 * @private 8167 * @param {*} value The value to query. 8168 * @param {boolean} inherited Specify returning inherited property names. 8169 * @returns {Array} Returns the array of property names. 8170 */ 8171 function arrayLikeKeys(value, inherited) { 8172 var isArr = isArray(value), 8173 isArg = !isArr && isArguments(value),
vendor: 111,524 bytes, lines 8174-11467
8174 isBuff = !isArr && !isArg && isBuffer(value), 8175 isType = !isArr && !isArg && !isBuff && isTypedArray(value), 8176 skipIndexes = isArr || isArg || isBuff || isType, 8177 result = skipIndexes ? baseTimes(value.length, String) : [], 8178 length = result.length; 8179 8180 for (var key in value) { 8181 if ((inherited || hasOwnProperty.call(value, key)) && 8182 !(skipIndexes && ( 8183 // Safari 9 has enumerable `arguments.length` in strict mode. 8184 key == 'length' || 8185 // Node.js 0.10 has enumerable non-index properties on buffers. 8186 (isBuff && (key == 'offset' || key == 'parent')) || 8187 // PhantomJS 2 has enumerable non-index properties on typed arrays. 8188 (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || 8189 // Skip index properties. 8190 isIndex(key, length) 8191 ))) { 8192 result.push(key); 8193 } 8194 } 8195 return result; 8196 } 8197 8198 /** 8199 * A specialized version of `_.sample` for arrays. 8200 * 8201 * @private 8202 * @param {Array} array The array to sample. 8203 * @returns {*} Returns the random element. 8204 */ 8205 function arraySample(array) { 8206 var length = array.length; 8207 return length ? array[baseRandom(0, length - 1)] : undefined; 8208 } 8209 8210 /** 8211 * A specialized version of `_.sampleSize` for arrays. 8212 * 8213 * @private 8214 * @param {Array} array The array to sample. 8215 * @param {number} n The number of elements to sample. 8216 * @returns {Array} Returns the random elements. 8217 */ 8218 function arraySampleSize(array, n) { 8219 return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); 8220 } 8221 8222 /** 8223 * A specialized version of `_.shuffle` for arrays. 8224 * 8225 * @private 8226 * @param {Array} array The array to shuffle. 8227 * @returns {Array} Returns the new shuffled array. 8228 */ 8229 function arrayShuffle(array) { 8230 return shuffleSelf(copyArray(array)); 8231 } 8232 8233 /** 8234 * This function is like `assignValue` except that it doesn't assign 8235 * `undefined` values. 8236 * 8237 * @private 8238 * @param {Object} object The object to modify. 8239 * @param {string} key The key of the property to assign. 8240 * @param {*} value The value to assign. 8241 */ 8242 function assignMergeValue(object, key, value) { 8243 if ((value !== undefined && !eq(object[key], value)) || 8244 (value === undefined && !(key in object))) { 8245 baseAssignValue(object, key, value); 8246 } 8247 } 8248 8249 /** 8250 * Assigns `value` to `key` of `object` if the existing value is not equivalent 8251 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 8252 * for equality comparisons. 8253 * 8254 * @private 8255 * @param {Object} object The object to modify. 8256 * @param {string} key The key of the property to assign. 8257 * @param {*} value The value to assign. 8258 */ 8259 function assignValue(object, key, value) { 8260 var objValue = object[key]; 8261 if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || 8262 (value === undefined && !(key in object))) { 8263 baseAssignValue(object, key, value); 8264 } 8265 } 8266 8267 /** 8268 * Gets the index at which the `key` is found in `array` of key-value pairs. 8269 * 8270 * @private 8271 * @param {Array} array The array to inspect. 8272 * @param {*} key The key to search for. 8273 * @returns {number} Returns the index of the matched value, else `-1`. 8274 */ 8275 function assocIndexOf(array, key) { 8276 var length = array.length; 8277 while (length--) { 8278 if (eq(array[length][0], key)) { 8279 return length; 8280 } 8281 } 8282 return -1; 8283 } 8284 8285 /** 8286 * Aggregates elements of `collection` on `accumulator` with keys transformed 8287 * by `iteratee` and values set by `setter`. 8288 * 8289 * @private 8290 * @param {Array|Object} collection The collection to iterate over. 8291 * @param {Function} setter The function to set `accumulator` values. 8292 * @param {Function} iteratee The iteratee to transform keys. 8293 * @param {Object} accumulator The initial aggregated object. 8294 * @returns {Function} Returns `accumulator`. 8295 */ 8296 function baseAggregator(collection, setter, iteratee, accumulator) { 8297 baseEach(collection, function(value, key, collection) { 8298 setter(accumulator, value, iteratee(value), collection); 8299 }); 8300 return accumulator; 8301 } 8302 8303 /** 8304 * The base implementation of `_.assign` without support for multiple sources 8305 * or `customizer` functions. 8306 * 8307 * @private 8308 * @param {Object} object The destination object. 8309 * @param {Object} source The source object. 8310 * @returns {Object} Returns `object`. 8311 */ 8312 function baseAssign(object, source) { 8313 return object && copyObject(source, keys(source), object); 8314 } 8315 8316 /** 8317 * The base implementation of `_.assignIn` without support for multiple sources 8318 * or `customizer` functions. 8319 * 8320 * @private 8321 * @param {Object} object The destination object. 8322 * @param {Object} source The source object. 8323 * @returns {Object} Returns `object`. 8324 */ 8325 function baseAssignIn(object, source) { 8326 return object && copyObject(source, keysIn(source), object); 8327 } 8328 8329 /** 8330 * The base implementation of `assignValue` and `assignMergeValue` without 8331 * value checks. 8332 * 8333 * @private 8334 * @param {Object} object The object to modify. 8335 * @param {string} key The key of the property to assign. 8336 * @param {*} value The value to assign. 8337 */ 8338 function baseAssignValue(object, key, value) { 8339 if (key == '__proto__' && defineProperty) { 8340 defineProperty(object, key, { 8341 'configurable': true, 8342 'enumerable': true, 8343 'value': value, 8344 'writable': true 8345 }); 8346 } else { 8347 object[key] = value; 8348 } 8349 } 8350 8351 /** 8352 * The base implementation of `_.at` without support for individual paths. 8353 * 8354 * @private 8355 * @param {Object} object The object to iterate over. 8356 * @param {string[]} paths The property paths to pick. 8357 * @returns {Array} Returns the picked elements. 8358 */ 8359 function baseAt(object, paths) { 8360 var index = -1, 8361 length = paths.length, 8362 result = Array(length), 8363 skip = object == null; 8364 8365 while (++index < length) { 8366 result[index] = skip ? undefined : get(object, paths[index]); 8367 } 8368 return result; 8369 } 8370 8371 /** 8372 * The base implementation of `_.clamp` which doesn't coerce arguments. 8373 * 8374 * @private 8375 * @param {number} number The number to clamp. 8376 * @param {number} [lower] The lower bound. 8377 * @param {number} upper The upper bound. 8378 * @returns {number} Returns the clamped number. 8379 */ 8380 function baseClamp(number, lower, upper) { 8381 if (number === number) { 8382 if (upper !== undefined) { 8383 number = number <= upper ? number : upper; 8384 } 8385 if (lower !== undefined) { 8386 number = number >= lower ? number : lower; 8387 } 8388 } 8389 return number; 8390 } 8391 8392 /** 8393 * The base implementation of `_.clone` and `_.cloneDeep` which tracks 8394 * traversed objects. 8395 * 8396 * @private 8397 * @param {*} value The value to clone. 8398 * @param {boolean} bitmask The bitmask flags. 8399 * 1 - Deep clone 8400 * 2 - Flatten inherited properties 8401 * 4 - Clone symbols 8402 * @param {Function} [customizer] The function to customize cloning. 8403 * @param {string} [key] The key of `value`. 8404 * @param {Object} [object] The parent object of `value`. 8405 * @param {Object} [stack] Tracks traversed objects and their clone counterparts. 8406 * @returns {*} Returns the cloned value. 8407 */ 8408 function baseClone(value, bitmask, customizer, key, object, stack) { 8409 var result, 8410 isDeep = bitmask & CLONE_DEEP_FLAG, 8411 isFlat = bitmask & CLONE_FLAT_FLAG, 8412 isFull = bitmask & CLONE_SYMBOLS_FLAG; 8413 8414 if (customizer) { 8415 result = object ? customizer(value, key, object, stack) : customizer(value); 8416 } 8417 if (result !== undefined) { 8418 return result; 8419 } 8420 if (!isObject(value)) { 8421 return value; 8422 } 8423 var isArr = isArray(value); 8424 if (isArr) { 8425 result = initCloneArray(value); 8426 if (!isDeep) { 8427 return copyArray(value, result); 8428 } 8429 } else { 8430 var tag = getTag(value), 8431 isFunc = tag == funcTag || tag == genTag; 8432 8433 if (isBuffer(value)) { 8434 return cloneBuffer(value, isDeep); 8435 } 8436 if (tag == objectTag || tag == argsTag || (isFunc && !object)) { 8437 result = (isFlat || isFunc) ? {} : initCloneObject(value); 8438 if (!isDeep) { 8439 return isFlat 8440 ? copySymbolsIn(value, baseAssignIn(result, value)) 8441 : copySymbols(value, baseAssign(result, value)); 8442 } 8443 } else { 8444 if (!cloneableTags[tag]) { 8445 return object ? value : {}; 8446 } 8447 result = initCloneByTag(value, tag, isDeep); 8448 } 8449 } 8450 // Check for circular references and return its corresponding clone. 8451 stack || (stack = new Stack); 8452 var stacked = stack.get(value); 8453 if (stacked) { 8454 return stacked; 8455 } 8456 stack.set(value, result); 8457 8458 if (isSet(value)) { 8459 value.forEach(function(subValue) { 8460 result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); 8461 }); 8462 } else if (isMap(value)) { 8463 value.forEach(function(subValue, key) { 8464 result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack)); 8465 }); 8466 } 8467 8468 var keysFunc = isFull 8469 ? (isFlat ? getAllKeysIn : getAllKeys) 8470 : (isFlat ? keysIn : keys); 8471 8472 var props = isArr ? undefined : keysFunc(value); 8473 arrayEach(props || value, function(subValue, key) { 8474 if (props) { 8475 key = subValue; 8476 subValue = value[key]; 8477 } 8478 // Recursively populate clone (susceptible to call stack limits). 8479 assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); 8480 }); 8481 return result; 8482 } 8483 8484 /** 8485 * The base implementation of `_.conforms` which doesn't clone `source`. 8486 * 8487 * @private 8488 * @param {Object} source The object of property predicates to conform to. 8489 * @returns {Function} Returns the new spec function. 8490 */ 8491 function baseConforms(source) { 8492 var props = keys(source); 8493 return function(object) { 8494 return baseConformsTo(object, source, props); 8495 }; 8496 } 8497 8498 /** 8499 * The base implementation of `_.conformsTo` which accepts `props` to check. 8500 * 8501 * @private 8502 * @param {Object} object The object to inspect. 8503 * @param {Object} source The object of property predicates to conform to. 8504 * @returns {boolean} Returns `true` if `object` conforms, else `false`. 8505 */ 8506 function baseConformsTo(object, source, props) { 8507 var length = props.length; 8508 if (object == null) { 8509 return !length; 8510 } 8511 object = Object(object); 8512 while (length--) { 8513 var key = props[length], 8514 predicate = source[key], 8515 value = object[key]; 8516 8517 if ((value === undefined && !(key in object)) || !predicate(value)) { 8518 return false; 8519 } 8520 } 8521 return true; 8522 } 8523 8524 /** 8525 * The base implementation of `_.delay` and `_.defer` which accepts `args` 8526 * to provide to `func`. 8527 * 8528 * @private 8529 * @param {Function} func The function to delay. 8530 * @param {number} wait The number of milliseconds to delay invocation. 8531 * @param {Array} args The arguments to provide to `func`. 8532 * @returns {number|Object} Returns the timer id or timeout object. 8533 */ 8534 function baseDelay(func, wait, args) { 8535 if (typeof func != 'function') { 8536 throw new TypeError(FUNC_ERROR_TEXT); 8537 } 8538 return setTimeout(function() { func.apply(undefined, args); }, wait); 8539 } 8540 8541 /** 8542 * The base implementation of methods like `_.difference` without support 8543 * for excluding multiple arrays or iteratee shorthands. 8544 * 8545 * @private 8546 * @param {Array} array The array to inspect. 8547 * @param {Array} values The values to exclude. 8548 * @param {Function} [iteratee] The iteratee invoked per element. 8549 * @param {Function} [comparator] The comparator invoked per element. 8550 * @returns {Array} Returns the new array of filtered values. 8551 */ 8552 function baseDifference(array, values, iteratee, comparator) { 8553 var index = -1, 8554 includes = arrayIncludes, 8555 isCommon = true, 8556 length = array.length, 8557 result = [], 8558 valuesLength = values.length; 8559 8560 if (!length) { 8561 return result; 8562 } 8563 if (iteratee) { 8564 values = arrayMap(values, baseUnary(iteratee)); 8565 } 8566 if (comparator) { 8567 includes = arrayIncludesWith; 8568 isCommon = false; 8569 } 8570 else if (values.length >= LARGE_ARRAY_SIZE) { 8571 includes = cacheHas; 8572 isCommon = false; 8573 values = new SetCache(values); 8574 } 8575 outer: 8576 while (++index < length) { 8577 var value = array[index], 8578 computed = iteratee == null ? value : iteratee(value); 8579 8580 value = (comparator || value !== 0) ? value : 0; 8581 if (isCommon && computed === computed) { 8582 var valuesIndex = valuesLength; 8583 while (valuesIndex--) { 8584 if (values[valuesIndex] === computed) { 8585 continue outer; 8586 } 8587 } 8588 result.push(value); 8589 } 8590 else if (!includes(values, computed, comparator)) { 8591 result.push(value); 8592 } 8593 } 8594 return result; 8595 } 8596 8597 /** 8598 * The base implementation of `_.forEach` without support for iteratee shorthands. 8599 * 8600 * @private 8601 * @param {Array|Object} collection The collection to iterate over. 8602 * @param {Function} iteratee The function invoked per iteration. 8603 * @returns {Array|Object} Returns `collection`. 8604 */ 8605 var baseEach = createBaseEach(baseForOwn); 8606 8607 /** 8608 * The base implementation of `_.forEachRight` without support for iteratee shorthands. 8609 * 8610 * @private 8611 * @param {Array|Object} collection The collection to iterate over. 8612 * @param {Function} iteratee The function invoked per iteration. 8613 * @returns {Array|Object} Returns `collection`. 8614 */ 8615 var baseEachRight = createBaseEach(baseForOwnRight, true); 8616 8617 /** 8618 * The base implementation of `_.every` without support for iteratee shorthands. 8619 * 8620 * @private 8621 * @param {Array|Object} collection The collection to iterate over. 8622 * @param {Function} predicate The function invoked per iteration. 8623 * @returns {boolean} Returns `true` if all elements pass the predicate check, 8624 * else `false` 8625 */ 8626 function baseEvery(collection, predicate) { 8627 var result = true; 8628 baseEach(collection, function(value, index, collection) { 8629 result = !!predicate(value, index, collection); 8630 return result; 8631 }); 8632 return result; 8633 } 8634 8635 /** 8636 * The base implementation of methods like `_.max` and `_.min` which accepts a 8637 * `comparator` to determine the extremum value. 8638 * 8639 * @private 8640 * @param {Array} array The array to iterate over. 8641 * @param {Function} iteratee The iteratee invoked per iteration. 8642 * @param {Function} comparator The comparator used to compare values. 8643 * @returns {*} Returns the extremum value. 8644 */ 8645 function baseExtremum(array, iteratee, comparator) { 8646 var index = -1, 8647 length = array.length; 8648 8649 while (++index < length) { 8650 var value = array[index], 8651 current = iteratee(value); 8652 8653 if (current != null && (computed === undefined 8654 ? (current === current && !isSymbol(current)) 8655 : comparator(current, computed) 8656 )) { 8657 var computed = current, 8658 result = value; 8659 } 8660 } 8661 return result; 8662 } 8663 8664 /** 8665 * The base implementation of `_.fill` without an iteratee call guard. 8666 * 8667 * @private 8668 * @param {Array} array The array to fill. 8669 * @param {*} value The value to fill `array` with. 8670 * @param {number} [start=0] The start position. 8671 * @param {number} [end=array.length] The end position. 8672 * @returns {Array} Returns `array`. 8673 */ 8674 function baseFill(array, value, start, end) { 8675 var length = array.length; 8676 8677 start = toInteger(start); 8678 if (start < 0) { 8679 start = -start > length ? 0 : (length + start); 8680 } 8681 end = (end === undefined || end > length) ? length : toInteger(end); 8682 if (end < 0) { 8683 end += length; 8684 } 8685 end = start > end ? 0 : toLength(end); 8686 while (start < end) { 8687 array[start++] = value; 8688 } 8689 return array; 8690 } 8691 8692 /** 8693 * The base implementation of `_.filter` without support for iteratee shorthands. 8694 * 8695 * @private 8696 * @param {Array|Object} collection The collection to iterate over. 8697 * @param {Function} predicate The function invoked per iteration. 8698 * @returns {Array} Returns the new filtered array. 8699 */ 8700 function baseFilter(collection, predicate) { 8701 var result = []; 8702 baseEach(collection, function(value, index, collection) { 8703 if (predicate(value, index, collection)) { 8704 result.push(value); 8705 } 8706 }); 8707 return result; 8708 } 8709 8710 /** 8711 * The base implementation of `_.flatten` with support for restricting flattening. 8712 * 8713 * @private 8714 * @param {Array} array The array to flatten. 8715 * @param {number} depth The maximum recursion depth. 8716 * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. 8717 * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. 8718 * @param {Array} [result=[]] The initial result value. 8719 * @returns {Array} Returns the new flattened array. 8720 */ 8721 function baseFlatten(array, depth, predicate, isStrict, result) { 8722 var index = -1, 8723 length = array.length; 8724 8725 predicate || (predicate = isFlattenable); 8726 result || (result = []); 8727 8728 while (++index < length) { 8729 var value = array[index]; 8730 if (depth > 0 && predicate(value)) { 8731 if (depth > 1) { 8732 // Recursively flatten arrays (susceptible to call stack limits). 8733 baseFlatten(value, depth - 1, predicate, isStrict, result); 8734 } else { 8735 arrayPush(result, value); 8736 } 8737 } else if (!isStrict) { 8738 result[result.length] = value; 8739 } 8740 } 8741 return result; 8742 } 8743 8744 /** 8745 * The base implementation of `baseForOwn` which iterates over `object` 8746 * properties returned by `keysFunc` and invokes `iteratee` for each property. 8747 * Iteratee functions may exit iteration early by explicitly returning `false`. 8748 * 8749 * @private 8750 * @param {Object} object The object to iterate over. 8751 * @param {Function} iteratee The function invoked per iteration. 8752 * @param {Function} keysFunc The function to get the keys of `object`. 8753 * @returns {Object} Returns `object`. 8754 */ 8755 var baseFor = createBaseFor(); 8756 8757 /** 8758 * This function is like `baseFor` except that it iterates over properties 8759 * in the opposite order. 8760 * 8761 * @private 8762 * @param {Object} object The object to iterate over. 8763 * @param {Function} iteratee The function invoked per iteration. 8764 * @param {Function} keysFunc The function to get the keys of `object`. 8765 * @returns {Object} Returns `object`. 8766 */ 8767 var baseForRight = createBaseFor(true); 8768 8769 /** 8770 * The base implementation of `_.forOwn` without support for iteratee shorthands. 8771 * 8772 * @private 8773 * @param {Object} object The object to iterate over. 8774 * @param {Function} iteratee The function invoked per iteration. 8775 * @returns {Object} Returns `object`. 8776 */ 8777 function baseForOwn(object, iteratee) { 8778 return object && baseFor(object, iteratee, keys); 8779 } 8780 8781 /** 8782 * The base implementation of `_.forOwnRight` without support for iteratee shorthands. 8783 * 8784 * @private 8785 * @param {Object} object The object to iterate over. 8786 * @param {Function} iteratee The function invoked per iteration. 8787 * @returns {Object} Returns `object`. 8788 */ 8789 function baseForOwnRight(object, iteratee) { 8790 return object && baseForRight(object, iteratee, keys); 8791 } 8792 8793 /** 8794 * The base implementation of `_.functions` which creates an array of 8795 * `object` function property names filtered from `props`. 8796 * 8797 * @private 8798 * @param {Object} object The object to inspect. 8799 * @param {Array} props The property names to filter. 8800 * @returns {Array} Returns the function names. 8801 */ 8802 function baseFunctions(object, props) { 8803 return arrayFilter(props, function(key) { 8804 return isFunction(object[key]); 8805 }); 8806 } 8807 8808 /** 8809 * The base implementation of `_.get` without support for default values. 8810 * 8811 * @private 8812 * @param {Object} object The object to query. 8813 * @param {Array|string} path The path of the property to get. 8814 * @returns {*} Returns the resolved value. 8815 */ 8816 function baseGet(object, path) { 8817 path = castPath(path, object); 8818 8819 var index = 0, 8820 length = path.length; 8821 8822 while (object != null && index < length) { 8823 object = object[toKey(path[index++])]; 8824 } 8825 return (index && index == length) ? object : undefined; 8826 } 8827 8828 /** 8829 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses 8830 * `keysFunc` and `symbolsFunc` to get the enumerable property names and 8831 * symbols of `object`. 8832 * 8833 * @private 8834 * @param {Object} object The object to query. 8835 * @param {Function} keysFunc The function to get the keys of `object`. 8836 * @param {Function} symbolsFunc The function to get the symbols of `object`. 8837 * @returns {Array} Returns the array of property names and symbols. 8838 */ 8839 function baseGetAllKeys(object, keysFunc, symbolsFunc) { 8840 var result = keysFunc(object); 8841 return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); 8842 } 8843 8844 /** 8845 * The base implementation of `getTag` without fallbacks for buggy environments. 8846 * 8847 * @private 8848 * @param {*} value The value to query. 8849 * @returns {string} Returns the `toStringTag`. 8850 */ 8851 function baseGetTag(value) { 8852 if (value == null) { 8853 return value === undefined ? undefinedTag : nullTag; 8854 } 8855 return (symToStringTag && symToStringTag in Object(value)) 8856 ? getRawTag(value) 8857 : objectToString(value); 8858 } 8859 8860 /** 8861 * The base implementation of `_.gt` which doesn't coerce arguments. 8862 * 8863 * @private 8864 * @param {*} value The value to compare. 8865 * @param {*} other The other value to compare. 8866 * @returns {boolean} Returns `true` if `value` is greater than `other`, 8867 * else `false`. 8868 */ 8869 function baseGt(value, other) { 8870 return value > other; 8871 } 8872 8873 /** 8874 * The base implementation of `_.has` without support for deep paths. 8875 * 8876 * @private 8877 * @param {Object} [object] The object to query. 8878 * @param {Array|string} key The key to check. 8879 * @returns {boolean} Returns `true` if `key` exists, else `false`. 8880 */ 8881 function baseHas(object, key) { 8882 return object != null && hasOwnProperty.call(object, key); 8883 } 8884 8885 /** 8886 * The base implementation of `_.hasIn` without support for deep paths. 8887 * 8888 * @private 8889 * @param {Object} [object] The object to query. 8890 * @param {Array|string} key The key to check. 8891 * @returns {boolean} Returns `true` if `key` exists, else `false`. 8892 */ 8893 function baseHasIn(object, key) { 8894 return object != null && key in Object(object); 8895 } 8896 8897 /** 8898 * The base implementation of `_.inRange` which doesn't coerce arguments. 8899 * 8900 * @private 8901 * @param {number} number The number to check. 8902 * @param {number} start The start of the range. 8903 * @param {number} end The end of the range. 8904 * @returns {boolean} Returns `true` if `number` is in the range, else `false`. 8905 */ 8906 function baseInRange(number, start, end) { 8907 return number >= nativeMin(start, end) && number < nativeMax(start, end); 8908 } 8909 8910 /** 8911 * The base implementation of methods like `_.intersection`, without support 8912 * for iteratee shorthands, that accepts an array of arrays to inspect. 8913 * 8914 * @private 8915 * @param {Array} arrays The arrays to inspect. 8916 * @param {Function} [iteratee] The iteratee invoked per element. 8917 * @param {Function} [comparator] The comparator invoked per element. 8918 * @returns {Array} Returns the new array of shared values. 8919 */ 8920 function baseIntersection(arrays, iteratee, comparator) { 8921 var includes = comparator ? arrayIncludesWith : arrayIncludes, 8922 length = arrays[0].length, 8923 othLength = arrays.length, 8924 othIndex = othLength, 8925 caches = Array(othLength), 8926 maxLength = Infinity, 8927 result = []; 8928 8929 while (othIndex--) { 8930 var array = arrays[othIndex]; 8931 if (othIndex && iteratee) { 8932 array = arrayMap(array, baseUnary(iteratee)); 8933 } 8934 maxLength = nativeMin(array.length, maxLength); 8935 caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120)) 8936 ? new SetCache(othIndex && array) 8937 : undefined; 8938 } 8939 array = arrays[0]; 8940 8941 var index = -1, 8942 seen = caches[0]; 8943 8944 outer: 8945 while (++index < length && result.length < maxLength) { 8946 var value = array[index], 8947 computed = iteratee ? iteratee(value) : value; 8948 8949 value = (comparator || value !== 0) ? value : 0; 8950 if (!(seen 8951 ? cacheHas(seen, computed) 8952 : includes(result, computed, comparator) 8953 )) { 8954 othIndex = othLength; 8955 while (--othIndex) { 8956 var cache = caches[othIndex]; 8957 if (!(cache 8958 ? cacheHas(cache, computed) 8959 : includes(arrays[othIndex], computed, comparator)) 8960 ) { 8961 continue outer; 8962 } 8963 } 8964 if (seen) { 8965 seen.push(computed); 8966 } 8967 result.push(value); 8968 } 8969 } 8970 return result; 8971 } 8972 8973 /** 8974 * The base implementation of `_.invert` and `_.invertBy` which inverts 8975 * `object` with values transformed by `iteratee` and set by `setter`. 8976 * 8977 * @private 8978 * @param {Object} object The object to iterate over. 8979 * @param {Function} setter The function to set `accumulator` values. 8980 * @param {Function} iteratee The iteratee to transform values. 8981 * @param {Object} accumulator The initial inverted object. 8982 * @returns {Function} Returns `accumulator`. 8983 */ 8984 function baseInverter(object, setter, iteratee, accumulator) { 8985 baseForOwn(object, function(value, key, object) { 8986 setter(accumulator, iteratee(value), key, object); 8987 }); 8988 return accumulator; 8989 } 8990 8991 /** 8992 * The base implementation of `_.invoke` without support for individual 8993 * method arguments. 8994 * 8995 * @private 8996 * @param {Object} object The object to query. 8997 * @param {Array|string} path The path of the method to invoke. 8998 * @param {Array} args The arguments to invoke the method with. 8999 * @returns {*} Returns the result of the invoked method. 9000 */ 9001 function baseInvoke(object, path, args) { 9002 path = castPath(path, object); 9003 object = parent(object, path); 9004 var func = object == null ? object : object[toKey(last(path))]; 9005 return func == null ? undefined : apply(func, object, args); 9006 } 9007 9008 /** 9009 * The base implementation of `_.isArguments`. 9010 * 9011 * @private 9012 * @param {*} value The value to check. 9013 * @returns {boolean} Returns `true` if `value` is an `arguments` object, 9014 */ 9015 function baseIsArguments(value) { 9016 return isObjectLike(value) && baseGetTag(value) == argsTag; 9017 } 9018 9019 /** 9020 * The base implementation of `_.isArrayBuffer` without Node.js optimizations. 9021 * 9022 * @private 9023 * @param {*} value The value to check. 9024 * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. 9025 */ 9026 function baseIsArrayBuffer(value) { 9027 return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; 9028 } 9029 9030 /** 9031 * The base implementation of `_.isDate` without Node.js optimizations. 9032 * 9033 * @private 9034 * @param {*} value The value to check. 9035 * @returns {boolean} Returns `true` if `value` is a date object, else `false`. 9036 */ 9037 function baseIsDate(value) { 9038 return isObjectLike(value) && baseGetTag(value) == dateTag; 9039 } 9040 9041 /** 9042 * The base implementation of `_.isEqual` which supports partial comparisons 9043 * and tracks traversed objects. 9044 * 9045 * @private 9046 * @param {*} value The value to compare. 9047 * @param {*} other The other value to compare. 9048 * @param {boolean} bitmask The bitmask flags. 9049 * 1 - Unordered comparison 9050 * 2 - Partial comparison 9051 * @param {Function} [customizer] The function to customize comparisons. 9052 * @param {Object} [stack] Tracks traversed `value` and `other` objects. 9053 * @returns {boolean} Returns `true` if the values are equivalent, else `false`. 9054 */ 9055 function baseIsEqual(value, other, bitmask, customizer, stack) { 9056 if (value === other) { 9057 return true; 9058 } 9059 if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { 9060 return value !== value && other !== other; 9061 } 9062 return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); 9063 } 9064 9065 /** 9066 * A specialized version of `baseIsEqual` for arrays and objects which performs 9067 * deep comparisons and tracks traversed objects enabling objects with circular 9068 * references to be compared. 9069 * 9070 * @private 9071 * @param {Object} object The object to compare. 9072 * @param {Object} other The other object to compare. 9073 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 9074 * @param {Function} customizer The function to customize comparisons. 9075 * @param {Function} equalFunc The function to determine equivalents of values. 9076 * @param {Object} [stack] Tracks traversed `object` and `other` objects. 9077 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. 9078 */ 9079 function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { 9080 var objIsArr = isArray(object), 9081 othIsArr = isArray(other), 9082 objTag = objIsArr ? arrayTag : getTag(object), 9083 othTag = othIsArr ? arrayTag : getTag(other); 9084 9085 objTag = objTag == argsTag ? objectTag : objTag; 9086 othTag = othTag == argsTag ? objectTag : othTag; 9087 9088 var objIsObj = objTag == objectTag, 9089 othIsObj = othTag == objectTag, 9090 isSameTag = objTag == othTag; 9091 9092 if (isSameTag && isBuffer(object)) { 9093 if (!isBuffer(other)) { 9094 return false; 9095 } 9096 objIsArr = true; 9097 objIsObj = false; 9098 } 9099 if (isSameTag && !objIsObj) { 9100 stack || (stack = new Stack); 9101 return (objIsArr || isTypedArray(object)) 9102 ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) 9103 : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); 9104 } 9105 if (!(bitmask & COMPARE_PARTIAL_FLAG)) { 9106 var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), 9107 othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); 9108 9109 if (objIsWrapped || othIsWrapped) { 9110 var objUnwrapped = objIsWrapped ? object.value() : object, 9111 othUnwrapped = othIsWrapped ? other.value() : other; 9112 9113 stack || (stack = new Stack); 9114 return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); 9115 } 9116 } 9117 if (!isSameTag) { 9118 return false; 9119 } 9120 stack || (stack = new Stack); 9121 return equalObjects(object, other, bitmask, customizer, equalFunc, stack); 9122 } 9123 9124 /** 9125 * The base implementation of `_.isMap` without Node.js optimizations. 9126 * 9127 * @private 9128 * @param {*} value The value to check. 9129 * @returns {boolean} Returns `true` if `value` is a map, else `false`. 9130 */ 9131 function baseIsMap(value) { 9132 return isObjectLike(value) && getTag(value) == mapTag; 9133 } 9134 9135 /** 9136 * The base implementation of `_.isMatch` without support for iteratee shorthands. 9137 * 9138 * @private 9139 * @param {Object} object The object to inspect. 9140 * @param {Object} source The object of property values to match. 9141 * @param {Array} matchData The property names, values, and compare flags to match. 9142 * @param {Function} [customizer] The function to customize comparisons. 9143 * @returns {boolean} Returns `true` if `object` is a match, else `false`. 9144 */ 9145 function baseIsMatch(object, source, matchData, customizer) { 9146 var index = matchData.length, 9147 length = index, 9148 noCustomizer = !customizer; 9149 9150 if (object == null) { 9151 return !length; 9152 } 9153 object = Object(object); 9154 while (index--) { 9155 var data = matchData[index]; 9156 if ((noCustomizer && data[2]) 9157 ? data[1] !== object[data[0]] 9158 : !(data[0] in object) 9159 ) { 9160 return false; 9161 } 9162 } 9163 while (++index < length) { 9164 data = matchData[index]; 9165 var key = data[0], 9166 objValue = object[key], 9167 srcValue = data[1]; 9168 9169 if (noCustomizer && data[2]) { 9170 if (objValue === undefined && !(key in object)) { 9171 return false; 9172 } 9173 } else { 9174 var stack = new Stack; 9175 if (customizer) { 9176 var result = customizer(objValue, srcValue, key, object, source, stack); 9177 } 9178 if (!(result === undefined 9179 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) 9180 : result 9181 )) { 9182 return false; 9183 } 9184 } 9185 } 9186 return true; 9187 } 9188 9189 /** 9190 * The base implementation of `_.isNative` without bad shim checks. 9191 * 9192 * @private 9193 * @param {*} value The value to check. 9194 * @returns {boolean} Returns `true` if `value` is a native function, 9195 * else `false`. 9196 */ 9197 function baseIsNative(value) { 9198 if (!isObject(value) || isMasked(value)) { 9199 return false; 9200 } 9201 var pattern = isFunction(value) ? reIsNative : reIsHostCtor; 9202 return pattern.test(toSource(value)); 9203 } 9204 9205 /** 9206 * The base implementation of `_.isRegExp` without Node.js optimizations. 9207 * 9208 * @private 9209 * @param {*} value The value to check. 9210 * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. 9211 */ 9212 function baseIsRegExp(value) { 9213 return isObjectLike(value) && baseGetTag(value) == regexpTag; 9214 } 9215 9216 /** 9217 * The base implementation of `_.isSet` without Node.js optimizations. 9218 * 9219 * @private 9220 * @param {*} value The value to check. 9221 * @returns {boolean} Returns `true` if `value` is a set, else `false`. 9222 */ 9223 function baseIsSet(value) { 9224 return isObjectLike(value) && getTag(value) == setTag; 9225 } 9226 9227 /** 9228 * The base implementation of `_.isTypedArray` without Node.js optimizations. 9229 * 9230 * @private 9231 * @param {*} value The value to check. 9232 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. 9233 */ 9234 function baseIsTypedArray(value) { 9235 return isObjectLike(value) && 9236 isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; 9237 } 9238 9239 /** 9240 * The base implementation of `_.iteratee`. 9241 * 9242 * @private 9243 * @param {*} [value=_.identity] The value to convert to an iteratee. 9244 * @returns {Function} Returns the iteratee. 9245 */ 9246 function baseIteratee(value) { 9247 // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. 9248 // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. 9249 if (typeof value == 'function') { 9250 return value; 9251 } 9252 if (value == null) { 9253 return identity; 9254 } 9255 if (typeof value == 'object') { 9256 return isArray(value) 9257 ? baseMatchesProperty(value[0], value[1]) 9258 : baseMatches(value); 9259 } 9260 return property(value); 9261 } 9262 9263 /** 9264 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. 9265 * 9266 * @private 9267 * @param {Object} object The object to query. 9268 * @returns {Array} Returns the array of property names. 9269 */ 9270 function baseKeys(object) { 9271 if (!isPrototype(object)) { 9272 return nativeKeys(object); 9273 } 9274 var result = []; 9275 for (var key in Object(object)) { 9276 if (hasOwnProperty.call(object, key) && key != 'constructor') { 9277 result.push(key); 9278 } 9279 } 9280 return result; 9281 } 9282 9283 /** 9284 * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. 9285 * 9286 * @private 9287 * @param {Object} object The object to query. 9288 * @returns {Array} Returns the array of property names. 9289 */ 9290 function baseKeysIn(object) { 9291 if (!isObject(object)) { 9292 return nativeKeysIn(object); 9293 } 9294 var isProto = isPrototype(object), 9295 result = []; 9296 9297 for (var key in object) { 9298 if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { 9299 result.push(key); 9300 } 9301 } 9302 return result; 9303 } 9304 9305 /** 9306 * The base implementation of `_.lt` which doesn't coerce arguments. 9307 * 9308 * @private 9309 * @param {*} value The value to compare. 9310 * @param {*} other The other value to compare. 9311 * @returns {boolean} Returns `true` if `value` is less than `other`, 9312 * else `false`. 9313 */ 9314 function baseLt(value, other) { 9315 return value < other; 9316 } 9317 9318 /** 9319 * The base implementation of `_.map` without support for iteratee shorthands. 9320 * 9321 * @private 9322 * @param {Array|Object} collection The collection to iterate over. 9323 * @param {Function} iteratee The function invoked per iteration. 9324 * @returns {Array} Returns the new mapped array. 9325 */ 9326 function baseMap(collection, iteratee) { 9327 var index = -1, 9328 result = isArrayLike(collection) ? Array(collection.length) : []; 9329 9330 baseEach(collection, function(value, key, collection) { 9331 result[++index] = iteratee(value, key, collection); 9332 }); 9333 return result; 9334 } 9335 9336 /** 9337 * The base implementation of `_.matches` which doesn't clone `source`. 9338 * 9339 * @private 9340 * @param {Object} source The object of property values to match. 9341 * @returns {Function} Returns the new spec function. 9342 */ 9343 function baseMatches(source) { 9344 var matchData = getMatchData(source); 9345 if (matchData.length == 1 && matchData[0][2]) { 9346 return matchesStrictComparable(matchData[0][0], matchData[0][1]); 9347 } 9348 return function(object) { 9349 return object === source || baseIsMatch(object, source, matchData); 9350 }; 9351 } 9352 9353 /** 9354 * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. 9355 * 9356 * @private 9357 * @param {string} path The path of the property to get. 9358 * @param {*} srcValue The value to match. 9359 * @returns {Function} Returns the new spec function. 9360 */ 9361 function baseMatchesProperty(path, srcValue) { 9362 if (isKey(path) && isStrictComparable(srcValue)) { 9363 return matchesStrictComparable(toKey(path), srcValue); 9364 } 9365 return function(object) { 9366 var objValue = get(object, path); 9367 return (objValue === undefined && objValue === srcValue) 9368 ? hasIn(object, path) 9369 : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); 9370 }; 9371 } 9372 9373 /** 9374 * The base implementation of `_.merge` without support for multiple sources. 9375 * 9376 * @private 9377 * @param {Object} object The destination object. 9378 * @param {Object} source The source object. 9379 * @param {number} srcIndex The index of `source`. 9380 * @param {Function} [customizer] The function to customize merged values. 9381 * @param {Object} [stack] Tracks traversed source values and their merged 9382 * counterparts. 9383 */ 9384 function baseMerge(object, source, srcIndex, customizer, stack) { 9385 if (object === source) { 9386 return; 9387 } 9388 baseFor(source, function(srcValue, key) { 9389 stack || (stack = new Stack); 9390 if (isObject(srcValue)) { 9391 baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); 9392 } 9393 else { 9394 var newValue = customizer 9395 ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack) 9396 : undefined; 9397 9398 if (newValue === undefined) { 9399 newValue = srcValue; 9400 } 9401 assignMergeValue(object, key, newValue); 9402 } 9403 }, keysIn); 9404 } 9405 9406 /** 9407 * A specialized version of `baseMerge` for arrays and objects which performs 9408 * deep merges and tracks traversed objects enabling objects with circular 9409 * references to be merged. 9410 * 9411 * @private 9412 * @param {Object} object The destination object. 9413 * @param {Object} source The source object. 9414 * @param {string} key The key of the value to merge. 9415 * @param {number} srcIndex The index of `source`. 9416 * @param {Function} mergeFunc The function to merge values. 9417 * @param {Function} [customizer] The function to customize assigned values. 9418 * @param {Object} [stack] Tracks traversed source values and their merged 9419 * counterparts. 9420 */ 9421 function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { 9422 var objValue = safeGet(object, key), 9423 srcValue = safeGet(source, key), 9424 stacked = stack.get(srcValue); 9425 9426 if (stacked) { 9427 assignMergeValue(object, key, stacked); 9428 return; 9429 } 9430 var newValue = customizer 9431 ? customizer(objValue, srcValue, (key + ''), object, source, stack) 9432 : undefined; 9433 9434 var isCommon = newValue === undefined; 9435 9436 if (isCommon) { 9437 var isArr = isArray(srcValue), 9438 isBuff = !isArr && isBuffer(srcValue), 9439 isTyped = !isArr && !isBuff && isTypedArray(srcValue); 9440 9441 newValue = srcValue; 9442 if (isArr || isBuff || isTyped) { 9443 if (isArray(objValue)) { 9444 newValue = objValue; 9445 } 9446 else if (isArrayLikeObject(objValue)) { 9447 newValue = copyArray(objValue); 9448 } 9449 else if (isBuff) { 9450 isCommon = false; 9451 newValue = cloneBuffer(srcValue, true); 9452 } 9453 else if (isTyped) { 9454 isCommon = false; 9455 newValue = cloneTypedArray(srcValue, true); 9456 } 9457 else { 9458 newValue = []; 9459 } 9460 } 9461 else if (isPlainObject(srcValue) || isArguments(srcValue)) { 9462 newValue = objValue; 9463 if (isArguments(objValue)) { 9464 newValue = toPlainObject(objValue); 9465 } 9466 else if (!isObject(objValue) || isFunction(objValue)) { 9467 newValue = initCloneObject(srcValue); 9468 } 9469 } 9470 else { 9471 isCommon = false; 9472 } 9473 } 9474 if (isCommon) { 9475 // Recursively merge objects and arrays (susceptible to call stack limits). 9476 stack.set(srcValue, newValue); 9477 mergeFunc(newValue, srcValue, srcIndex, customizer, stack); 9478 stack['delete'](srcValue); 9479 } 9480 assignMergeValue(object, key, newValue); 9481 } 9482 9483 /** 9484 * The base implementation of `_.nth` which doesn't coerce arguments. 9485 * 9486 * @private 9487 * @param {Array} array The array to query. 9488 * @param {number} n The index of the element to return. 9489 * @returns {*} Returns the nth element of `array`. 9490 */ 9491 function baseNth(array, n) { 9492 var length = array.length; 9493 if (!length) { 9494 return; 9495 } 9496 n += n < 0 ? length : 0; 9497 return isIndex(n, length) ? array[n] : undefined; 9498 } 9499 9500 /** 9501 * The base implementation of `_.orderBy` without param guards. 9502 * 9503 * @private 9504 * @param {Array|Object} collection The collection to iterate over. 9505 * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. 9506 * @param {string[]} orders The sort orders of `iteratees`. 9507 * @returns {Array} Returns the new sorted array. 9508 */ 9509 function baseOrderBy(collection, iteratees, orders) { 9510 if (iteratees.length) { 9511 iteratees = arrayMap(iteratees, function(iteratee) { 9512 if (isArray(iteratee)) { 9513 return function(value) { 9514 return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee); 9515 } 9516 } 9517 return iteratee; 9518 }); 9519 } else { 9520 iteratees = [identity]; 9521 } 9522 9523 var index = -1; 9524 iteratees = arrayMap(iteratees, baseUnary(getIteratee())); 9525 9526 var result = baseMap(collection, function(value, key, collection) { 9527 var criteria = arrayMap(iteratees, function(iteratee) { 9528 return iteratee(value); 9529 }); 9530 return { 'criteria': criteria, 'index': ++index, 'value': value }; 9531 }); 9532 9533 return baseSortBy(result, function(object, other) { 9534 return compareMultiple(object, other, orders); 9535 }); 9536 } 9537 9538 /** 9539 * The base implementation of `_.pick` without support for individual 9540 * property identifiers. 9541 * 9542 * @private 9543 * @param {Object} object The source object. 9544 * @param {string[]} paths The property paths to pick. 9545 * @returns {Object} Returns the new object. 9546 */ 9547 function basePick(object, paths) { 9548 return basePickBy(object, paths, function(value, path) { 9549 return hasIn(object, path); 9550 }); 9551 } 9552 9553 /** 9554 * The base implementation of `_.pickBy` without support for iteratee shorthands. 9555 * 9556 * @private 9557 * @param {Object} object The source object. 9558 * @param {string[]} paths The property paths to pick. 9559 * @param {Function} predicate The function invoked per property. 9560 * @returns {Object} Returns the new object. 9561 */ 9562 function basePickBy(object, paths, predicate) { 9563 var index = -1, 9564 length = paths.length, 9565 result = {}; 9566 9567 while (++index < length) { 9568 var path = paths[index], 9569 value = baseGet(object, path); 9570 9571 if (predicate(value, path)) { 9572 baseSet(result, castPath(path, object), value); 9573 } 9574 } 9575 return result; 9576 } 9577 9578 /** 9579 * A specialized version of `baseProperty` which supports deep paths. 9580 * 9581 * @private 9582 * @param {Array|string} path The path of the property to get. 9583 * @returns {Function} Returns the new accessor function. 9584 */ 9585 function basePropertyDeep(path) { 9586 return function(object) { 9587 return baseGet(object, path); 9588 }; 9589 } 9590 9591 /** 9592 * The base implementation of `_.pullAllBy` without support for iteratee 9593 * shorthands. 9594 * 9595 * @private 9596 * @param {Array} array The array to modify. 9597 * @param {Array} values The values to remove. 9598 * @param {Function} [iteratee] The iteratee invoked per element. 9599 * @param {Function} [comparator] The comparator invoked per element. 9600 * @returns {Array} Returns `array`. 9601 */ 9602 function basePullAll(array, values, iteratee, comparator) { 9603 var indexOf = comparator ? baseIndexOfWith : baseIndexOf, 9604 index = -1, 9605 length = values.length, 9606 seen = array; 9607 9608 if (array === values) { 9609 values = copyArray(values); 9610 } 9611 if (iteratee) { 9612 seen = arrayMap(array, baseUnary(iteratee)); 9613 } 9614 while (++index < length) { 9615 var fromIndex = 0, 9616 value = values[index], 9617 computed = iteratee ? iteratee(value) : value; 9618 9619 while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) { 9620 if (seen !== array) { 9621 splice.call(seen, fromIndex, 1); 9622 } 9623 splice.call(array, fromIndex, 1); 9624 } 9625 } 9626 return array; 9627 } 9628 9629 /** 9630 * The base implementation of `_.pullAt` without support for individual 9631 * indexes or capturing the removed elements. 9632 * 9633 * @private 9634 * @param {Array} array The array to modify. 9635 * @param {number[]} indexes The indexes of elements to remove. 9636 * @returns {Array} Returns `array`. 9637 */ 9638 function basePullAt(array, indexes) { 9639 var length = array ? indexes.length : 0, 9640 lastIndex = length - 1; 9641 9642 while (length--) { 9643 var index = indexes[length]; 9644 if (length == lastIndex || index !== previous) { 9645 var previous = index; 9646 if (isIndex(index)) { 9647 splice.call(array, index, 1); 9648 } else { 9649 baseUnset(array, index); 9650 } 9651 } 9652 } 9653 return array; 9654 } 9655 9656 /** 9657 * The base implementation of `_.random` without support for returning 9658 * floating-point numbers. 9659 * 9660 * @private 9661 * @param {number} lower The lower bound. 9662 * @param {number} upper The upper bound. 9663 * @returns {number} Returns the random number. 9664 */ 9665 function baseRandom(lower, upper) { 9666 return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); 9667 } 9668 9669 /** 9670 * The base implementation of `_.range` and `_.rangeRight` which doesn't 9671 * coerce arguments. 9672 * 9673 * @private 9674 * @param {number} start The start of the range. 9675 * @param {number} end The end of the range. 9676 * @param {number} step The value to increment or decrement by. 9677 * @param {boolean} [fromRight] Specify iterating from right to left. 9678 * @returns {Array} Returns the range of numbers. 9679 */ 9680 function baseRange(start, end, step, fromRight) { 9681 var index = -1, 9682 length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), 9683 result = Array(length); 9684 9685 while (length--) { 9686 result[fromRight ? length : ++index] = start; 9687 start += step; 9688 } 9689 return result; 9690 } 9691 9692 /** 9693 * The base implementation of `_.repeat` which doesn't coerce arguments. 9694 * 9695 * @private 9696 * @param {string} string The string to repeat. 9697 * @param {number} n The number of times to repeat the string. 9698 * @returns {string} Returns the repeated string. 9699 */ 9700 function baseRepeat(string, n) { 9701 var result = ''; 9702 if (!string || n < 1 || n > MAX_SAFE_INTEGER) { 9703 return result; 9704 } 9705 // Leverage the exponentiation by squaring algorithm for a faster repeat. 9706 // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details. 9707 do { 9708 if (n % 2) { 9709 result += string; 9710 } 9711 n = nativeFloor(n / 2); 9712 if (n) { 9713 string += string; 9714 } 9715 } while (n); 9716 9717 return result; 9718 } 9719 9720 /** 9721 * The base implementation of `_.rest` which doesn't validate or coerce arguments. 9722 * 9723 * @private 9724 * @param {Function} func The function to apply a rest parameter to. 9725 * @param {number} [start=func.length-1] The start position of the rest parameter. 9726 * @returns {Function} Returns the new function. 9727 */ 9728 function baseRest(func, start) { 9729 return setToString(overRest(func, start, identity), func + ''); 9730 } 9731 9732 /** 9733 * The base implementation of `_.sample`. 9734 * 9735 * @private 9736 * @param {Array|Object} collection The collection to sample. 9737 * @returns {*} Returns the random element. 9738 */ 9739 function baseSample(collection) { 9740 return arraySample(values(collection)); 9741 } 9742 9743 /** 9744 * The base implementation of `_.sampleSize` without param guards. 9745 * 9746 * @private 9747 * @param {Array|Object} collection The collection to sample. 9748 * @param {number} n The number of elements to sample. 9749 * @returns {Array} Returns the random elements. 9750 */ 9751 function baseSampleSize(collection, n) { 9752 var array = values(collection); 9753 return shuffleSelf(array, baseClamp(n, 0, array.length)); 9754 } 9755 9756 /** 9757 * The base implementation of `_.set`. 9758 * 9759 * @private 9760 * @param {Object} object The object to modify. 9761 * @param {Array|string} path The path of the property to set. 9762 * @param {*} value The value to set. 9763 * @param {Function} [customizer] The function to customize path creation. 9764 * @returns {Object} Returns `object`. 9765 */ 9766 function baseSet(object, path, value, customizer) { 9767 if (!isObject(object)) { 9768 return object; 9769 } 9770 path = castPath(path, object); 9771 9772 var index = -1, 9773 length = path.length, 9774 lastIndex = length - 1, 9775 nested = object; 9776 9777 while (nested != null && ++index < length) { 9778 var key = toKey(path[index]), 9779 newValue = value; 9780 9781 if (key === '__proto__' || key === 'constructor' || key === 'prototype') { 9782 return object; 9783 } 9784 9785 if (index != lastIndex) { 9786 var objValue = nested[key]; 9787 newValue = customizer ? customizer(objValue, key, nested) : undefined; 9788 if (newValue === undefined) { 9789 newValue = isObject(objValue) 9790 ? objValue 9791 : (isIndex(path[index + 1]) ? [] : {}); 9792 } 9793 } 9794 assignValue(nested, key, newValue); 9795 nested = nested[key]; 9796 } 9797 return object; 9798 } 9799 9800 /** 9801 * The base implementation of `setData` without support for hot loop shorting. 9802 * 9803 * @private 9804 * @param {Function} func The function to associate metadata with. 9805 * @param {*} data The metadata. 9806 * @returns {Function} Returns `func`. 9807 */ 9808 var baseSetData = !metaMap ? identity : function(func, data) { 9809 metaMap.set(func, data); 9810 return func; 9811 }; 9812 9813 /** 9814 * The base implementation of `setToString` without support for hot loop shorting. 9815 * 9816 * @private 9817 * @param {Function} func The function to modify. 9818 * @param {Function} string The `toString` result. 9819 * @returns {Function} Returns `func`. 9820 */ 9821 var baseSetToString = !defineProperty ? identity : function(func, string) { 9822 return defineProperty(func, 'toString', { 9823 'configurable': true, 9824 'enumerable': false, 9825 'value': constant(string), 9826 'writable': true 9827 }); 9828 }; 9829 9830 /** 9831 * The base implementation of `_.shuffle`. 9832 * 9833 * @private 9834 * @param {Array|Object} collection The collection to shuffle. 9835 * @returns {Array} Returns the new shuffled array. 9836 */ 9837 function baseShuffle(collection) { 9838 return shuffleSelf(values(collection)); 9839 } 9840 9841 /** 9842 * The base implementation of `_.slice` without an iteratee call guard. 9843 * 9844 * @private 9845 * @param {Array} array The array to slice. 9846 * @param {number} [start=0] The start position. 9847 * @param {number} [end=array.length] The end position. 9848 * @returns {Array} Returns the slice of `array`. 9849 */ 9850 function baseSlice(array, start, end) { 9851 var index = -1, 9852 length = array.length; 9853 9854 if (start < 0) { 9855 start = -start > length ? 0 : (length + start); 9856 } 9857 end = end > length ? length : end; 9858 if (end < 0) { 9859 end += length; 9860 } 9861 length = start > end ? 0 : ((end - start) >>> 0); 9862 start >>>= 0; 9863 9864 var result = Array(length); 9865 while (++index < length) { 9866 result[index] = array[index + start]; 9867 } 9868 return result; 9869 } 9870 9871 /** 9872 * The base implementation of `_.some` without support for iteratee shorthands. 9873 * 9874 * @private 9875 * @param {Array|Object} collection The collection to iterate over. 9876 * @param {Function} predicate The function invoked per iteration. 9877 * @returns {boolean} Returns `true` if any element passes the predicate check, 9878 * else `false`. 9879 */ 9880 function baseSome(collection, predicate) { 9881 var result; 9882 9883 baseEach(collection, function(value, index, collection) { 9884 result = predicate(value, index, collection); 9885 return !result; 9886 }); 9887 return !!result; 9888 } 9889 9890 /** 9891 * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which 9892 * performs a binary search of `array` to determine the index at which `value` 9893 * should be inserted into `array` in order to maintain its sort order. 9894 * 9895 * @private 9896 * @param {Array} array The sorted array to inspect. 9897 * @param {*} value The value to evaluate. 9898 * @param {boolean} [retHighest] Specify returning the highest qualified index. 9899 * @returns {number} Returns the index at which `value` should be inserted 9900 * into `array`. 9901 */ 9902 function baseSortedIndex(array, value, retHighest) { 9903 var low = 0, 9904 high = array == null ? low : array.length; 9905 9906 if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) { 9907 while (low < high) { 9908 var mid = (low + high) >>> 1, 9909 computed = array[mid]; 9910 9911 if (computed !== null && !isSymbol(computed) && 9912 (retHighest ? (computed <= value) : (computed < value))) { 9913 low = mid + 1; 9914 } else { 9915 high = mid; 9916 } 9917 } 9918 return high; 9919 } 9920 return baseSortedIndexBy(array, value, identity, retHighest); 9921 } 9922 9923 /** 9924 * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy` 9925 * which invokes `iteratee` for `value` and each element of `array` to compute 9926 * their sort ranking. The iteratee is invoked with one argument; (value). 9927 * 9928 * @private 9929 * @param {Array} array The sorted array to inspect. 9930 * @param {*} value The value to evaluate. 9931 * @param {Function} iteratee The iteratee invoked per element. 9932 * @param {boolean} [retHighest] Specify returning the highest qualified index. 9933 * @returns {number} Returns the index at which `value` should be inserted 9934 * into `array`. 9935 */ 9936 function baseSortedIndexBy(array, value, iteratee, retHighest) { 9937 var low = 0, 9938 high = array == null ? 0 : array.length; 9939 if (high === 0) { 9940 return 0; 9941 } 9942 9943 value = iteratee(value); 9944 var valIsNaN = value !== value, 9945 valIsNull = value === null, 9946 valIsSymbol = isSymbol(value), 9947 valIsUndefined = value === undefined; 9948 9949 while (low < high) { 9950 var mid = nativeFloor((low + high) / 2), 9951 computed = iteratee(array[mid]), 9952 othIsDefined = computed !== undefined, 9953 othIsNull = computed === null, 9954 othIsReflexive = computed === computed, 9955 othIsSymbol = isSymbol(computed); 9956 9957 if (valIsNaN) { 9958 var setLow = retHighest || othIsReflexive; 9959 } else if (valIsUndefined) { 9960 setLow = othIsReflexive && (retHighest || othIsDefined); 9961 } else if (valIsNull) { 9962 setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); 9963 } else if (valIsSymbol) { 9964 setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); 9965 } else if (othIsNull || othIsSymbol) { 9966 setLow = false; 9967 } else { 9968 setLow = retHighest ? (computed <= value) : (computed < value); 9969 } 9970 if (setLow) { 9971 low = mid + 1; 9972 } else { 9973 high = mid; 9974 } 9975 } 9976 return nativeMin(high, MAX_ARRAY_INDEX); 9977 } 9978 9979 /** 9980 * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without 9981 * support for iteratee shorthands. 9982 * 9983 * @private 9984 * @param {Array} array The array to inspect. 9985 * @param {Function} [iteratee] The iteratee invoked per element. 9986 * @returns {Array} Returns the new duplicate free array. 9987 */ 9988 function baseSortedUniq(array, iteratee) { 9989 var index = -1, 9990 length = array.length, 9991 resIndex = 0, 9992 result = []; 9993 9994 while (++index < length) { 9995 var value = array[index], 9996 computed = iteratee ? iteratee(value) : value; 9997 9998 if (!index || !eq(computed, seen)) { 9999 var seen = computed; 10000 result[resIndex++] = value === 0 ? 0 : value; 10001 } 10002 } 10003 return result; 10004 } 10005 10006 /** 10007 * The base implementation of `_.toNumber` which doesn't ensure correct 10008 * conversions of binary, hexadecimal, or octal string values. 10009 * 10010 * @private 10011 * @param {*} value The value to process. 10012 * @returns {number} Returns the number. 10013 */ 10014 function baseToNumber(value) { 10015 if (typeof value == 'number') { 10016 return value; 10017 } 10018 if (isSymbol(value)) { 10019 return NAN; 10020 } 10021 return +value; 10022 } 10023 10024 /** 10025 * The base implementation of `_.toString` which doesn't convert nullish 10026 * values to empty strings. 10027 * 10028 * @private 10029 * @param {*} value The value to process. 10030 * @returns {string} Returns the string. 10031 */ 10032 function baseToString(value) { 10033 // Exit early for strings to avoid a performance hit in some environments. 10034 if (typeof value == 'string') { 10035 return value; 10036 } 10037 if (isArray(value)) { 10038 // Recursively convert values (susceptible to call stack limits). 10039 return arrayMap(value, baseToString) + ''; 10040 } 10041 if (isSymbol(value)) { 10042 return symbolToString ? symbolToString.call(value) : ''; 10043 } 10044 var result = (value + ''); 10045 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; 10046 } 10047 10048 /** 10049 * The base implementation of `_.uniqBy` without support for iteratee shorthands. 10050 * 10051 * @private 10052 * @param {Array} array The array to inspect. 10053 * @param {Function} [iteratee] The iteratee invoked per element. 10054 * @param {Function} [comparator] The comparator invoked per element. 10055 * @returns {Array} Returns the new duplicate free array. 10056 */ 10057 function baseUniq(array, iteratee, comparator) { 10058 var index = -1, 10059 includes = arrayIncludes, 10060 length = array.length, 10061 isCommon = true, 10062 result = [], 10063 seen = result; 10064 10065 if (comparator) { 10066 isCommon = false; 10067 includes = arrayIncludesWith; 10068 } 10069 else if (length >= LARGE_ARRAY_SIZE) { 10070 var set = iteratee ? null : createSet(array); 10071 if (set) { 10072 return setToArray(set); 10073 } 10074 isCommon = false; 10075 includes = cacheHas; 10076 seen = new SetCache; 10077 } 10078 else { 10079 seen = iteratee ? [] : result; 10080 } 10081 outer: 10082 while (++index < length) { 10083 var value = array[index], 10084 computed = iteratee ? iteratee(value) : value; 10085 10086 value = (comparator || value !== 0) ? value : 0; 10087 if (isCommon && computed === computed) { 10088 var seenIndex = seen.length; 10089 while (seenIndex--) { 10090 if (seen[seenIndex] === computed) { 10091 continue outer; 10092 } 10093 } 10094 if (iteratee) { 10095 seen.push(computed); 10096 } 10097 result.push(value); 10098 } 10099 else if (!includes(seen, computed, comparator)) { 10100 if (seen !== result) { 10101 seen.push(computed); 10102 } 10103 result.push(value); 10104 } 10105 } 10106 return result; 10107 } 10108 10109 /** 10110 * The base implementation of `_.unset`. 10111 * 10112 * @private 10113 * @param {Object} object The object to modify. 10114 * @param {Array|string} path The property path to unset. 10115 * @returns {boolean} Returns `true` if the property is deleted, else `false`. 10116 */ 10117 function baseUnset(object, path) { 10118 path = castPath(path, object); 10119 object = parent(object, path); 10120 return object == null || delete object[toKey(last(path))]; 10121 } 10122 10123 /** 10124 * The base implementation of `_.update`. 10125 * 10126 * @private 10127 * @param {Object} object The object to modify. 10128 * @param {Array|string} path The path of the property to update. 10129 * @param {Function} updater The function to produce the updated value. 10130 * @param {Function} [customizer] The function to customize path creation. 10131 * @returns {Object} Returns `object`. 10132 */ 10133 function baseUpdate(object, path, updater, customizer) { 10134 return baseSet(object, path, updater(baseGet(object, path)), customizer); 10135 } 10136 10137 /** 10138 * The base implementation of methods like `_.dropWhile` and `_.takeWhile` 10139 * without support for iteratee shorthands. 10140 * 10141 * @private 10142 * @param {Array} array The array to query. 10143 * @param {Function} predicate The function invoked per iteration. 10144 * @param {boolean} [isDrop] Specify dropping elements instead of taking them. 10145 * @param {boolean} [fromRight] Specify iterating from right to left. 10146 * @returns {Array} Returns the slice of `array`. 10147 */ 10148 function baseWhile(array, predicate, isDrop, fromRight) { 10149 var length = array.length, 10150 index = fromRight ? length : -1; 10151 10152 while ((fromRight ? index-- : ++index < length) && 10153 predicate(array[index], index, array)) {} 10154 10155 return isDrop 10156 ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length)) 10157 : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index)); 10158 } 10159 10160 /** 10161 * The base implementation of `wrapperValue` which returns the result of 10162 * performing a sequence of actions on the unwrapped `value`, where each 10163 * successive action is supplied the return value of the previous. 10164 * 10165 * @private 10166 * @param {*} value The unwrapped value. 10167 * @param {Array} actions Actions to perform to resolve the unwrapped value. 10168 * @returns {*} Returns the resolved value. 10169 */ 10170 function baseWrapperValue(value, actions) { 10171 var result = value; 10172 if (result instanceof LazyWrapper) { 10173 result = result.value(); 10174 } 10175 return arrayReduce(actions, function(result, action) { 10176 return action.func.apply(action.thisArg, arrayPush([result], action.args)); 10177 }, result); 10178 } 10179 10180 /** 10181 * The base implementation of methods like `_.xor`, without support for 10182 * iteratee shorthands, that accepts an array of arrays to inspect. 10183 * 10184 * @private 10185 * @param {Array} arrays The arrays to inspect. 10186 * @param {Function} [iteratee] The iteratee invoked per element. 10187 * @param {Function} [comparator] The comparator invoked per element. 10188 * @returns {Array} Returns the new array of values. 10189 */ 10190 function baseXor(arrays, iteratee, comparator) { 10191 var length = arrays.length; 10192 if (length < 2) { 10193 return length ? baseUniq(arrays[0]) : []; 10194 } 10195 var index = -1, 10196 result = Array(length); 10197 10198 while (++index < length) { 10199 var array = arrays[index], 10200 othIndex = -1; 10201 10202 while (++othIndex < length) { 10203 if (othIndex != index) { 10204 result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator); 10205 } 10206 } 10207 } 10208 return baseUniq(baseFlatten(result, 1), iteratee, comparator); 10209 } 10210 10211 /** 10212 * This base implementation of `_.zipObject` which assigns values using `assignFunc`. 10213 * 10214 * @private 10215 * @param {Array} props The property identifiers. 10216 * @param {Array} values The property values. 10217 * @param {Function} assignFunc The function to assign values. 10218 * @returns {Object} Returns the new object. 10219 */ 10220 function baseZipObject(props, values, assignFunc) { 10221 var index = -1, 10222 length = props.length, 10223 valsLength = values.length, 10224 result = {}; 10225 10226 while (++index < length) { 10227 var value = index < valsLength ? values[index] : undefined; 10228 assignFunc(result, props[index], value); 10229 } 10230 return result; 10231 } 10232 10233 /** 10234 * Casts `value` to an empty array if it's not an array like object. 10235 * 10236 * @private 10237 * @param {*} value The value to inspect. 10238 * @returns {Array|Object} Returns the cast array-like object. 10239 */ 10240 function castArrayLikeObject(value) { 10241 return isArrayLikeObject(value) ? value : []; 10242 } 10243 10244 /** 10245 * Casts `value` to `identity` if it's not a function. 10246 * 10247 * @private 10248 * @param {*} value The value to inspect. 10249 * @returns {Function} Returns cast function. 10250 */ 10251 function castFunction(value) { 10252 return typeof value == 'function' ? value : identity; 10253 } 10254 10255 /** 10256 * Casts `value` to a path array if it's not one. 10257 * 10258 * @private 10259 * @param {*} value The value to inspect. 10260 * @param {Object} [object] The object to query keys on. 10261 * @returns {Array} Returns the cast property path array. 10262 */ 10263 function castPath(value, object) { 10264 if (isArray(value)) { 10265 return value; 10266 } 10267 return isKey(value, object) ? [value] : stringToPath(toString(value)); 10268 } 10269 10270 /** 10271 * A `baseRest` alias which can be replaced with `identity` by module 10272 * replacement plugins. 10273 * 10274 * @private 10275 * @type {Function} 10276 * @param {Function} func The function to apply a rest parameter to. 10277 * @returns {Function} Returns the new function. 10278 */ 10279 var castRest = baseRest; 10280 10281 /** 10282 * Casts `array` to a slice if it's needed. 10283 * 10284 * @private 10285 * @param {Array} array The array to inspect. 10286 * @param {number} start The start position. 10287 * @param {number} [end=array.length] The end position. 10288 * @returns {Array} Returns the cast slice. 10289 */ 10290 function castSlice(array, start, end) { 10291 var length = array.length; 10292 end = end === undefined ? length : end; 10293 return (!start && end >= length) ? array : baseSlice(array, start, end); 10294 } 10295 10296 /** 10297 * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout). 10298 * 10299 * @private 10300 * @param {number|Object} id The timer id or timeout object of the timer to clear. 10301 */ 10302 var clearTimeout = ctxClearTimeout || function(id) { 10303 return root.clearTimeout(id); 10304 }; 10305 10306 /** 10307 * Creates a clone of `buffer`. 10308 * 10309 * @private 10310 * @param {Buffer} buffer The buffer to clone. 10311 * @param {boolean} [isDeep] Specify a deep clone. 10312 * @returns {Buffer} Returns the cloned buffer. 10313 */ 10314 function cloneBuffer(buffer, isDeep) { 10315 if (isDeep) { 10316 return buffer.slice(); 10317 } 10318 var length = buffer.length, 10319 result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); 10320 10321 buffer.copy(result); 10322 return result; 10323 } 10324 10325 /** 10326 * Creates a clone of `arrayBuffer`. 10327 * 10328 * @private 10329 * @param {ArrayBuffer} arrayBuffer The array buffer to clone. 10330 * @returns {ArrayBuffer} Returns the cloned array buffer. 10331 */ 10332 function cloneArrayBuffer(arrayBuffer) { 10333 var result = new arrayBuffer.constructor(arrayBuffer.byteLength); 10334 new Uint8Array(result).set(new Uint8Array(arrayBuffer)); 10335 return result; 10336 } 10337 10338 /** 10339 * Creates a clone of `dataView`. 10340 * 10341 * @private 10342 * @param {Object} dataView The data view to clone. 10343 * @param {boolean} [isDeep] Specify a deep clone. 10344 * @returns {Object} Returns the cloned data view. 10345 */ 10346 function cloneDataView(dataView, isDeep) { 10347 var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; 10348 return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); 10349 } 10350 10351 /** 10352 * Creates a clone of `regexp`. 10353 * 10354 * @private 10355 * @param {Object} regexp The regexp to clone. 10356 * @returns {Object} Returns the cloned regexp. 10357 */ 10358 function cloneRegExp(regexp) { 10359 var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); 10360 result.lastIndex = regexp.lastIndex; 10361 return result; 10362 } 10363 10364 /** 10365 * Creates a clone of the `symbol` object. 10366 * 10367 * @private 10368 * @param {Object} symbol The symbol object to clone. 10369 * @returns {Object} Returns the cloned symbol object. 10370 */ 10371 function cloneSymbol(symbol) { 10372 return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; 10373 } 10374 10375 /** 10376 * Creates a clone of `typedArray`. 10377 * 10378 * @private 10379 * @param {Object} typedArray The typed array to clone. 10380 * @param {boolean} [isDeep] Specify a deep clone. 10381 * @returns {Object} Returns the cloned typed array. 10382 */ 10383 function cloneTypedArray(typedArray, isDeep) { 10384 var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; 10385 return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); 10386 } 10387 10388 /** 10389 * Compares values to sort them in ascending order. 10390 * 10391 * @private 10392 * @param {*} value The value to compare. 10393 * @param {*} other The other value to compare. 10394 * @returns {number} Returns the sort order indicator for `value`. 10395 */ 10396 function compareAscending(value, other) { 10397 if (value !== other) { 10398 var valIsDefined = value !== undefined, 10399 valIsNull = value === null, 10400 valIsReflexive = value === value, 10401 valIsSymbol = isSymbol(value); 10402 10403 var othIsDefined = other !== undefined, 10404 othIsNull = other === null, 10405 othIsReflexive = other === other, 10406 othIsSymbol = isSymbol(other); 10407 10408 if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) || 10409 (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) || 10410 (valIsNull && othIsDefined && othIsReflexive) || 10411 (!valIsDefined && othIsReflexive) || 10412 !valIsReflexive) { 10413 return 1; 10414 } 10415 if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) || 10416 (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) || 10417 (othIsNull && valIsDefined && valIsReflexive) || 10418 (!othIsDefined && valIsReflexive) || 10419 !othIsReflexive) { 10420 return -1; 10421 } 10422 } 10423 return 0; 10424 } 10425 10426 /** 10427 * Used by `_.orderBy` to compare multiple properties of a value to another 10428 * and stable sort them. 10429 * 10430 * If `orders` is unspecified, all values are sorted in ascending order. Otherwise, 10431 * specify an order of "desc" for descending or "asc" for ascending sort order 10432 * of corresponding values. 10433 * 10434 * @private 10435 * @param {Object} object The object to compare. 10436 * @param {Object} other The other object to compare. 10437 * @param {boolean[]|string[]} orders The order to sort by for each property. 10438 * @returns {number} Returns the sort order indicator for `object`. 10439 */ 10440 function compareMultiple(object, other, orders) { 10441 var index = -1, 10442 objCriteria = object.criteria, 10443 othCriteria = other.criteria, 10444 length = objCriteria.length, 10445 ordersLength = orders.length; 10446 10447 while (++index < length) { 10448 var result = compareAscending(objCriteria[index], othCriteria[index]); 10449 if (result) { 10450 if (index >= ordersLength) { 10451 return result; 10452 } 10453 var order = orders[index]; 10454 return result * (order == 'desc' ? -1 : 1); 10455 } 10456 } 10457 // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications 10458 // that causes it, under certain circumstances, to provide the same value for 10459 // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247 10460 // for more details. 10461 // 10462 // This also ensures a stable sort in V8 and other engines. 10463 // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details. 10464 return object.index - other.index; 10465 } 10466 10467 /** 10468 * Creates an array that is the composition of partially applied arguments, 10469 * placeholders, and provided arguments into a single array of arguments. 10470 * 10471 * @private 10472 * @param {Array} args The provided arguments. 10473 * @param {Array} partials The arguments to prepend to those provided. 10474 * @param {Array} holders The `partials` placeholder indexes. 10475 * @params {boolean} [isCurried] Specify composing for a curried function. 10476 * @returns {Array} Returns the new array of composed arguments. 10477 */ 10478 function composeArgs(args, partials, holders, isCurried) { 10479 var argsIndex = -1, 10480 argsLength = args.length, 10481 holdersLength = holders.length, 10482 leftIndex = -1, 10483 leftLength = partials.length, 10484 rangeLength = nativeMax(argsLength - holdersLength, 0), 10485 result = Array(leftLength + rangeLength), 10486 isUncurried = !isCurried; 10487 10488 while (++leftIndex < leftLength) { 10489 result[leftIndex] = partials[leftIndex]; 10490 } 10491 while (++argsIndex < holdersLength) { 10492 if (isUncurried || argsIndex < argsLength) { 10493 result[holders[argsIndex]] = args[argsIndex]; 10494 } 10495 } 10496 while (rangeLength--) { 10497 result[leftIndex++] = args[argsIndex++]; 10498 } 10499 return result; 10500 } 10501 10502 /** 10503 * This function is like `composeArgs` except that the arguments composition 10504 * is tailored for `_.partialRight`. 10505 * 10506 * @private 10507 * @param {Array} args The provided arguments. 10508 * @param {Array} partials The arguments to append to those provided. 10509 * @param {Array} holders The `partials` placeholder indexes. 10510 * @params {boolean} [isCurried] Specify composing for a curried function. 10511 * @returns {Array} Returns the new array of composed arguments. 10512 */ 10513 function composeArgsRight(args, partials, holders, isCurried) { 10514 var argsIndex = -1, 10515 argsLength = args.length, 10516 holdersIndex = -1, 10517 holdersLength = holders.length, 10518 rightIndex = -1, 10519 rightLength = partials.length, 10520 rangeLength = nativeMax(argsLength - holdersLength, 0), 10521 result = Array(rangeLength + rightLength), 10522 isUncurried = !isCurried; 10523 10524 while (++argsIndex < rangeLength) { 10525 result[argsIndex] = args[argsIndex]; 10526 } 10527 var offset = argsIndex; 10528 while (++rightIndex < rightLength) { 10529 result[offset + rightIndex] = partials[rightIndex]; 10530 } 10531 while (++holdersIndex < holdersLength) { 10532 if (isUncurried || argsIndex < argsLength) { 10533 result[offset + holders[holdersIndex]] = args[argsIndex++]; 10534 } 10535 } 10536 return result; 10537 } 10538 10539 /** 10540 * Copies the values of `source` to `array`. 10541 * 10542 * @private 10543 * @param {Array} source The array to copy values from. 10544 * @param {Array} [array=[]] The array to copy values to. 10545 * @returns {Array} Returns `array`. 10546 */ 10547 function copyArray(source, array) { 10548 var index = -1, 10549 length = source.length; 10550 10551 array || (array = Array(length)); 10552 while (++index < length) { 10553 array[index] = source[index]; 10554 } 10555 return array; 10556 } 10557 10558 /** 10559 * Copies properties of `source` to `object`. 10560 * 10561 * @private 10562 * @param {Object} source The object to copy properties from. 10563 * @param {Array} props The property identifiers to copy. 10564 * @param {Object} [object={}] The object to copy properties to. 10565 * @param {Function} [customizer] The function to customize copied values. 10566 * @returns {Object} Returns `object`. 10567 */ 10568 function copyObject(source, props, object, customizer) { 10569 var isNew = !object; 10570 object || (object = {}); 10571 10572 var index = -1, 10573 length = props.length; 10574 10575 while (++index < length) { 10576 var key = props[index]; 10577 10578 var newValue = customizer 10579 ? customizer(object[key], source[key], key, object, source) 10580 : undefined; 10581 10582 if (newValue === undefined) { 10583 newValue = source[key]; 10584 } 10585 if (isNew) { 10586 baseAssignValue(object, key, newValue); 10587 } else { 10588 assignValue(object, key, newValue); 10589 } 10590 } 10591 return object; 10592 } 10593 10594 /** 10595 * Copies own symbols of `source` to `object`. 10596 * 10597 * @private 10598 * @param {Object} source The object to copy symbols from. 10599 * @param {Object} [object={}] The object to copy symbols to. 10600 * @returns {Object} Returns `object`. 10601 */ 10602 function copySymbols(source, object) { 10603 return copyObject(source, getSymbols(source), object); 10604 } 10605 10606 /** 10607 * Copies own and inherited symbols of `source` to `object`. 10608 * 10609 * @private 10610 * @param {Object} source The object to copy symbols from. 10611 * @param {Object} [object={}] The object to copy symbols to. 10612 * @returns {Object} Returns `object`. 10613 */ 10614 function copySymbolsIn(source, object) { 10615 return copyObject(source, getSymbolsIn(source), object); 10616 } 10617 10618 /** 10619 * Creates a function like `_.groupBy`. 10620 * 10621 * @private 10622 * @param {Function} setter The function to set accumulator values. 10623 * @param {Function} [initializer] The accumulator object initializer. 10624 * @returns {Function} Returns the new aggregator function. 10625 */ 10626 function createAggregator(setter, initializer) { 10627 return function(collection, iteratee) { 10628 var func = isArray(collection) ? arrayAggregator : baseAggregator, 10629 accumulator = initializer ? initializer() : {}; 10630 10631 return func(collection, setter, getIteratee(iteratee, 2), accumulator); 10632 }; 10633 } 10634 10635 /** 10636 * Creates a function like `_.assign`. 10637 * 10638 * @private 10639 * @param {Function} assigner The function to assign values. 10640 * @returns {Function} Returns the new assigner function. 10641 */ 10642 function createAssigner(assigner) { 10643 return baseRest(function(object, sources) { 10644 var index = -1, 10645 length = sources.length, 10646 customizer = length > 1 ? sources[length - 1] : undefined, 10647 guard = length > 2 ? sources[2] : undefined; 10648 10649 customizer = (assigner.length > 3 && typeof customizer == 'function') 10650 ? (length--, customizer) 10651 : undefined; 10652 10653 if (guard && isIterateeCall(sources[0], sources[1], guard)) { 10654 customizer = length < 3 ? undefined : customizer; 10655 length = 1; 10656 } 10657 object = Object(object); 10658 while (++index < length) { 10659 var source = sources[index]; 10660 if (source) { 10661 assigner(object, source, index, customizer); 10662 } 10663 } 10664 return object; 10665 }); 10666 } 10667 10668 /** 10669 * Creates a `baseEach` or `baseEachRight` function. 10670 * 10671 * @private 10672 * @param {Function} eachFunc The function to iterate over a collection. 10673 * @param {boolean} [fromRight] Specify iterating from right to left. 10674 * @returns {Function} Returns the new base function. 10675 */ 10676 function createBaseEach(eachFunc, fromRight) { 10677 return function(collection, iteratee) { 10678 if (collection == null) { 10679 return collection; 10680 } 10681 if (!isArrayLike(collection)) { 10682 return eachFunc(collection, iteratee); 10683 } 10684 var length = collection.length, 10685 index = fromRight ? length : -1, 10686 iterable = Object(collection); 10687 10688 while ((fromRight ? index-- : ++index < length)) { 10689 if (iteratee(iterable[index], index, iterable) === false) { 10690 break; 10691 } 10692 } 10693 return collection; 10694 }; 10695 } 10696 10697 /** 10698 * Creates a base function for methods like `_.forIn` and `_.forOwn`. 10699 * 10700 * @private 10701 * @param {boolean} [fromRight] Specify iterating from right to left. 10702 * @returns {Function} Returns the new base function. 10703 */ 10704 function createBaseFor(fromRight) { 10705 return function(object, iteratee, keysFunc) { 10706 var index = -1, 10707 iterable = Object(object), 10708 props = keysFunc(object), 10709 length = props.length; 10710 10711 while (length--) { 10712 var key = props[fromRight ? length : ++index]; 10713 if (iteratee(iterable[key], key, iterable) === false) { 10714 break; 10715 } 10716 } 10717 return object; 10718 }; 10719 } 10720 10721 /** 10722 * Creates a function that wraps `func` to invoke it with the optional `this` 10723 * binding of `thisArg`. 10724 * 10725 * @private 10726 * @param {Function} func The function to wrap. 10727 * @param {number} bitmask The bitmask flags. See `createWrap` for more details. 10728 * @param {*} [thisArg] The `this` binding of `func`. 10729 * @returns {Function} Returns the new wrapped function. 10730 */ 10731 function createBind(func, bitmask, thisArg) { 10732 var isBind = bitmask & WRAP_BIND_FLAG, 10733 Ctor = createCtor(func); 10734 10735 function wrapper() { 10736 var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; 10737 return fn.apply(isBind ? thisArg : this, arguments); 10738 } 10739 return wrapper; 10740 } 10741 10742 /** 10743 * Creates a function like `_.lowerFirst`. 10744 * 10745 * @private 10746 * @param {string} methodName The name of the `String` case method to use. 10747 * @returns {Function} Returns the new case function. 10748 */ 10749 function createCaseFirst(methodName) { 10750 return function(string) { 10751 string = toString(string); 10752 10753 var strSymbols = hasUnicode(string) 10754 ? stringToArray(string) 10755 : undefined; 10756 10757 var chr = strSymbols 10758 ? strSymbols[0] 10759 : string.charAt(0); 10760 10761 var trailing = strSymbols 10762 ? castSlice(strSymbols, 1).join('') 10763 : string.slice(1); 10764 10765 return chr[methodName]() + trailing; 10766 }; 10767 } 10768 10769 /** 10770 * Creates a function like `_.camelCase`. 10771 * 10772 * @private 10773 * @param {Function} callback The function to combine each word. 10774 * @returns {Function} Returns the new compounder function. 10775 */ 10776 function createCompounder(callback) { 10777 return function(string) { 10778 return arrayReduce(words(deburr(string).replace(reApos, '')), callback, ''); 10779 }; 10780 } 10781 10782 /** 10783 * Creates a function that produces an instance of `Ctor` regardless of 10784 * whether it was invoked as part of a `new` expression or by `call` or `apply`. 10785 * 10786 * @private 10787 * @param {Function} Ctor The constructor to wrap. 10788 * @returns {Function} Returns the new wrapped function. 10789 */ 10790 function createCtor(Ctor) { 10791 return function() { 10792 // Use a `switch` statement to work with class constructors. See 10793 // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist 10794 // for more details. 10795 var args = arguments; 10796 switch (args.length) { 10797 case 0: return new Ctor; 10798 case 1: return new Ctor(args[0]); 10799 case 2: return new Ctor(args[0], args[1]); 10800 case 3: return new Ctor(args[0], args[1], args[2]); 10801 case 4: return new Ctor(args[0], args[1], args[2], args[3]); 10802 case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]); 10803 case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); 10804 case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); 10805 } 10806 var thisBinding = baseCreate(Ctor.prototype), 10807 result = Ctor.apply(thisBinding, args); 10808 10809 // Mimic the constructor's `return` behavior. 10810 // See https://es5.github.io/#x13.2.2 for more details. 10811 return isObject(result) ? result : thisBinding; 10812 }; 10813 } 10814 10815 /** 10816 * Creates a function that wraps `func` to enable currying. 10817 * 10818 * @private 10819 * @param {Function} func The function to wrap. 10820 * @param {number} bitmask The bitmask flags. See `createWrap` for more details. 10821 * @param {number} arity The arity of `func`. 10822 * @returns {Function} Returns the new wrapped function. 10823 */ 10824 function createCurry(func, bitmask, arity) { 10825 var Ctor = createCtor(func); 10826 10827 function wrapper() { 10828 var length = arguments.length, 10829 args = Array(length), 10830 index = length, 10831 placeholder = getHolder(wrapper); 10832 10833 while (index--) { 10834 args[index] = arguments[index]; 10835 } 10836 var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder) 10837 ? [] 10838 : replaceHolders(args, placeholder); 10839 10840 length -= holders.length; 10841 if (length < arity) { 10842 return createRecurry( 10843 func, bitmask, createHybrid, wrapper.placeholder, undefined, 10844 args, holders, undefined, undefined, arity - length); 10845 } 10846 var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; 10847 return apply(fn, this, args); 10848 } 10849 return wrapper; 10850 } 10851 10852 /** 10853 * Creates a `_.find` or `_.findLast` function. 10854 * 10855 * @private 10856 * @param {Function} findIndexFunc The function to find the collection index. 10857 * @returns {Function} Returns the new find function. 10858 */ 10859 function createFind(findIndexFunc) { 10860 return function(collection, predicate, fromIndex) { 10861 var iterable = Object(collection); 10862 if (!isArrayLike(collection)) { 10863 var iteratee = getIteratee(predicate, 3); 10864 collection = keys(collection); 10865 predicate = function(key) { return iteratee(iterable[key], key, iterable); }; 10866 } 10867 var index = findIndexFunc(collection, predicate, fromIndex); 10868 return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; 10869 }; 10870 } 10871 10872 /** 10873 * Creates a `_.flow` or `_.flowRight` function. 10874 * 10875 * @private 10876 * @param {boolean} [fromRight] Specify iterating from right to left. 10877 * @returns {Function} Returns the new flow function. 10878 */ 10879 function createFlow(fromRight) { 10880 return flatRest(function(funcs) { 10881 var length = funcs.length, 10882 index = length, 10883 prereq = LodashWrapper.prototype.thru; 10884 10885 if (fromRight) { 10886 funcs.reverse(); 10887 } 10888 while (index--) { 10889 var func = funcs[index]; 10890 if (typeof func != 'function') { 10891 throw new TypeError(FUNC_ERROR_TEXT); 10892 } 10893 if (prereq && !wrapper && getFuncName(func) == 'wrapper') { 10894 var wrapper = new LodashWrapper([], true); 10895 } 10896 } 10897 index = wrapper ? index : length; 10898 while (++index < length) { 10899 func = funcs[index]; 10900 10901 var funcName = getFuncName(func), 10902 data = funcName == 'wrapper' ? getData(func) : undefined; 10903 10904 if (data && isLaziable(data[0]) && 10905 data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && 10906 !data[4].length && data[9] == 1 10907 ) { 10908 wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); 10909 } else { 10910 wrapper = (func.length == 1 && isLaziable(func)) 10911 ? wrapper[funcName]() 10912 : wrapper.thru(func); 10913 } 10914 } 10915 return function() { 10916 var args = arguments, 10917 value = args[0]; 10918 10919 if (wrapper && args.length == 1 && isArray(value)) { 10920 return wrapper.plant(value).value(); 10921 } 10922 var index = 0, 10923 result = length ? funcs[index].apply(this, args) : value; 10924 10925 while (++index < length) { 10926 result = funcs[index].call(this, result); 10927 } 10928 return result; 10929 }; 10930 }); 10931 } 10932 10933 /** 10934 * Creates a function that wraps `func` to invoke it with optional `this` 10935 * binding of `thisArg`, partial application, and currying. 10936 * 10937 * @private 10938 * @param {Function|string} func The function or method name to wrap. 10939 * @param {number} bitmask The bitmask flags. See `createWrap` for more details. 10940 * @param {*} [thisArg] The `this` binding of `func`. 10941 * @param {Array} [partials] The arguments to prepend to those provided to 10942 * the new function. 10943 * @param {Array} [holders] The `partials` placeholder indexes. 10944 * @param {Array} [partialsRight] The arguments to append to those provided 10945 * to the new function. 10946 * @param {Array} [holdersRight] The `partialsRight` placeholder indexes. 10947 * @param {Array} [argPos] The argument positions of the new function. 10948 * @param {number} [ary] The arity cap of `func`. 10949 * @param {number} [arity] The arity of `func`. 10950 * @returns {Function} Returns the new wrapped function. 10951 */ 10952 function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { 10953 var isAry = bitmask & WRAP_ARY_FLAG, 10954 isBind = bitmask & WRAP_BIND_FLAG, 10955 isBindKey = bitmask & WRAP_BIND_KEY_FLAG, 10956 isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), 10957 isFlip = bitmask & WRAP_FLIP_FLAG, 10958 Ctor = isBindKey ? undefined : createCtor(func); 10959 10960 function wrapper() { 10961 var length = arguments.length, 10962 args = Array(length), 10963 index = length; 10964 10965 while (index--) { 10966 args[index] = arguments[index]; 10967 } 10968 if (isCurried) { 10969 var placeholder = getHolder(wrapper), 10970 holdersCount = countHolders(args, placeholder); 10971 } 10972 if (partials) { 10973 args = composeArgs(args, partials, holders, isCurried); 10974 } 10975 if (partialsRight) { 10976 args = composeArgsRight(args, partialsRight, holdersRight, isCurried); 10977 } 10978 length -= holdersCount; 10979 if (isCurried && length < arity) { 10980 var newHolders = replaceHolders(args, placeholder); 10981 return createRecurry( 10982 func, bitmask, createHybrid, wrapper.placeholder, thisArg, 10983 args, newHolders, argPos, ary, arity - length 10984 ); 10985 } 10986 var thisBinding = isBind ? thisArg : this, 10987 fn = isBindKey ? thisBinding[func] : func; 10988 10989 length = args.length; 10990 if (argPos) { 10991 args = reorder(args, argPos); 10992 } else if (isFlip && length > 1) { 10993 args.reverse(); 10994 } 10995 if (isAry && ary < length) { 10996 args.length = ary; 10997 } 10998 if (this && this !== root && this instanceof wrapper) { 10999 fn = Ctor || createCtor(fn); 11000 } 11001 return fn.apply(thisBinding, args); 11002 } 11003 return wrapper; 11004 } 11005 11006 /** 11007 * Creates a function like `_.invertBy`. 11008 * 11009 * @private 11010 * @param {Function} setter The function to set accumulator values. 11011 * @param {Function} toIteratee The function to resolve iteratees. 11012 * @returns {Function} Returns the new inverter function. 11013 */ 11014 function createInverter(setter, toIteratee) { 11015 return function(object, iteratee) { 11016 return baseInverter(object, setter, toIteratee(iteratee), {}); 11017 }; 11018 } 11019 11020 /** 11021 * Creates a function that performs a mathematical operation on two values. 11022 * 11023 * @private 11024 * @param {Function} operator The function to perform the operation. 11025 * @param {number} [defaultValue] The value used for `undefined` arguments. 11026 * @returns {Function} Returns the new mathematical operation function. 11027 */ 11028 function createMathOperation(operator, defaultValue) { 11029 return function(value, other) { 11030 var result; 11031 if (value === undefined && other === undefined) { 11032 return defaultValue; 11033 } 11034 if (value !== undefined) { 11035 result = value; 11036 } 11037 if (other !== undefined) { 11038 if (result === undefined) { 11039 return other; 11040 } 11041 if (typeof value == 'string' || typeof other == 'string') { 11042 value = baseToString(value); 11043 other = baseToString(other); 11044 } else { 11045 value = baseToNumber(value); 11046 other = baseToNumber(other); 11047 } 11048 result = operator(value, other); 11049 } 11050 return result; 11051 }; 11052 } 11053 11054 /** 11055 * Creates a function like `_.over`. 11056 * 11057 * @private 11058 * @param {Function} arrayFunc The function to iterate over iteratees. 11059 * @returns {Function} Returns the new over function. 11060 */ 11061 function createOver(arrayFunc) { 11062 return flatRest(function(iteratees) { 11063 iteratees = arrayMap(iteratees, baseUnary(getIteratee())); 11064 return baseRest(function(args) { 11065 var thisArg = this; 11066 return arrayFunc(iteratees, function(iteratee) { 11067 return apply(iteratee, thisArg, args); 11068 }); 11069 }); 11070 }); 11071 } 11072 11073 /** 11074 * Creates the padding for `string` based on `length`. The `chars` string 11075 * is truncated if the number of characters exceeds `length`. 11076 * 11077 * @private 11078 * @param {number} length The padding length. 11079 * @param {string} [chars=' '] The string used as padding. 11080 * @returns {string} Returns the padding for `string`. 11081 */ 11082 function createPadding(length, chars) { 11083 chars = chars === undefined ? ' ' : baseToString(chars); 11084 11085 var charsLength = chars.length; 11086 if (charsLength < 2) { 11087 return charsLength ? baseRepeat(chars, length) : chars; 11088 } 11089 var result = baseRepeat(chars, nativeCeil(length / stringSize(chars))); 11090 return hasUnicode(chars) 11091 ? castSlice(stringToArray(result), 0, length).join('') 11092 : result.slice(0, length); 11093 } 11094 11095 /** 11096 * Creates a function that wraps `func` to invoke it with the `this` binding 11097 * of `thisArg` and `partials` prepended to the arguments it receives. 11098 * 11099 * @private 11100 * @param {Function} func The function to wrap. 11101 * @param {number} bitmask The bitmask flags. See `createWrap` for more details. 11102 * @param {*} thisArg The `this` binding of `func`. 11103 * @param {Array} partials The arguments to prepend to those provided to 11104 * the new function. 11105 * @returns {Function} Returns the new wrapped function. 11106 */ 11107 function createPartial(func, bitmask, thisArg, partials) { 11108 var isBind = bitmask & WRAP_BIND_FLAG, 11109 Ctor = createCtor(func); 11110 11111 function wrapper() { 11112 var argsIndex = -1, 11113 argsLength = arguments.length, 11114 leftIndex = -1, 11115 leftLength = partials.length, 11116 args = Array(leftLength + argsLength), 11117 fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; 11118 11119 while (++leftIndex < leftLength) { 11120 args[leftIndex] = partials[leftIndex]; 11121 } 11122 while (argsLength--) { 11123 args[leftIndex++] = arguments[++argsIndex]; 11124 } 11125 return apply(fn, isBind ? thisArg : this, args); 11126 } 11127 return wrapper; 11128 } 11129 11130 /** 11131 * Creates a `_.range` or `_.rangeRight` function. 11132 * 11133 * @private 11134 * @param {boolean} [fromRight] Specify iterating from right to left. 11135 * @returns {Function} Returns the new range function. 11136 */ 11137 function createRange(fromRight) { 11138 return function(start, end, step) { 11139 if (step && typeof step != 'number' && isIterateeCall(start, end, step)) { 11140 end = step = undefined; 11141 } 11142 // Ensure the sign of `-0` is preserved. 11143 start = toFinite(start); 11144 if (end === undefined) { 11145 end = start; 11146 start = 0; 11147 } else { 11148 end = toFinite(end); 11149 } 11150 step = step === undefined ? (start < end ? 1 : -1) : toFinite(step); 11151 return baseRange(start, end, step, fromRight); 11152 }; 11153 } 11154 11155 /** 11156 * Creates a function that performs a relational operation on two values. 11157 * 11158 * @private 11159 * @param {Function} operator The function to perform the operation. 11160 * @returns {Function} Returns the new relational operation function. 11161 */ 11162 function createRelationalOperation(operator) { 11163 return function(value, other) { 11164 if (!(typeof value == 'string' && typeof other == 'string')) { 11165 value = toNumber(value); 11166 other = toNumber(other); 11167 } 11168 return operator(value, other); 11169 }; 11170 } 11171 11172 /** 11173 * Creates a function that wraps `func` to continue currying. 11174 * 11175 * @private 11176 * @param {Function} func The function to wrap. 11177 * @param {number} bitmask The bitmask flags. See `createWrap` for more details. 11178 * @param {Function} wrapFunc The function to create the `func` wrapper. 11179 * @param {*} placeholder The placeholder value. 11180 * @param {*} [thisArg] The `this` binding of `func`. 11181 * @param {Array} [partials] The arguments to prepend to those provided to 11182 * the new function. 11183 * @param {Array} [holders] The `partials` placeholder indexes. 11184 * @param {Array} [argPos] The argument positions of the new function. 11185 * @param {number} [ary] The arity cap of `func`. 11186 * @param {number} [arity] The arity of `func`. 11187 * @returns {Function} Returns the new wrapped function. 11188 */ 11189 function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) { 11190 var isCurry = bitmask & WRAP_CURRY_FLAG, 11191 newHolders = isCurry ? holders : undefined, 11192 newHoldersRight = isCurry ? undefined : holders, 11193 newPartials = isCurry ? partials : undefined, 11194 newPartialsRight = isCurry ? undefined : partials; 11195 11196 bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG); 11197 bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); 11198 11199 if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { 11200 bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); 11201 } 11202 var newData = [ 11203 func, bitmask, thisArg, newPartials, newHolders, newPartialsRight, 11204 newHoldersRight, argPos, ary, arity 11205 ]; 11206 11207 var result = wrapFunc.apply(undefined, newData); 11208 if (isLaziable(func)) { 11209 setData(result, newData); 11210 } 11211 result.placeholder = placeholder; 11212 return setWrapToString(result, func, bitmask); 11213 } 11214 11215 /** 11216 * Creates a function like `_.round`. 11217 * 11218 * @private 11219 * @param {string} methodName The name of the `Math` method to use when rounding. 11220 * @returns {Function} Returns the new round function. 11221 */ 11222 function createRound(methodName) { 11223 var func = Math[methodName]; 11224 return function(number, precision) { 11225 number = toNumber(number); 11226 precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); 11227 if (precision && nativeIsFinite(number)) { 11228 // Shift with exponential notation to avoid floating-point issues. 11229 // See [MDN](https://mdn.io/round#Examples) for more details. 11230 var pair = (toString(number) + 'e').split('e'), 11231 value = func(pair[0] + 'e' + (+pair[1] + precision)); 11232 11233 pair = (toString(value) + 'e').split('e'); 11234 return +(pair[0] + 'e' + (+pair[1] - precision)); 11235 } 11236 return func(number); 11237 }; 11238 } 11239 11240 /** 11241 * Creates a set object of `values`. 11242 * 11243 * @private 11244 * @param {Array} values The values to add to the set. 11245 * @returns {Object} Returns the new set. 11246 */ 11247 var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) { 11248 return new Set(values); 11249 }; 11250 11251 /** 11252 * Creates a `_.toPairs` or `_.toPairsIn` function. 11253 * 11254 * @private 11255 * @param {Function} keysFunc The function to get the keys of a given object. 11256 * @returns {Function} Returns the new pairs function. 11257 */ 11258 function createToPairs(keysFunc) { 11259 return function(object) { 11260 var tag = getTag(object); 11261 if (tag == mapTag) { 11262 return mapToArray(object); 11263 } 11264 if (tag == setTag) { 11265 return setToPairs(object); 11266 } 11267 return baseToPairs(object, keysFunc(object)); 11268 }; 11269 } 11270 11271 /** 11272 * Creates a function that either curries or invokes `func` with optional 11273 * `this` binding and partially applied arguments. 11274 * 11275 * @private 11276 * @param {Function|string} func The function or method name to wrap. 11277 * @param {number} bitmask The bitmask flags. 11278 * 1 - `_.bind` 11279 * 2 - `_.bindKey` 11280 * 4 - `_.curry` or `_.curryRight` of a bound function 11281 * 8 - `_.curry` 11282 * 16 - `_.curryRight` 11283 * 32 - `_.partial` 11284 * 64 - `_.partialRight` 11285 * 128 - `_.rearg` 11286 * 256 - `_.ary` 11287 * 512 - `_.flip` 11288 * @param {*} [thisArg] The `this` binding of `func`. 11289 * @param {Array} [partials] The arguments to be partially applied. 11290 * @param {Array} [holders] The `partials` placeholder indexes. 11291 * @param {Array} [argPos] The argument positions of the new function. 11292 * @param {number} [ary] The arity cap of `func`. 11293 * @param {number} [arity] The arity of `func`. 11294 * @returns {Function} Returns the new wrapped function. 11295 */ 11296 function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) { 11297 var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; 11298 if (!isBindKey && typeof func != 'function') { 11299 throw new TypeError(FUNC_ERROR_TEXT); 11300 } 11301 var length = partials ? partials.length : 0; 11302 if (!length) { 11303 bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); 11304 partials = holders = undefined; 11305 } 11306 ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0); 11307 arity = arity === undefined ? arity : toInteger(arity); 11308 length -= holders ? holders.length : 0; 11309 11310 if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { 11311 var partialsRight = partials, 11312 holdersRight = holders; 11313 11314 partials = holders = undefined; 11315 } 11316 var data = isBindKey ? undefined : getData(func); 11317 11318 var newData = [ 11319 func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, 11320 argPos, ary, arity 11321 ]; 11322 11323 if (data) { 11324 mergeData(newData, data); 11325 } 11326 func = newData[0]; 11327 bitmask = newData[1]; 11328 thisArg = newData[2]; 11329 partials = newData[3]; 11330 holders = newData[4]; 11331 arity = newData[9] = newData[9] === undefined 11332 ? (isBindKey ? 0 : func.length) 11333 : nativeMax(newData[9] - length, 0); 11334 11335 if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { 11336 bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); 11337 } 11338 if (!bitmask || bitmask == WRAP_BIND_FLAG) { 11339 var result = createBind(func, bitmask, thisArg); 11340 } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { 11341 result = createCurry(func, bitmask, arity); 11342 } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { 11343 result = createPartial(func, bitmask, thisArg, partials); 11344 } else { 11345 result = createHybrid.apply(undefined, newData); 11346 } 11347 var setter = data ? baseSetData : setData; 11348 return setWrapToString(setter(result, newData), func, bitmask); 11349 } 11350 11351 /** 11352 * Used by `_.defaults` to customize its `_.assignIn` use to assign properties 11353 * of source objects to the destination object for all destination properties 11354 * that resolve to `undefined`. 11355 * 11356 * @private 11357 * @param {*} objValue The destination value. 11358 * @param {*} srcValue The source value. 11359 * @param {string} key The key of the property to assign. 11360 * @param {Object} object The parent object of `objValue`. 11361 * @returns {*} Returns the value to assign. 11362 */ 11363 function customDefaultsAssignIn(objValue, srcValue, key, object) { 11364 if (objValue === undefined || 11365 (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) { 11366 return srcValue; 11367 } 11368 return objValue; 11369 } 11370 11371 /** 11372 * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source 11373 * objects into destination objects that are passed thru. 11374 * 11375 * @private 11376 * @param {*} objValue The destination value. 11377 * @param {*} srcValue The source value. 11378 * @param {string} key The key of the property to merge. 11379 * @param {Object} object The parent object of `objValue`. 11380 * @param {Object} source The parent object of `srcValue`. 11381 * @param {Object} [stack] Tracks traversed source values and their merged 11382 * counterparts. 11383 * @returns {*} Returns the value to assign. 11384 */ 11385 function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { 11386 if (isObject(objValue) && isObject(srcValue)) { 11387 // Recursively merge objects and arrays (susceptible to call stack limits). 11388 stack.set(srcValue, objValue); 11389 baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack); 11390 stack['delete'](srcValue); 11391 } 11392 return objValue; 11393 } 11394 11395 /** 11396 * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain 11397 * objects. 11398 * 11399 * @private 11400 * @param {*} value The value to inspect. 11401 * @param {string} key The key of the property to inspect. 11402 * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`. 11403 */ 11404 function customOmitClone(value) { 11405 return isPlainObject(value) ? undefined : value; 11406 } 11407 11408 /** 11409 * A specialized version of `baseIsEqualDeep` for arrays with support for 11410 * partial deep comparisons. 11411 * 11412 * @private 11413 * @param {Array} array The array to compare. 11414 * @param {Array} other The other array to compare. 11415 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 11416 * @param {Function} customizer The function to customize comparisons. 11417 * @param {Function} equalFunc The function to determine equivalents of values. 11418 * @param {Object} stack Tracks traversed `array` and `other` objects. 11419 * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. 11420 */ 11421 function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { 11422 var isPartial = bitmask & COMPARE_PARTIAL_FLAG, 11423 arrLength = array.length, 11424 othLength = other.length; 11425 11426 if (arrLength != othLength && !(isPartial && othLength > arrLength)) { 11427 return false; 11428 } 11429 // Check that cyclic values are equal. 11430 var arrStacked = stack.get(array); 11431 var othStacked = stack.get(other); 11432 if (arrStacked && othStacked) { 11433 return arrStacked == other && othStacked == array; 11434 } 11435 var index = -1, 11436 result = true, 11437 seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; 11438 11439 stack.set(array, other); 11440 stack.set(other, array); 11441 11442 // Ignore non-index properties. 11443 while (++index < arrLength) { 11444 var arrValue = array[index], 11445 othValue = other[index]; 11446 11447 if (customizer) { 11448 var compared = isPartial 11449 ? customizer(othValue, arrValue, index, other, array, stack) 11450 : customizer(arrValue, othValue, index, array, other, stack); 11451 } 11452 if (compared !== undefined) { 11453 if (compared) { 11454 continue; 11455 } 11456 result = false; 11457 break; 11458 } 11459 // Recursively compare arrays (susceptible to call stack limits). 11460 if (seen) { 11461 if (!arraySome(other, function(othValue, othIndex) { 11462 if (!cacheHas(seen, othIndex) && 11463 (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { 11464 return seen.push(othIndex); 11465 } 11466 })) { 11467 result = false;
vendor: 4,179 bytes, lines 11468-11579
11468 break; 11469 } 11470 } else if (!( 11471 arrValue === othValue || 11472 equalFunc(arrValue, othValue, bitmask, customizer, stack) 11473 )) { 11474 result = false; 11475 break; 11476 } 11477 } 11478 stack['delete'](array); 11479 stack['delete'](other); 11480 return result; 11481 } 11482 11483 /** 11484 * A specialized version of `baseIsEqualDeep` for comparing objects of 11485 * the same `toStringTag`. 11486 * 11487 * **Note:** This function only supports comparing values with tags of 11488 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. 11489 * 11490 * @private 11491 * @param {Object} object The object to compare. 11492 * @param {Object} other The other object to compare. 11493 * @param {string} tag The `toStringTag` of the objects to compare. 11494 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 11495 * @param {Function} customizer The function to customize comparisons. 11496 * @param {Function} equalFunc The function to determine equivalents of values. 11497 * @param {Object} stack Tracks traversed `object` and `other` objects. 11498 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. 11499 */ 11500 function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { 11501 switch (tag) { 11502 case dataViewTag: 11503 if ((object.byteLength != other.byteLength) || 11504 (object.byteOffset != other.byteOffset)) { 11505 return false; 11506 } 11507 object = object.buffer; 11508 other = other.buffer; 11509 11510 case arrayBufferTag: 11511 if ((object.byteLength != other.byteLength) || 11512 !equalFunc(new Uint8Array(object), new Uint8Array(other))) { 11513 return false; 11514 } 11515 return true; 11516 11517 case boolTag: 11518 case dateTag: 11519 case numberTag: 11520 // Coerce booleans to `1` or `0` and dates to milliseconds. 11521 // Invalid dates are coerced to `NaN`. 11522 return eq(+object, +other); 11523 11524 case errorTag: 11525 return object.name == other.name && object.message == other.message; 11526 11527 case regexpTag: 11528 case stringTag: 11529 // Coerce regexes to strings and treat strings, primitives and objects, 11530 // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring 11531 // for more details. 11532 return object == (other + ''); 11533 11534 case mapTag: 11535 var convert = mapToArray; 11536 11537 case setTag: 11538 var isPartial = bitmask & COMPARE_PARTIAL_FLAG; 11539 convert || (convert = setToArray); 11540 11541 if (object.size != other.size && !isPartial) { 11542 return false; 11543 } 11544 // Assume cyclic values are equal. 11545 var stacked = stack.get(object); 11546 if (stacked) { 11547 return stacked == other; 11548 } 11549 bitmask |= COMPARE_UNORDERED_FLAG; 11550 11551 // Recursively compare objects (susceptible to call stack limits). 11552 stack.set(object, other); 11553 var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); 11554 stack['delete'](object); 11555 return result; 11556 11557 case symbolTag: 11558 if (symbolValueOf) { 11559 return symbolValueOf.call(object) == symbolValueOf.call(other); 11560 } 11561 } 11562 return false; 11563 } 11564 11565 /** 11566 * A specialized version of `baseIsEqualDeep` for objects with support for 11567 * partial deep comparisons. 11568 * 11569 * @private 11570 * @param {Object} object The object to compare. 11571 * @param {Object} other The other object to compare. 11572 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 11573 * @param {Function} customizer The function to customize comparisons. 11574 * @param {Function} equalFunc The function to determine equivalents of values. 11575 * @param {Object} stack Tracks traversed `object` and `other` objects. 11576 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. 11577 */ 11578 function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { 11579 var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
vendor: 9,614 bytes, lines 11580-11887
11580 objProps = getAllKeys(object), 11581 objLength = objProps.length, 11582 othProps = getAllKeys(other), 11583 othLength = othProps.length; 11584 11585 if (objLength != othLength && !isPartial) { 11586 return false; 11587 } 11588 var index = objLength; 11589 while (index--) { 11590 var key = objProps[index]; 11591 if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { 11592 return false; 11593 } 11594 } 11595 // Check that cyclic values are equal. 11596 var objStacked = stack.get(object); 11597 var othStacked = stack.get(other); 11598 if (objStacked && othStacked) { 11599 return objStacked == other && othStacked == object; 11600 } 11601 var result = true; 11602 stack.set(object, other); 11603 stack.set(other, object); 11604 11605 var skipCtor = isPartial; 11606 while (++index < objLength) { 11607 key = objProps[index]; 11608 var objValue = object[key], 11609 othValue = other[key]; 11610 11611 if (customizer) { 11612 var compared = isPartial 11613 ? customizer(othValue, objValue, key, other, object, stack) 11614 : customizer(objValue, othValue, key, object, other, stack); 11615 } 11616 // Recursively compare objects (susceptible to call stack limits). 11617 if (!(compared === undefined 11618 ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) 11619 : compared 11620 )) { 11621 result = false; 11622 break; 11623 } 11624 skipCtor || (skipCtor = key == 'constructor'); 11625 } 11626 if (result && !skipCtor) { 11627 var objCtor = object.constructor, 11628 othCtor = other.constructor; 11629 11630 // Non `Object` object instances with different constructors are not equal. 11631 if (objCtor != othCtor && 11632 ('constructor' in object && 'constructor' in other) && 11633 !(typeof objCtor == 'function' && objCtor instanceof objCtor && 11634 typeof othCtor == 'function' && othCtor instanceof othCtor)) { 11635 result = false; 11636 } 11637 } 11638 stack['delete'](object); 11639 stack['delete'](other); 11640 return result; 11641 } 11642 11643 /** 11644 * A specialized version of `baseRest` which flattens the rest array. 11645 * 11646 * @private 11647 * @param {Function} func The function to apply a rest parameter to. 11648 * @returns {Function} Returns the new function. 11649 */ 11650 function flatRest(func) { 11651 return setToString(overRest(func, undefined, flatten), func + ''); 11652 } 11653 11654 /** 11655 * Creates an array of own enumerable property names and symbols of `object`. 11656 * 11657 * @private 11658 * @param {Object} object The object to query. 11659 * @returns {Array} Returns the array of property names and symbols. 11660 */ 11661 function getAllKeys(object) { 11662 return baseGetAllKeys(object, keys, getSymbols); 11663 } 11664 11665 /** 11666 * Creates an array of own and inherited enumerable property names and 11667 * symbols of `object`. 11668 * 11669 * @private 11670 * @param {Object} object The object to query. 11671 * @returns {Array} Returns the array of property names and symbols. 11672 */ 11673 function getAllKeysIn(object) { 11674 return baseGetAllKeys(object, keysIn, getSymbolsIn); 11675 } 11676 11677 /** 11678 * Gets metadata for `func`. 11679 * 11680 * @private 11681 * @param {Function} func The function to query. 11682 * @returns {*} Returns the metadata for `func`. 11683 */ 11684 var getData = !metaMap ? noop : function(func) { 11685 return metaMap.get(func); 11686 }; 11687 11688 /** 11689 * Gets the name of `func`. 11690 * 11691 * @private 11692 * @param {Function} func The function to query. 11693 * @returns {string} Returns the function name. 11694 */ 11695 function getFuncName(func) { 11696 var result = (func.name + ''), 11697 array = realNames[result], 11698 length = hasOwnProperty.call(realNames, result) ? array.length : 0; 11699 11700 while (length--) { 11701 var data = array[length], 11702 otherFunc = data.func; 11703 if (otherFunc == null || otherFunc == func) { 11704 return data.name; 11705 } 11706 } 11707 return result; 11708 } 11709 11710 /** 11711 * Gets the argument placeholder value for `func`. 11712 * 11713 * @private 11714 * @param {Function} func The function to inspect. 11715 * @returns {*} Returns the placeholder value. 11716 */ 11717 function getHolder(func) { 11718 var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func; 11719 return object.placeholder; 11720 } 11721 11722 /** 11723 * Gets the appropriate "iteratee" function. If `_.iteratee` is customized, 11724 * this function returns the custom method, otherwise it returns `baseIteratee`. 11725 * If arguments are provided, the chosen function is invoked with them and 11726 * its result is returned. 11727 * 11728 * @private 11729 * @param {*} [value] The value to convert to an iteratee. 11730 * @param {number} [arity] The arity of the created iteratee. 11731 * @returns {Function} Returns the chosen function or its result. 11732 */ 11733 function getIteratee() { 11734 var result = lodash.iteratee || iteratee; 11735 result = result === iteratee ? baseIteratee : result; 11736 return arguments.length ? result(arguments[0], arguments[1]) : result; 11737 } 11738 11739 /** 11740 * Gets the data for `map`. 11741 * 11742 * @private 11743 * @param {Object} map The map to query. 11744 * @param {string} key The reference key. 11745 * @returns {*} Returns the map data. 11746 */ 11747 function getMapData(map, key) { 11748 var data = map.__data__; 11749 return isKeyable(key) 11750 ? data[typeof key == 'string' ? 'string' : 'hash'] 11751 : data.map; 11752 } 11753 11754 /** 11755 * Gets the property names, values, and compare flags of `object`. 11756 * 11757 * @private 11758 * @param {Object} object The object to query. 11759 * @returns {Array} Returns the match data of `object`. 11760 */ 11761 function getMatchData(object) { 11762 var result = keys(object), 11763 length = result.length; 11764 11765 while (length--) { 11766 var key = result[length], 11767 value = object[key]; 11768 11769 result[length] = [key, value, isStrictComparable(value)]; 11770 } 11771 return result; 11772 } 11773 11774 /** 11775 * Gets the native function at `key` of `object`. 11776 * 11777 * @private 11778 * @param {Object} object The object to query. 11779 * @param {string} key The key of the method to get. 11780 * @returns {*} Returns the function if it's native, else `undefined`. 11781 */ 11782 function getNative(object, key) { 11783 var value = getValue(object, key); 11784 return baseIsNative(value) ? value : undefined; 11785 } 11786 11787 /** 11788 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. 11789 * 11790 * @private 11791 * @param {*} value The value to query. 11792 * @returns {string} Returns the raw `toStringTag`. 11793 */ 11794 function getRawTag(value) { 11795 var isOwn = hasOwnProperty.call(value, symToStringTag), 11796 tag = value[symToStringTag]; 11797 11798 try { 11799 value[symToStringTag] = undefined; 11800 var unmasked = true; 11801 } catch (e) {} 11802 11803 var result = nativeObjectToString.call(value); 11804 if (unmasked) { 11805 if (isOwn) { 11806 value[symToStringTag] = tag; 11807 } else { 11808 delete value[symToStringTag]; 11809 } 11810 } 11811 return result; 11812 } 11813 11814 /** 11815 * Creates an array of the own enumerable symbols of `object`. 11816 * 11817 * @private 11818 * @param {Object} object The object to query. 11819 * @returns {Array} Returns the array of symbols. 11820 */ 11821 var getSymbols = !nativeGetSymbols ? stubArray : function(object) { 11822 if (object == null) { 11823 return []; 11824 } 11825 object = Object(object); 11826 return arrayFilter(nativeGetSymbols(object), function(symbol) { 11827 return propertyIsEnumerable.call(object, symbol); 11828 }); 11829 }; 11830 11831 /** 11832 * Creates an array of the own and inherited enumerable symbols of `object`. 11833 * 11834 * @private 11835 * @param {Object} object The object to query. 11836 * @returns {Array} Returns the array of symbols. 11837 */ 11838 var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { 11839 var result = []; 11840 while (object) { 11841 arrayPush(result, getSymbols(object)); 11842 object = getPrototype(object); 11843 } 11844 return result; 11845 }; 11846 11847 /** 11848 * Gets the `toStringTag` of `value`. 11849 * 11850 * @private 11851 * @param {*} value The value to query. 11852 * @returns {string} Returns the `toStringTag`. 11853 */ 11854 var getTag = baseGetTag; 11855 11856 // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. 11857 if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || 11858 (Map && getTag(new Map) != mapTag) || 11859 (Promise && getTag(Promise.resolve()) != promiseTag) || 11860 (Set && getTag(new Set) != setTag) || 11861 (WeakMap && getTag(new WeakMap) != weakMapTag)) { 11862 getTag = function(value) { 11863 var result = baseGetTag(value), 11864 Ctor = result == objectTag ? value.constructor : undefined, 11865 ctorString = Ctor ? toSource(Ctor) : ''; 11866 11867 if (ctorString) { 11868 switch (ctorString) { 11869 case dataViewCtorString: return dataViewTag; 11870 case mapCtorString: return mapTag; 11871 case promiseCtorString: return promiseTag; 11872 case setCtorString: return setTag; 11873 case weakMapCtorString: return weakMapTag; 11874 } 11875 } 11876 return result; 11877 }; 11878 } 11879 11880 /** 11881 * Gets the view, applying any `transforms` to the `start` and `end` positions. 11882 * 11883 * @private 11884 * @param {number} start The start of the view. 11885 * @param {number} end The end of the view. 11886 * @param {Array} transforms The transformations to apply to the view. 11887 * @returns {Object}
vendor: 6,432 bytes, lines 11887-12092
11887 Returns an object containing the `start` and `end` 11888 * positions of the view. 11889 */ 11890 function getView(start, end, transforms) { 11891 var index = -1, 11892 length = transforms.length; 11893 11894 while (++index < length) { 11895 var data = transforms[index], 11896 size = data.size; 11897 11898 switch (data.type) { 11899 case 'drop': start += size; break; 11900 case 'dropRight': end -= size; break; 11901 case 'take': end = nativeMin(end, start + size); break; 11902 case 'takeRight': start = nativeMax(start, end - size); break; 11903 } 11904 } 11905 return { 'start': start, 'end': end }; 11906 } 11907 11908 /** 11909 * Extracts wrapper details from the `source` body comment. 11910 * 11911 * @private 11912 * @param {string} source The source to inspect. 11913 * @returns {Array} Returns the wrapper details. 11914 */ 11915 function getWrapDetails(source) { 11916 var match = source.match(reWrapDetails); 11917 return match ? match[1].split(reSplitDetails) : []; 11918 } 11919 11920 /** 11921 * Checks if `path` exists on `object`. 11922 * 11923 * @private 11924 * @param {Object} object The object to query. 11925 * @param {Array|string} path The path to check. 11926 * @param {Function} hasFunc The function to check properties. 11927 * @returns {boolean} Returns `true` if `path` exists, else `false`. 11928 */ 11929 function hasPath(object, path, hasFunc) { 11930 path = castPath(path, object); 11931 11932 var index = -1, 11933 length = path.length, 11934 result = false; 11935 11936 while (++index < length) { 11937 var key = toKey(path[index]); 11938 if (!(result = object != null && hasFunc(object, key))) { 11939 break; 11940 } 11941 object = object[key]; 11942 } 11943 if (result || ++index != length) { 11944 return result; 11945 } 11946 length = object == null ? 0 : object.length; 11947 return !!length && isLength(length) && isIndex(key, length) && 11948 (isArray(object) || isArguments(object)); 11949 } 11950 11951 /** 11952 * Initializes an array clone. 11953 * 11954 * @private 11955 * @param {Array} array The array to clone. 11956 * @returns {Array} Returns the initialized clone. 11957 */ 11958 function initCloneArray(array) { 11959 var length = array.length, 11960 result = new array.constructor(length); 11961 11962 // Add properties assigned by `RegExp#exec`. 11963 if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { 11964 result.index = array.index; 11965 result.input = array.input; 11966 } 11967 return result; 11968 } 11969 11970 /** 11971 * Initializes an object clone. 11972 * 11973 * @private 11974 * @param {Object} object The object to clone. 11975 * @returns {Object} Returns the initialized clone. 11976 */ 11977 function initCloneObject(object) { 11978 return (typeof object.constructor == 'function' && !isPrototype(object)) 11979 ? baseCreate(getPrototype(object)) 11980 : {}; 11981 } 11982 11983 /** 11984 * Initializes an object clone based on its `toStringTag`. 11985 * 11986 * **Note:** This function only supports cloning values with tags of 11987 * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`. 11988 * 11989 * @private 11990 * @param {Object} object The object to clone. 11991 * @param {string} tag The `toStringTag` of the object to clone. 11992 * @param {boolean} [isDeep] Specify a deep clone. 11993 * @returns {Object} Returns the initialized clone. 11994 */ 11995 function initCloneByTag(object, tag, isDeep) { 11996 var Ctor = object.constructor; 11997 switch (tag) { 11998 case arrayBufferTag: 11999 return cloneArrayBuffer(object); 12000 12001 case boolTag: 12002 case dateTag: 12003 return new Ctor(+object); 12004 12005 case dataViewTag: 12006 return cloneDataView(object, isDeep); 12007 12008 case float32Tag: case float64Tag: 12009 case int8Tag: case int16Tag: case int32Tag: 12010 case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: 12011 return cloneTypedArray(object, isDeep); 12012 12013 case mapTag: 12014 return new Ctor; 12015 12016 case numberTag: 12017 case stringTag: 12018 return new Ctor(object); 12019 12020 case regexpTag: 12021 return cloneRegExp(object); 12022 12023 case setTag: 12024 return new Ctor; 12025 12026 case symbolTag: 12027 return cloneSymbol(object); 12028 } 12029 } 12030 12031 /** 12032 * Inserts wrapper `details` in a comment at the top of the `source` body. 12033 * 12034 * @private 12035 * @param {string} source The source to modify. 12036 * @returns {Array} details The details to insert. 12037 * @returns {string} Returns the modified source. 12038 */ 12039 function insertWrapDetails(source, details) { 12040 var length = details.length; 12041 if (!length) { 12042 return source; 12043 } 12044 var lastIndex = length - 1; 12045 details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex]; 12046 details = details.join(length > 2 ? ', ' : ' '); 12047 return source.replace(reWrapComment, '{\n/* [wrapped with ' + details + '] */\n'); 12048 } 12049 12050 /** 12051 * Checks if `value` is a flattenable `arguments` object or array. 12052 * 12053 * @private 12054 * @param {*} value The value to check. 12055 * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. 12056 */ 12057 function isFlattenable(value) { 12058 return isArray(value) || isArguments(value) || 12059 !!(spreadableSymbol && value && value[spreadableSymbol]); 12060 } 12061 12062 /** 12063 * Checks if `value` is a valid array-like index. 12064 * 12065 * @private 12066 * @param {*} value The value to check. 12067 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. 12068 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. 12069 */ 12070 function isIndex(value, length) { 12071 var type = typeof value; 12072 length = length == null ? MAX_SAFE_INTEGER : length; 12073 12074 return !!length && 12075 (type == 'number' || 12076 (type != 'symbol' && reIsUint.test(value))) && 12077 (value > -1 && value % 1 == 0 && value < length); 12078 } 12079 12080 /** 12081 * Checks if the given arguments are from an iteratee call. 12082 * 12083 * @private 12084 * @param {*} value The potential iteratee value argument. 12085 * @param {*} index The potential iteratee index or key argument. 12086 * @param {*} object The potential iteratee object argument. 12087 * @returns {boolean} Returns `true` if the arguments are from an iteratee call, 12088 * else `false`. 12089 */ 12090 function isIterateeCall(value, index, object) { 12091 if (!isObject(object)) { 12092 return false;
vendor: 14,387 bytes, lines 12093-12539
12093 } 12094 var type = typeof index; 12095 if (type == 'number' 12096 ? (isArrayLike(object) && isIndex(index, object.length)) 12097 : (type == 'string' && index in object) 12098 ) { 12099 return eq(object[index], value); 12100 } 12101 return false; 12102 } 12103 12104 /** 12105 * Checks if `value` is a property name and not a property path. 12106 * 12107 * @private 12108 * @param {*} value The value to check. 12109 * @param {Object} [object] The object to query keys on. 12110 * @returns {boolean} Returns `true` if `value` is a property name, else `false`. 12111 */ 12112 function isKey(value, object) { 12113 if (isArray(value)) { 12114 return false; 12115 } 12116 var type = typeof value; 12117 if (type == 'number' || type == 'symbol' || type == 'boolean' || 12118 value == null || isSymbol(value)) { 12119 return true; 12120 } 12121 return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || 12122 (object != null && value in Object(object)); 12123 } 12124 12125 /** 12126 * Checks if `value` is suitable for use as unique object key. 12127 * 12128 * @private 12129 * @param {*} value The value to check. 12130 * @returns {boolean} Returns `true` if `value` is suitable, else `false`. 12131 */ 12132 function isKeyable(value) { 12133 var type = typeof value; 12134 return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') 12135 ? (value !== '__proto__') 12136 : (value === null); 12137 } 12138 12139 /** 12140 * Checks if `func` has a lazy counterpart. 12141 * 12142 * @private 12143 * @param {Function} func The function to check. 12144 * @returns {boolean} Returns `true` if `func` has a lazy counterpart, 12145 * else `false`. 12146 */ 12147 function isLaziable(func) { 12148 var funcName = getFuncName(func), 12149 other = lodash[funcName]; 12150 12151 if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { 12152 return false; 12153 } 12154 if (func === other) { 12155 return true; 12156 } 12157 var data = getData(other); 12158 return !!data && func === data[0]; 12159 } 12160 12161 /** 12162 * Checks if `func` has its source masked. 12163 * 12164 * @private 12165 * @param {Function} func The function to check. 12166 * @returns {boolean} Returns `true` if `func` is masked, else `false`. 12167 */ 12168 function isMasked(func) { 12169 return !!maskSrcKey && (maskSrcKey in func); 12170 } 12171 12172 /** 12173 * Checks if `func` is capable of being masked. 12174 * 12175 * @private 12176 * @param {*} value The value to check. 12177 * @returns {boolean} Returns `true` if `func` is maskable, else `false`. 12178 */ 12179 var isMaskable = coreJsData ? isFunction : stubFalse; 12180 12181 /** 12182 * Checks if `value` is likely a prototype object. 12183 * 12184 * @private 12185 * @param {*} value The value to check. 12186 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. 12187 */ 12188 function isPrototype(value) { 12189 var Ctor = value && value.constructor, 12190 proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; 12191 12192 return value === proto; 12193 } 12194 12195 /** 12196 * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. 12197 * 12198 * @private 12199 * @param {*} value The value to check. 12200 * @returns {boolean} Returns `true` if `value` if suitable for strict 12201 * equality comparisons, else `false`. 12202 */ 12203 function isStrictComparable(value) { 12204 return value === value && !isObject(value); 12205 } 12206 12207 /** 12208 * A specialized version of `matchesProperty` for source values suitable 12209 * for strict equality comparisons, i.e. `===`. 12210 * 12211 * @private 12212 * @param {string} key The key of the property to get. 12213 * @param {*} srcValue The value to match. 12214 * @returns {Function} Returns the new spec function. 12215 */ 12216 function matchesStrictComparable(key, srcValue) { 12217 return function(object) { 12218 if (object == null) { 12219 return false; 12220 } 12221 return object[key] === srcValue && 12222 (srcValue !== undefined || (key in Object(object))); 12223 }; 12224 } 12225 12226 /** 12227 * A specialized version of `_.memoize` which clears the memoized function's 12228 * cache when it exceeds `MAX_MEMOIZE_SIZE`. 12229 * 12230 * @private 12231 * @param {Function} func The function to have its output memoized. 12232 * @returns {Function} Returns the new memoized function. 12233 */ 12234 function memoizeCapped(func) { 12235 var result = memoize(func, function(key) { 12236 if (cache.size === MAX_MEMOIZE_SIZE) { 12237 cache.clear(); 12238 } 12239 return key; 12240 }); 12241 12242 var cache = result.cache; 12243 return result; 12244 } 12245 12246 /** 12247 * Merges the function metadata of `source` into `data`. 12248 * 12249 * Merging metadata reduces the number of wrappers used to invoke a function. 12250 * This is possible because methods like `_.bind`, `_.curry`, and `_.partial` 12251 * may be applied regardless of execution order. Methods like `_.ary` and 12252 * `_.rearg` modify function arguments, making the order in which they are 12253 * executed important, preventing the merging of metadata. However, we make 12254 * an exception for a safe combined case where curried functions have `_.ary` 12255 * and or `_.rearg` applied. 12256 * 12257 * @private 12258 * @param {Array} data The destination metadata. 12259 * @param {Array} source The source metadata. 12260 * @returns {Array} Returns `data`. 12261 */ 12262 function mergeData(data, source) { 12263 var bitmask = data[1], 12264 srcBitmask = source[1], 12265 newBitmask = bitmask | srcBitmask, 12266 isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); 12267 12268 var isCombo = 12269 ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) || 12270 ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) || 12271 ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG)); 12272 12273 // Exit early if metadata can't be merged. 12274 if (!(isCommon || isCombo)) { 12275 return data; 12276 } 12277 // Use source `thisArg` if available. 12278 if (srcBitmask & WRAP_BIND_FLAG) { 12279 data[2] = source[2]; 12280 // Set when currying a bound function. 12281 newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; 12282 } 12283 // Compose partial arguments. 12284 var value = source[3]; 12285 if (value) { 12286 var partials = data[3]; 12287 data[3] = partials ? composeArgs(partials, value, source[4]) : value; 12288 data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4]; 12289 } 12290 // Compose partial right arguments. 12291 value = source[5]; 12292 if (value) { 12293 partials = data[5]; 12294 data[5] = partials ? composeArgsRight(partials, value, source[6]) : value; 12295 data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6]; 12296 } 12297 // Use source `argPos` if available. 12298 value = source[7]; 12299 if (value) { 12300 data[7] = value; 12301 } 12302 // Use source `ary` if it's smaller. 12303 if (srcBitmask & WRAP_ARY_FLAG) { 12304 data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); 12305 } 12306 // Use source `arity` if one is not provided. 12307 if (data[9] == null) { 12308 data[9] = source[9]; 12309 } 12310 // Use source `func` and merge bitmasks. 12311 data[0] = source[0]; 12312 data[1] = newBitmask; 12313 12314 return data; 12315 } 12316 12317 /** 12318 * This function is like 12319 * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) 12320 * except that it includes inherited enumerable properties. 12321 * 12322 * @private 12323 * @param {Object} object The object to query. 12324 * @returns {Array} Returns the array of property names. 12325 */ 12326 function nativeKeysIn(object) { 12327 var result = []; 12328 if (object != null) { 12329 for (var key in Object(object)) { 12330 result.push(key); 12331 } 12332 } 12333 return result; 12334 } 12335 12336 /** 12337 * Converts `value` to a string using `Object.prototype.toString`. 12338 * 12339 * @private 12340 * @param {*} value The value to convert. 12341 * @returns {string} Returns the converted string. 12342 */ 12343 function objectToString(value) { 12344 return nativeObjectToString.call(value); 12345 } 12346 12347 /** 12348 * A specialized version of `baseRest` which transforms the rest array. 12349 * 12350 * @private 12351 * @param {Function} func The function to apply a rest parameter to. 12352 * @param {number} [start=func.length-1] The start position of the rest parameter. 12353 * @param {Function} transform The rest array transform. 12354 * @returns {Function} Returns the new function. 12355 */ 12356 function overRest(func, start, transform) { 12357 start = nativeMax(start === undefined ? (func.length - 1) : start, 0); 12358 return function() { 12359 var args = arguments, 12360 index = -1, 12361 length = nativeMax(args.length - start, 0), 12362 array = Array(length); 12363 12364 while (++index < length) { 12365 array[index] = args[start + index]; 12366 } 12367 index = -1; 12368 var otherArgs = Array(start + 1); 12369 while (++index < start) { 12370 otherArgs[index] = args[index]; 12371 } 12372 otherArgs[start] = transform(array); 12373 return apply(func, this, otherArgs); 12374 }; 12375 } 12376 12377 /** 12378 * Gets the parent value at `path` of `object`. 12379 * 12380 * @private 12381 * @param {Object} object The object to query. 12382 * @param {Array} path The path to get the parent value of. 12383 * @returns {*} Returns the parent value. 12384 */ 12385 function parent(object, path) { 12386 return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); 12387 } 12388 12389 /** 12390 * Reorder `array` according to the specified indexes where the element at 12391 * the first index is assigned as the first element, the element at 12392 * the second index is assigned as the second element, and so on. 12393 * 12394 * @private 12395 * @param {Array} array The array to reorder. 12396 * @param {Array} indexes The arranged array indexes. 12397 * @returns {Array} Returns `array`. 12398 */ 12399 function reorder(array, indexes) { 12400 var arrLength = array.length, 12401 length = nativeMin(indexes.length, arrLength), 12402 oldArray = copyArray(array); 12403 12404 while (length--) { 12405 var index = indexes[length]; 12406 array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined; 12407 } 12408 return array; 12409 } 12410 12411 /** 12412 * Gets the value at `key`, unless `key` is "__proto__" or "constructor". 12413 * 12414 * @private 12415 * @param {Object} object The object to query. 12416 * @param {string} key The key of the property to get. 12417 * @returns {*} Returns the property value. 12418 */ 12419 function safeGet(object, key) { 12420 if (key === 'constructor' && typeof object[key] === 'function') { 12421 return; 12422 } 12423 12424 if (key == '__proto__') { 12425 return; 12426 } 12427 12428 return object[key]; 12429 } 12430 12431 /** 12432 * Sets metadata for `func`. 12433 * 12434 * **Note:** If this function becomes hot, i.e. is invoked a lot in a short 12435 * period of time, it will trip its breaker and transition to an identity 12436 * function to avoid garbage collection pauses in V8. See 12437 * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070) 12438 * for more details. 12439 * 12440 * @private 12441 * @param {Function} func The function to associate metadata with. 12442 * @param {*} data The metadata. 12443 * @returns {Function} Returns `func`. 12444 */ 12445 var setData = shortOut(baseSetData); 12446 12447 /** 12448 * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout). 12449 * 12450 * @private 12451 * @param {Function} func The function to delay. 12452 * @param {number} wait The number of milliseconds to delay invocation. 12453 * @returns {number|Object} Returns the timer id or timeout object. 12454 */ 12455 var setTimeout = ctxSetTimeout || function(func, wait) { 12456 return root.setTimeout(func, wait); 12457 }; 12458 12459 /** 12460 * Sets the `toString` method of `func` to return `string`. 12461 * 12462 * @private 12463 * @param {Function} func The function to modify. 12464 * @param {Function} string The `toString` result. 12465 * @returns {Function} Returns `func`. 12466 */ 12467 var setToString = shortOut(baseSetToString); 12468 12469 /** 12470 * Sets the `toString` method of `wrapper` to mimic the source of `reference` 12471 * with wrapper details in a comment at the top of the source body. 12472 * 12473 * @private 12474 * @param {Function} wrapper The function to modify. 12475 * @param {Function} reference The reference function. 12476 * @param {number} bitmask The bitmask flags. See `createWrap` for more details. 12477 * @returns {Function} Returns `wrapper`. 12478 */ 12479 function setWrapToString(wrapper, reference, bitmask) { 12480 var source = (reference + ''); 12481 return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); 12482 } 12483 12484 /** 12485 * Creates a function that'll short out and invoke `identity` instead 12486 * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` 12487 * milliseconds. 12488 * 12489 * @private 12490 * @param {Function} func The function to restrict. 12491 * @returns {Function} Returns the new shortable function. 12492 */ 12493 function shortOut(func) { 12494 var count = 0, 12495 lastCalled = 0; 12496 12497 return function() { 12498 var stamp = nativeNow(), 12499 remaining = HOT_SPAN - (stamp - lastCalled); 12500 12501 lastCalled = stamp; 12502 if (remaining > 0) { 12503 if (++count >= HOT_COUNT) { 12504 return arguments[0]; 12505 } 12506 } else { 12507 count = 0; 12508 } 12509 return func.apply(undefined, arguments); 12510 }; 12511 } 12512 12513 /** 12514 * A specialized version of `_.shuffle` which mutates and sets the size of `array`. 12515 * 12516 * @private 12517 * @param {Array} array The array to shuffle. 12518 * @param {number} [size=array.length] The size of `array`. 12519 * @returns {Array} Returns `array`. 12520 */ 12521 function shuffleSelf(array, size) { 12522 var index = -1, 12523 length = array.length, 12524 lastIndex = length - 1; 12525 12526 size = size === undefined ? length : size; 12527 while (++index < size) { 12528 var rand = baseRandom(index, lastIndex), 12529 value = array[rand]; 12530 12531 array[rand] = array[index]; 12532 array[index] = value; 12533 } 12534 array.length = size; 12535 return array; 12536 } 12537 12538 /** 12539 * Converts `string` to a property path array.
vendor: 1,775 bytes, lines 12540-12600
12540 * 12541 * @private 12542 * @param {string} string The string to convert. 12543 * @returns {Array} Returns the property path array. 12544 */ 12545 var stringToPath = memoizeCapped(function(string) { 12546 var result = []; 12547 if (string.charCodeAt(0) === 46 /* . */) { 12548 result.push(''); 12549 } 12550 string.replace(rePropName, function(match, number, quote, subString) { 12551 result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); 12552 }); 12553 return result; 12554 }); 12555 12556 /** 12557 * Converts `value` to a string key if it's not a string or symbol. 12558 * 12559 * @private 12560 * @param {*} value The value to inspect. 12561 * @returns {string|symbol} Returns the key. 12562 */ 12563 function toKey(value) { 12564 if (typeof value == 'string' || isSymbol(value)) { 12565 return value; 12566 } 12567 var result = (value + ''); 12568 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; 12569 } 12570 12571 /** 12572 * Converts `func` to its source code. 12573 * 12574 * @private 12575 * @param {Function} func The function to convert. 12576 * @returns {string} Returns the source code. 12577 */ 12578 function toSource(func) { 12579 if (func != null) { 12580 try { 12581 return funcToString.call(func); 12582 } catch (e) {} 12583 try { 12584 return (func + ''); 12585 } catch (e) {} 12586 } 12587 return ''; 12588 } 12589 12590 /** 12591 * Updates wrapper `details` based on `bitmask` flags. 12592 * 12593 * @private 12594 * @returns {Array} details The details to modify. 12595 * @param {number} bitmask The bitmask flags. See `createWrap` for more details. 12596 * @returns {Array} Returns `details`. 12597 */ 12598 function updateWrapDetails(details, bitmask) { 12599 arrayEach(wrapFlags, function(pair) { 12600 var value = '_.' + pair[0];
vendor: 80,381 bytes, lines 12601-15184
12601 if ((bitmask & pair[1]) && !arrayIncludes(details, value)) { 12602 details.push(value); 12603 } 12604 }); 12605 return details.sort(); 12606 } 12607 12608 /** 12609 * Creates a clone of `wrapper`. 12610 * 12611 * @private 12612 * @param {Object} wrapper The wrapper to clone. 12613 * @returns {Object} Returns the cloned wrapper. 12614 */ 12615 function wrapperClone(wrapper) { 12616 if (wrapper instanceof LazyWrapper) { 12617 return wrapper.clone(); 12618 } 12619 var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); 12620 result.__actions__ = copyArray(wrapper.__actions__); 12621 result.__index__ = wrapper.__index__; 12622 result.__values__ = wrapper.__values__; 12623 return result; 12624 } 12625 12626 /*------------------------------------------------------------------------*/ 12627 12628 /** 12629 * Creates an array of elements split into groups the length of `size`. 12630 * If `array` can't be split evenly, the final chunk will be the remaining 12631 * elements. 12632 * 12633 * @static 12634 * @memberOf _ 12635 * @since 3.0.0 12636 * @category Array 12637 * @param {Array} array The array to process. 12638 * @param {number} [size=1] The length of each chunk 12639 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 12640 * @returns {Array} Returns the new array of chunks. 12641 * @example 12642 * 12643 * _.chunk(['a', 'b', 'c', 'd'], 2); 12644 * // => [['a', 'b'], ['c', 'd']] 12645 * 12646 * _.chunk(['a', 'b', 'c', 'd'], 3); 12647 * // => [['a', 'b', 'c'], ['d']] 12648 */ 12649 function chunk(array, size, guard) { 12650 if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) { 12651 size = 1; 12652 } else { 12653 size = nativeMax(toInteger(size), 0); 12654 } 12655 var length = array == null ? 0 : array.length; 12656 if (!length || size < 1) { 12657 return []; 12658 } 12659 var index = 0, 12660 resIndex = 0, 12661 result = Array(nativeCeil(length / size)); 12662 12663 while (index < length) { 12664 result[resIndex++] = baseSlice(array, index, (index += size)); 12665 } 12666 return result; 12667 } 12668 12669 /** 12670 * Creates an array with all falsey values removed. The values `false`, `null`, 12671 * `0`, `""`, `undefined`, and `NaN` are falsey. 12672 * 12673 * @static 12674 * @memberOf _ 12675 * @since 0.1.0 12676 * @category Array 12677 * @param {Array} array The array to compact. 12678 * @returns {Array} Returns the new array of filtered values. 12679 * @example 12680 * 12681 * _.compact([0, 1, false, 2, '', 3]); 12682 * // => [1, 2, 3] 12683 */ 12684 function compact(array) { 12685 var index = -1, 12686 length = array == null ? 0 : array.length, 12687 resIndex = 0, 12688 result = []; 12689 12690 while (++index < length) { 12691 var value = array[index]; 12692 if (value) { 12693 result[resIndex++] = value; 12694 } 12695 } 12696 return result; 12697 } 12698 12699 /** 12700 * Creates a new array concatenating `array` with any additional arrays 12701 * and/or values. 12702 * 12703 * @static 12704 * @memberOf _ 12705 * @since 4.0.0 12706 * @category Array 12707 * @param {Array} array The array to concatenate. 12708 * @param {...*} [values] The values to concatenate. 12709 * @returns {Array} Returns the new concatenated array. 12710 * @example 12711 * 12712 * var array = [1]; 12713 * var other = _.concat(array, 2, [3], [[4]]); 12714 * 12715 * console.log(other); 12716 * // => [1, 2, 3, [4]] 12717 * 12718 * console.log(array); 12719 * // => [1] 12720 */ 12721 function concat() { 12722 var length = arguments.length; 12723 if (!length) { 12724 return []; 12725 } 12726 var args = Array(length - 1), 12727 array = arguments[0], 12728 index = length; 12729 12730 while (index--) { 12731 args[index - 1] = arguments[index]; 12732 } 12733 return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); 12734 } 12735 12736 /** 12737 * Creates an array of `array` values not included in the other given arrays 12738 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 12739 * for equality comparisons. The order and references of result values are 12740 * determined by the first array. 12741 * 12742 * **Note:** Unlike `_.pullAll`, this method returns a new array. 12743 * 12744 * @static 12745 * @memberOf _ 12746 * @since 0.1.0 12747 * @category Array 12748 * @param {Array} array The array to inspect. 12749 * @param {...Array} [values] The values to exclude. 12750 * @returns {Array} Returns the new array of filtered values. 12751 * @see _.without, _.xor 12752 * @example 12753 * 12754 * _.difference([2, 1], [2, 3]); 12755 * // => [1] 12756 */ 12757 var difference = baseRest(function(array, values) { 12758 return isArrayLikeObject(array) 12759 ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) 12760 : []; 12761 }); 12762 12763 /** 12764 * This method is like `_.difference` except that it accepts `iteratee` which 12765 * is invoked for each element of `array` and `values` to generate the criterion 12766 * by which they're compared. The order and references of result values are 12767 * determined by the first array. The iteratee is invoked with one argument: 12768 * (value). 12769 * 12770 * **Note:** Unlike `_.pullAllBy`, this method returns a new array. 12771 * 12772 * @static 12773 * @memberOf _ 12774 * @since 4.0.0 12775 * @category Array 12776 * @param {Array} array The array to inspect. 12777 * @param {...Array} [values] The values to exclude. 12778 * @param {Function} [iteratee=_.identity] The iteratee invoked per element. 12779 * @returns {Array} Returns the new array of filtered values. 12780 * @example 12781 * 12782 * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); 12783 * // => [1.2] 12784 * 12785 * // The `_.property` iteratee shorthand. 12786 * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x'); 12787 * // => [{ 'x': 2 }] 12788 */ 12789 var differenceBy = baseRest(function(array, values) { 12790 var iteratee = last(values); 12791 if (isArrayLikeObject(iteratee)) { 12792 iteratee = undefined; 12793 } 12794 return isArrayLikeObject(array) 12795 ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)) 12796 : []; 12797 }); 12798 12799 /** 12800 * This method is like `_.difference` except that it accepts `comparator` 12801 * which is invoked to compare elements of `array` to `values`. The order and 12802 * references of result values are determined by the first array. The comparator 12803 * is invoked with two arguments: (arrVal, othVal). 12804 * 12805 * **Note:** Unlike `_.pullAllWith`, this method returns a new array. 12806 * 12807 * @static 12808 * @memberOf _ 12809 * @since 4.0.0 12810 * @category Array 12811 * @param {Array} array The array to inspect. 12812 * @param {...Array} [values] The values to exclude. 12813 * @param {Function} [comparator] The comparator invoked per element. 12814 * @returns {Array} Returns the new array of filtered values. 12815 * @example 12816 * 12817 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; 12818 * 12819 * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual); 12820 * // => [{ 'x': 2, 'y': 1 }] 12821 */ 12822 var differenceWith = baseRest(function(array, values) { 12823 var comparator = last(values); 12824 if (isArrayLikeObject(comparator)) { 12825 comparator = undefined; 12826 } 12827 return isArrayLikeObject(array) 12828 ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator) 12829 : []; 12830 }); 12831 12832 /** 12833 * Creates a slice of `array` with `n` elements dropped from the beginning. 12834 * 12835 * @static 12836 * @memberOf _ 12837 * @since 0.5.0 12838 * @category Array 12839 * @param {Array} array The array to query. 12840 * @param {number} [n=1] The number of elements to drop. 12841 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 12842 * @returns {Array} Returns the slice of `array`. 12843 * @example 12844 * 12845 * _.drop([1, 2, 3]); 12846 * // => [2, 3] 12847 * 12848 * _.drop([1, 2, 3], 2); 12849 * // => [3] 12850 * 12851 * _.drop([1, 2, 3], 5); 12852 * // => [] 12853 * 12854 * _.drop([1, 2, 3], 0); 12855 * // => [1, 2, 3] 12856 */ 12857 function drop(array, n, guard) { 12858 var length = array == null ? 0 : array.length; 12859 if (!length) { 12860 return []; 12861 } 12862 n = (guard || n === undefined) ? 1 : toInteger(n); 12863 return baseSlice(array, n < 0 ? 0 : n, length); 12864 } 12865 12866 /** 12867 * Creates a slice of `array` with `n` elements dropped from the end. 12868 * 12869 * @static 12870 * @memberOf _ 12871 * @since 3.0.0 12872 * @category Array 12873 * @param {Array} array The array to query. 12874 * @param {number} [n=1] The number of elements to drop. 12875 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 12876 * @returns {Array} Returns the slice of `array`. 12877 * @example 12878 * 12879 * _.dropRight([1, 2, 3]); 12880 * // => [1, 2] 12881 * 12882 * _.dropRight([1, 2, 3], 2); 12883 * // => [1] 12884 * 12885 * _.dropRight([1, 2, 3], 5); 12886 * // => [] 12887 * 12888 * _.dropRight([1, 2, 3], 0); 12889 * // => [1, 2, 3] 12890 */ 12891 function dropRight(array, n, guard) { 12892 var length = array == null ? 0 : array.length; 12893 if (!length) { 12894 return []; 12895 } 12896 n = (guard || n === undefined) ? 1 : toInteger(n); 12897 n = length - n; 12898 return baseSlice(array, 0, n < 0 ? 0 : n); 12899 } 12900 12901 /** 12902 * Creates a slice of `array` excluding elements dropped from the end. 12903 * Elements are dropped until `predicate` returns falsey. The predicate is 12904 * invoked with three arguments: (value, index, array). 12905 * 12906 * @static 12907 * @memberOf _ 12908 * @since 3.0.0 12909 * @category Array 12910 * @param {Array} array The array to query. 12911 * @param {Function} [predicate=_.identity] The function invoked per iteration. 12912 * @returns {Array} Returns the slice of `array`. 12913 * @example 12914 * 12915 * var users = [ 12916 * { 'user': 'barney', 'active': true }, 12917 * { 'user': 'fred', 'active': false }, 12918 * { 'user': 'pebbles', 'active': false } 12919 * ]; 12920 * 12921 * _.dropRightWhile(users, function(o) { return !o.active; }); 12922 * // => objects for ['barney'] 12923 * 12924 * // The `_.matches` iteratee shorthand. 12925 * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false }); 12926 * // => objects for ['barney', 'fred'] 12927 * 12928 * // The `_.matchesProperty` iteratee shorthand. 12929 * _.dropRightWhile(users, ['active', false]); 12930 * // => objects for ['barney'] 12931 * 12932 * // The `_.property` iteratee shorthand. 12933 * _.dropRightWhile(users, 'active'); 12934 * // => objects for ['barney', 'fred', 'pebbles'] 12935 */ 12936 function dropRightWhile(array, predicate) { 12937 return (array && array.length) 12938 ? baseWhile(array, getIteratee(predicate, 3), true, true) 12939 : []; 12940 } 12941 12942 /** 12943 * Creates a slice of `array` excluding elements dropped from the beginning. 12944 * Elements are dropped until `predicate` returns falsey. The predicate is 12945 * invoked with three arguments: (value, index, array). 12946 * 12947 * @static 12948 * @memberOf _ 12949 * @since 3.0.0 12950 * @category Array 12951 * @param {Array} array The array to query. 12952 * @param {Function} [predicate=_.identity] The function invoked per iteration. 12953 * @returns {Array} Returns the slice of `array`. 12954 * @example 12955 * 12956 * var users = [ 12957 * { 'user': 'barney', 'active': false }, 12958 * { 'user': 'fred', 'active': false }, 12959 * { 'user': 'pebbles', 'active': true } 12960 * ]; 12961 * 12962 * _.dropWhile(users, function(o) { return !o.active; }); 12963 * // => objects for ['pebbles'] 12964 * 12965 * // The `_.matches` iteratee shorthand. 12966 * _.dropWhile(users, { 'user': 'barney', 'active': false }); 12967 * // => objects for ['fred', 'pebbles'] 12968 * 12969 * // The `_.matchesProperty` iteratee shorthand. 12970 * _.dropWhile(users, ['active', false]); 12971 * // => objects for ['pebbles'] 12972 * 12973 * // The `_.property` iteratee shorthand. 12974 * _.dropWhile(users, 'active'); 12975 * // => objects for ['barney', 'fred', 'pebbles'] 12976 */ 12977 function dropWhile(array, predicate) { 12978 return (array && array.length) 12979 ? baseWhile(array, getIteratee(predicate, 3), true) 12980 : []; 12981 } 12982 12983 /** 12984 * Fills elements of `array` with `value` from `start` up to, but not 12985 * including, `end`. 12986 * 12987 * **Note:** This method mutates `array`. 12988 * 12989 * @static 12990 * @memberOf _ 12991 * @since 3.2.0 12992 * @category Array 12993 * @param {Array} array The array to fill. 12994 * @param {*} value The value to fill `array` with. 12995 * @param {number} [start=0] The start position. 12996 * @param {number} [end=array.length] The end position. 12997 * @returns {Array} Returns `array`. 12998 * @example 12999 * 13000 * var array = [1, 2, 3]; 13001 * 13002 * _.fill(array, 'a'); 13003 * console.log(array); 13004 * // => ['a', 'a', 'a'] 13005 * 13006 * _.fill(Array(3), 2); 13007 * // => [2, 2, 2] 13008 * 13009 * _.fill([4, 6, 8, 10], '*', 1, 3); 13010 * // => [4, '*', '*', 10] 13011 */ 13012 function fill(array, value, start, end) { 13013 var length = array == null ? 0 : array.length; 13014 if (!length) { 13015 return []; 13016 } 13017 if (start && typeof start != 'number' && isIterateeCall(array, value, start)) { 13018 start = 0; 13019 end = length; 13020 } 13021 return baseFill(array, value, start, end); 13022 } 13023 13024 /** 13025 * This method is like `_.find` except that it returns the index of the first 13026 * element `predicate` returns truthy for instead of the element itself. 13027 * 13028 * @static 13029 * @memberOf _ 13030 * @since 1.1.0 13031 * @category Array 13032 * @param {Array} array The array to inspect. 13033 * @param {Function} [predicate=_.identity] The function invoked per iteration. 13034 * @param {number} [fromIndex=0] The index to search from. 13035 * @returns {number} Returns the index of the found element, else `-1`. 13036 * @example 13037 * 13038 * var users = [ 13039 * { 'user': 'barney', 'active': false }, 13040 * { 'user': 'fred', 'active': false }, 13041 * { 'user': 'pebbles', 'active': true } 13042 * ]; 13043 * 13044 * _.findIndex(users, function(o) { return o.user == 'barney'; }); 13045 * // => 0 13046 * 13047 * // The `_.matches` iteratee shorthand. 13048 * _.findIndex(users, { 'user': 'fred', 'active': false }); 13049 * // => 1 13050 * 13051 * // The `_.matchesProperty` iteratee shorthand. 13052 * _.findIndex(users, ['active', false]); 13053 * // => 0 13054 * 13055 * // The `_.property` iteratee shorthand. 13056 * _.findIndex(users, 'active'); 13057 * // => 2 13058 */ 13059 function findIndex(array, predicate, fromIndex) { 13060 var length = array == null ? 0 : array.length; 13061 if (!length) { 13062 return -1; 13063 } 13064 var index = fromIndex == null ? 0 : toInteger(fromIndex); 13065 if (index < 0) { 13066 index = nativeMax(length + index, 0); 13067 } 13068 return baseFindIndex(array, getIteratee(predicate, 3), index); 13069 } 13070 13071 /** 13072 * This method is like `_.findIndex` except that it iterates over elements 13073 * of `collection` from right to left. 13074 * 13075 * @static 13076 * @memberOf _ 13077 * @since 2.0.0 13078 * @category Array 13079 * @param {Array} array The array to inspect. 13080 * @param {Function} [predicate=_.identity] The function invoked per iteration. 13081 * @param {number} [fromIndex=array.length-1] The index to search from. 13082 * @returns {number} Returns the index of the found element, else `-1`. 13083 * @example 13084 * 13085 * var users = [ 13086 * { 'user': 'barney', 'active': true }, 13087 * { 'user': 'fred', 'active': false }, 13088 * { 'user': 'pebbles', 'active': false } 13089 * ]; 13090 * 13091 * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); 13092 * // => 2 13093 * 13094 * // The `_.matches` iteratee shorthand. 13095 * _.findLastIndex(users, { 'user': 'barney', 'active': true }); 13096 * // => 0 13097 * 13098 * // The `_.matchesProperty` iteratee shorthand. 13099 * _.findLastIndex(users, ['active', false]); 13100 * // => 2 13101 * 13102 * // The `_.property` iteratee shorthand. 13103 * _.findLastIndex(users, 'active'); 13104 * // => 0 13105 */ 13106 function findLastIndex(array, predicate, fromIndex) { 13107 var length = array == null ? 0 : array.length; 13108 if (!length) { 13109 return -1; 13110 } 13111 var index = length - 1; 13112 if (fromIndex !== undefined) { 13113 index = toInteger(fromIndex); 13114 index = fromIndex < 0 13115 ? nativeMax(length + index, 0) 13116 : nativeMin(index, length - 1); 13117 } 13118 return baseFindIndex(array, getIteratee(predicate, 3), index, true); 13119 } 13120 13121 /** 13122 * Flattens `array` a single level deep. 13123 * 13124 * @static 13125 * @memberOf _ 13126 * @since 0.1.0 13127 * @category Array 13128 * @param {Array} array The array to flatten. 13129 * @returns {Array} Returns the new flattened array. 13130 * @example 13131 * 13132 * _.flatten([1, [2, [3, [4]], 5]]); 13133 * // => [1, 2, [3, [4]], 5] 13134 */ 13135 function flatten(array) { 13136 var length = array == null ? 0 : array.length; 13137 return length ? baseFlatten(array, 1) : []; 13138 } 13139 13140 /** 13141 * Recursively flattens `array`. 13142 * 13143 * @static 13144 * @memberOf _ 13145 * @since 3.0.0 13146 * @category Array 13147 * @param {Array} array The array to flatten. 13148 * @returns {Array} Returns the new flattened array. 13149 * @example 13150 * 13151 * _.flattenDeep([1, [2, [3, [4]], 5]]); 13152 * // => [1, 2, 3, 4, 5] 13153 */ 13154 function flattenDeep(array) { 13155 var length = array == null ? 0 : array.length; 13156 return length ? baseFlatten(array, INFINITY) : []; 13157 } 13158 13159 /** 13160 * Recursively flatten `array` up to `depth` times. 13161 * 13162 * @static 13163 * @memberOf _ 13164 * @since 4.4.0 13165 * @category Array 13166 * @param {Array} array The array to flatten. 13167 * @param {number} [depth=1] The maximum recursion depth. 13168 * @returns {Array} Returns the new flattened array. 13169 * @example 13170 * 13171 * var array = [1, [2, [3, [4]], 5]]; 13172 * 13173 * _.flattenDepth(array, 1); 13174 * // => [1, 2, [3, [4]], 5] 13175 * 13176 * _.flattenDepth(array, 2); 13177 * // => [1, 2, 3, [4], 5] 13178 */ 13179 function flattenDepth(array, depth) { 13180 var length = array == null ? 0 : array.length; 13181 if (!length) { 13182 return []; 13183 } 13184 depth = depth === undefined ? 1 : toInteger(depth); 13185 return baseFlatten(array, depth); 13186 } 13187 13188 /** 13189 * The inverse of `_.toPairs`; this method returns an object composed 13190 * from key-value `pairs`. 13191 * 13192 * @static 13193 * @memberOf _ 13194 * @since 4.0.0 13195 * @category Array 13196 * @param {Array} pairs The key-value pairs. 13197 * @returns {Object} Returns the new object. 13198 * @example 13199 * 13200 * _.fromPairs([['a', 1], ['b', 2]]); 13201 * // => { 'a': 1, 'b': 2 } 13202 */ 13203 function fromPairs(pairs) { 13204 var index = -1, 13205 length = pairs == null ? 0 : pairs.length, 13206 result = {}; 13207 13208 while (++index < length) { 13209 var pair = pairs[index]; 13210 result[pair[0]] = pair[1]; 13211 } 13212 return result; 13213 } 13214 13215 /** 13216 * Gets the first element of `array`. 13217 * 13218 * @static 13219 * @memberOf _ 13220 * @since 0.1.0 13221 * @alias first 13222 * @category Array 13223 * @param {Array} array The array to query. 13224 * @returns {*} Returns the first element of `array`. 13225 * @example 13226 * 13227 * _.head([1, 2, 3]); 13228 * // => 1 13229 * 13230 * _.head([]); 13231 * // => undefined 13232 */ 13233 function head(array) { 13234 return (array && array.length) ? array[0] : undefined; 13235 } 13236 13237 /** 13238 * Gets the index at which the first occurrence of `value` is found in `array` 13239 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 13240 * for equality comparisons. If `fromIndex` is negative, it's used as the 13241 * offset from the end of `array`. 13242 * 13243 * @static 13244 * @memberOf _ 13245 * @since 0.1.0 13246 * @category Array 13247 * @param {Array} array The array to inspect. 13248 * @param {*} value The value to search for. 13249 * @param {number} [fromIndex=0] The index to search from. 13250 * @returns {number} Returns the index of the matched value, else `-1`. 13251 * @example 13252 * 13253 * _.indexOf([1, 2, 1, 2], 2); 13254 * // => 1 13255 * 13256 * // Search from the `fromIndex`. 13257 * _.indexOf([1, 2, 1, 2], 2, 2); 13258 * // => 3 13259 */ 13260 function indexOf(array, value, fromIndex) { 13261 var length = array == null ? 0 : array.length; 13262 if (!length) { 13263 return -1; 13264 } 13265 var index = fromIndex == null ? 0 : toInteger(fromIndex); 13266 if (index < 0) { 13267 index = nativeMax(length + index, 0); 13268 } 13269 return baseIndexOf(array, value, index); 13270 } 13271 13272 /** 13273 * Gets all but the last element of `array`. 13274 * 13275 * @static 13276 * @memberOf _ 13277 * @since 0.1.0 13278 * @category Array 13279 * @param {Array} array The array to query. 13280 * @returns {Array} Returns the slice of `array`. 13281 * @example 13282 * 13283 * _.initial([1, 2, 3]); 13284 * // => [1, 2] 13285 */ 13286 function initial(array) { 13287 var length = array == null ? 0 : array.length; 13288 return length ? baseSlice(array, 0, -1) : []; 13289 } 13290 13291 /** 13292 * Creates an array of unique values that are included in all given arrays 13293 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 13294 * for equality comparisons. The order and references of result values are 13295 * determined by the first array. 13296 * 13297 * @static 13298 * @memberOf _ 13299 * @since 0.1.0 13300 * @category Array 13301 * @param {...Array} [arrays] The arrays to inspect. 13302 * @returns {Array} Returns the new array of intersecting values. 13303 * @example 13304 * 13305 * _.intersection([2, 1], [2, 3]); 13306 * // => [2] 13307 */ 13308 var intersection = baseRest(function(arrays) { 13309 var mapped = arrayMap(arrays, castArrayLikeObject); 13310 return (mapped.length && mapped[0] === arrays[0]) 13311 ? baseIntersection(mapped) 13312 : []; 13313 }); 13314 13315 /** 13316 * This method is like `_.intersection` except that it accepts `iteratee` 13317 * which is invoked for each element of each `arrays` to generate the criterion 13318 * by which they're compared. The order and references of result values are 13319 * determined by the first array. The iteratee is invoked with one argument: 13320 * (value). 13321 * 13322 * @static 13323 * @memberOf _ 13324 * @since 4.0.0 13325 * @category Array 13326 * @param {...Array} [arrays] The arrays to inspect. 13327 * @param {Function} [iteratee=_.identity] The iteratee invoked per element. 13328 * @returns {Array} Returns the new array of intersecting values. 13329 * @example 13330 * 13331 * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); 13332 * // => [2.1] 13333 * 13334 * // The `_.property` iteratee shorthand. 13335 * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); 13336 * // => [{ 'x': 1 }] 13337 */ 13338 var intersectionBy = baseRest(function(arrays) { 13339 var iteratee = last(arrays), 13340 mapped = arrayMap(arrays, castArrayLikeObject); 13341 13342 if (iteratee === last(mapped)) { 13343 iteratee = undefined; 13344 } else { 13345 mapped.pop(); 13346 } 13347 return (mapped.length && mapped[0] === arrays[0]) 13348 ? baseIntersection(mapped, getIteratee(iteratee, 2)) 13349 : []; 13350 }); 13351 13352 /** 13353 * This method is like `_.intersection` except that it accepts `comparator` 13354 * which is invoked to compare elements of `arrays`. The order and references 13355 * of result values are determined by the first array. The comparator is 13356 * invoked with two arguments: (arrVal, othVal). 13357 * 13358 * @static 13359 * @memberOf _ 13360 * @since 4.0.0 13361 * @category Array 13362 * @param {...Array} [arrays] The arrays to inspect. 13363 * @param {Function} [comparator] The comparator invoked per element. 13364 * @returns {Array} Returns the new array of intersecting values. 13365 * @example 13366 * 13367 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; 13368 * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; 13369 * 13370 * _.intersectionWith(objects, others, _.isEqual); 13371 * // => [{ 'x': 1, 'y': 2 }] 13372 */ 13373 var intersectionWith = baseRest(function(arrays) { 13374 var comparator = last(arrays), 13375 mapped = arrayMap(arrays, castArrayLikeObject); 13376 13377 comparator = typeof comparator == 'function' ? comparator : undefined; 13378 if (comparator) { 13379 mapped.pop(); 13380 } 13381 return (mapped.length && mapped[0] === arrays[0]) 13382 ? baseIntersection(mapped, undefined, comparator) 13383 : []; 13384 }); 13385 13386 /** 13387 * Converts all elements in `array` into a string separated by `separator`. 13388 * 13389 * @static 13390 * @memberOf _ 13391 * @since 4.0.0 13392 * @category Array 13393 * @param {Array} array The array to convert. 13394 * @param {string} [separator=','] The element separator. 13395 * @returns {string} Returns the joined string. 13396 * @example 13397 * 13398 * _.join(['a', 'b', 'c'], '~'); 13399 * // => 'a~b~c' 13400 */ 13401 function join(array, separator) { 13402 return array == null ? '' : nativeJoin.call(array, separator); 13403 } 13404 13405 /** 13406 * Gets the last element of `array`. 13407 * 13408 * @static 13409 * @memberOf _ 13410 * @since 0.1.0 13411 * @category Array 13412 * @param {Array} array The array to query. 13413 * @returns {*} Returns the last element of `array`. 13414 * @example 13415 * 13416 * _.last([1, 2, 3]); 13417 * // => 3 13418 */ 13419 function last(array) { 13420 var length = array == null ? 0 : array.length; 13421 return length ? array[length - 1] : undefined; 13422 } 13423 13424 /** 13425 * This method is like `_.indexOf` except that it iterates over elements of 13426 * `array` from right to left. 13427 * 13428 * @static 13429 * @memberOf _ 13430 * @since 0.1.0 13431 * @category Array 13432 * @param {Array} array The array to inspect. 13433 * @param {*} value The value to search for. 13434 * @param {number} [fromIndex=array.length-1] The index to search from. 13435 * @returns {number} Returns the index of the matched value, else `-1`. 13436 * @example 13437 * 13438 * _.lastIndexOf([1, 2, 1, 2], 2); 13439 * // => 3 13440 * 13441 * // Search from the `fromIndex`. 13442 * _.lastIndexOf([1, 2, 1, 2], 2, 2); 13443 * // => 1 13444 */ 13445 function lastIndexOf(array, value, fromIndex) { 13446 var length = array == null ? 0 : array.length; 13447 if (!length) { 13448 return -1; 13449 } 13450 var index = length; 13451 if (fromIndex !== undefined) { 13452 index = toInteger(fromIndex); 13453 index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); 13454 } 13455 return value === value 13456 ? strictLastIndexOf(array, value, index) 13457 : baseFindIndex(array, baseIsNaN, index, true); 13458 } 13459 13460 /** 13461 * Gets the element at index `n` of `array`. If `n` is negative, the nth 13462 * element from the end is returned. 13463 * 13464 * @static 13465 * @memberOf _ 13466 * @since 4.11.0 13467 * @category Array 13468 * @param {Array} array The array to query. 13469 * @param {number} [n=0] The index of the element to return. 13470 * @returns {*} Returns the nth element of `array`. 13471 * @example 13472 * 13473 * var array = ['a', 'b', 'c', 'd']; 13474 * 13475 * _.nth(array, 1); 13476 * // => 'b' 13477 * 13478 * _.nth(array, -2); 13479 * // => 'c'; 13480 */ 13481 function nth(array, n) { 13482 return (array && array.length) ? baseNth(array, toInteger(n)) : undefined; 13483 } 13484 13485 /** 13486 * Removes all given values from `array` using 13487 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 13488 * for equality comparisons. 13489 * 13490 * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove` 13491 * to remove elements from an array by predicate. 13492 * 13493 * @static 13494 * @memberOf _ 13495 * @since 2.0.0 13496 * @category Array 13497 * @param {Array} array The array to modify. 13498 * @param {...*} [values] The values to remove. 13499 * @returns {Array} Returns `array`. 13500 * @example 13501 * 13502 * var array = ['a', 'b', 'c', 'a', 'b', 'c']; 13503 * 13504 * _.pull(array, 'a', 'c'); 13505 * console.log(array); 13506 * // => ['b', 'b'] 13507 */ 13508 var pull = baseRest(pullAll); 13509 13510 /** 13511 * This method is like `_.pull` except that it accepts an array of values to remove. 13512 * 13513 * **Note:** Unlike `_.difference`, this method mutates `array`. 13514 * 13515 * @static 13516 * @memberOf _ 13517 * @since 4.0.0 13518 * @category Array 13519 * @param {Array} array The array to modify. 13520 * @param {Array} values The values to remove. 13521 * @returns {Array} Returns `array`. 13522 * @example 13523 * 13524 * var array = ['a', 'b', 'c', 'a', 'b', 'c']; 13525 * 13526 * _.pullAll(array, ['a', 'c']); 13527 * console.log(array); 13528 * // => ['b', 'b'] 13529 */ 13530 function pullAll(array, values) { 13531 return (array && array.length && values && values.length) 13532 ? basePullAll(array, values) 13533 : array; 13534 } 13535 13536 /** 13537 * This method is like `_.pullAll` except that it accepts `iteratee` which is 13538 * invoked for each element of `array` and `values` to generate the criterion 13539 * by which they're compared. The iteratee is invoked with one argument: (value). 13540 * 13541 * **Note:** Unlike `_.differenceBy`, this method mutates `array`. 13542 * 13543 * @static 13544 * @memberOf _ 13545 * @since 4.0.0 13546 * @category Array 13547 * @param {Array} array The array to modify. 13548 * @param {Array} values The values to remove. 13549 * @param {Function} [iteratee=_.identity] The iteratee invoked per element. 13550 * @returns {Array} Returns `array`. 13551 * @example 13552 * 13553 * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }]; 13554 * 13555 * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x'); 13556 * console.log(array); 13557 * // => [{ 'x': 2 }] 13558 */ 13559 function pullAllBy(array, values, iteratee) { 13560 return (array && array.length && values && values.length) 13561 ? basePullAll(array, values, getIteratee(iteratee, 2)) 13562 : array; 13563 } 13564 13565 /** 13566 * This method is like `_.pullAll` except that it accepts `comparator` which 13567 * is invoked to compare elements of `array` to `values`. The comparator is 13568 * invoked with two arguments: (arrVal, othVal). 13569 * 13570 * **Note:** Unlike `_.differenceWith`, this method mutates `array`. 13571 * 13572 * @static 13573 * @memberOf _ 13574 * @since 4.6.0 13575 * @category Array 13576 * @param {Array} array The array to modify. 13577 * @param {Array} values The values to remove. 13578 * @param {Function} [comparator] The comparator invoked per element. 13579 * @returns {Array} Returns `array`. 13580 * @example 13581 * 13582 * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }]; 13583 * 13584 * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual); 13585 * console.log(array); 13586 * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }] 13587 */ 13588 function pullAllWith(array, values, comparator) { 13589 return (array && array.length && values && values.length) 13590 ? basePullAll(array, values, undefined, comparator) 13591 : array; 13592 } 13593 13594 /** 13595 * Removes elements from `array` corresponding to `indexes` and returns an 13596 * array of removed elements. 13597 * 13598 * **Note:** Unlike `_.at`, this method mutates `array`. 13599 * 13600 * @static 13601 * @memberOf _ 13602 * @since 3.0.0 13603 * @category Array 13604 * @param {Array} array The array to modify. 13605 * @param {...(number|number[])} [indexes] The indexes of elements to remove. 13606 * @returns {Array} Returns the new array of removed elements. 13607 * @example 13608 * 13609 * var array = ['a', 'b', 'c', 'd']; 13610 * var pulled = _.pullAt(array, [1, 3]); 13611 * 13612 * console.log(array); 13613 * // => ['a', 'c'] 13614 * 13615 * console.log(pulled); 13616 * // => ['b', 'd'] 13617 */ 13618 var pullAt = flatRest(function(array, indexes) { 13619 var length = array == null ? 0 : array.length, 13620 result = baseAt(array, indexes); 13621 13622 basePullAt(array, arrayMap(indexes, function(index) { 13623 return isIndex(index, length) ? +index : index; 13624 }).sort(compareAscending)); 13625 13626 return result; 13627 }); 13628 13629 /** 13630 * Removes all elements from `array` that `predicate` returns truthy for 13631 * and returns an array of the removed elements. The predicate is invoked 13632 * with three arguments: (value, index, array). 13633 * 13634 * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull` 13635 * to pull elements from an array by value. 13636 * 13637 * @static 13638 * @memberOf _ 13639 * @since 2.0.0 13640 * @category Array 13641 * @param {Array} array The array to modify. 13642 * @param {Function} [predicate=_.identity] The function invoked per iteration. 13643 * @returns {Array} Returns the new array of removed elements. 13644 * @example 13645 * 13646 * var array = [1, 2, 3, 4]; 13647 * var evens = _.remove(array, function(n) { 13648 * return n % 2 == 0; 13649 * }); 13650 * 13651 * console.log(array); 13652 * // => [1, 3] 13653 * 13654 * console.log(evens); 13655 * // => [2, 4] 13656 */ 13657 function remove(array, predicate) { 13658 var result = []; 13659 if (!(array && array.length)) { 13660 return result; 13661 } 13662 var index = -1, 13663 indexes = [], 13664 length = array.length; 13665 13666 predicate = getIteratee(predicate, 3); 13667 while (++index < length) { 13668 var value = array[index]; 13669 if (predicate(value, index, array)) { 13670 result.push(value); 13671 indexes.push(index); 13672 } 13673 } 13674 basePullAt(array, indexes); 13675 return result; 13676 } 13677 13678 /** 13679 * Reverses `array` so that the first element becomes the last, the second 13680 * element becomes the second to last, and so on. 13681 * 13682 * **Note:** This method mutates `array` and is based on 13683 * [`Array#reverse`](https://mdn.io/Array/reverse). 13684 * 13685 * @static 13686 * @memberOf _ 13687 * @since 4.0.0 13688 * @category Array 13689 * @param {Array} array The array to modify. 13690 * @returns {Array} Returns `array`. 13691 * @example 13692 * 13693 * var array = [1, 2, 3]; 13694 * 13695 * _.reverse(array); 13696 * // => [3, 2, 1] 13697 * 13698 * console.log(array); 13699 * // => [3, 2, 1] 13700 */ 13701 function reverse(array) { 13702 return array == null ? array : nativeReverse.call(array); 13703 } 13704 13705 /** 13706 * Creates a slice of `array` from `start` up to, but not including, `end`. 13707 * 13708 * **Note:** This method is used instead of 13709 * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are 13710 * returned. 13711 * 13712 * @static 13713 * @memberOf _ 13714 * @since 3.0.0 13715 * @category Array 13716 * @param {Array} array The array to slice. 13717 * @param {number} [start=0] The start position. 13718 * @param {number} [end=array.length] The end position. 13719 * @returns {Array} Returns the slice of `array`. 13720 */ 13721 function slice(array, start, end) { 13722 var length = array == null ? 0 : array.length; 13723 if (!length) { 13724 return []; 13725 } 13726 if (end && typeof end != 'number' && isIterateeCall(array, start, end)) { 13727 start = 0; 13728 end = length; 13729 } 13730 else { 13731 start = start == null ? 0 : toInteger(start); 13732 end = end === undefined ? length : toInteger(end); 13733 } 13734 return baseSlice(array, start, end); 13735 } 13736 13737 /** 13738 * Uses a binary search to determine the lowest index at which `value` 13739 * should be inserted into `array` in order to maintain its sort order. 13740 * 13741 * @static 13742 * @memberOf _ 13743 * @since 0.1.0 13744 * @category Array 13745 * @param {Array} array The sorted array to inspect. 13746 * @param {*} value The value to evaluate. 13747 * @returns {number} Returns the index at which `value` should be inserted 13748 * into `array`. 13749 * @example 13750 * 13751 * _.sortedIndex([30, 50], 40); 13752 * // => 1 13753 */ 13754 function sortedIndex(array, value) { 13755 return baseSortedIndex(array, value); 13756 } 13757 13758 /** 13759 * This method is like `_.sortedIndex` except that it accepts `iteratee` 13760 * which is invoked for `value` and each element of `array` to compute their 13761 * sort ranking. The iteratee is invoked with one argument: (value). 13762 * 13763 * @static 13764 * @memberOf _ 13765 * @since 4.0.0 13766 * @category Array 13767 * @param {Array} array The sorted array to inspect. 13768 * @param {*} value The value to evaluate. 13769 * @param {Function} [iteratee=_.identity] The iteratee invoked per element. 13770 * @returns {number} Returns the index at which `value` should be inserted 13771 * into `array`. 13772 * @example 13773 * 13774 * var objects = [{ 'x': 4 }, { 'x': 5 }]; 13775 * 13776 * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); 13777 * // => 0 13778 * 13779 * // The `_.property` iteratee shorthand. 13780 * _.sortedIndexBy(objects, { 'x': 4 }, 'x'); 13781 * // => 0 13782 */ 13783 function sortedIndexBy(array, value, iteratee) { 13784 return baseSortedIndexBy(array, value, getIteratee(iteratee, 2)); 13785 } 13786 13787 /** 13788 * This method is like `_.indexOf` except that it performs a binary 13789 * search on a sorted `array`. 13790 * 13791 * @static 13792 * @memberOf _ 13793 * @since 4.0.0 13794 * @category Array 13795 * @param {Array} array The array to inspect. 13796 * @param {*} value The value to search for. 13797 * @returns {number} Returns the index of the matched value, else `-1`. 13798 * @example 13799 * 13800 * _.sortedIndexOf([4, 5, 5, 5, 6], 5); 13801 * // => 1 13802 */ 13803 function sortedIndexOf(array, value) { 13804 var length = array == null ? 0 : array.length; 13805 if (length) { 13806 var index = baseSortedIndex(array, value); 13807 if (index < length && eq(array[index], value)) { 13808 return index; 13809 } 13810 } 13811 return -1; 13812 } 13813 13814 /** 13815 * This method is like `_.sortedIndex` except that it returns the highest 13816 * index at which `value` should be inserted into `array` in order to 13817 * maintain its sort order. 13818 * 13819 * @static 13820 * @memberOf _ 13821 * @since 3.0.0 13822 * @category Array 13823 * @param {Array} array The sorted array to inspect. 13824 * @param {*} value The value to evaluate. 13825 * @returns {number} Returns the index at which `value` should be inserted 13826 * into `array`. 13827 * @example 13828 * 13829 * _.sortedLastIndex([4, 5, 5, 5, 6], 5); 13830 * // => 4 13831 */ 13832 function sortedLastIndex(array, value) { 13833 return baseSortedIndex(array, value, true); 13834 } 13835 13836 /** 13837 * This method is like `_.sortedLastIndex` except that it accepts `iteratee` 13838 * which is invoked for `value` and each element of `array` to compute their 13839 * sort ranking. The iteratee is invoked with one argument: (value). 13840 * 13841 * @static 13842 * @memberOf _ 13843 * @since 4.0.0 13844 * @category Array 13845 * @param {Array} array The sorted array to inspect. 13846 * @param {*} value The value to evaluate. 13847 * @param {Function} [iteratee=_.identity] The iteratee invoked per element. 13848 * @returns {number} Returns the index at which `value` should be inserted 13849 * into `array`. 13850 * @example 13851 * 13852 * var objects = [{ 'x': 4 }, { 'x': 5 }]; 13853 * 13854 * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); 13855 * // => 1 13856 * 13857 * // The `_.property` iteratee shorthand. 13858 * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x'); 13859 * // => 1 13860 */ 13861 function sortedLastIndexBy(array, value, iteratee) { 13862 return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true); 13863 } 13864 13865 /** 13866 * This method is like `_.lastIndexOf` except that it performs a binary 13867 * search on a sorted `array`. 13868 * 13869 * @static 13870 * @memberOf _ 13871 * @since 4.0.0 13872 * @category Array 13873 * @param {Array} array The array to inspect. 13874 * @param {*} value The value to search for. 13875 * @returns {number} Returns the index of the matched value, else `-1`. 13876 * @example 13877 * 13878 * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5); 13879 * // => 3 13880 */ 13881 function sortedLastIndexOf(array, value) { 13882 var length = array == null ? 0 : array.length; 13883 if (length) { 13884 var index = baseSortedIndex(array, value, true) - 1; 13885 if (eq(array[index], value)) { 13886 return index; 13887 } 13888 } 13889 return -1; 13890 } 13891 13892 /** 13893 * This method is like `_.uniq` except that it's designed and optimized 13894 * for sorted arrays. 13895 * 13896 * @static 13897 * @memberOf _ 13898 * @since 4.0.0 13899 * @category Array 13900 * @param {Array} array The array to inspect. 13901 * @returns {Array} Returns the new duplicate free array. 13902 * @example 13903 * 13904 * _.sortedUniq([1, 1, 2]); 13905 * // => [1, 2] 13906 */ 13907 function sortedUniq(array) { 13908 return (array && array.length) 13909 ? baseSortedUniq(array) 13910 : []; 13911 } 13912 13913 /** 13914 * This method is like `_.uniqBy` except that it's designed and optimized 13915 * for sorted arrays. 13916 * 13917 * @static 13918 * @memberOf _ 13919 * @since 4.0.0 13920 * @category Array 13921 * @param {Array} array The array to inspect. 13922 * @param {Function} [iteratee] The iteratee invoked per element. 13923 * @returns {Array} Returns the new duplicate free array. 13924 * @example 13925 * 13926 * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor); 13927 * // => [1.1, 2.3] 13928 */ 13929 function sortedUniqBy(array, iteratee) { 13930 return (array && array.length) 13931 ? baseSortedUniq(array, getIteratee(iteratee, 2)) 13932 : []; 13933 } 13934 13935 /** 13936 * Gets all but the first element of `array`. 13937 * 13938 * @static 13939 * @memberOf _ 13940 * @since 4.0.0 13941 * @category Array 13942 * @param {Array} array The array to query. 13943 * @returns {Array} Returns the slice of `array`. 13944 * @example 13945 * 13946 * _.tail([1, 2, 3]); 13947 * // => [2, 3] 13948 */ 13949 function tail(array) { 13950 var length = array == null ? 0 : array.length; 13951 return length ? baseSlice(array, 1, length) : []; 13952 } 13953 13954 /** 13955 * Creates a slice of `array` with `n` elements taken from the beginning. 13956 * 13957 * @static 13958 * @memberOf _ 13959 * @since 0.1.0 13960 * @category Array 13961 * @param {Array} array The array to query. 13962 * @param {number} [n=1] The number of elements to take. 13963 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 13964 * @returns {Array} Returns the slice of `array`. 13965 * @example 13966 * 13967 * _.take([1, 2, 3]); 13968 * // => [1] 13969 * 13970 * _.take([1, 2, 3], 2); 13971 * // => [1, 2] 13972 * 13973 * _.take([1, 2, 3], 5); 13974 * // => [1, 2, 3] 13975 * 13976 * _.take([1, 2, 3], 0); 13977 * // => [] 13978 */ 13979 function take(array, n, guard) { 13980 if (!(array && array.length)) { 13981 return []; 13982 } 13983 n = (guard || n === undefined) ? 1 : toInteger(n); 13984 return baseSlice(array, 0, n < 0 ? 0 : n); 13985 } 13986 13987 /** 13988 * Creates a slice of `array` with `n` elements taken from the end. 13989 * 13990 * @static 13991 * @memberOf _ 13992 * @since 3.0.0 13993 * @category Array 13994 * @param {Array} array The array to query. 13995 * @param {number} [n=1] The number of elements to take. 13996 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 13997 * @returns {Array} Returns the slice of `array`. 13998 * @example 13999 * 14000 * _.takeRight([1, 2, 3]); 14001 * // => [3] 14002 * 14003 * _.takeRight([1, 2, 3], 2); 14004 * // => [2, 3] 14005 * 14006 * _.takeRight([1, 2, 3], 5); 14007 * // => [1, 2, 3] 14008 * 14009 * _.takeRight([1, 2, 3], 0); 14010 * // => [] 14011 */ 14012 function takeRight(array, n, guard) { 14013 var length = array == null ? 0 : array.length; 14014 if (!length) { 14015 return []; 14016 } 14017 n = (guard || n === undefined) ? 1 : toInteger(n); 14018 n = length - n; 14019 return baseSlice(array, n < 0 ? 0 : n, length); 14020 } 14021 14022 /** 14023 * Creates a slice of `array` with elements taken from the end. Elements are 14024 * taken until `predicate` returns falsey. The predicate is invoked with 14025 * three arguments: (value, index, array). 14026 * 14027 * @static 14028 * @memberOf _ 14029 * @since 3.0.0 14030 * @category Array 14031 * @param {Array} array The array to query. 14032 * @param {Function} [predicate=_.identity] The function invoked per iteration. 14033 * @returns {Array} Returns the slice of `array`. 14034 * @example 14035 * 14036 * var users = [ 14037 * { 'user': 'barney', 'active': true }, 14038 * { 'user': 'fred', 'active': false }, 14039 * { 'user': 'pebbles', 'active': false } 14040 * ]; 14041 * 14042 * _.takeRightWhile(users, function(o) { return !o.active; }); 14043 * // => objects for ['fred', 'pebbles'] 14044 * 14045 * // The `_.matches` iteratee shorthand. 14046 * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false }); 14047 * // => objects for ['pebbles'] 14048 * 14049 * // The `_.matchesProperty` iteratee shorthand. 14050 * _.takeRightWhile(users, ['active', false]); 14051 * // => objects for ['fred', 'pebbles'] 14052 * 14053 * // The `_.property` iteratee shorthand. 14054 * _.takeRightWhile(users, 'active'); 14055 * // => [] 14056 */ 14057 function takeRightWhile(array, predicate) { 14058 return (array && array.length) 14059 ? baseWhile(array, getIteratee(predicate, 3), false, true) 14060 : []; 14061 } 14062 14063 /** 14064 * Creates a slice of `array` with elements taken from the beginning. Elements 14065 * are taken until `predicate` returns falsey. The predicate is invoked with 14066 * three arguments: (value, index, array). 14067 * 14068 * @static 14069 * @memberOf _ 14070 * @since 3.0.0 14071 * @category Array 14072 * @param {Array} array The array to query. 14073 * @param {Function} [predicate=_.identity] The function invoked per iteration. 14074 * @returns {Array} Returns the slice of `array`. 14075 * @example 14076 * 14077 * var users = [ 14078 * { 'user': 'barney', 'active': false }, 14079 * { 'user': 'fred', 'active': false }, 14080 * { 'user': 'pebbles', 'active': true } 14081 * ]; 14082 * 14083 * _.takeWhile(users, function(o) { return !o.active; }); 14084 * // => objects for ['barney', 'fred'] 14085 * 14086 * // The `_.matches` iteratee shorthand. 14087 * _.takeWhile(users, { 'user': 'barney', 'active': false }); 14088 * // => objects for ['barney'] 14089 * 14090 * // The `_.matchesProperty` iteratee shorthand. 14091 * _.takeWhile(users, ['active', false]); 14092 * // => objects for ['barney', 'fred'] 14093 * 14094 * // The `_.property` iteratee shorthand. 14095 * _.takeWhile(users, 'active'); 14096 * // => [] 14097 */ 14098 function takeWhile(array, predicate) { 14099 return (array && array.length) 14100 ? baseWhile(array, getIteratee(predicate, 3)) 14101 : []; 14102 } 14103 14104 /** 14105 * Creates an array of unique values, in order, from all given arrays using 14106 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 14107 * for equality comparisons. 14108 * 14109 * @static 14110 * @memberOf _ 14111 * @since 0.1.0 14112 * @category Array 14113 * @param {...Array} [arrays] The arrays to inspect. 14114 * @returns {Array} Returns the new array of combined values. 14115 * @example 14116 * 14117 * _.union([2], [1, 2]); 14118 * // => [2, 1] 14119 */ 14120 var union = baseRest(function(arrays) { 14121 return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); 14122 }); 14123 14124 /** 14125 * This method is like `_.union` except that it accepts `iteratee` which is 14126 * invoked for each element of each `arrays` to generate the criterion by 14127 * which uniqueness is computed. Result values are chosen from the first 14128 * array in which the value occurs. The iteratee is invoked with one argument: 14129 * (value). 14130 * 14131 * @static 14132 * @memberOf _ 14133 * @since 4.0.0 14134 * @category Array 14135 * @param {...Array} [arrays] The arrays to inspect. 14136 * @param {Function} [iteratee=_.identity] The iteratee invoked per element. 14137 * @returns {Array} Returns the new array of combined values. 14138 * @example 14139 * 14140 * _.unionBy([2.1], [1.2, 2.3], Math.floor); 14141 * // => [2.1, 1.2] 14142 * 14143 * // The `_.property` iteratee shorthand. 14144 * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); 14145 * // => [{ 'x': 1 }, { 'x': 2 }] 14146 */ 14147 var unionBy = baseRest(function(arrays) { 14148 var iteratee = last(arrays); 14149 if (isArrayLikeObject(iteratee)) { 14150 iteratee = undefined; 14151 } 14152 return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)); 14153 }); 14154 14155 /** 14156 * This method is like `_.union` except that it accepts `comparator` which 14157 * is invoked to compare elements of `arrays`. Result values are chosen from 14158 * the first array in which the value occurs. The comparator is invoked 14159 * with two arguments: (arrVal, othVal). 14160 * 14161 * @static 14162 * @memberOf _ 14163 * @since 4.0.0 14164 * @category Array 14165 * @param {...Array} [arrays] The arrays to inspect. 14166 * @param {Function} [comparator] The comparator invoked per element. 14167 * @returns {Array} Returns the new array of combined values. 14168 * @example 14169 * 14170 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; 14171 * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; 14172 * 14173 * _.unionWith(objects, others, _.isEqual); 14174 * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] 14175 */ 14176 var unionWith = baseRest(function(arrays) { 14177 var comparator = last(arrays); 14178 comparator = typeof comparator == 'function' ? comparator : undefined; 14179 return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator); 14180 }); 14181 14182 /** 14183 * Creates a duplicate-free version of an array, using 14184 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 14185 * for equality comparisons, in which only the first occurrence of each element 14186 * is kept. The order of result values is determined by the order they occur 14187 * in the array. 14188 * 14189 * @static 14190 * @memberOf _ 14191 * @since 0.1.0 14192 * @category Array 14193 * @param {Array} array The array to inspect. 14194 * @returns {Array} Returns the new duplicate free array. 14195 * @example 14196 * 14197 * _.uniq([2, 1, 2]); 14198 * // => [2, 1] 14199 */ 14200 function uniq(array) { 14201 return (array && array.length) ? baseUniq(array) : []; 14202 } 14203 14204 /** 14205 * This method is like `_.uniq` except that it accepts `iteratee` which is 14206 * invoked for each element in `array` to generate the criterion by which 14207 * uniqueness is computed. The order of result values is determined by the 14208 * order they occur in the array. The iteratee is invoked with one argument: 14209 * (value). 14210 * 14211 * @static 14212 * @memberOf _ 14213 * @since 4.0.0 14214 * @category Array 14215 * @param {Array} array The array to inspect. 14216 * @param {Function} [iteratee=_.identity] The iteratee invoked per element. 14217 * @returns {Array} Returns the new duplicate free array. 14218 * @example 14219 * 14220 * _.uniqBy([2.1, 1.2, 2.3], Math.floor); 14221 * // => [2.1, 1.2] 14222 * 14223 * // The `_.property` iteratee shorthand. 14224 * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); 14225 * // => [{ 'x': 1 }, { 'x': 2 }] 14226 */ 14227 function uniqBy(array, iteratee) { 14228 return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : []; 14229 } 14230 14231 /** 14232 * This method is like `_.uniq` except that it accepts `comparator` which 14233 * is invoked to compare elements of `array`. The order of result values is 14234 * determined by the order they occur in the array.The comparator is invoked 14235 * with two arguments: (arrVal, othVal). 14236 * 14237 * @static 14238 * @memberOf _ 14239 * @since 4.0.0 14240 * @category Array 14241 * @param {Array} array The array to inspect. 14242 * @param {Function} [comparator] The comparator invoked per element. 14243 * @returns {Array} Returns the new duplicate free array. 14244 * @example 14245 * 14246 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }]; 14247 * 14248 * _.uniqWith(objects, _.isEqual); 14249 * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }] 14250 */ 14251 function uniqWith(array, comparator) { 14252 comparator = typeof comparator == 'function' ? comparator : undefined; 14253 return (array && array.length) ? baseUniq(array, undefined, comparator) : []; 14254 } 14255 14256 /** 14257 * This method is like `_.zip` except that it accepts an array of grouped 14258 * elements and creates an array regrouping the elements to their pre-zip 14259 * configuration. 14260 * 14261 * @static 14262 * @memberOf _ 14263 * @since 1.2.0 14264 * @category Array 14265 * @param {Array} array The array of grouped elements to process. 14266 * @returns {Array} Returns the new array of regrouped elements. 14267 * @example 14268 * 14269 * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]); 14270 * // => [['a', 1, true], ['b', 2, false]] 14271 * 14272 * _.unzip(zipped); 14273 * // => [['a', 'b'], [1, 2], [true, false]] 14274 */ 14275 function unzip(array) { 14276 if (!(array && array.length)) { 14277 return []; 14278 } 14279 var length = 0; 14280 array = arrayFilter(array, function(group) { 14281 if (isArrayLikeObject(group)) { 14282 length = nativeMax(group.length, length); 14283 return true; 14284 } 14285 }); 14286 return baseTimes(length, function(index) { 14287 return arrayMap(array, baseProperty(index)); 14288 }); 14289 } 14290 14291 /** 14292 * This method is like `_.unzip` except that it accepts `iteratee` to specify 14293 * how regrouped values should be combined. The iteratee is invoked with the 14294 * elements of each group: (...group). 14295 * 14296 * @static 14297 * @memberOf _ 14298 * @since 3.8.0 14299 * @category Array 14300 * @param {Array} array The array of grouped elements to process. 14301 * @param {Function} [iteratee=_.identity] The function to combine 14302 * regrouped values. 14303 * @returns {Array} Returns the new array of regrouped elements. 14304 * @example 14305 * 14306 * var zipped = _.zip([1, 2], [10, 20], [100, 200]); 14307 * // => [[1, 10, 100], [2, 20, 200]] 14308 * 14309 * _.unzipWith(zipped, _.add); 14310 * // => [3, 30, 300] 14311 */ 14312 function unzipWith(array, iteratee) { 14313 if (!(array && array.length)) { 14314 return []; 14315 } 14316 var result = unzip(array); 14317 if (iteratee == null) { 14318 return result; 14319 } 14320 return arrayMap(result, function(group) { 14321 return apply(iteratee, undefined, group); 14322 }); 14323 } 14324 14325 /** 14326 * Creates an array excluding all given values using 14327 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 14328 * for equality comparisons. 14329 * 14330 * **Note:** Unlike `_.pull`, this method returns a new array. 14331 * 14332 * @static 14333 * @memberOf _ 14334 * @since 0.1.0 14335 * @category Array 14336 * @param {Array} array The array to inspect. 14337 * @param {...*} [values] The values to exclude. 14338 * @returns {Array} Returns the new array of filtered values. 14339 * @see _.difference, _.xor 14340 * @example 14341 * 14342 * _.without([2, 1, 2, 3], 1, 2); 14343 * // => [3] 14344 */ 14345 var without = baseRest(function(array, values) { 14346 return isArrayLikeObject(array) 14347 ? baseDifference(array, values) 14348 : []; 14349 }); 14350 14351 /** 14352 * Creates an array of unique values that is the 14353 * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference) 14354 * of the given arrays. The order of result values is determined by the order 14355 * they occur in the arrays. 14356 * 14357 * @static 14358 * @memberOf _ 14359 * @since 2.4.0 14360 * @category Array 14361 * @param {...Array} [arrays] The arrays to inspect. 14362 * @returns {Array} Returns the new array of filtered values. 14363 * @see _.difference, _.without 14364 * @example 14365 * 14366 * _.xor([2, 1], [2, 3]); 14367 * // => [1, 3] 14368 */ 14369 var xor = baseRest(function(arrays) { 14370 return baseXor(arrayFilter(arrays, isArrayLikeObject)); 14371 }); 14372 14373 /** 14374 * This method is like `_.xor` except that it accepts `iteratee` which is 14375 * invoked for each element of each `arrays` to generate the criterion by 14376 * which by which they're compared. The order of result values is determined 14377 * by the order they occur in the arrays. The iteratee is invoked with one 14378 * argument: (value). 14379 * 14380 * @static 14381 * @memberOf _ 14382 * @since 4.0.0 14383 * @category Array 14384 * @param {...Array} [arrays] The arrays to inspect. 14385 * @param {Function} [iteratee=_.identity] The iteratee invoked per element. 14386 * @returns {Array} Returns the new array of filtered values. 14387 * @example 14388 * 14389 * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor); 14390 * // => [1.2, 3.4] 14391 * 14392 * // The `_.property` iteratee shorthand. 14393 * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); 14394 * // => [{ 'x': 2 }] 14395 */ 14396 var xorBy = baseRest(function(arrays) { 14397 var iteratee = last(arrays); 14398 if (isArrayLikeObject(iteratee)) { 14399 iteratee = undefined; 14400 } 14401 return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2)); 14402 }); 14403 14404 /** 14405 * This method is like `_.xor` except that it accepts `comparator` which is 14406 * invoked to compare elements of `arrays`. The order of result values is 14407 * determined by the order they occur in the arrays. The comparator is invoked 14408 * with two arguments: (arrVal, othVal). 14409 * 14410 * @static 14411 * @memberOf _ 14412 * @since 4.0.0 14413 * @category Array 14414 * @param {...Array} [arrays] The arrays to inspect. 14415 * @param {Function} [comparator] The comparator invoked per element. 14416 * @returns {Array} Returns the new array of filtered values. 14417 * @example 14418 * 14419 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; 14420 * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; 14421 * 14422 * _.xorWith(objects, others, _.isEqual); 14423 * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] 14424 */ 14425 var xorWith = baseRest(function(arrays) { 14426 var comparator = last(arrays); 14427 comparator = typeof comparator == 'function' ? comparator : undefined; 14428 return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator); 14429 }); 14430 14431 /** 14432 * Creates an array of grouped elements, the first of which contains the 14433 * first elements of the given arrays, the second of which contains the 14434 * second elements of the given arrays, and so on. 14435 * 14436 * @static 14437 * @memberOf _ 14438 * @since 0.1.0 14439 * @category Array 14440 * @param {...Array} [arrays] The arrays to process. 14441 * @returns {Array} Returns the new array of grouped elements. 14442 * @example 14443 * 14444 * _.zip(['a', 'b'], [1, 2], [true, false]); 14445 * // => [['a', 1, true], ['b', 2, false]] 14446 */ 14447 var zip = baseRest(unzip); 14448 14449 /** 14450 * This method is like `_.fromPairs` except that it accepts two arrays, 14451 * one of property identifiers and one of corresponding values. 14452 * 14453 * @static 14454 * @memberOf _ 14455 * @since 0.4.0 14456 * @category Array 14457 * @param {Array} [props=[]] The property identifiers. 14458 * @param {Array} [values=[]] The property values. 14459 * @returns {Object} Returns the new object. 14460 * @example 14461 * 14462 * _.zipObject(['a', 'b'], [1, 2]); 14463 * // => { 'a': 1, 'b': 2 } 14464 */ 14465 function zipObject(props, values) { 14466 return baseZipObject(props || [], values || [], assignValue); 14467 } 14468 14469 /** 14470 * This method is like `_.zipObject` except that it supports property paths. 14471 * 14472 * @static 14473 * @memberOf _ 14474 * @since 4.1.0 14475 * @category Array 14476 * @param {Array} [props=[]] The property identifiers. 14477 * @param {Array} [values=[]] The property values. 14478 * @returns {Object} Returns the new object. 14479 * @example 14480 * 14481 * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]); 14482 * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } } 14483 */ 14484 function zipObjectDeep(props, values) { 14485 return baseZipObject(props || [], values || [], baseSet); 14486 } 14487 14488 /** 14489 * This method is like `_.zip` except that it accepts `iteratee` to specify 14490 * how grouped values should be combined. The iteratee is invoked with the 14491 * elements of each group: (...group). 14492 * 14493 * @static 14494 * @memberOf _ 14495 * @since 3.8.0 14496 * @category Array 14497 * @param {...Array} [arrays] The arrays to process. 14498 * @param {Function} [iteratee=_.identity] The function to combine 14499 * grouped values. 14500 * @returns {Array} Returns the new array of grouped elements. 14501 * @example 14502 * 14503 * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { 14504 * return a + b + c; 14505 * }); 14506 * // => [111, 222] 14507 */ 14508 var zipWith = baseRest(function(arrays) { 14509 var length = arrays.length, 14510 iteratee = length > 1 ? arrays[length - 1] : undefined; 14511 14512 iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined; 14513 return unzipWith(arrays, iteratee); 14514 }); 14515 14516 /*------------------------------------------------------------------------*/ 14517 14518 /** 14519 * Creates a `lodash` wrapper instance that wraps `value` with explicit method 14520 * chain sequences enabled. The result of such sequences must be unwrapped 14521 * with `_#value`. 14522 * 14523 * @static 14524 * @memberOf _ 14525 * @since 1.3.0 14526 * @category Seq 14527 * @param {*} value The value to wrap. 14528 * @returns {Object} Returns the new `lodash` wrapper instance. 14529 * @example 14530 * 14531 * var users = [ 14532 * { 'user': 'barney', 'age': 36 }, 14533 * { 'user': 'fred', 'age': 40 }, 14534 * { 'user': 'pebbles', 'age': 1 } 14535 * ]; 14536 * 14537 * var youngest = _ 14538 * .chain(users) 14539 * .sortBy('age') 14540 * .map(function(o) { 14541 * return o.user + ' is ' + o.age; 14542 * }) 14543 * .head() 14544 * .value(); 14545 * // => 'pebbles is 1' 14546 */ 14547 function chain(value) { 14548 var result = lodash(value); 14549 result.__chain__ = true; 14550 return result; 14551 } 14552 14553 /** 14554 * This method invokes `interceptor` and returns `value`. The interceptor 14555 * is invoked with one argument; (value). The purpose of this method is to 14556 * "tap into" a method chain sequence in order to modify intermediate results. 14557 * 14558 * @static 14559 * @memberOf _ 14560 * @since 0.1.0 14561 * @category Seq 14562 * @param {*} value The value to provide to `interceptor`. 14563 * @param {Function} interceptor The function to invoke. 14564 * @returns {*} Returns `value`. 14565 * @example 14566 * 14567 * _([1, 2, 3]) 14568 * .tap(function(array) { 14569 * // Mutate input array. 14570 * array.pop(); 14571 * }) 14572 * .reverse() 14573 * .value(); 14574 * // => [2, 1] 14575 */ 14576 function tap(value, interceptor) { 14577 interceptor(value); 14578 return value; 14579 } 14580 14581 /** 14582 * This method is like `_.tap` except that it returns the result of `interceptor`. 14583 * The purpose of this method is to "pass thru" values replacing intermediate 14584 * results in a method chain sequence. 14585 * 14586 * @static 14587 * @memberOf _ 14588 * @since 3.0.0 14589 * @category Seq 14590 * @param {*} value The value to provide to `interceptor`. 14591 * @param {Function} interceptor The function to invoke. 14592 * @returns {*} Returns the result of `interceptor`. 14593 * @example 14594 * 14595 * _(' abc ') 14596 * .chain() 14597 * .trim() 14598 * .thru(function(value) { 14599 * return [value]; 14600 * }) 14601 * .value(); 14602 * // => ['abc'] 14603 */ 14604 function thru(value, interceptor) { 14605 return interceptor(value); 14606 } 14607 14608 /** 14609 * This method is the wrapper version of `_.at`. 14610 * 14611 * @name at 14612 * @memberOf _ 14613 * @since 1.0.0 14614 * @category Seq 14615 * @param {...(string|string[])} [paths] The property paths to pick. 14616 * @returns {Object} Returns the new `lodash` wrapper instance. 14617 * @example 14618 * 14619 * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; 14620 * 14621 * _(object).at(['a[0].b.c', 'a[1]']).value(); 14622 * // => [3, 4] 14623 */ 14624 var wrapperAt = flatRest(function(paths) { 14625 var length = paths.length, 14626 start = length ? paths[0] : 0, 14627 value = this.__wrapped__, 14628 interceptor = function(object) { return baseAt(object, paths); }; 14629 14630 if (length > 1 || this.__actions__.length || 14631 !(value instanceof LazyWrapper) || !isIndex(start)) { 14632 return this.thru(interceptor); 14633 } 14634 value = value.slice(start, +start + (length ? 1 : 0)); 14635 value.__actions__.push({ 14636 'func': thru, 14637 'args': [interceptor], 14638 'thisArg': undefined 14639 }); 14640 return new LodashWrapper(value, this.__chain__).thru(function(array) { 14641 if (length && !array.length) { 14642 array.push(undefined); 14643 } 14644 return array; 14645 }); 14646 }); 14647 14648 /** 14649 * Creates a `lodash` wrapper instance with explicit method chain sequences enabled. 14650 * 14651 * @name chain 14652 * @memberOf _ 14653 * @since 0.1.0 14654 * @category Seq 14655 * @returns {Object} Returns the new `lodash` wrapper instance. 14656 * @example 14657 * 14658 * var users = [ 14659 * { 'user': 'barney', 'age': 36 }, 14660 * { 'user': 'fred', 'age': 40 } 14661 * ]; 14662 * 14663 * // A sequence without explicit chaining. 14664 * _(users).head(); 14665 * // => { 'user': 'barney', 'age': 36 } 14666 * 14667 * // A sequence with explicit chaining. 14668 * _(users) 14669 * .chain() 14670 * .head() 14671 * .pick('user') 14672 * .value(); 14673 * // => { 'user': 'barney' } 14674 */ 14675 function wrapperChain() { 14676 return chain(this); 14677 } 14678 14679 /** 14680 * Executes the chain sequence and returns the wrapped result. 14681 * 14682 * @name commit 14683 * @memberOf _ 14684 * @since 3.2.0 14685 * @category Seq 14686 * @returns {Object} Returns the new `lodash` wrapper instance. 14687 * @example 14688 * 14689 * var array = [1, 2]; 14690 * var wrapped = _(array).push(3); 14691 * 14692 * console.log(array); 14693 * // => [1, 2] 14694 * 14695 * wrapped = wrapped.commit(); 14696 * console.log(array); 14697 * // => [1, 2, 3] 14698 * 14699 * wrapped.last(); 14700 * // => 3 14701 * 14702 * console.log(array); 14703 * // => [1, 2, 3] 14704 */ 14705 function wrapperCommit() { 14706 return new LodashWrapper(this.value(), this.__chain__); 14707 } 14708 14709 /** 14710 * Gets the next value on a wrapped object following the 14711 * [iterator protocol](https://mdn.io/iteration_protocols#iterator). 14712 * 14713 * @name next 14714 * @memberOf _ 14715 * @since 4.0.0 14716 * @category Seq 14717 * @returns {Object} Returns the next iterator value. 14718 * @example 14719 * 14720 * var wrapped = _([1, 2]); 14721 * 14722 * wrapped.next(); 14723 * // => { 'done': false, 'value': 1 } 14724 * 14725 * wrapped.next(); 14726 * // => { 'done': false, 'value': 2 } 14727 * 14728 * wrapped.next(); 14729 * // => { 'done': true, 'value': undefined } 14730 */ 14731 function wrapperNext() { 14732 if (this.__values__ === undefined) { 14733 this.__values__ = toArray(this.value()); 14734 } 14735 var done = this.__index__ >= this.__values__.length, 14736 value = done ? undefined : this.__values__[this.__index__++]; 14737 14738 return { 'done': done, 'value': value }; 14739 } 14740 14741 /** 14742 * Enables the wrapper to be iterable. 14743 * 14744 * @name Symbol.iterator 14745 * @memberOf _ 14746 * @since 4.0.0 14747 * @category Seq 14748 * @returns {Object} Returns the wrapper object. 14749 * @example 14750 * 14751 * var wrapped = _([1, 2]); 14752 * 14753 * wrapped[Symbol.iterator]() === wrapped; 14754 * // => true 14755 * 14756 * Array.from(wrapped); 14757 * // => [1, 2] 14758 */ 14759 function wrapperToIterator() { 14760 return this; 14761 } 14762 14763 /** 14764 * Creates a clone of the chain sequence planting `value` as the wrapped value. 14765 * 14766 * @name plant 14767 * @memberOf _ 14768 * @since 3.2.0 14769 * @category Seq 14770 * @param {*} value The value to plant. 14771 * @returns {Object} Returns the new `lodash` wrapper instance. 14772 * @example 14773 * 14774 * function square(n) { 14775 * return n * n; 14776 * } 14777 * 14778 * var wrapped = _([1, 2]).map(square); 14779 * var other = wrapped.plant([3, 4]); 14780 * 14781 * other.value(); 14782 * // => [9, 16] 14783 * 14784 * wrapped.value(); 14785 * // => [1, 4] 14786 */ 14787 function wrapperPlant(value) { 14788 var result, 14789 parent = this; 14790 14791 while (parent instanceof baseLodash) { 14792 var clone = wrapperClone(parent); 14793 clone.__index__ = 0; 14794 clone.__values__ = undefined; 14795 if (result) { 14796 previous.__wrapped__ = clone; 14797 } else { 14798 result = clone; 14799 } 14800 var previous = clone; 14801 parent = parent.__wrapped__; 14802 } 14803 previous.__wrapped__ = value; 14804 return result; 14805 } 14806 14807 /** 14808 * This method is the wrapper version of `_.reverse`. 14809 * 14810 * **Note:** This method mutates the wrapped array. 14811 * 14812 * @name reverse 14813 * @memberOf _ 14814 * @since 0.1.0 14815 * @category Seq 14816 * @returns {Object} Returns the new `lodash` wrapper instance. 14817 * @example 14818 * 14819 * var array = [1, 2, 3]; 14820 * 14821 * _(array).reverse().value() 14822 * // => [3, 2, 1] 14823 * 14824 * console.log(array); 14825 * // => [3, 2, 1] 14826 */ 14827 function wrapperReverse() { 14828 var value = this.__wrapped__; 14829 if (value instanceof LazyWrapper) { 14830 var wrapped = value; 14831 if (this.__actions__.length) { 14832 wrapped = new LazyWrapper(this); 14833 } 14834 wrapped = wrapped.reverse(); 14835 wrapped.__actions__.push({ 14836 'func': thru, 14837 'args': [reverse], 14838 'thisArg': undefined 14839 }); 14840 return new LodashWrapper(wrapped, this.__chain__); 14841 } 14842 return this.thru(reverse); 14843 } 14844 14845 /** 14846 * Executes the chain sequence to resolve the unwrapped value. 14847 * 14848 * @name value 14849 * @memberOf _ 14850 * @since 0.1.0 14851 * @alias toJSON, valueOf 14852 * @category Seq 14853 * @returns {*} Returns the resolved unwrapped value. 14854 * @example 14855 * 14856 * _([1, 2, 3]).value(); 14857 * // => [1, 2, 3] 14858 */ 14859 function wrapperValue() { 14860 return baseWrapperValue(this.__wrapped__, this.__actions__); 14861 } 14862 14863 /*------------------------------------------------------------------------*/ 14864 14865 /** 14866 * Creates an object composed of keys generated from the results of running 14867 * each element of `collection` thru `iteratee`. The corresponding value of 14868 * each key is the number of times the key was returned by `iteratee`. The 14869 * iteratee is invoked with one argument: (value). 14870 * 14871 * @static 14872 * @memberOf _ 14873 * @since 0.5.0 14874 * @category Collection 14875 * @param {Array|Object} collection The collection to iterate over. 14876 * @param {Function} [iteratee=_.identity] The iteratee to transform keys. 14877 * @returns {Object} Returns the composed aggregate object. 14878 * @example 14879 * 14880 * _.countBy([6.1, 4.2, 6.3], Math.floor); 14881 * // => { '4': 1, '6': 2 } 14882 * 14883 * // The `_.property` iteratee shorthand. 14884 * _.countBy(['one', 'two', 'three'], 'length'); 14885 * // => { '3': 2, '5': 1 } 14886 */ 14887 var countBy = createAggregator(function(result, value, key) { 14888 if (hasOwnProperty.call(result, key)) { 14889 ++result[key]; 14890 } else { 14891 baseAssignValue(result, key, 1); 14892 } 14893 }); 14894 14895 /** 14896 * Checks if `predicate` returns truthy for **all** elements of `collection`. 14897 * Iteration is stopped once `predicate` returns falsey. The predicate is 14898 * invoked with three arguments: (value, index|key, collection). 14899 * 14900 * **Note:** This method returns `true` for 14901 * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because 14902 * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of 14903 * elements of empty collections. 14904 * 14905 * @static 14906 * @memberOf _ 14907 * @since 0.1.0 14908 * @category Collection 14909 * @param {Array|Object} collection The collection to iterate over. 14910 * @param {Function} [predicate=_.identity] The function invoked per iteration. 14911 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 14912 * @returns {boolean} Returns `true` if all elements pass the predicate check, 14913 * else `false`. 14914 * @example 14915 * 14916 * _.every([true, 1, null, 'yes'], Boolean); 14917 * // => false 14918 * 14919 * var users = [ 14920 * { 'user': 'barney', 'age': 36, 'active': false }, 14921 * { 'user': 'fred', 'age': 40, 'active': false } 14922 * ]; 14923 * 14924 * // The `_.matches` iteratee shorthand. 14925 * _.every(users, { 'user': 'barney', 'active': false }); 14926 * // => false 14927 * 14928 * // The `_.matchesProperty` iteratee shorthand. 14929 * _.every(users, ['active', false]); 14930 * // => true 14931 * 14932 * // The `_.property` iteratee shorthand. 14933 * _.every(users, 'active'); 14934 * // => false 14935 */ 14936 function every(collection, predicate, guard) { 14937 var func = isArray(collection) ? arrayEvery : baseEvery; 14938 if (guard && isIterateeCall(collection, predicate, guard)) { 14939 predicate = undefined; 14940 } 14941 return func(collection, getIteratee(predicate, 3)); 14942 } 14943 14944 /** 14945 * Iterates over elements of `collection`, returning an array of all elements 14946 * `predicate` returns truthy for. The predicate is invoked with three 14947 * arguments: (value, index|key, collection). 14948 * 14949 * **Note:** Unlike `_.remove`, this method returns a new array. 14950 * 14951 * @static 14952 * @memberOf _ 14953 * @since 0.1.0 14954 * @category Collection 14955 * @param {Array|Object} collection The collection to iterate over. 14956 * @param {Function} [predicate=_.identity] The function invoked per iteration. 14957 * @returns {Array} Returns the new filtered array. 14958 * @see _.reject 14959 * @example 14960 * 14961 * var users = [ 14962 * { 'user': 'barney', 'age': 36, 'active': true }, 14963 * { 'user': 'fred', 'age': 40, 'active': false } 14964 * ]; 14965 * 14966 * _.filter(users, function(o) { return !o.active; }); 14967 * // => objects for ['fred'] 14968 * 14969 * // The `_.matches` iteratee shorthand. 14970 * _.filter(users, { 'age': 36, 'active': true }); 14971 * // => objects for ['barney'] 14972 * 14973 * // The `_.matchesProperty` iteratee shorthand. 14974 * _.filter(users, ['active', false]); 14975 * // => objects for ['fred'] 14976 * 14977 * // The `_.property` iteratee shorthand. 14978 * _.filter(users, 'active'); 14979 * // => objects for ['barney'] 14980 * 14981 * // Combining several predicates using `_.overEvery` or `_.overSome`. 14982 * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]])); 14983 * // => objects for ['fred', 'barney'] 14984 */ 14985 function filter(collection, predicate) { 14986 var func = isArray(collection) ? arrayFilter : baseFilter; 14987 return func(collection, getIteratee(predicate, 3)); 14988 } 14989 14990 /** 14991 * Iterates over elements of `collection`, returning the first element 14992 * `predicate` returns truthy for. The predicate is invoked with three 14993 * arguments: (value, index|key, collection). 14994 * 14995 * @static 14996 * @memberOf _ 14997 * @since 0.1.0 14998 * @category Collection 14999 * @param {Array|Object} collection The collection to inspect. 15000 * @param {Function} [predicate=_.identity] The function invoked per iteration. 15001 * @param {number} [fromIndex=0] The index to search from. 15002 * @returns {*} Returns the matched element, else `undefined`. 15003 * @example 15004 * 15005 * var users = [ 15006 * { 'user': 'barney', 'age': 36, 'active': true }, 15007 * { 'user': 'fred', 'age': 40, 'active': false }, 15008 * { 'user': 'pebbles', 'age': 1, 'active': true } 15009 * ]; 15010 * 15011 * _.find(users, function(o) { return o.age < 40; }); 15012 * // => object for 'barney' 15013 * 15014 * // The `_.matches` iteratee shorthand. 15015 * _.find(users, { 'age': 1, 'active': true }); 15016 * // => object for 'pebbles' 15017 * 15018 * // The `_.matchesProperty` iteratee shorthand. 15019 * _.find(users, ['active', false]); 15020 * // => object for 'fred' 15021 * 15022 * // The `_.property` iteratee shorthand. 15023 * _.find(users, 'active'); 15024 * // => object for 'barney' 15025 */ 15026 var find = createFind(findIndex); 15027 15028 /** 15029 * This method is like `_.find` except that it iterates over elements of 15030 * `collection` from right to left. 15031 * 15032 * @static 15033 * @memberOf _ 15034 * @since 2.0.0 15035 * @category Collection 15036 * @param {Array|Object} collection The collection to inspect. 15037 * @param {Function} [predicate=_.identity] The function invoked per iteration. 15038 * @param {number} [fromIndex=collection.length-1] The index to search from. 15039 * @returns {*} Returns the matched element, else `undefined`. 15040 * @example 15041 * 15042 * _.findLast([1, 2, 3, 4], function(n) { 15043 * return n % 2 == 1; 15044 * }); 15045 * // => 3 15046 */ 15047 var findLast = createFind(findLastIndex); 15048 15049 /** 15050 * Creates a flattened array of values by running each element in `collection` 15051 * thru `iteratee` and flattening the mapped results. The iteratee is invoked 15052 * with three arguments: (value, index|key, collection). 15053 * 15054 * @static 15055 * @memberOf _ 15056 * @since 4.0.0 15057 * @category Collection 15058 * @param {Array|Object} collection The collection to iterate over. 15059 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 15060 * @returns {Array} Returns the new flattened array. 15061 * @example 15062 * 15063 * function duplicate(n) { 15064 * return [n, n]; 15065 * } 15066 * 15067 * _.flatMap([1, 2], duplicate); 15068 * // => [1, 1, 2, 2] 15069 */ 15070 function flatMap(collection, iteratee) { 15071 return baseFlatten(map(collection, iteratee), 1); 15072 } 15073 15074 /** 15075 * This method is like `_.flatMap` except that it recursively flattens the 15076 * mapped results. 15077 * 15078 * @static 15079 * @memberOf _ 15080 * @since 4.7.0 15081 * @category Collection 15082 * @param {Array|Object} collection The collection to iterate over. 15083 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 15084 * @returns {Array} Returns the new flattened array. 15085 * @example 15086 * 15087 * function duplicate(n) { 15088 * return [[[n, n]]]; 15089 * } 15090 * 15091 * _.flatMapDeep([1, 2], duplicate); 15092 * // => [1, 1, 2, 2] 15093 */ 15094 function flatMapDeep(collection, iteratee) { 15095 return baseFlatten(map(collection, iteratee), INFINITY); 15096 } 15097 15098 /** 15099 * This method is like `_.flatMap` except that it recursively flattens the 15100 * mapped results up to `depth` times. 15101 * 15102 * @static 15103 * @memberOf _ 15104 * @since 4.7.0 15105 * @category Collection 15106 * @param {Array|Object} collection The collection to iterate over. 15107 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 15108 * @param {number} [depth=1] The maximum recursion depth. 15109 * @returns {Array} Returns the new flattened array. 15110 * @example 15111 * 15112 * function duplicate(n) { 15113 * return [[[n, n]]]; 15114 * } 15115 * 15116 * _.flatMapDepth([1, 2], duplicate, 2); 15117 * // => [[1, 1], [2, 2]] 15118 */ 15119 function flatMapDepth(collection, iteratee, depth) { 15120 depth = depth === undefined ? 1 : toInteger(depth); 15121 return baseFlatten(map(collection, iteratee), depth); 15122 } 15123 15124 /** 15125 * Iterates over elements of `collection` and invokes `iteratee` for each element. 15126 * The iteratee is invoked with three arguments: (value, index|key, collection). 15127 * Iteratee functions may exit iteration early by explicitly returning `false`. 15128 * 15129 * **Note:** As with other "Collections" methods, objects with a "length" 15130 * property are iterated like arrays. To avoid this behavior use `_.forIn` 15131 * or `_.forOwn` for object iteration. 15132 * 15133 * @static 15134 * @memberOf _ 15135 * @since 0.1.0 15136 * @alias each 15137 * @category Collection 15138 * @param {Array|Object} collection The collection to iterate over. 15139 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 15140 * @returns {Array|Object} Returns `collection`. 15141 * @see _.forEachRight 15142 * @example 15143 * 15144 * _.forEach([1, 2], function(value) { 15145 * console.log(value); 15146 * }); 15147 * // => Logs `1` then `2`. 15148 * 15149 * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { 15150 * console.log(key); 15151 * }); 15152 * // => Logs 'a' then 'b' (iteration order is not guaranteed). 15153 */ 15154 function forEach(collection, iteratee) { 15155 var func = isArray(collection) ? arrayEach : baseEach; 15156 return func(collection, getIteratee(iteratee, 3)); 15157 } 15158 15159 /** 15160 * This method is like `_.forEach` except that it iterates over elements of 15161 * `collection` from right to left. 15162 * 15163 * @static 15164 * @memberOf _ 15165 * @since 2.0.0 15166 * @alias eachRight 15167 * @category Collection 15168 * @param {Array|Object} collection The collection to iterate over. 15169 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 15170 * @returns {Array|Object} Returns `collection`. 15171 * @see _.forEach 15172 * @example 15173 * 15174 * _.forEachRight([1, 2], function(value) { 15175 * console.log(value); 15176 * }); 15177 * // => Logs `2` then `1`. 15178 */ 15179 function forEachRight(collection, iteratee) { 15180 var func = isArray(collection) ? arrayEachRight : baseEachRight; 15181 return func(collection, getIteratee(iteratee, 3)); 15182 } 15183 15184 /**
vendor: 4,136 bytes, lines 15185-15292
15185 * Creates an object composed of keys generated from the results of running 15186 * each element of `collection` thru `iteratee`. The order of grouped values 15187 * is determined by the order they occur in `collection`. The corresponding 15188 * value of each key is an array of elements responsible for generating the 15189 * key. The iteratee is invoked with one argument: (value). 15190 * 15191 * @static 15192 * @memberOf _ 15193 * @since 0.1.0 15194 * @category Collection 15195 * @param {Array|Object} collection The collection to iterate over. 15196 * @param {Function} [iteratee=_.identity] The iteratee to transform keys. 15197 * @returns {Object} Returns the composed aggregate object. 15198 * @example 15199 * 15200 * _.groupBy([6.1, 4.2, 6.3], Math.floor); 15201 * // => { '4': [4.2], '6': [6.1, 6.3] } 15202 * 15203 * // The `_.property` iteratee shorthand. 15204 * _.groupBy(['one', 'two', 'three'], 'length'); 15205 * // => { '3': ['one', 'two'], '5': ['three'] } 15206 */ 15207 var groupBy = createAggregator(function(result, value, key) { 15208 if (hasOwnProperty.call(result, key)) { 15209 result[key].push(value); 15210 } else { 15211 baseAssignValue(result, key, [value]); 15212 } 15213 }); 15214 15215 /** 15216 * Checks if `value` is in `collection`. If `collection` is a string, it's 15217 * checked for a substring of `value`, otherwise 15218 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 15219 * is used for equality comparisons. If `fromIndex` is negative, it's used as 15220 * the offset from the end of `collection`. 15221 * 15222 * @static 15223 * @memberOf _ 15224 * @since 0.1.0 15225 * @category Collection 15226 * @param {Array|Object|string} collection The collection to inspect. 15227 * @param {*} value The value to search for. 15228 * @param {number} [fromIndex=0] The index to search from. 15229 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. 15230 * @returns {boolean} Returns `true` if `value` is found, else `false`. 15231 * @example 15232 * 15233 * _.includes([1, 2, 3], 1); 15234 * // => true 15235 * 15236 * _.includes([1, 2, 3], 1, 2); 15237 * // => false 15238 * 15239 * _.includes({ 'a': 1, 'b': 2 }, 1); 15240 * // => true 15241 * 15242 * _.includes('abcd', 'bc'); 15243 * // => true 15244 */ 15245 function includes(collection, value, fromIndex, guard) { 15246 collection = isArrayLike(collection) ? collection : values(collection); 15247 fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0; 15248 15249 var length = collection.length; 15250 if (fromIndex < 0) { 15251 fromIndex = nativeMax(length + fromIndex, 0); 15252 } 15253 return isString(collection) 15254 ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1) 15255 : (!!length && baseIndexOf(collection, value, fromIndex) > -1); 15256 } 15257 15258 /** 15259 * Invokes the method at `path` of each element in `collection`, returning 15260 * an array of the results of each invoked method. Any additional arguments 15261 * are provided to each invoked method. If `path` is a function, it's invoked 15262 * for, and `this` bound to, each element in `collection`. 15263 * 15264 * @static 15265 * @memberOf _ 15266 * @since 4.0.0 15267 * @category Collection 15268 * @param {Array|Object} collection The collection to iterate over. 15269 * @param {Array|Function|string} path The path of the method to invoke or 15270 * the function invoked per iteration. 15271 * @param {...*} [args] The arguments to invoke each method with. 15272 * @returns {Array} Returns the array of results. 15273 * @example 15274 * 15275 * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort'); 15276 * // => [[1, 5, 7], [1, 2, 3]] 15277 * 15278 * _.invokeMap([123, 456], String.prototype.split, ''); 15279 * // => [['1', '2', '3'], ['4', '5', '6']] 15280 */ 15281 var invokeMap = baseRest(function(collection, path, args) { 15282 var index = -1, 15283 isFunc = typeof path == 'function', 15284 result = isArrayLike(collection) ? Array(collection.length) : []; 15285 15286 baseEach(collection, function(value) { 15287 result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args); 15288 }); 15289 return result; 15290 }); 15291 15292 /**
vendor: 68,500 bytes, lines 15293-17407
15293 * Creates an object composed of keys generated from the results of running 15294 * each element of `collection` thru `iteratee`. The corresponding value of 15295 * each key is the last element responsible for generating the key. The 15296 * iteratee is invoked with one argument: (value). 15297 * 15298 * @static 15299 * @memberOf _ 15300 * @since 4.0.0 15301 * @category Collection 15302 * @param {Array|Object} collection The collection to iterate over. 15303 * @param {Function} [iteratee=_.identity] The iteratee to transform keys. 15304 * @returns {Object} Returns the composed aggregate object. 15305 * @example 15306 * 15307 * var array = [ 15308 * { 'dir': 'left', 'code': 97 }, 15309 * { 'dir': 'right', 'code': 100 } 15310 * ]; 15311 * 15312 * _.keyBy(array, function(o) { 15313 * return String.fromCharCode(o.code); 15314 * }); 15315 * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } 15316 * 15317 * _.keyBy(array, 'dir'); 15318 * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } 15319 */ 15320 var keyBy = createAggregator(function(result, value, key) { 15321 baseAssignValue(result, key, value); 15322 }); 15323 15324 /** 15325 * Creates an array of values by running each element in `collection` thru 15326 * `iteratee`. The iteratee is invoked with three arguments: 15327 * (value, index|key, collection). 15328 * 15329 * Many lodash methods are guarded to work as iteratees for methods like 15330 * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. 15331 * 15332 * The guarded methods are: 15333 * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, 15334 * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, 15335 * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, 15336 * `template`, `trim`, `trimEnd`, `trimStart`, and `words` 15337 * 15338 * @static 15339 * @memberOf _ 15340 * @since 0.1.0 15341 * @category Collection 15342 * @param {Array|Object} collection The collection to iterate over. 15343 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 15344 * @returns {Array} Returns the new mapped array. 15345 * @example 15346 * 15347 * function square(n) { 15348 * return n * n; 15349 * } 15350 * 15351 * _.map([4, 8], square); 15352 * // => [16, 64] 15353 * 15354 * _.map({ 'a': 4, 'b': 8 }, square); 15355 * // => [16, 64] (iteration order is not guaranteed) 15356 * 15357 * var users = [ 15358 * { 'user': 'barney' }, 15359 * { 'user': 'fred' } 15360 * ]; 15361 * 15362 * // The `_.property` iteratee shorthand. 15363 * _.map(users, 'user'); 15364 * // => ['barney', 'fred'] 15365 */ 15366 function map(collection, iteratee) { 15367 var func = isArray(collection) ? arrayMap : baseMap; 15368 return func(collection, getIteratee(iteratee, 3)); 15369 } 15370 15371 /** 15372 * This method is like `_.sortBy` except that it allows specifying the sort 15373 * orders of the iteratees to sort by. If `orders` is unspecified, all values 15374 * are sorted in ascending order. Otherwise, specify an order of "desc" for 15375 * descending or "asc" for ascending sort order of corresponding values. 15376 * 15377 * @static 15378 * @memberOf _ 15379 * @since 4.0.0 15380 * @category Collection 15381 * @param {Array|Object} collection The collection to iterate over. 15382 * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]] 15383 * The iteratees to sort by. 15384 * @param {string[]} [orders] The sort orders of `iteratees`. 15385 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. 15386 * @returns {Array} Returns the new sorted array. 15387 * @example 15388 * 15389 * var users = [ 15390 * { 'user': 'fred', 'age': 48 }, 15391 * { 'user': 'barney', 'age': 34 }, 15392 * { 'user': 'fred', 'age': 40 }, 15393 * { 'user': 'barney', 'age': 36 } 15394 * ]; 15395 * 15396 * // Sort by `user` in ascending order and by `age` in descending order. 15397 * _.orderBy(users, ['user', 'age'], ['asc', 'desc']); 15398 * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] 15399 */ 15400 function orderBy(collection, iteratees, orders, guard) { 15401 if (collection == null) { 15402 return []; 15403 } 15404 if (!isArray(iteratees)) { 15405 iteratees = iteratees == null ? [] : [iteratees]; 15406 } 15407 orders = guard ? undefined : orders; 15408 if (!isArray(orders)) { 15409 orders = orders == null ? [] : [orders]; 15410 } 15411 return baseOrderBy(collection, iteratees, orders); 15412 } 15413 15414 /** 15415 * Creates an array of elements split into two groups, the first of which 15416 * contains elements `predicate` returns truthy for, the second of which 15417 * contains elements `predicate` returns falsey for. The predicate is 15418 * invoked with one argument: (value). 15419 * 15420 * @static 15421 * @memberOf _ 15422 * @since 3.0.0 15423 * @category Collection 15424 * @param {Array|Object} collection The collection to iterate over. 15425 * @param {Function} [predicate=_.identity] The function invoked per iteration. 15426 * @returns {Array} Returns the array of grouped elements. 15427 * @example 15428 * 15429 * var users = [ 15430 * { 'user': 'barney', 'age': 36, 'active': false }, 15431 * { 'user': 'fred', 'age': 40, 'active': true }, 15432 * { 'user': 'pebbles', 'age': 1, 'active': false } 15433 * ]; 15434 * 15435 * _.partition(users, function(o) { return o.active; }); 15436 * // => objects for [['fred'], ['barney', 'pebbles']] 15437 * 15438 * // The `_.matches` iteratee shorthand. 15439 * _.partition(users, { 'age': 1, 'active': false }); 15440 * // => objects for [['pebbles'], ['barney', 'fred']] 15441 * 15442 * // The `_.matchesProperty` iteratee shorthand. 15443 * _.partition(users, ['active', false]); 15444 * // => objects for [['barney', 'pebbles'], ['fred']] 15445 * 15446 * // The `_.property` iteratee shorthand. 15447 * _.partition(users, 'active'); 15448 * // => objects for [['fred'], ['barney', 'pebbles']] 15449 */ 15450 var partition = createAggregator(function(result, value, key) { 15451 result[key ? 0 : 1].push(value); 15452 }, function() { return [[], []]; }); 15453 15454 /** 15455 * Reduces `collection` to a value which is the accumulated result of running 15456 * each element in `collection` thru `iteratee`, where each successive 15457 * invocation is supplied the return value of the previous. If `accumulator` 15458 * is not given, the first element of `collection` is used as the initial 15459 * value. The iteratee is invoked with four arguments: 15460 * (accumulator, value, index|key, collection). 15461 * 15462 * Many lodash methods are guarded to work as iteratees for methods like 15463 * `_.reduce`, `_.reduceRight`, and `_.transform`. 15464 * 15465 * The guarded methods are: 15466 * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, 15467 * and `sortBy` 15468 * 15469 * @static 15470 * @memberOf _ 15471 * @since 0.1.0 15472 * @category Collection 15473 * @param {Array|Object} collection The collection to iterate over. 15474 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 15475 * @param {*} [accumulator] The initial value. 15476 * @returns {*} Returns the accumulated value. 15477 * @see _.reduceRight 15478 * @example 15479 * 15480 * _.reduce([1, 2], function(sum, n) { 15481 * return sum + n; 15482 * }, 0); 15483 * // => 3 15484 * 15485 * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { 15486 * (result[value] || (result[value] = [])).push(key); 15487 * return result; 15488 * }, {}); 15489 * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) 15490 */ 15491 function reduce(collection, iteratee, accumulator) { 15492 var func = isArray(collection) ? arrayReduce : baseReduce, 15493 initAccum = arguments.length < 3; 15494 15495 return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach); 15496 } 15497 15498 /** 15499 * This method is like `_.reduce` except that it iterates over elements of 15500 * `collection` from right to left. 15501 * 15502 * @static 15503 * @memberOf _ 15504 * @since 0.1.0 15505 * @category Collection 15506 * @param {Array|Object} collection The collection to iterate over. 15507 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 15508 * @param {*} [accumulator] The initial value. 15509 * @returns {*} Returns the accumulated value. 15510 * @see _.reduce 15511 * @example 15512 * 15513 * var array = [[0, 1], [2, 3], [4, 5]]; 15514 * 15515 * _.reduceRight(array, function(flattened, other) { 15516 * return flattened.concat(other); 15517 * }, []); 15518 * // => [4, 5, 2, 3, 0, 1] 15519 */ 15520 function reduceRight(collection, iteratee, accumulator) { 15521 var func = isArray(collection) ? arrayReduceRight : baseReduce, 15522 initAccum = arguments.length < 3; 15523 15524 return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight); 15525 } 15526 15527 /** 15528 * The opposite of `_.filter`; this method returns the elements of `collection` 15529 * that `predicate` does **not** return truthy for. 15530 * 15531 * @static 15532 * @memberOf _ 15533 * @since 0.1.0 15534 * @category Collection 15535 * @param {Array|Object} collection The collection to iterate over. 15536 * @param {Function} [predicate=_.identity] The function invoked per iteration. 15537 * @returns {Array} Returns the new filtered array. 15538 * @see _.filter 15539 * @example 15540 * 15541 * var users = [ 15542 * { 'user': 'barney', 'age': 36, 'active': false }, 15543 * { 'user': 'fred', 'age': 40, 'active': true } 15544 * ]; 15545 * 15546 * _.reject(users, function(o) { return !o.active; }); 15547 * // => objects for ['fred'] 15548 * 15549 * // The `_.matches` iteratee shorthand. 15550 * _.reject(users, { 'age': 40, 'active': true }); 15551 * // => objects for ['barney'] 15552 * 15553 * // The `_.matchesProperty` iteratee shorthand. 15554 * _.reject(users, ['active', false]); 15555 * // => objects for ['fred'] 15556 * 15557 * // The `_.property` iteratee shorthand. 15558 * _.reject(users, 'active'); 15559 * // => objects for ['barney'] 15560 */ 15561 function reject(collection, predicate) { 15562 var func = isArray(collection) ? arrayFilter : baseFilter; 15563 return func(collection, negate(getIteratee(predicate, 3))); 15564 } 15565 15566 /** 15567 * Gets a random element from `collection`. 15568 * 15569 * @static 15570 * @memberOf _ 15571 * @since 2.0.0 15572 * @category Collection 15573 * @param {Array|Object} collection The collection to sample. 15574 * @returns {*} Returns the random element. 15575 * @example 15576 * 15577 * _.sample([1, 2, 3, 4]); 15578 * // => 2 15579 */ 15580 function sample(collection) { 15581 var func = isArray(collection) ? arraySample : baseSample; 15582 return func(collection); 15583 } 15584 15585 /** 15586 * Gets `n` random elements at unique keys from `collection` up to the 15587 * size of `collection`. 15588 * 15589 * @static 15590 * @memberOf _ 15591 * @since 4.0.0 15592 * @category Collection 15593 * @param {Array|Object} collection The collection to sample. 15594 * @param {number} [n=1] The number of elements to sample. 15595 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 15596 * @returns {Array} Returns the random elements. 15597 * @example 15598 * 15599 * _.sampleSize([1, 2, 3], 2); 15600 * // => [3, 1] 15601 * 15602 * _.sampleSize([1, 2, 3], 4); 15603 * // => [2, 3, 1] 15604 */ 15605 function sampleSize(collection, n, guard) { 15606 if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) { 15607 n = 1; 15608 } else { 15609 n = toInteger(n); 15610 } 15611 var func = isArray(collection) ? arraySampleSize : baseSampleSize; 15612 return func(collection, n); 15613 } 15614 15615 /** 15616 * Creates an array of shuffled values, using a version of the 15617 * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle). 15618 * 15619 * @static 15620 * @memberOf _ 15621 * @since 0.1.0 15622 * @category Collection 15623 * @param {Array|Object} collection The collection to shuffle. 15624 * @returns {Array} Returns the new shuffled array. 15625 * @example 15626 * 15627 * _.shuffle([1, 2, 3, 4]); 15628 * // => [4, 1, 3, 2] 15629 */ 15630 function shuffle(collection) { 15631 var func = isArray(collection) ? arrayShuffle : baseShuffle; 15632 return func(collection); 15633 } 15634 15635 /** 15636 * Gets the size of `collection` by returning its length for array-like 15637 * values or the number of own enumerable string keyed properties for objects. 15638 * 15639 * @static 15640 * @memberOf _ 15641 * @since 0.1.0 15642 * @category Collection 15643 * @param {Array|Object|string} collection The collection to inspect. 15644 * @returns {number} Returns the collection size. 15645 * @example 15646 * 15647 * _.size([1, 2, 3]); 15648 * // => 3 15649 * 15650 * _.size({ 'a': 1, 'b': 2 }); 15651 * // => 2 15652 * 15653 * _.size('pebbles'); 15654 * // => 7 15655 */ 15656 function size(collection) { 15657 if (collection == null) { 15658 return 0; 15659 } 15660 if (isArrayLike(collection)) { 15661 return isString(collection) ? stringSize(collection) : collection.length; 15662 } 15663 var tag = getTag(collection); 15664 if (tag == mapTag || tag == setTag) { 15665 return collection.size; 15666 } 15667 return baseKeys(collection).length; 15668 } 15669 15670 /** 15671 * Checks if `predicate` returns truthy for **any** element of `collection`. 15672 * Iteration is stopped once `predicate` returns truthy. The predicate is 15673 * invoked with three arguments: (value, index|key, collection). 15674 * 15675 * @static 15676 * @memberOf _ 15677 * @since 0.1.0 15678 * @category Collection 15679 * @param {Array|Object} collection The collection to iterate over. 15680 * @param {Function} [predicate=_.identity] The function invoked per iteration. 15681 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 15682 * @returns {boolean} Returns `true` if any element passes the predicate check, 15683 * else `false`. 15684 * @example 15685 * 15686 * _.some([null, 0, 'yes', false], Boolean); 15687 * // => true 15688 * 15689 * var users = [ 15690 * { 'user': 'barney', 'active': true }, 15691 * { 'user': 'fred', 'active': false } 15692 * ]; 15693 * 15694 * // The `_.matches` iteratee shorthand. 15695 * _.some(users, { 'user': 'barney', 'active': false }); 15696 * // => false 15697 * 15698 * // The `_.matchesProperty` iteratee shorthand. 15699 * _.some(users, ['active', false]); 15700 * // => true 15701 * 15702 * // The `_.property` iteratee shorthand. 15703 * _.some(users, 'active'); 15704 * // => true 15705 */ 15706 function some(collection, predicate, guard) { 15707 var func = isArray(collection) ? arraySome : baseSome; 15708 if (guard && isIterateeCall(collection, predicate, guard)) { 15709 predicate = undefined; 15710 } 15711 return func(collection, getIteratee(predicate, 3)); 15712 } 15713 15714 /** 15715 * Creates an array of elements, sorted in ascending order by the results of 15716 * running each element in a collection thru each iteratee. This method 15717 * performs a stable sort, that is, it preserves the original sort order of 15718 * equal elements. The iteratees are invoked with one argument: (value). 15719 * 15720 * @static 15721 * @memberOf _ 15722 * @since 0.1.0 15723 * @category Collection 15724 * @param {Array|Object} collection The collection to iterate over. 15725 * @param {...(Function|Function[])} [iteratees=[_.identity]] 15726 * The iteratees to sort by. 15727 * @returns {Array} Returns the new sorted array. 15728 * @example 15729 * 15730 * var users = [ 15731 * { 'user': 'fred', 'age': 48 }, 15732 * { 'user': 'barney', 'age': 36 }, 15733 * { 'user': 'fred', 'age': 30 }, 15734 * { 'user': 'barney', 'age': 34 } 15735 * ]; 15736 * 15737 * _.sortBy(users, [function(o) { return o.user; }]); 15738 * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]] 15739 * 15740 * _.sortBy(users, ['user', 'age']); 15741 * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]] 15742 */ 15743 var sortBy = baseRest(function(collection, iteratees) { 15744 if (collection == null) { 15745 return []; 15746 } 15747 var length = iteratees.length; 15748 if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { 15749 iteratees = []; 15750 } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { 15751 iteratees = [iteratees[0]]; 15752 } 15753 return baseOrderBy(collection, baseFlatten(iteratees, 1), []); 15754 }); 15755 15756 /*------------------------------------------------------------------------*/ 15757 15758 /** 15759 * Gets the timestamp of the number of milliseconds that have elapsed since 15760 * the Unix epoch (1 January 1970 00:00:00 UTC). 15761 * 15762 * @static 15763 * @memberOf _ 15764 * @since 2.4.0 15765 * @category Date 15766 * @returns {number} Returns the timestamp. 15767 * @example 15768 * 15769 * _.defer(function(stamp) { 15770 * console.log(_.now() - stamp); 15771 * }, _.now()); 15772 * // => Logs the number of milliseconds it took for the deferred invocation. 15773 */ 15774 var now = ctxNow || function() { 15775 return root.Date.now(); 15776 }; 15777 15778 /*------------------------------------------------------------------------*/ 15779 15780 /** 15781 * The opposite of `_.before`; this method creates a function that invokes 15782 * `func` once it's called `n` or more times. 15783 * 15784 * @static 15785 * @memberOf _ 15786 * @since 0.1.0 15787 * @category Function 15788 * @param {number} n The number of calls before `func` is invoked. 15789 * @param {Function} func The function to restrict. 15790 * @returns {Function} Returns the new restricted function. 15791 * @example 15792 * 15793 * var saves = ['profile', 'settings']; 15794 * 15795 * var done = _.after(saves.length, function() { 15796 * console.log('done saving!'); 15797 * }); 15798 * 15799 * _.forEach(saves, function(type) { 15800 * asyncSave({ 'type': type, 'complete': done }); 15801 * }); 15802 * // => Logs 'done saving!' after the two async saves have completed. 15803 */ 15804 function after(n, func) { 15805 if (typeof func != 'function') { 15806 throw new TypeError(FUNC_ERROR_TEXT); 15807 } 15808 n = toInteger(n); 15809 return function() { 15810 if (--n < 1) { 15811 return func.apply(this, arguments); 15812 } 15813 }; 15814 } 15815 15816 /** 15817 * Creates a function that invokes `func`, with up to `n` arguments, 15818 * ignoring any additional arguments. 15819 * 15820 * @static 15821 * @memberOf _ 15822 * @since 3.0.0 15823 * @category Function 15824 * @param {Function} func The function to cap arguments for. 15825 * @param {number} [n=func.length] The arity cap. 15826 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 15827 * @returns {Function} Returns the new capped function. 15828 * @example 15829 * 15830 * _.map(['6', '8', '10'], _.ary(parseInt, 1)); 15831 * // => [6, 8, 10] 15832 */ 15833 function ary(func, n, guard) { 15834 n = guard ? undefined : n; 15835 n = (func && n == null) ? func.length : n; 15836 return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n); 15837 } 15838 15839 /** 15840 * Creates a function that invokes `func`, with the `this` binding and arguments 15841 * of the created function, while it's called less than `n` times. Subsequent 15842 * calls to the created function return the result of the last `func` invocation. 15843 * 15844 * @static 15845 * @memberOf _ 15846 * @since 3.0.0 15847 * @category Function 15848 * @param {number} n The number of calls at which `func` is no longer invoked. 15849 * @param {Function} func The function to restrict. 15850 * @returns {Function} Returns the new restricted function. 15851 * @example 15852 * 15853 * jQuery(element).on('click', _.before(5, addContactToList)); 15854 * // => Allows adding up to 4 contacts to the list. 15855 */ 15856 function before(n, func) { 15857 var result; 15858 if (typeof func != 'function') { 15859 throw new TypeError(FUNC_ERROR_TEXT); 15860 } 15861 n = toInteger(n); 15862 return function() { 15863 if (--n > 0) { 15864 result = func.apply(this, arguments); 15865 } 15866 if (n <= 1) { 15867 func = undefined; 15868 } 15869 return result; 15870 }; 15871 } 15872 15873 /** 15874 * Creates a function that invokes `func` with the `this` binding of `thisArg` 15875 * and `partials` prepended to the arguments it receives. 15876 * 15877 * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, 15878 * may be used as a placeholder for partially applied arguments. 15879 * 15880 * **Note:** Unlike native `Function#bind`, this method doesn't set the "length" 15881 * property of bound functions. 15882 * 15883 * @static 15884 * @memberOf _ 15885 * @since 0.1.0 15886 * @category Function 15887 * @param {Function} func The function to bind. 15888 * @param {*} thisArg The `this` binding of `func`. 15889 * @param {...*} [partials] The arguments to be partially applied. 15890 * @returns {Function} Returns the new bound function. 15891 * @example 15892 * 15893 * function greet(greeting, punctuation) { 15894 * return greeting + ' ' + this.user + punctuation; 15895 * } 15896 * 15897 * var object = { 'user': 'fred' }; 15898 * 15899 * var bound = _.bind(greet, object, 'hi'); 15900 * bound('!'); 15901 * // => 'hi fred!' 15902 * 15903 * // Bound with placeholders. 15904 * var bound = _.bind(greet, object, _, '!'); 15905 * bound('hi'); 15906 * // => 'hi fred!' 15907 */ 15908 var bind = baseRest(function(func, thisArg, partials) { 15909 var bitmask = WRAP_BIND_FLAG; 15910 if (partials.length) { 15911 var holders = replaceHolders(partials, getHolder(bind)); 15912 bitmask |= WRAP_PARTIAL_FLAG; 15913 } 15914 return createWrap(func, bitmask, thisArg, partials, holders); 15915 }); 15916 15917 /** 15918 * Creates a function that invokes the method at `object[key]` with `partials` 15919 * prepended to the arguments it receives. 15920 * 15921 * This method differs from `_.bind` by allowing bound functions to reference 15922 * methods that may be redefined or don't yet exist. See 15923 * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern) 15924 * for more details. 15925 * 15926 * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic 15927 * builds, may be used as a placeholder for partially applied arguments. 15928 * 15929 * @static 15930 * @memberOf _ 15931 * @since 0.10.0 15932 * @category Function 15933 * @param {Object} object The object to invoke the method on. 15934 * @param {string} key The key of the method. 15935 * @param {...*} [partials] The arguments to be partially applied. 15936 * @returns {Function} Returns the new bound function. 15937 * @example 15938 * 15939 * var object = { 15940 * 'user': 'fred', 15941 * 'greet': function(greeting, punctuation) { 15942 * return greeting + ' ' + this.user + punctuation; 15943 * } 15944 * }; 15945 * 15946 * var bound = _.bindKey(object, 'greet', 'hi'); 15947 * bound('!'); 15948 * // => 'hi fred!' 15949 * 15950 * object.greet = function(greeting, punctuation) { 15951 * return greeting + 'ya ' + this.user + punctuation; 15952 * }; 15953 * 15954 * bound('!'); 15955 * // => 'hiya fred!' 15956 * 15957 * // Bound with placeholders. 15958 * var bound = _.bindKey(object, 'greet', _, '!'); 15959 * bound('hi'); 15960 * // => 'hiya fred!' 15961 */ 15962 var bindKey = baseRest(function(object, key, partials) { 15963 var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; 15964 if (partials.length) { 15965 var holders = replaceHolders(partials, getHolder(bindKey)); 15966 bitmask |= WRAP_PARTIAL_FLAG; 15967 } 15968 return createWrap(key, bitmask, object, partials, holders); 15969 }); 15970 15971 /** 15972 * Creates a function that accepts arguments of `func` and either invokes 15973 * `func` returning its result, if at least `arity` number of arguments have 15974 * been provided, or returns a function that accepts the remaining `func` 15975 * arguments, and so on. The arity of `func` may be specified if `func.length` 15976 * is not sufficient. 15977 * 15978 * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds, 15979 * may be used as a placeholder for provided arguments. 15980 * 15981 * **Note:** This method doesn't set the "length" property of curried functions. 15982 * 15983 * @static 15984 * @memberOf _ 15985 * @since 2.0.0 15986 * @category Function 15987 * @param {Function} func The function to curry. 15988 * @param {number} [arity=func.length] The arity of `func`. 15989 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 15990 * @returns {Function} Returns the new curried function. 15991 * @example 15992 * 15993 * var abc = function(a, b, c) { 15994 * return [a, b, c]; 15995 * }; 15996 * 15997 * var curried = _.curry(abc); 15998 * 15999 * curried(1)(2)(3); 16000 * // => [1, 2, 3] 16001 * 16002 * curried(1, 2)(3); 16003 * // => [1, 2, 3] 16004 * 16005 * curried(1, 2, 3); 16006 * // => [1, 2, 3] 16007 * 16008 * // Curried with placeholders. 16009 * curried(1)(_, 3)(2); 16010 * // => [1, 2, 3] 16011 */ 16012 function curry(func, arity, guard) { 16013 arity = guard ? undefined : arity; 16014 var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity); 16015 result.placeholder = curry.placeholder; 16016 return result; 16017 } 16018 16019 /** 16020 * This method is like `_.curry` except that arguments are applied to `func` 16021 * in the manner of `_.partialRight` instead of `_.partial`. 16022 * 16023 * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic 16024 * builds, may be used as a placeholder for provided arguments. 16025 * 16026 * **Note:** This method doesn't set the "length" property of curried functions. 16027 * 16028 * @static 16029 * @memberOf _ 16030 * @since 3.0.0 16031 * @category Function 16032 * @param {Function} func The function to curry. 16033 * @param {number} [arity=func.length] The arity of `func`. 16034 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 16035 * @returns {Function} Returns the new curried function. 16036 * @example 16037 * 16038 * var abc = function(a, b, c) { 16039 * return [a, b, c]; 16040 * }; 16041 * 16042 * var curried = _.curryRight(abc); 16043 * 16044 * curried(3)(2)(1); 16045 * // => [1, 2, 3] 16046 * 16047 * curried(2, 3)(1); 16048 * // => [1, 2, 3] 16049 * 16050 * curried(1, 2, 3); 16051 * // => [1, 2, 3] 16052 * 16053 * // Curried with placeholders. 16054 * curried(3)(1, _)(2); 16055 * // => [1, 2, 3] 16056 */ 16057 function curryRight(func, arity, guard) { 16058 arity = guard ? undefined : arity; 16059 var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity); 16060 result.placeholder = curryRight.placeholder; 16061 return result; 16062 } 16063 16064 /** 16065 * Creates a debounced function that delays invoking `func` until after `wait` 16066 * milliseconds have elapsed since the last time the debounced function was 16067 * invoked. The debounced function comes with a `cancel` method to cancel 16068 * delayed `func` invocations and a `flush` method to immediately invoke them. 16069 * Provide `options` to indicate whether `func` should be invoked on the 16070 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked 16071 * with the last arguments provided to the debounced function. Subsequent 16072 * calls to the debounced function return the result of the last `func` 16073 * invocation. 16074 * 16075 * **Note:** If `leading` and `trailing` options are `true`, `func` is 16076 * invoked on the trailing edge of the timeout only if the debounced function 16077 * is invoked more than once during the `wait` timeout. 16078 * 16079 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred 16080 * until to the next tick, similar to `setTimeout` with a timeout of `0`. 16081 * 16082 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) 16083 * for details over the differences between `_.debounce` and `_.throttle`. 16084 * 16085 * @static 16086 * @memberOf _ 16087 * @since 0.1.0 16088 * @category Function 16089 * @param {Function} func The function to debounce. 16090 * @param {number} [wait=0] The number of milliseconds to delay. 16091 * @param {Object} [options={}] The options object. 16092 * @param {boolean} [options.leading=false] 16093 * Specify invoking on the leading edge of the timeout. 16094 * @param {number} [options.maxWait] 16095 * The maximum time `func` is allowed to be delayed before it's invoked. 16096 * @param {boolean} [options.trailing=true] 16097 * Specify invoking on the trailing edge of the timeout. 16098 * @returns {Function} Returns the new debounced function. 16099 * @example 16100 * 16101 * // Avoid costly calculations while the window size is in flux. 16102 * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); 16103 * 16104 * // Invoke `sendMail` when clicked, debouncing subsequent calls. 16105 * jQuery(element).on('click', _.debounce(sendMail, 300, { 16106 * 'leading': true, 16107 * 'trailing': false 16108 * })); 16109 * 16110 * // Ensure `batchLog` is invoked once after 1 second of debounced calls. 16111 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); 16112 * var source = new EventSource('/stream'); 16113 * jQuery(source).on('message', debounced); 16114 * 16115 * // Cancel the trailing debounced invocation. 16116 * jQuery(window).on('popstate', debounced.cancel); 16117 */ 16118 function debounce(func, wait, options) { 16119 var lastArgs, 16120 lastThis, 16121 maxWait, 16122 result, 16123 timerId, 16124 lastCallTime, 16125 lastInvokeTime = 0, 16126 leading = false, 16127 maxing = false, 16128 trailing = true; 16129 16130 if (typeof func != 'function') { 16131 throw new TypeError(FUNC_ERROR_TEXT); 16132 } 16133 wait = toNumber(wait) || 0; 16134 if (isObject(options)) { 16135 leading = !!options.leading; 16136 maxing = 'maxWait' in options; 16137 maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; 16138 trailing = 'trailing' in options ? !!options.trailing : trailing; 16139 } 16140 16141 function invokeFunc(time) { 16142 var args = lastArgs, 16143 thisArg = lastThis; 16144 16145 lastArgs = lastThis = undefined; 16146 lastInvokeTime = time; 16147 result = func.apply(thisArg, args); 16148 return result; 16149 } 16150 16151 function leadingEdge(time) { 16152 // Reset any `maxWait` timer. 16153 lastInvokeTime = time; 16154 // Start the timer for the trailing edge. 16155 timerId = setTimeout(timerExpired, wait); 16156 // Invoke the leading edge. 16157 return leading ? invokeFunc(time) : result; 16158 } 16159 16160 function remainingWait(time) { 16161 var timeSinceLastCall = time - lastCallTime, 16162 timeSinceLastInvoke = time - lastInvokeTime, 16163 timeWaiting = wait - timeSinceLastCall; 16164 16165 return maxing 16166 ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) 16167 : timeWaiting; 16168 } 16169 16170 function shouldInvoke(time) { 16171 var timeSinceLastCall = time - lastCallTime, 16172 timeSinceLastInvoke = time - lastInvokeTime; 16173 16174 // Either this is the first call, activity has stopped and we're at the 16175 // trailing edge, the system time has gone backwards and we're treating 16176 // it as the trailing edge, or we've hit the `maxWait` limit. 16177 return (lastCallTime === undefined || (timeSinceLastCall >= wait) || 16178 (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); 16179 } 16180 16181 function timerExpired() { 16182 var time = now(); 16183 if (shouldInvoke(time)) { 16184 return trailingEdge(time); 16185 } 16186 // Restart the timer. 16187 timerId = setTimeout(timerExpired, remainingWait(time)); 16188 } 16189 16190 function trailingEdge(time) { 16191 timerId = undefined; 16192 16193 // Only invoke if we have `lastArgs` which means `func` has been 16194 // debounced at least once. 16195 if (trailing && lastArgs) { 16196 return invokeFunc(time); 16197 } 16198 lastArgs = lastThis = undefined; 16199 return result; 16200 } 16201 16202 function cancel() { 16203 if (timerId !== undefined) { 16204 clearTimeout(timerId); 16205 } 16206 lastInvokeTime = 0; 16207 lastArgs = lastCallTime = lastThis = timerId = undefined; 16208 } 16209 16210 function flush() { 16211 return timerId === undefined ? result : trailingEdge(now()); 16212 } 16213 16214 function debounced() { 16215 var time = now(), 16216 isInvoking = shouldInvoke(time); 16217 16218 lastArgs = arguments; 16219 lastThis = this; 16220 lastCallTime = time; 16221 16222 if (isInvoking) { 16223 if (timerId === undefined) { 16224 return leadingEdge(lastCallTime); 16225 } 16226 if (maxing) { 16227 // Handle invocations in a tight loop. 16228 clearTimeout(timerId); 16229 timerId = setTimeout(timerExpired, wait); 16230 return invokeFunc(lastCallTime); 16231 } 16232 } 16233 if (timerId === undefined) { 16234 timerId = setTimeout(timerExpired, wait); 16235 } 16236 return result; 16237 } 16238 debounced.cancel = cancel; 16239 debounced.flush = flush; 16240 return debounced; 16241 } 16242 16243 /** 16244 * Defers invoking the `func` until the current call stack has cleared. Any 16245 * additional arguments are provided to `func` when it's invoked. 16246 * 16247 * @static 16248 * @memberOf _ 16249 * @since 0.1.0 16250 * @category Function 16251 * @param {Function} func The function to defer. 16252 * @param {...*} [args] The arguments to invoke `func` with. 16253 * @returns {number} Returns the timer id. 16254 * @example 16255 * 16256 * _.defer(function(text) { 16257 * console.log(text); 16258 * }, 'deferred'); 16259 * // => Logs 'deferred' after one millisecond. 16260 */ 16261 var defer = baseRest(function(func, args) { 16262 return baseDelay(func, 1, args); 16263 }); 16264 16265 /** 16266 * Invokes `func` after `wait` milliseconds. Any additional arguments are 16267 * provided to `func` when it's invoked. 16268 * 16269 * @static 16270 * @memberOf _ 16271 * @since 0.1.0 16272 * @category Function 16273 * @param {Function} func The function to delay. 16274 * @param {number} wait The number of milliseconds to delay invocation. 16275 * @param {...*} [args] The arguments to invoke `func` with. 16276 * @returns {number} Returns the timer id. 16277 * @example 16278 * 16279 * _.delay(function(text) { 16280 * console.log(text); 16281 * }, 1000, 'later'); 16282 * // => Logs 'later' after one second. 16283 */ 16284 var delay = baseRest(function(func, wait, args) { 16285 return baseDelay(func, toNumber(wait) || 0, args); 16286 }); 16287 16288 /** 16289 * Creates a function that invokes `func` with arguments reversed. 16290 * 16291 * @static 16292 * @memberOf _ 16293 * @since 4.0.0 16294 * @category Function 16295 * @param {Function} func The function to flip arguments for. 16296 * @returns {Function} Returns the new flipped function. 16297 * @example 16298 * 16299 * var flipped = _.flip(function() { 16300 * return _.toArray(arguments); 16301 * }); 16302 * 16303 * flipped('a', 'b', 'c', 'd'); 16304 * // => ['d', 'c', 'b', 'a'] 16305 */ 16306 function flip(func) { 16307 return createWrap(func, WRAP_FLIP_FLAG); 16308 } 16309 16310 /** 16311 * Creates a function that memoizes the result of `func`. If `resolver` is 16312 * provided, it determines the cache key for storing the result based on the 16313 * arguments provided to the memoized function. By default, the first argument 16314 * provided to the memoized function is used as the map cache key. The `func` 16315 * is invoked with the `this` binding of the memoized function. 16316 * 16317 * **Note:** The cache is exposed as the `cache` property on the memoized 16318 * function. Its creation may be customized by replacing the `_.memoize.Cache` 16319 * constructor with one whose instances implement the 16320 * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) 16321 * method interface of `clear`, `delete`, `get`, `has`, and `set`. 16322 * 16323 * @static 16324 * @memberOf _ 16325 * @since 0.1.0 16326 * @category Function 16327 * @param {Function} func The function to have its output memoized. 16328 * @param {Function} [resolver] The function to resolve the cache key. 16329 * @returns {Function} Returns the new memoized function. 16330 * @example 16331 * 16332 * var object = { 'a': 1, 'b': 2 }; 16333 * var other = { 'c': 3, 'd': 4 }; 16334 * 16335 * var values = _.memoize(_.values); 16336 * values(object); 16337 * // => [1, 2] 16338 * 16339 * values(other); 16340 * // => [3, 4] 16341 * 16342 * object.a = 2; 16343 * values(object); 16344 * // => [1, 2] 16345 * 16346 * // Modify the result cache. 16347 * values.cache.set(object, ['a', 'b']); 16348 * values(object); 16349 * // => ['a', 'b'] 16350 * 16351 * // Replace `_.memoize.Cache`. 16352 * _.memoize.Cache = WeakMap; 16353 */ 16354 function memoize(func, resolver) { 16355 if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { 16356 throw new TypeError(FUNC_ERROR_TEXT); 16357 } 16358 var memoized = function() { 16359 var args = arguments, 16360 key = resolver ? resolver.apply(this, args) : args[0], 16361 cache = memoized.cache; 16362 16363 if (cache.has(key)) { 16364 return cache.get(key); 16365 } 16366 var result = func.apply(this, args); 16367 memoized.cache = cache.set(key, result) || cache; 16368 return result; 16369 }; 16370 memoized.cache = new (memoize.Cache || MapCache); 16371 return memoized; 16372 } 16373 16374 // Expose `MapCache`. 16375 memoize.Cache = MapCache; 16376 16377 /** 16378 * Creates a function that negates the result of the predicate `func`. The 16379 * `func` predicate is invoked with the `this` binding and arguments of the 16380 * created function. 16381 * 16382 * @static 16383 * @memberOf _ 16384 * @since 3.0.0 16385 * @category Function 16386 * @param {Function} predicate The predicate to negate. 16387 * @returns {Function} Returns the new negated function. 16388 * @example 16389 * 16390 * function isEven(n) { 16391 * return n % 2 == 0; 16392 * } 16393 * 16394 * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); 16395 * // => [1, 3, 5] 16396 */ 16397 function negate(predicate) { 16398 if (typeof predicate != 'function') { 16399 throw new TypeError(FUNC_ERROR_TEXT); 16400 } 16401 return function() { 16402 var args = arguments; 16403 switch (args.length) { 16404 case 0: return !predicate.call(this); 16405 case 1: return !predicate.call(this, args[0]); 16406 case 2: return !predicate.call(this, args[0], args[1]); 16407 case 3: return !predicate.call(this, args[0], args[1], args[2]); 16408 } 16409 return !predicate.apply(this, args); 16410 }; 16411 } 16412 16413 /** 16414 * Creates a function that is restricted to invoking `func` once. Repeat calls 16415 * to the function return the value of the first invocation. The `func` is 16416 * invoked with the `this` binding and arguments of the created function. 16417 * 16418 * @static 16419 * @memberOf _ 16420 * @since 0.1.0 16421 * @category Function 16422 * @param {Function} func The function to restrict. 16423 * @returns {Function} Returns the new restricted function. 16424 * @example 16425 * 16426 * var initialize = _.once(createApplication); 16427 * initialize(); 16428 * initialize(); 16429 * // => `createApplication` is invoked once 16430 */ 16431 function once(func) { 16432 return before(2, func); 16433 } 16434 16435 /** 16436 * Creates a function that invokes `func` with its arguments transformed. 16437 * 16438 * @static 16439 * @since 4.0.0 16440 * @memberOf _ 16441 * @category Function 16442 * @param {Function} func The function to wrap. 16443 * @param {...(Function|Function[])} [transforms=[_.identity]] 16444 * The argument transforms. 16445 * @returns {Function} Returns the new function. 16446 * @example 16447 * 16448 * function doubled(n) { 16449 * return n * 2; 16450 * } 16451 * 16452 * function square(n) { 16453 * return n * n; 16454 * } 16455 * 16456 * var func = _.overArgs(function(x, y) { 16457 * return [x, y]; 16458 * }, [square, doubled]); 16459 * 16460 * func(9, 3); 16461 * // => [81, 6] 16462 * 16463 * func(10, 5); 16464 * // => [100, 10] 16465 */ 16466 var overArgs = castRest(function(func, transforms) { 16467 transforms = (transforms.length == 1 && isArray(transforms[0])) 16468 ? arrayMap(transforms[0], baseUnary(getIteratee())) 16469 : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); 16470 16471 var funcsLength = transforms.length; 16472 return baseRest(function(args) { 16473 var index = -1, 16474 length = nativeMin(args.length, funcsLength); 16475 16476 while (++index < length) { 16477 args[index] = transforms[index].call(this, args[index]); 16478 } 16479 return apply(func, this, args); 16480 }); 16481 }); 16482 16483 /** 16484 * Creates a function that invokes `func` with `partials` prepended to the 16485 * arguments it receives. This method is like `_.bind` except it does **not** 16486 * alter the `this` binding. 16487 * 16488 * The `_.partial.placeholder` value, which defaults to `_` in monolithic 16489 * builds, may be used as a placeholder for partially applied arguments. 16490 * 16491 * **Note:** This method doesn't set the "length" property of partially 16492 * applied functions. 16493 * 16494 * @static 16495 * @memberOf _ 16496 * @since 0.2.0 16497 * @category Function 16498 * @param {Function} func The function to partially apply arguments to. 16499 * @param {...*} [partials] The arguments to be partially applied. 16500 * @returns {Function} Returns the new partially applied function. 16501 * @example 16502 * 16503 * function greet(greeting, name) { 16504 * return greeting + ' ' + name; 16505 * } 16506 * 16507 * var sayHelloTo = _.partial(greet, 'hello'); 16508 * sayHelloTo('fred'); 16509 * // => 'hello fred' 16510 * 16511 * // Partially applied with placeholders. 16512 * var greetFred = _.partial(greet, _, 'fred'); 16513 * greetFred('hi'); 16514 * // => 'hi fred' 16515 */ 16516 var partial = baseRest(function(func, partials) { 16517 var holders = replaceHolders(partials, getHolder(partial)); 16518 return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders); 16519 }); 16520 16521 /** 16522 * This method is like `_.partial` except that partially applied arguments 16523 * are appended to the arguments it receives. 16524 * 16525 * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic 16526 * builds, may be used as a placeholder for partially applied arguments. 16527 * 16528 * **Note:** This method doesn't set the "length" property of partially 16529 * applied functions. 16530 * 16531 * @static 16532 * @memberOf _ 16533 * @since 1.0.0 16534 * @category Function 16535 * @param {Function} func The function to partially apply arguments to. 16536 * @param {...*} [partials] The arguments to be partially applied. 16537 * @returns {Function} Returns the new partially applied function. 16538 * @example 16539 * 16540 * function greet(greeting, name) { 16541 * return greeting + ' ' + name; 16542 * } 16543 * 16544 * var greetFred = _.partialRight(greet, 'fred'); 16545 * greetFred('hi'); 16546 * // => 'hi fred' 16547 * 16548 * // Partially applied with placeholders. 16549 * var sayHelloTo = _.partialRight(greet, 'hello', _); 16550 * sayHelloTo('fred'); 16551 * // => 'hello fred' 16552 */ 16553 var partialRight = baseRest(function(func, partials) { 16554 var holders = replaceHolders(partials, getHolder(partialRight)); 16555 return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders); 16556 }); 16557 16558 /** 16559 * Creates a function that invokes `func` with arguments arranged according 16560 * to the specified `indexes` where the argument value at the first index is 16561 * provided as the first argument, the argument value at the second index is 16562 * provided as the second argument, and so on. 16563 * 16564 * @static 16565 * @memberOf _ 16566 * @since 3.0.0 16567 * @category Function 16568 * @param {Function} func The function to rearrange arguments for. 16569 * @param {...(number|number[])} indexes The arranged argument indexes. 16570 * @returns {Function} Returns the new function. 16571 * @example 16572 * 16573 * var rearged = _.rearg(function(a, b, c) { 16574 * return [a, b, c]; 16575 * }, [2, 0, 1]); 16576 * 16577 * rearged('b', 'c', 'a') 16578 * // => ['a', 'b', 'c'] 16579 */ 16580 var rearg = flatRest(function(func, indexes) { 16581 return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes); 16582 }); 16583 16584 /** 16585 * Creates a function that invokes `func` with the `this` binding of the 16586 * created function and arguments from `start` and beyond provided as 16587 * an array. 16588 * 16589 * **Note:** This method is based on the 16590 * [rest parameter](https://mdn.io/rest_parameters). 16591 * 16592 * @static 16593 * @memberOf _ 16594 * @since 4.0.0 16595 * @category Function 16596 * @param {Function} func The function to apply a rest parameter to. 16597 * @param {number} [start=func.length-1] The start position of the rest parameter. 16598 * @returns {Function} Returns the new function. 16599 * @example 16600 * 16601 * var say = _.rest(function(what, names) { 16602 * return what + ' ' + _.initial(names).join(', ') + 16603 * (_.size(names) > 1 ? ', & ' : '') + _.last(names); 16604 * }); 16605 * 16606 * say('hello', 'fred', 'barney', 'pebbles'); 16607 * // => 'hello fred, barney, & pebbles' 16608 */ 16609 function rest(func, start) { 16610 if (typeof func != 'function') { 16611 throw new TypeError(FUNC_ERROR_TEXT); 16612 } 16613 start = start === undefined ? start : toInteger(start); 16614 return baseRest(func, start); 16615 } 16616 16617 /** 16618 * Creates a function that invokes `func` with the `this` binding of the 16619 * create function and an array of arguments much like 16620 * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply). 16621 * 16622 * **Note:** This method is based on the 16623 * [spread operator](https://mdn.io/spread_operator). 16624 * 16625 * @static 16626 * @memberOf _ 16627 * @since 3.2.0 16628 * @category Function 16629 * @param {Function} func The function to spread arguments over. 16630 * @param {number} [start=0] The start position of the spread. 16631 * @returns {Function} Returns the new function. 16632 * @example 16633 * 16634 * var say = _.spread(function(who, what) { 16635 * return who + ' says ' + what; 16636 * }); 16637 * 16638 * say(['fred', 'hello']); 16639 * // => 'fred says hello' 16640 * 16641 * var numbers = Promise.all([ 16642 * Promise.resolve(40), 16643 * Promise.resolve(36) 16644 * ]); 16645 * 16646 * numbers.then(_.spread(function(x, y) { 16647 * return x + y; 16648 * })); 16649 * // => a Promise of 76 16650 */ 16651 function spread(func, start) { 16652 if (typeof func != 'function') { 16653 throw new TypeError(FUNC_ERROR_TEXT); 16654 } 16655 start = start == null ? 0 : nativeMax(toInteger(start), 0); 16656 return baseRest(function(args) { 16657 var array = args[start], 16658 otherArgs = castSlice(args, 0, start); 16659 16660 if (array) { 16661 arrayPush(otherArgs, array); 16662 } 16663 return apply(func, this, otherArgs); 16664 }); 16665 } 16666 16667 /** 16668 * Creates a throttled function that only invokes `func` at most once per 16669 * every `wait` milliseconds. The throttled function comes with a `cancel` 16670 * method to cancel delayed `func` invocations and a `flush` method to 16671 * immediately invoke them. Provide `options` to indicate whether `func` 16672 * should be invoked on the leading and/or trailing edge of the `wait` 16673 * timeout. The `func` is invoked with the last arguments provided to the 16674 * throttled function. Subsequent calls to the throttled function return the 16675 * result of the last `func` invocation. 16676 * 16677 * **Note:** If `leading` and `trailing` options are `true`, `func` is 16678 * invoked on the trailing edge of the timeout only if the throttled function 16679 * is invoked more than once during the `wait` timeout. 16680 * 16681 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred 16682 * until to the next tick, similar to `setTimeout` with a timeout of `0`. 16683 * 16684 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) 16685 * for details over the differences between `_.throttle` and `_.debounce`. 16686 * 16687 * @static 16688 * @memberOf _ 16689 * @since 0.1.0 16690 * @category Function 16691 * @param {Function} func The function to throttle. 16692 * @param {number} [wait=0] The number of milliseconds to throttle invocations to. 16693 * @param {Object} [options={}] The options object. 16694 * @param {boolean} [options.leading=true] 16695 * Specify invoking on the leading edge of the timeout. 16696 * @param {boolean} [options.trailing=true] 16697 * Specify invoking on the trailing edge of the timeout. 16698 * @returns {Function} Returns the new throttled function. 16699 * @example 16700 * 16701 * // Avoid excessively updating the position while scrolling. 16702 * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); 16703 * 16704 * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. 16705 * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); 16706 * jQuery(element).on('click', throttled); 16707 * 16708 * // Cancel the trailing throttled invocation. 16709 * jQuery(window).on('popstate', throttled.cancel); 16710 */ 16711 function throttle(func, wait, options) { 16712 var leading = true, 16713 trailing = true; 16714 16715 if (typeof func != 'function') { 16716 throw new TypeError(FUNC_ERROR_TEXT); 16717 } 16718 if (isObject(options)) { 16719 leading = 'leading' in options ? !!options.leading : leading; 16720 trailing = 'trailing' in options ? !!options.trailing : trailing; 16721 } 16722 return debounce(func, wait, { 16723 'leading': leading, 16724 'maxWait': wait, 16725 'trailing': trailing 16726 }); 16727 } 16728 16729 /** 16730 * Creates a function that accepts up to one argument, ignoring any 16731 * additional arguments. 16732 * 16733 * @static 16734 * @memberOf _ 16735 * @since 4.0.0 16736 * @category Function 16737 * @param {Function} func The function to cap arguments for. 16738 * @returns {Function} Returns the new capped function. 16739 * @example 16740 * 16741 * _.map(['6', '8', '10'], _.unary(parseInt)); 16742 * // => [6, 8, 10] 16743 */ 16744 function unary(func) { 16745 return ary(func, 1); 16746 } 16747 16748 /** 16749 * Creates a function that provides `value` to `wrapper` as its first 16750 * argument. Any additional arguments provided to the function are appended 16751 * to those provided to the `wrapper`. The wrapper is invoked with the `this` 16752 * binding of the created function. 16753 * 16754 * @static 16755 * @memberOf _ 16756 * @since 0.1.0 16757 * @category Function 16758 * @param {*} value The value to wrap. 16759 * @param {Function} [wrapper=identity] The wrapper function. 16760 * @returns {Function} Returns the new function. 16761 * @example 16762 * 16763 * var p = _.wrap(_.escape, function(func, text) { 16764 * return '<p>' + func(text) + '</p>'; 16765 * }); 16766 * 16767 * p('fred, barney, & pebbles'); 16768 * // => '<p>fred, barney, & pebbles</p>' 16769 */ 16770 function wrap(value, wrapper) { 16771 return partial(castFunction(wrapper), value); 16772 } 16773 16774 /*------------------------------------------------------------------------*/ 16775 16776 /** 16777 * Casts `value` as an array if it's not one. 16778 * 16779 * @static 16780 * @memberOf _ 16781 * @since 4.4.0 16782 * @category Lang 16783 * @param {*} value The value to inspect. 16784 * @returns {Array} Returns the cast array. 16785 * @example 16786 * 16787 * _.castArray(1); 16788 * // => [1] 16789 * 16790 * _.castArray({ 'a': 1 }); 16791 * // => [{ 'a': 1 }] 16792 * 16793 * _.castArray('abc'); 16794 * // => ['abc'] 16795 * 16796 * _.castArray(null); 16797 * // => [null] 16798 * 16799 * _.castArray(undefined); 16800 * // => [undefined] 16801 * 16802 * _.castArray(); 16803 * // => [] 16804 * 16805 * var array = [1, 2, 3]; 16806 * console.log(_.castArray(array) === array); 16807 * // => true 16808 */ 16809 function castArray() { 16810 if (!arguments.length) { 16811 return []; 16812 } 16813 var value = arguments[0]; 16814 return isArray(value) ? value : [value]; 16815 } 16816 16817 /** 16818 * Creates a shallow clone of `value`. 16819 * 16820 * **Note:** This method is loosely based on the 16821 * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm) 16822 * and supports cloning arrays, array buffers, booleans, date objects, maps, 16823 * numbers, `Object` objects, regexes, sets, strings, symbols, and typed 16824 * arrays. The own enumerable properties of `arguments` objects are cloned 16825 * as plain objects. An empty object is returned for uncloneable values such 16826 * as error objects, functions, DOM nodes, and WeakMaps. 16827 * 16828 * @static 16829 * @memberOf _ 16830 * @since 0.1.0 16831 * @category Lang 16832 * @param {*} value The value to clone. 16833 * @returns {*} Returns the cloned value. 16834 * @see _.cloneDeep 16835 * @example 16836 * 16837 * var objects = [{ 'a': 1 }, { 'b': 2 }]; 16838 * 16839 * var shallow = _.clone(objects); 16840 * console.log(shallow[0] === objects[0]); 16841 * // => true 16842 */ 16843 function clone(value) { 16844 return baseClone(value, CLONE_SYMBOLS_FLAG); 16845 } 16846 16847 /** 16848 * This method is like `_.clone` except that it accepts `customizer` which 16849 * is invoked to produce the cloned value. If `customizer` returns `undefined`, 16850 * cloning is handled by the method instead. The `customizer` is invoked with 16851 * up to four arguments; (value [, index|key, object, stack]). 16852 * 16853 * @static 16854 * @memberOf _ 16855 * @since 4.0.0 16856 * @category Lang 16857 * @param {*} value The value to clone. 16858 * @param {Function} [customizer] The function to customize cloning. 16859 * @returns {*} Returns the cloned value. 16860 * @see _.cloneDeepWith 16861 * @example 16862 * 16863 * function customizer(value) { 16864 * if (_.isElement(value)) { 16865 * return value.cloneNode(false); 16866 * } 16867 * } 16868 * 16869 * var el = _.cloneWith(document.body, customizer); 16870 * 16871 * console.log(el === document.body); 16872 * // => false 16873 * console.log(el.nodeName); 16874 * // => 'BODY' 16875 * console.log(el.childNodes.length); 16876 * // => 0 16877 */ 16878 function cloneWith(value, customizer) { 16879 customizer = typeof customizer == 'function' ? customizer : undefined; 16880 return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); 16881 } 16882 16883 /** 16884 * This method is like `_.clone` except that it recursively clones `value`. 16885 * 16886 * @static 16887 * @memberOf _ 16888 * @since 1.0.0 16889 * @category Lang 16890 * @param {*} value The value to recursively clone. 16891 * @returns {*} Returns the deep cloned value. 16892 * @see _.clone 16893 * @example 16894 * 16895 * var objects = [{ 'a': 1 }, { 'b': 2 }]; 16896 * 16897 * var deep = _.cloneDeep(objects); 16898 * console.log(deep[0] === objects[0]); 16899 * // => false 16900 */ 16901 function cloneDeep(value) { 16902 return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); 16903 } 16904 16905 /** 16906 * This method is like `_.cloneWith` except that it recursively clones `value`. 16907 * 16908 * @static 16909 * @memberOf _ 16910 * @since 4.0.0 16911 * @category Lang 16912 * @param {*} value The value to recursively clone. 16913 * @param {Function} [customizer] The function to customize cloning. 16914 * @returns {*} Returns the deep cloned value. 16915 * @see _.cloneWith 16916 * @example 16917 * 16918 * function customizer(value) { 16919 * if (_.isElement(value)) { 16920 * return value.cloneNode(true); 16921 * } 16922 * } 16923 * 16924 * var el = _.cloneDeepWith(document.body, customizer); 16925 * 16926 * console.log(el === document.body); 16927 * // => false 16928 * console.log(el.nodeName); 16929 * // => 'BODY' 16930 * console.log(el.childNodes.length); 16931 * // => 20 16932 */ 16933 function cloneDeepWith(value, customizer) { 16934 customizer = typeof customizer == 'function' ? customizer : undefined; 16935 return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); 16936 } 16937 16938 /** 16939 * Checks if `object` conforms to `source` by invoking the predicate 16940 * properties of `source` with the corresponding property values of `object`. 16941 * 16942 * **Note:** This method is equivalent to `_.conforms` when `source` is 16943 * partially applied. 16944 * 16945 * @static 16946 * @memberOf _ 16947 * @since 4.14.0 16948 * @category Lang 16949 * @param {Object} object The object to inspect. 16950 * @param {Object} source The object of property predicates to conform to. 16951 * @returns {boolean} Returns `true` if `object` conforms, else `false`. 16952 * @example 16953 * 16954 * var object = { 'a': 1, 'b': 2 }; 16955 * 16956 * _.conformsTo(object, { 'b': function(n) { return n > 1; } }); 16957 * // => true 16958 * 16959 * _.conformsTo(object, { 'b': function(n) { return n > 2; } }); 16960 * // => false 16961 */ 16962 function conformsTo(object, source) { 16963 return source == null || baseConformsTo(object, source, keys(source)); 16964 } 16965 16966 /** 16967 * Performs a 16968 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 16969 * comparison between two values to determine if they are equivalent. 16970 * 16971 * @static 16972 * @memberOf _ 16973 * @since 4.0.0 16974 * @category Lang 16975 * @param {*} value The value to compare. 16976 * @param {*} other The other value to compare. 16977 * @returns {boolean} Returns `true` if the values are equivalent, else `false`. 16978 * @example 16979 * 16980 * var object = { 'a': 1 }; 16981 * var other = { 'a': 1 }; 16982 * 16983 * _.eq(object, object); 16984 * // => true 16985 * 16986 * _.eq(object, other); 16987 * // => false 16988 * 16989 * _.eq('a', 'a'); 16990 * // => true 16991 * 16992 * _.eq('a', Object('a')); 16993 * // => false 16994 * 16995 * _.eq(NaN, NaN); 16996 * // => true 16997 */ 16998 function eq(value, other) { 16999 return value === other || (value !== value && other !== other); 17000 } 17001 17002 /** 17003 * Checks if `value` is greater than `other`. 17004 * 17005 * @static 17006 * @memberOf _ 17007 * @since 3.9.0 17008 * @category Lang 17009 * @param {*} value The value to compare. 17010 * @param {*} other The other value to compare. 17011 * @returns {boolean} Returns `true` if `value` is greater than `other`, 17012 * else `false`. 17013 * @see _.lt 17014 * @example 17015 * 17016 * _.gt(3, 1); 17017 * // => true 17018 * 17019 * _.gt(3, 3); 17020 * // => false 17021 * 17022 * _.gt(1, 3); 17023 * // => false 17024 */ 17025 var gt = createRelationalOperation(baseGt); 17026 17027 /** 17028 * Checks if `value` is greater than or equal to `other`. 17029 * 17030 * @static 17031 * @memberOf _ 17032 * @since 3.9.0 17033 * @category Lang 17034 * @param {*} value The value to compare. 17035 * @param {*} other The other value to compare. 17036 * @returns {boolean} Returns `true` if `value` is greater than or equal to 17037 * `other`, else `false`. 17038 * @see _.lte 17039 * @example 17040 * 17041 * _.gte(3, 1); 17042 * // => true 17043 * 17044 * _.gte(3, 3); 17045 * // => true 17046 * 17047 * _.gte(1, 3); 17048 * // => false 17049 */ 17050 var gte = createRelationalOperation(function(value, other) { 17051 return value >= other; 17052 }); 17053 17054 /** 17055 * Checks if `value` is likely an `arguments` object. 17056 * 17057 * @static 17058 * @memberOf _ 17059 * @since 0.1.0 17060 * @category Lang 17061 * @param {*} value The value to check. 17062 * @returns {boolean} Returns `true` if `value` is an `arguments` object, 17063 * else `false`. 17064 * @example 17065 * 17066 * _.isArguments(function() { return arguments; }()); 17067 * // => true 17068 * 17069 * _.isArguments([1, 2, 3]); 17070 * // => false 17071 */ 17072 var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { 17073 return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && 17074 !propertyIsEnumerable.call(value, 'callee'); 17075 }; 17076 17077 /** 17078 * Checks if `value` is classified as an `Array` object. 17079 * 17080 * @static 17081 * @memberOf _ 17082 * @since 0.1.0 17083 * @category Lang 17084 * @param {*} value The value to check. 17085 * @returns {boolean} Returns `true` if `value` is an array, else `false`. 17086 * @example 17087 * 17088 * _.isArray([1, 2, 3]); 17089 * // => true 17090 * 17091 * _.isArray(document.body.children); 17092 * // => false 17093 * 17094 * _.isArray('abc'); 17095 * // => false 17096 * 17097 * _.isArray(_.noop); 17098 * // => false 17099 */ 17100 var isArray = Array.isArray; 17101 17102 /** 17103 * Checks if `value` is classified as an `ArrayBuffer` object. 17104 * 17105 * @static 17106 * @memberOf _ 17107 * @since 4.3.0 17108 * @category Lang 17109 * @param {*} value The value to check. 17110 * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. 17111 * @example 17112 * 17113 * _.isArrayBuffer(new ArrayBuffer(2)); 17114 * // => true 17115 * 17116 * _.isArrayBuffer(new Array(2)); 17117 * // => false 17118 */ 17119 var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; 17120 17121 /** 17122 * Checks if `value` is array-like. A value is considered array-like if it's 17123 * not a function and has a `value.length` that's an integer greater than or 17124 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. 17125 * 17126 * @static 17127 * @memberOf _ 17128 * @since 4.0.0 17129 * @category Lang 17130 * @param {*} value The value to check. 17131 * @returns {boolean} Returns `true` if `value` is array-like, else `false`. 17132 * @example 17133 * 17134 * _.isArrayLike([1, 2, 3]); 17135 * // => true 17136 * 17137 * _.isArrayLike(document.body.children); 17138 * // => true 17139 * 17140 * _.isArrayLike('abc'); 17141 * // => true 17142 * 17143 * _.isArrayLike(_.noop); 17144 * // => false 17145 */ 17146 function isArrayLike(value) { 17147 return value != null && isLength(value.length) && !isFunction(value); 17148 } 17149 17150 /** 17151 * This method is like `_.isArrayLike` except that it also checks if `value` 17152 * is an object. 17153 * 17154 * @static 17155 * @memberOf _ 17156 * @since 4.0.0 17157 * @category Lang 17158 * @param {*} value The value to check. 17159 * @returns {boolean} Returns `true` if `value` is an array-like object, 17160 * else `false`. 17161 * @example 17162 * 17163 * _.isArrayLikeObject([1, 2, 3]); 17164 * // => true 17165 * 17166 * _.isArrayLikeObject(document.body.children); 17167 * // => true 17168 * 17169 * _.isArrayLikeObject('abc'); 17170 * // => false 17171 * 17172 * _.isArrayLikeObject(_.noop); 17173 * // => false 17174 */ 17175 function isArrayLikeObject(value) { 17176 return isObjectLike(value) && isArrayLike(value); 17177 } 17178 17179 /** 17180 * Checks if `value` is classified as a boolean primitive or object. 17181 * 17182 * @static 17183 * @memberOf _ 17184 * @since 0.1.0 17185 * @category Lang 17186 * @param {*} value The value to check. 17187 * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. 17188 * @example 17189 * 17190 * _.isBoolean(false); 17191 * // => true 17192 * 17193 * _.isBoolean(null); 17194 * // => false 17195 */ 17196 function isBoolean(value) { 17197 return value === true || value === false || 17198 (isObjectLike(value) && baseGetTag(value) == boolTag); 17199 } 17200 17201 /** 17202 * Checks if `value` is a buffer. 17203 * 17204 * @static 17205 * @memberOf _ 17206 * @since 4.3.0 17207 * @category Lang 17208 * @param {*} value The value to check. 17209 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. 17210 * @example 17211 * 17212 * _.isBuffer(new Buffer(2)); 17213 * // => true 17214 * 17215 * _.isBuffer(new Uint8Array(2)); 17216 * // => false 17217 */ 17218 var isBuffer = nativeIsBuffer || stubFalse; 17219 17220 /** 17221 * Checks if `value` is classified as a `Date` object. 17222 * 17223 * @static 17224 * @memberOf _ 17225 * @since 0.1.0 17226 * @category Lang 17227 * @param {*} value The value to check. 17228 * @returns {boolean} Returns `true` if `value` is a date object, else `false`. 17229 * @example 17230 * 17231 * _.isDate(new Date); 17232 * // => true 17233 * 17234 * _.isDate('Mon April 23 2012'); 17235 * // => false 17236 */ 17237 var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; 17238 17239 /** 17240 * Checks if `value` is likely a DOM element. 17241 * 17242 * @static 17243 * @memberOf _ 17244 * @since 0.1.0 17245 * @category Lang 17246 * @param {*} value The value to check. 17247 * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`. 17248 * @example 17249 * 17250 * _.isElement(document.body); 17251 * // => true 17252 * 17253 * _.isElement('<body>'); 17254 * // => false 17255 */ 17256 function isElement(value) { 17257 return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value); 17258 } 17259 17260 /** 17261 * Checks if `value` is an empty object, collection, map, or set. 17262 * 17263 * Objects are considered empty if they have no own enumerable string keyed 17264 * properties. 17265 * 17266 * Array-like values such as `arguments` objects, arrays, buffers, strings, or 17267 * jQuery-like collections are considered empty if they have a `length` of `0`. 17268 * Similarly, maps and sets are considered empty if they have a `size` of `0`. 17269 * 17270 * @static 17271 * @memberOf _ 17272 * @since 0.1.0 17273 * @category Lang 17274 * @param {*} value The value to check. 17275 * @returns {boolean} Returns `true` if `value` is empty, else `false`. 17276 * @example 17277 * 17278 * _.isEmpty(null); 17279 * // => true 17280 * 17281 * _.isEmpty(true); 17282 * // => true 17283 * 17284 * _.isEmpty(1); 17285 * // => true 17286 * 17287 * _.isEmpty([1, 2, 3]); 17288 * // => false 17289 * 17290 * _.isEmpty({ 'a': 1 }); 17291 * // => false 17292 */ 17293 function isEmpty(value) { 17294 if (value == null) { 17295 return true; 17296 } 17297 if (isArrayLike(value) && 17298 (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || 17299 isBuffer(value) || isTypedArray(value) || isArguments(value))) { 17300 return !value.length; 17301 } 17302 var tag = getTag(value); 17303 if (tag == mapTag || tag == setTag) { 17304 return !value.size; 17305 } 17306 if (isPrototype(value)) { 17307 return !baseKeys(value).length; 17308 } 17309 for (var key in value) { 17310 if (hasOwnProperty.call(value, key)) { 17311 return false; 17312 } 17313 } 17314 return true; 17315 } 17316 17317 /** 17318 * Performs a deep comparison between two values to determine if they are 17319 * equivalent. 17320 * 17321 * **Note:** This method supports comparing arrays, array buffers, booleans, 17322 * date objects, error objects, maps, numbers, `Object` objects, regexes, 17323 * sets, strings, symbols, and typed arrays. `Object` objects are compared 17324 * by their own, not inherited, enumerable properties. Functions and DOM 17325 * nodes are compared by strict equality, i.e. `===`. 17326 * 17327 * @static 17328 * @memberOf _ 17329 * @since 0.1.0 17330 * @category Lang 17331 * @param {*} value The value to compare. 17332 * @param {*} other The other value to compare. 17333 * @returns {boolean} Returns `true` if the values are equivalent, else `false`. 17334 * @example 17335 * 17336 * var object = { 'a': 1 }; 17337 * var other = { 'a': 1 }; 17338 * 17339 * _.isEqual(object, other); 17340 * // => true 17341 * 17342 * object === other; 17343 * // => false 17344 */ 17345 function isEqual(value, other) { 17346 return baseIsEqual(value, other); 17347 } 17348 17349 /** 17350 * This method is like `_.isEqual` except that it accepts `customizer` which 17351 * is invoked to compare values. If `customizer` returns `undefined`, comparisons 17352 * are handled by the method instead. The `customizer` is invoked with up to 17353 * six arguments: (objValue, othValue [, index|key, object, other, stack]). 17354 * 17355 * @static 17356 * @memberOf _ 17357 * @since 4.0.0 17358 * @category Lang 17359 * @param {*} value The value to compare. 17360 * @param {*} other The other value to compare. 17361 * @param {Function} [customizer] The function to customize comparisons. 17362 * @returns {boolean} Returns `true` if the values are equivalent, else `false`. 17363 * @example 17364 * 17365 * function isGreeting(value) { 17366 * return /^h(?:i|ello)$/.test(value); 17367 * } 17368 * 17369 * function customizer(objValue, othValue) { 17370 * if (isGreeting(objValue) && isGreeting(othValue)) { 17371 * return true; 17372 * } 17373 * } 17374 * 17375 * var array = ['hello', 'goodbye']; 17376 * var other = ['hi', 'goodbye']; 17377 * 17378 * _.isEqualWith(array, other, customizer); 17379 * // => true 17380 */ 17381 function isEqualWith(value, other, customizer) { 17382 customizer = typeof customizer == 'function' ? customizer : undefined; 17383 var result = customizer ? customizer(value, other) : undefined; 17384 return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result; 17385 } 17386 17387 /** 17388 * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, 17389 * `SyntaxError`, `TypeError`, or `URIError` object. 17390 * 17391 * @static 17392 * @memberOf _ 17393 * @since 3.0.0 17394 * @category Lang 17395 * @param {*} value The value to check. 17396 * @returns {boolean} Returns `true` if `value` is an error object, else `false`. 17397 * @example 17398 * 17399 * _.isError(new Error); 17400 * // => true 17401 * 17402 * _.isError(Error); 17403 * // => false 17404 */ 17405 function isError(value) { 17406 if (!isObjectLike(value)) { 17407 return false;
vendor: 6,607 bytes, lines 17408-17645
17408 } 17409 var tag = baseGetTag(value); 17410 return tag == errorTag || tag == domExcTag || 17411 (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value)); 17412 } 17413 17414 /** 17415 * Checks if `value` is a finite primitive number. 17416 * 17417 * **Note:** This method is based on 17418 * [`Number.isFinite`](https://mdn.io/Number/isFinite). 17419 * 17420 * @static 17421 * @memberOf _ 17422 * @since 0.1.0 17423 * @category Lang 17424 * @param {*} value The value to check. 17425 * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. 17426 * @example 17427 * 17428 * _.isFinite(3); 17429 * // => true 17430 * 17431 * _.isFinite(Number.MIN_VALUE); 17432 * // => true 17433 * 17434 * _.isFinite(Infinity); 17435 * // => false 17436 * 17437 * _.isFinite('3'); 17438 * // => false 17439 */ 17440 function isFinite(value) { 17441 return typeof value == 'number' && nativeIsFinite(value); 17442 } 17443 17444 /** 17445 * Checks if `value` is classified as a `Function` object. 17446 * 17447 * @static 17448 * @memberOf _ 17449 * @since 0.1.0 17450 * @category Lang 17451 * @param {*} value The value to check. 17452 * @returns {boolean} Returns `true` if `value` is a function, else `false`. 17453 * @example 17454 * 17455 * _.isFunction(_); 17456 * // => true 17457 * 17458 * _.isFunction(/abc/); 17459 * // => false 17460 */ 17461 function isFunction(value) { 17462 if (!isObject(value)) { 17463 return false; 17464 } 17465 // The use of `Object#toString` avoids issues with the `typeof` operator 17466 // in Safari 9 which returns 'object' for typed arrays and other constructors. 17467 var tag = baseGetTag(value); 17468 return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; 17469 } 17470 17471 /** 17472 * Checks if `value` is an integer. 17473 * 17474 * **Note:** This method is based on 17475 * [`Number.isInteger`](https://mdn.io/Number/isInteger). 17476 * 17477 * @static 17478 * @memberOf _ 17479 * @since 4.0.0 17480 * @category Lang 17481 * @param {*} value The value to check. 17482 * @returns {boolean} Returns `true` if `value` is an integer, else `false`. 17483 * @example 17484 * 17485 * _.isInteger(3); 17486 * // => true 17487 * 17488 * _.isInteger(Number.MIN_VALUE); 17489 * // => false 17490 * 17491 * _.isInteger(Infinity); 17492 * // => false 17493 * 17494 * _.isInteger('3'); 17495 * // => false 17496 */ 17497 function isInteger(value) { 17498 return typeof value == 'number' && value == toInteger(value); 17499 } 17500 17501 /** 17502 * Checks if `value` is a valid array-like length. 17503 * 17504 * **Note:** This method is loosely based on 17505 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). 17506 * 17507 * @static 17508 * @memberOf _ 17509 * @since 4.0.0 17510 * @category Lang 17511 * @param {*} value The value to check. 17512 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. 17513 * @example 17514 * 17515 * _.isLength(3); 17516 * // => true 17517 * 17518 * _.isLength(Number.MIN_VALUE); 17519 * // => false 17520 * 17521 * _.isLength(Infinity); 17522 * // => false 17523 * 17524 * _.isLength('3'); 17525 * // => false 17526 */ 17527 function isLength(value) { 17528 return typeof value == 'number' && 17529 value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; 17530 } 17531 17532 /** 17533 * Checks if `value` is the 17534 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) 17535 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) 17536 * 17537 * @static 17538 * @memberOf _ 17539 * @since 0.1.0 17540 * @category Lang 17541 * @param {*} value The value to check. 17542 * @returns {boolean} Returns `true` if `value` is an object, else `false`. 17543 * @example 17544 * 17545 * _.isObject({}); 17546 * // => true 17547 * 17548 * _.isObject([1, 2, 3]); 17549 * // => true 17550 * 17551 * _.isObject(_.noop); 17552 * // => true 17553 * 17554 * _.isObject(null); 17555 * // => false 17556 */ 17557 function isObject(value) { 17558 var type = typeof value; 17559 return value != null && (type == 'object' || type == 'function'); 17560 } 17561 17562 /** 17563 * Checks if `value` is object-like. A value is object-like if it's not `null` 17564 * and has a `typeof` result of "object". 17565 * 17566 * @static 17567 * @memberOf _ 17568 * @since 4.0.0 17569 * @category Lang 17570 * @param {*} value The value to check. 17571 * @returns {boolean} Returns `true` if `value` is object-like, else `false`. 17572 * @example 17573 * 17574 * _.isObjectLike({}); 17575 * // => true 17576 * 17577 * _.isObjectLike([1, 2, 3]); 17578 * // => true 17579 * 17580 * _.isObjectLike(_.noop); 17581 * // => false 17582 * 17583 * _.isObjectLike(null); 17584 * // => false 17585 */ 17586 function isObjectLike(value) { 17587 return value != null && typeof value == 'object'; 17588 } 17589 17590 /** 17591 * Checks if `value` is classified as a `Map` object. 17592 * 17593 * @static 17594 * @memberOf _ 17595 * @since 4.3.0 17596 * @category Lang 17597 * @param {*} value The value to check. 17598 * @returns {boolean} Returns `true` if `value` is a map, else `false`. 17599 * @example 17600 * 17601 * _.isMap(new Map); 17602 * // => true 17603 * 17604 * _.isMap(new WeakMap); 17605 * // => false 17606 */ 17607 var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; 17608 17609 /** 17610 * Performs a partial deep comparison between `object` and `source` to 17611 * determine if `object` contains equivalent property values. 17612 * 17613 * **Note:** This method is equivalent to `_.matches` when `source` is 17614 * partially applied. 17615 * 17616 * Partial comparisons will match empty array and empty object `source` 17617 * values against any array or object value, respectively. See `_.isEqual` 17618 * for a list of supported value comparisons. 17619 * 17620 * @static 17621 * @memberOf _ 17622 * @since 3.0.0 17623 * @category Lang 17624 * @param {Object} object The object to inspect. 17625 * @param {Object} source The object of property values to match. 17626 * @returns {boolean} Returns `true` if `object` is a match, else `false`. 17627 * @example 17628 * 17629 * var object = { 'a': 1, 'b': 2 }; 17630 * 17631 * _.isMatch(object, { 'b': 2 }); 17632 * // => true 17633 * 17634 * _.isMatch(object, { 'b': 1 }); 17635 * // => false 17636 */ 17637 function isMatch(object, source) { 17638 return object === source || baseIsMatch(object, source, getMatchData(source)); 17639 } 17640 17641 /** 17642 * This method is like `_.isMatch` except that it accepts `customizer` which 17643 * is invoked to compare values. If `customizer` returns `undefined`, comparisons 17644 * are handled by the method instead. The `customizer` is invoked with five 17645 * arguments: (objValue, srcValue, index|key, object, source).
vendor: 12,241 bytes, lines 17646-18111
17646 * 17647 * @static 17648 * @memberOf _ 17649 * @since 4.0.0 17650 * @category Lang 17651 * @param {Object} object The object to inspect. 17652 * @param {Object} source The object of property values to match. 17653 * @param {Function} [customizer] The function to customize comparisons. 17654 * @returns {boolean} Returns `true` if `object` is a match, else `false`. 17655 * @example 17656 * 17657 * function isGreeting(value) { 17658 * return /^h(?:i|ello)$/.test(value); 17659 * } 17660 * 17661 * function customizer(objValue, srcValue) { 17662 * if (isGreeting(objValue) && isGreeting(srcValue)) { 17663 * return true; 17664 * } 17665 * } 17666 * 17667 * var object = { 'greeting': 'hello' }; 17668 * var source = { 'greeting': 'hi' }; 17669 * 17670 * _.isMatchWith(object, source, customizer); 17671 * // => true 17672 */ 17673 function isMatchWith(object, source, customizer) { 17674 customizer = typeof customizer == 'function' ? customizer : undefined; 17675 return baseIsMatch(object, source, getMatchData(source), customizer); 17676 } 17677 17678 /** 17679 * Checks if `value` is `NaN`. 17680 * 17681 * **Note:** This method is based on 17682 * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as 17683 * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for 17684 * `undefined` and other non-number values. 17685 * 17686 * @static 17687 * @memberOf _ 17688 * @since 0.1.0 17689 * @category Lang 17690 * @param {*} value The value to check. 17691 * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. 17692 * @example 17693 * 17694 * _.isNaN(NaN); 17695 * // => true 17696 * 17697 * _.isNaN(new Number(NaN)); 17698 * // => true 17699 * 17700 * isNaN(undefined); 17701 * // => true 17702 * 17703 * _.isNaN(undefined); 17704 * // => false 17705 */ 17706 function isNaN(value) { 17707 // An `NaN` primitive is the only value that is not equal to itself. 17708 // Perform the `toStringTag` check first to avoid errors with some 17709 // ActiveX objects in IE. 17710 return isNumber(value) && value != +value; 17711 } 17712 17713 /** 17714 * Checks if `value` is a pristine native function. 17715 * 17716 * **Note:** This method can't reliably detect native functions in the presence 17717 * of the core-js package because core-js circumvents this kind of detection. 17718 * Despite multiple requests, the core-js maintainer has made it clear: any 17719 * attempt to fix the detection will be obstructed. As a result, we're left 17720 * with little choice but to throw an error. Unfortunately, this also affects 17721 * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill), 17722 * which rely on core-js. 17723 * 17724 * @static 17725 * @memberOf _ 17726 * @since 3.0.0 17727 * @category Lang 17728 * @param {*} value The value to check. 17729 * @returns {boolean} Returns `true` if `value` is a native function, 17730 * else `false`. 17731 * @example 17732 * 17733 * _.isNative(Array.prototype.push); 17734 * // => true 17735 * 17736 * _.isNative(_); 17737 * // => false 17738 */ 17739 function isNative(value) { 17740 if (isMaskable(value)) { 17741 throw new Error(CORE_ERROR_TEXT); 17742 } 17743 return baseIsNative(value); 17744 } 17745 17746 /** 17747 * Checks if `value` is `null`. 17748 * 17749 * @static 17750 * @memberOf _ 17751 * @since 0.1.0 17752 * @category Lang 17753 * @param {*} value The value to check. 17754 * @returns {boolean} Returns `true` if `value` is `null`, else `false`. 17755 * @example 17756 * 17757 * _.isNull(null); 17758 * // => true 17759 * 17760 * _.isNull(void 0); 17761 * // => false 17762 */ 17763 function isNull(value) { 17764 return value === null; 17765 } 17766 17767 /** 17768 * Checks if `value` is `null` or `undefined`. 17769 * 17770 * @static 17771 * @memberOf _ 17772 * @since 4.0.0 17773 * @category Lang 17774 * @param {*} value The value to check. 17775 * @returns {boolean} Returns `true` if `value` is nullish, else `false`. 17776 * @example 17777 * 17778 * _.isNil(null); 17779 * // => true 17780 * 17781 * _.isNil(void 0); 17782 * // => true 17783 * 17784 * _.isNil(NaN); 17785 * // => false 17786 */ 17787 function isNil(value) { 17788 return value == null; 17789 } 17790 17791 /** 17792 * Checks if `value` is classified as a `Number` primitive or object. 17793 * 17794 * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are 17795 * classified as numbers, use the `_.isFinite` method. 17796 * 17797 * @static 17798 * @memberOf _ 17799 * @since 0.1.0 17800 * @category Lang 17801 * @param {*} value The value to check. 17802 * @returns {boolean} Returns `true` if `value` is a number, else `false`. 17803 * @example 17804 * 17805 * _.isNumber(3); 17806 * // => true 17807 * 17808 * _.isNumber(Number.MIN_VALUE); 17809 * // => true 17810 * 17811 * _.isNumber(Infinity); 17812 * // => true 17813 * 17814 * _.isNumber('3'); 17815 * // => false 17816 */ 17817 function isNumber(value) { 17818 return typeof value == 'number' || 17819 (isObjectLike(value) && baseGetTag(value) == numberTag); 17820 } 17821 17822 /** 17823 * Checks if `value` is a plain object, that is, an object created by the 17824 * `Object` constructor or one with a `[[Prototype]]` of `null`. 17825 * 17826 * @static 17827 * @memberOf _ 17828 * @since 0.8.0 17829 * @category Lang 17830 * @param {*} value The value to check. 17831 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. 17832 * @example 17833 * 17834 * function Foo() { 17835 * this.a = 1; 17836 * } 17837 * 17838 * _.isPlainObject(new Foo); 17839 * // => false 17840 * 17841 * _.isPlainObject([1, 2, 3]); 17842 * // => false 17843 * 17844 * _.isPlainObject({ 'x': 0, 'y': 0 }); 17845 * // => true 17846 * 17847 * _.isPlainObject(Object.create(null)); 17848 * // => true 17849 */ 17850 function isPlainObject(value) { 17851 if (!isObjectLike(value) || baseGetTag(value) != objectTag) { 17852 return false; 17853 } 17854 var proto = getPrototype(value); 17855 if (proto === null) { 17856 return true; 17857 } 17858 var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; 17859 return typeof Ctor == 'function' && Ctor instanceof Ctor && 17860 funcToString.call(Ctor) == objectCtorString; 17861 } 17862 17863 /** 17864 * Checks if `value` is classified as a `RegExp` object. 17865 * 17866 * @static 17867 * @memberOf _ 17868 * @since 0.1.0 17869 * @category Lang 17870 * @param {*} value The value to check. 17871 * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. 17872 * @example 17873 * 17874 * _.isRegExp(/abc/); 17875 * // => true 17876 * 17877 * _.isRegExp('/abc/'); 17878 * // => false 17879 */ 17880 var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; 17881 17882 /** 17883 * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754 17884 * double precision number which isn't the result of a rounded unsafe integer. 17885 * 17886 * **Note:** This method is based on 17887 * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger). 17888 * 17889 * @static 17890 * @memberOf _ 17891 * @since 4.0.0 17892 * @category Lang 17893 * @param {*} value The value to check. 17894 * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`. 17895 * @example 17896 * 17897 * _.isSafeInteger(3); 17898 * // => true 17899 * 17900 * _.isSafeInteger(Number.MIN_VALUE); 17901 * // => false 17902 * 17903 * _.isSafeInteger(Infinity); 17904 * // => false 17905 * 17906 * _.isSafeInteger('3'); 17907 * // => false 17908 */ 17909 function isSafeInteger(value) { 17910 return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; 17911 } 17912 17913 /** 17914 * Checks if `value` is classified as a `Set` object. 17915 * 17916 * @static 17917 * @memberOf _ 17918 * @since 4.3.0 17919 * @category Lang 17920 * @param {*} value The value to check. 17921 * @returns {boolean} Returns `true` if `value` is a set, else `false`. 17922 * @example 17923 * 17924 * _.isSet(new Set); 17925 * // => true 17926 * 17927 * _.isSet(new WeakSet); 17928 * // => false 17929 */ 17930 var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; 17931 17932 /** 17933 * Checks if `value` is classified as a `String` primitive or object. 17934 * 17935 * @static 17936 * @since 0.1.0 17937 * @memberOf _ 17938 * @category Lang 17939 * @param {*} value The value to check. 17940 * @returns {boolean} Returns `true` if `value` is a string, else `false`. 17941 * @example 17942 * 17943 * _.isString('abc'); 17944 * // => true 17945 * 17946 * _.isString(1); 17947 * // => false 17948 */ 17949 function isString(value) { 17950 return typeof value == 'string' || 17951 (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); 17952 } 17953 17954 /** 17955 * Checks if `value` is classified as a `Symbol` primitive or object. 17956 * 17957 * @static 17958 * @memberOf _ 17959 * @since 4.0.0 17960 * @category Lang 17961 * @param {*} value The value to check. 17962 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. 17963 * @example 17964 * 17965 * _.isSymbol(Symbol.iterator); 17966 * // => true 17967 * 17968 * _.isSymbol('abc'); 17969 * // => false 17970 */ 17971 function isSymbol(value) { 17972 return typeof value == 'symbol' || 17973 (isObjectLike(value) && baseGetTag(value) == symbolTag); 17974 } 17975 17976 /** 17977 * Checks if `value` is classified as a typed array. 17978 * 17979 * @static 17980 * @memberOf _ 17981 * @since 3.0.0 17982 * @category Lang 17983 * @param {*} value The value to check. 17984 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. 17985 * @example 17986 * 17987 * _.isTypedArray(new Uint8Array); 17988 * // => true 17989 * 17990 * _.isTypedArray([]); 17991 * // => false 17992 */ 17993 var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; 17994 17995 /** 17996 * Checks if `value` is `undefined`. 17997 * 17998 * @static 17999 * @since 0.1.0 18000 * @memberOf _ 18001 * @category Lang 18002 * @param {*} value The value to check. 18003 * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. 18004 * @example 18005 * 18006 * _.isUndefined(void 0); 18007 * // => true 18008 * 18009 * _.isUndefined(null); 18010 * // => false 18011 */ 18012 function isUndefined(value) { 18013 return value === undefined; 18014 } 18015 18016 /** 18017 * Checks if `value` is classified as a `WeakMap` object. 18018 * 18019 * @static 18020 * @memberOf _ 18021 * @since 4.3.0 18022 * @category Lang 18023 * @param {*} value The value to check. 18024 * @returns {boolean} Returns `true` if `value` is a weak map, else `false`. 18025 * @example 18026 * 18027 * _.isWeakMap(new WeakMap); 18028 * // => true 18029 * 18030 * _.isWeakMap(new Map); 18031 * // => false 18032 */ 18033 function isWeakMap(value) { 18034 return isObjectLike(value) && getTag(value) == weakMapTag; 18035 } 18036 18037 /** 18038 * Checks if `value` is classified as a `WeakSet` object. 18039 * 18040 * @static 18041 * @memberOf _ 18042 * @since 4.3.0 18043 * @category Lang 18044 * @param {*} value The value to check. 18045 * @returns {boolean} Returns `true` if `value` is a weak set, else `false`. 18046 * @example 18047 * 18048 * _.isWeakSet(new WeakSet); 18049 * // => true 18050 * 18051 * _.isWeakSet(new Set); 18052 * // => false 18053 */ 18054 function isWeakSet(value) { 18055 return isObjectLike(value) && baseGetTag(value) == weakSetTag; 18056 } 18057 18058 /** 18059 * Checks if `value` is less than `other`. 18060 * 18061 * @static 18062 * @memberOf _ 18063 * @since 3.9.0 18064 * @category Lang 18065 * @param {*} value The value to compare. 18066 * @param {*} other The other value to compare. 18067 * @returns {boolean} Returns `true` if `value` is less than `other`, 18068 * else `false`. 18069 * @see _.gt 18070 * @example 18071 * 18072 * _.lt(1, 3); 18073 * // => true 18074 * 18075 * _.lt(3, 3); 18076 * // => false 18077 * 18078 * _.lt(3, 1); 18079 * // => false 18080 */ 18081 var lt = createRelationalOperation(baseLt); 18082 18083 /** 18084 * Checks if `value` is less than or equal to `other`. 18085 * 18086 * @static 18087 * @memberOf _ 18088 * @since 3.9.0 18089 * @category Lang 18090 * @param {*} value The value to compare. 18091 * @param {*} other The other value to compare. 18092 * @returns {boolean} Returns `true` if `value` is less than or equal to 18093 * `other`, else `false`. 18094 * @see _.gte 18095 * @example 18096 * 18097 * _.lte(1, 3); 18098 * // => true 18099 * 18100 * _.lte(3, 3); 18101 * // => true 18102 * 18103 * _.lte(3, 1); 18104 * // => false 18105 */ 18106 var lte = createRelationalOperation(function(value, other) { 18107 return value <= other; 18108 }); 18109 18110 /** 18111 * Converts `value` to an array.
vendor: 11,756 bytes, lines 18112-18541
18112 * 18113 * @static 18114 * @since 0.1.0 18115 * @memberOf _ 18116 * @category Lang 18117 * @param {*} value The value to convert. 18118 * @returns {Array} Returns the converted array. 18119 * @example 18120 * 18121 * _.toArray({ 'a': 1, 'b': 2 }); 18122 * // => [1, 2] 18123 * 18124 * _.toArray('abc'); 18125 * // => ['a', 'b', 'c'] 18126 * 18127 * _.toArray(1); 18128 * // => [] 18129 * 18130 * _.toArray(null); 18131 * // => [] 18132 */ 18133 function toArray(value) { 18134 if (!value) { 18135 return []; 18136 } 18137 if (isArrayLike(value)) { 18138 return isString(value) ? stringToArray(value) : copyArray(value); 18139 } 18140 if (symIterator && value[symIterator]) { 18141 return iteratorToArray(value[symIterator]()); 18142 } 18143 var tag = getTag(value), 18144 func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values); 18145 18146 return func(value); 18147 } 18148 18149 /** 18150 * Converts `value` to a finite number. 18151 * 18152 * @static 18153 * @memberOf _ 18154 * @since 4.12.0 18155 * @category Lang 18156 * @param {*} value The value to convert. 18157 * @returns {number} Returns the converted number. 18158 * @example 18159 * 18160 * _.toFinite(3.2); 18161 * // => 3.2 18162 * 18163 * _.toFinite(Number.MIN_VALUE); 18164 * // => 5e-324 18165 * 18166 * _.toFinite(Infinity); 18167 * // => 1.7976931348623157e+308 18168 * 18169 * _.toFinite('3.2'); 18170 * // => 3.2 18171 */ 18172 function toFinite(value) { 18173 if (!value) { 18174 return value === 0 ? value : 0; 18175 } 18176 value = toNumber(value); 18177 if (value === INFINITY || value === -INFINITY) { 18178 var sign = (value < 0 ? -1 : 1); 18179 return sign * MAX_INTEGER; 18180 } 18181 return value === value ? value : 0; 18182 } 18183 18184 /** 18185 * Converts `value` to an integer. 18186 * 18187 * **Note:** This method is loosely based on 18188 * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). 18189 * 18190 * @static 18191 * @memberOf _ 18192 * @since 4.0.0 18193 * @category Lang 18194 * @param {*} value The value to convert. 18195 * @returns {number} Returns the converted integer. 18196 * @example 18197 * 18198 * _.toInteger(3.2); 18199 * // => 3 18200 * 18201 * _.toInteger(Number.MIN_VALUE); 18202 * // => 0 18203 * 18204 * _.toInteger(Infinity); 18205 * // => 1.7976931348623157e+308 18206 * 18207 * _.toInteger('3.2'); 18208 * // => 3 18209 */ 18210 function toInteger(value) { 18211 var result = toFinite(value), 18212 remainder = result % 1; 18213 18214 return result === result ? (remainder ? result - remainder : result) : 0; 18215 } 18216 18217 /** 18218 * Converts `value` to an integer suitable for use as the length of an 18219 * array-like object. 18220 * 18221 * **Note:** This method is based on 18222 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). 18223 * 18224 * @static 18225 * @memberOf _ 18226 * @since 4.0.0 18227 * @category Lang 18228 * @param {*} value The value to convert. 18229 * @returns {number} Returns the converted integer. 18230 * @example 18231 * 18232 * _.toLength(3.2); 18233 * // => 3 18234 * 18235 * _.toLength(Number.MIN_VALUE); 18236 * // => 0 18237 * 18238 * _.toLength(Infinity); 18239 * // => 4294967295 18240 * 18241 * _.toLength('3.2'); 18242 * // => 3 18243 */ 18244 function toLength(value) { 18245 return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0; 18246 } 18247 18248 /** 18249 * Converts `value` to a number. 18250 * 18251 * @static 18252 * @memberOf _ 18253 * @since 4.0.0 18254 * @category Lang 18255 * @param {*} value The value to process. 18256 * @returns {number} Returns the number. 18257 * @example 18258 * 18259 * _.toNumber(3.2); 18260 * // => 3.2 18261 * 18262 * _.toNumber(Number.MIN_VALUE); 18263 * // => 5e-324 18264 * 18265 * _.toNumber(Infinity); 18266 * // => Infinity 18267 * 18268 * _.toNumber('3.2'); 18269 * // => 3.2 18270 */ 18271 function toNumber(value) { 18272 if (typeof value == 'number') { 18273 return value; 18274 } 18275 if (isSymbol(value)) { 18276 return NAN; 18277 } 18278 if (isObject(value)) { 18279 var other = typeof value.valueOf == 'function' ? value.valueOf() : value; 18280 value = isObject(other) ? (other + '') : other; 18281 } 18282 if (typeof value != 'string') { 18283 return value === 0 ? value : +value; 18284 } 18285 value = baseTrim(value); 18286 var isBinary = reIsBinary.test(value); 18287 return (isBinary || reIsOctal.test(value)) 18288 ? freeParseInt(value.slice(2), isBinary ? 2 : 8) 18289 : (reIsBadHex.test(value) ? NAN : +value); 18290 } 18291 18292 /** 18293 * Converts `value` to a plain object flattening inherited enumerable string 18294 * keyed properties of `value` to own properties of the plain object. 18295 * 18296 * @static 18297 * @memberOf _ 18298 * @since 3.0.0 18299 * @category Lang 18300 * @param {*} value The value to convert. 18301 * @returns {Object} Returns the converted plain object. 18302 * @example 18303 * 18304 * function Foo() { 18305 * this.b = 2; 18306 * } 18307 * 18308 * Foo.prototype.c = 3; 18309 * 18310 * _.assign({ 'a': 1 }, new Foo); 18311 * // => { 'a': 1, 'b': 2 } 18312 * 18313 * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); 18314 * // => { 'a': 1, 'b': 2, 'c': 3 } 18315 */ 18316 function toPlainObject(value) { 18317 return copyObject(value, keysIn(value)); 18318 } 18319 18320 /** 18321 * Converts `value` to a safe integer. A safe integer can be compared and 18322 * represented correctly. 18323 * 18324 * @static 18325 * @memberOf _ 18326 * @since 4.0.0 18327 * @category Lang 18328 * @param {*} value The value to convert. 18329 * @returns {number} Returns the converted integer. 18330 * @example 18331 * 18332 * _.toSafeInteger(3.2); 18333 * // => 3 18334 * 18335 * _.toSafeInteger(Number.MIN_VALUE); 18336 * // => 0 18337 * 18338 * _.toSafeInteger(Infinity); 18339 * // => 9007199254740991 18340 * 18341 * _.toSafeInteger('3.2'); 18342 * // => 3 18343 */ 18344 function toSafeInteger(value) { 18345 return value 18346 ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) 18347 : (value === 0 ? value : 0); 18348 } 18349 18350 /** 18351 * Converts `value` to a string. An empty string is returned for `null` 18352 * and `undefined` values. The sign of `-0` is preserved. 18353 * 18354 * @static 18355 * @memberOf _ 18356 * @since 4.0.0 18357 * @category Lang 18358 * @param {*} value The value to convert. 18359 * @returns {string} Returns the converted string. 18360 * @example 18361 * 18362 * _.toString(null); 18363 * // => '' 18364 * 18365 * _.toString(-0); 18366 * // => '-0' 18367 * 18368 * _.toString([1, 2, 3]); 18369 * // => '1,2,3' 18370 */ 18371 function toString(value) { 18372 return value == null ? '' : baseToString(value); 18373 } 18374 18375 /*------------------------------------------------------------------------*/ 18376 18377 /** 18378 * Assigns own enumerable string keyed properties of source objects to the 18379 * destination object. Source objects are applied from left to right. 18380 * Subsequent sources overwrite property assignments of previous sources. 18381 * 18382 * **Note:** This method mutates `object` and is loosely based on 18383 * [`Object.assign`](https://mdn.io/Object/assign). 18384 * 18385 * @static 18386 * @memberOf _ 18387 * @since 0.10.0 18388 * @category Object 18389 * @param {Object} object The destination object. 18390 * @param {...Object} [sources] The source objects. 18391 * @returns {Object} Returns `object`. 18392 * @see _.assignIn 18393 * @example 18394 * 18395 * function Foo() { 18396 * this.a = 1; 18397 * } 18398 * 18399 * function Bar() { 18400 * this.c = 3; 18401 * } 18402 * 18403 * Foo.prototype.b = 2; 18404 * Bar.prototype.d = 4; 18405 * 18406 * _.assign({ 'a': 0 }, new Foo, new Bar); 18407 * // => { 'a': 1, 'c': 3 } 18408 */ 18409 var assign = createAssigner(function(object, source) { 18410 if (isPrototype(source) || isArrayLike(source)) { 18411 copyObject(source, keys(source), object); 18412 return; 18413 } 18414 for (var key in source) { 18415 if (hasOwnProperty.call(source, key)) { 18416 assignValue(object, key, source[key]); 18417 } 18418 } 18419 }); 18420 18421 /** 18422 * This method is like `_.assign` except that it iterates over own and 18423 * inherited source properties. 18424 * 18425 * **Note:** This method mutates `object`. 18426 * 18427 * @static 18428 * @memberOf _ 18429 * @since 4.0.0 18430 * @alias extend 18431 * @category Object 18432 * @param {Object} object The destination object. 18433 * @param {...Object} [sources] The source objects. 18434 * @returns {Object} Returns `object`. 18435 * @see _.assign 18436 * @example 18437 * 18438 * function Foo() { 18439 * this.a = 1; 18440 * } 18441 * 18442 * function Bar() { 18443 * this.c = 3; 18444 * } 18445 * 18446 * Foo.prototype.b = 2; 18447 * Bar.prototype.d = 4; 18448 * 18449 * _.assignIn({ 'a': 0 }, new Foo, new Bar); 18450 * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } 18451 */ 18452 var assignIn = createAssigner(function(object, source) { 18453 copyObject(source, keysIn(source), object); 18454 }); 18455 18456 /** 18457 * This method is like `_.assignIn` except that it accepts `customizer` 18458 * which is invoked to produce the assigned values. If `customizer` returns 18459 * `undefined`, assignment is handled by the method instead. The `customizer` 18460 * is invoked with five arguments: (objValue, srcValue, key, object, source). 18461 * 18462 * **Note:** This method mutates `object`. 18463 * 18464 * @static 18465 * @memberOf _ 18466 * @since 4.0.0 18467 * @alias extendWith 18468 * @category Object 18469 * @param {Object} object The destination object. 18470 * @param {...Object} sources The source objects. 18471 * @param {Function} [customizer] The function to customize assigned values. 18472 * @returns {Object} Returns `object`. 18473 * @see _.assignWith 18474 * @example 18475 * 18476 * function customizer(objValue, srcValue) { 18477 * return _.isUndefined(objValue) ? srcValue : objValue; 18478 * } 18479 * 18480 * var defaults = _.partialRight(_.assignInWith, customizer); 18481 * 18482 * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); 18483 * // => { 'a': 1, 'b': 2 } 18484 */ 18485 var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { 18486 copyObject(source, keysIn(source), object, customizer); 18487 }); 18488 18489 /** 18490 * This method is like `_.assign` except that it accepts `customizer` 18491 * which is invoked to produce the assigned values. If `customizer` returns 18492 * `undefined`, assignment is handled by the method instead. The `customizer` 18493 * is invoked with five arguments: (objValue, srcValue, key, object, source). 18494 * 18495 * **Note:** This method mutates `object`. 18496 * 18497 * @static 18498 * @memberOf _ 18499 * @since 4.0.0 18500 * @category Object 18501 * @param {Object} object The destination object. 18502 * @param {...Object} sources The source objects. 18503 * @param {Function} [customizer] The function to customize assigned values. 18504 * @returns {Object} Returns `object`. 18505 * @see _.assignInWith 18506 * @example 18507 * 18508 * function customizer(objValue, srcValue) { 18509 * return _.isUndefined(objValue) ? srcValue : objValue; 18510 * } 18511 * 18512 * var defaults = _.partialRight(_.assignWith, customizer); 18513 * 18514 * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); 18515 * // => { 'a': 1, 'b': 2 } 18516 */ 18517 var assignWith = createAssigner(function(object, source, srcIndex, customizer) { 18518 copyObject(source, keys(source), object, customizer); 18519 }); 18520 18521 /** 18522 * Creates an array of values corresponding to `paths` of `object`. 18523 * 18524 * @static 18525 * @memberOf _ 18526 * @since 1.0.0 18527 * @category Object 18528 * @param {Object} object The object to iterate over. 18529 * @param {...(string|string[])} [paths] The property paths to pick. 18530 * @returns {Array} Returns the picked values. 18531 * @example 18532 * 18533 * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; 18534 * 18535 * _.at(object, ['a[0].b.c', 'a[1]']); 18536 * // => [3, 4] 18537 */ 18538 var at = flatRest(baseAt); 18539 18540 /** 18541 * Creates an object that inherits from the `prototype` object. If a
vendor: 13,619 bytes, lines 18542-19006
18542 * `properties` object is given, its own enumerable string keyed properties 18543 * are assigned to the created object. 18544 * 18545 * @static 18546 * @memberOf _ 18547 * @since 2.3.0 18548 * @category Object 18549 * @param {Object} prototype The object to inherit from. 18550 * @param {Object} [properties] The properties to assign to the object. 18551 * @returns {Object} Returns the new object. 18552 * @example 18553 * 18554 * function Shape() { 18555 * this.x = 0; 18556 * this.y = 0; 18557 * } 18558 * 18559 * function Circle() { 18560 * Shape.call(this); 18561 * } 18562 * 18563 * Circle.prototype = _.create(Shape.prototype, { 18564 * 'constructor': Circle 18565 * }); 18566 * 18567 * var circle = new Circle; 18568 * circle instanceof Circle; 18569 * // => true 18570 * 18571 * circle instanceof Shape; 18572 * // => true 18573 */ 18574 function create(prototype, properties) { 18575 var result = baseCreate(prototype); 18576 return properties == null ? result : baseAssign(result, properties); 18577 } 18578 18579 /** 18580 * Assigns own and inherited enumerable string keyed properties of source 18581 * objects to the destination object for all destination properties that 18582 * resolve to `undefined`. Source objects are applied from left to right. 18583 * Once a property is set, additional values of the same property are ignored. 18584 * 18585 * **Note:** This method mutates `object`. 18586 * 18587 * @static 18588 * @since 0.1.0 18589 * @memberOf _ 18590 * @category Object 18591 * @param {Object} object The destination object. 18592 * @param {...Object} [sources] The source objects. 18593 * @returns {Object} Returns `object`. 18594 * @see _.defaultsDeep 18595 * @example 18596 * 18597 * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); 18598 * // => { 'a': 1, 'b': 2 } 18599 */ 18600 var defaults = baseRest(function(object, sources) { 18601 object = Object(object); 18602 18603 var index = -1; 18604 var length = sources.length; 18605 var guard = length > 2 ? sources[2] : undefined; 18606 18607 if (guard && isIterateeCall(sources[0], sources[1], guard)) { 18608 length = 1; 18609 } 18610 18611 while (++index < length) { 18612 var source = sources[index]; 18613 var props = keysIn(source); 18614 var propsIndex = -1; 18615 var propsLength = props.length; 18616 18617 while (++propsIndex < propsLength) { 18618 var key = props[propsIndex]; 18619 var value = object[key]; 18620 18621 if (value === undefined || 18622 (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) { 18623 object[key] = source[key]; 18624 } 18625 } 18626 } 18627 18628 return object; 18629 }); 18630 18631 /** 18632 * This method is like `_.defaults` except that it recursively assigns 18633 * default properties. 18634 * 18635 * **Note:** This method mutates `object`. 18636 * 18637 * @static 18638 * @memberOf _ 18639 * @since 3.10.0 18640 * @category Object 18641 * @param {Object} object The destination object. 18642 * @param {...Object} [sources] The source objects. 18643 * @returns {Object} Returns `object`. 18644 * @see _.defaults 18645 * @example 18646 * 18647 * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } }); 18648 * // => { 'a': { 'b': 2, 'c': 3 } } 18649 */ 18650 var defaultsDeep = baseRest(function(args) { 18651 args.push(undefined, customDefaultsMerge); 18652 return apply(mergeWith, undefined, args); 18653 }); 18654 18655 /** 18656 * This method is like `_.find` except that it returns the key of the first 18657 * element `predicate` returns truthy for instead of the element itself. 18658 * 18659 * @static 18660 * @memberOf _ 18661 * @since 1.1.0 18662 * @category Object 18663 * @param {Object} object The object to inspect. 18664 * @param {Function} [predicate=_.identity] The function invoked per iteration. 18665 * @returns {string|undefined} Returns the key of the matched element, 18666 * else `undefined`. 18667 * @example 18668 * 18669 * var users = { 18670 * 'barney': { 'age': 36, 'active': true }, 18671 * 'fred': { 'age': 40, 'active': false }, 18672 * 'pebbles': { 'age': 1, 'active': true } 18673 * }; 18674 * 18675 * _.findKey(users, function(o) { return o.age < 40; }); 18676 * // => 'barney' (iteration order is not guaranteed) 18677 * 18678 * // The `_.matches` iteratee shorthand. 18679 * _.findKey(users, { 'age': 1, 'active': true }); 18680 * // => 'pebbles' 18681 * 18682 * // The `_.matchesProperty` iteratee shorthand. 18683 * _.findKey(users, ['active', false]); 18684 * // => 'fred' 18685 * 18686 * // The `_.property` iteratee shorthand. 18687 * _.findKey(users, 'active'); 18688 * // => 'barney' 18689 */ 18690 function findKey(object, predicate) { 18691 return baseFindKey(object, getIteratee(predicate, 3), baseForOwn); 18692 } 18693 18694 /** 18695 * This method is like `_.findKey` except that it iterates over elements of 18696 * a collection in the opposite order. 18697 * 18698 * @static 18699 * @memberOf _ 18700 * @since 2.0.0 18701 * @category Object 18702 * @param {Object} object The object to inspect. 18703 * @param {Function} [predicate=_.identity] The function invoked per iteration. 18704 * @returns {string|undefined} Returns the key of the matched element, 18705 * else `undefined`. 18706 * @example 18707 * 18708 * var users = { 18709 * 'barney': { 'age': 36, 'active': true }, 18710 * 'fred': { 'age': 40, 'active': false }, 18711 * 'pebbles': { 'age': 1, 'active': true } 18712 * }; 18713 * 18714 * _.findLastKey(users, function(o) { return o.age < 40; }); 18715 * // => returns 'pebbles' assuming `_.findKey` returns 'barney' 18716 * 18717 * // The `_.matches` iteratee shorthand. 18718 * _.findLastKey(users, { 'age': 36, 'active': true }); 18719 * // => 'barney' 18720 * 18721 * // The `_.matchesProperty` iteratee shorthand. 18722 * _.findLastKey(users, ['active', false]); 18723 * // => 'fred' 18724 * 18725 * // The `_.property` iteratee shorthand. 18726 * _.findLastKey(users, 'active'); 18727 * // => 'pebbles' 18728 */ 18729 function findLastKey(object, predicate) { 18730 return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight); 18731 } 18732 18733 /** 18734 * Iterates over own and inherited enumerable string keyed properties of an 18735 * object and invokes `iteratee` for each property. The iteratee is invoked 18736 * with three arguments: (value, key, object). Iteratee functions may exit 18737 * iteration early by explicitly returning `false`. 18738 * 18739 * @static 18740 * @memberOf _ 18741 * @since 0.3.0 18742 * @category Object 18743 * @param {Object} object The object to iterate over. 18744 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 18745 * @returns {Object} Returns `object`. 18746 * @see _.forInRight 18747 * @example 18748 * 18749 * function Foo() { 18750 * this.a = 1; 18751 * this.b = 2; 18752 * } 18753 * 18754 * Foo.prototype.c = 3; 18755 * 18756 * _.forIn(new Foo, function(value, key) { 18757 * console.log(key); 18758 * }); 18759 * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed). 18760 */ 18761 function forIn(object, iteratee) { 18762 return object == null 18763 ? object 18764 : baseFor(object, getIteratee(iteratee, 3), keysIn); 18765 } 18766 18767 /** 18768 * This method is like `_.forIn` except that it iterates over properties of 18769 * `object` in the opposite order. 18770 * 18771 * @static 18772 * @memberOf _ 18773 * @since 2.0.0 18774 * @category Object 18775 * @param {Object} object The object to iterate over. 18776 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 18777 * @returns {Object} Returns `object`. 18778 * @see _.forIn 18779 * @example 18780 * 18781 * function Foo() { 18782 * this.a = 1; 18783 * this.b = 2; 18784 * } 18785 * 18786 * Foo.prototype.c = 3; 18787 * 18788 * _.forInRight(new Foo, function(value, key) { 18789 * console.log(key); 18790 * }); 18791 * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'. 18792 */ 18793 function forInRight(object, iteratee) { 18794 return object == null 18795 ? object 18796 : baseForRight(object, getIteratee(iteratee, 3), keysIn); 18797 } 18798 18799 /** 18800 * Iterates over own enumerable string keyed properties of an object and 18801 * invokes `iteratee` for each property. The iteratee is invoked with three 18802 * arguments: (value, key, object). Iteratee functions may exit iteration 18803 * early by explicitly returning `false`. 18804 * 18805 * @static 18806 * @memberOf _ 18807 * @since 0.3.0 18808 * @category Object 18809 * @param {Object} object The object to iterate over. 18810 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 18811 * @returns {Object} Returns `object`. 18812 * @see _.forOwnRight 18813 * @example 18814 * 18815 * function Foo() { 18816 * this.a = 1; 18817 * this.b = 2; 18818 * } 18819 * 18820 * Foo.prototype.c = 3; 18821 * 18822 * _.forOwn(new Foo, function(value, key) { 18823 * console.log(key); 18824 * }); 18825 * // => Logs 'a' then 'b' (iteration order is not guaranteed). 18826 */ 18827 function forOwn(object, iteratee) { 18828 return object && baseForOwn(object, getIteratee(iteratee, 3)); 18829 } 18830 18831 /** 18832 * This method is like `_.forOwn` except that it iterates over properties of 18833 * `object` in the opposite order. 18834 * 18835 * @static 18836 * @memberOf _ 18837 * @since 2.0.0 18838 * @category Object 18839 * @param {Object} object The object to iterate over. 18840 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 18841 * @returns {Object} Returns `object`. 18842 * @see _.forOwn 18843 * @example 18844 * 18845 * function Foo() { 18846 * this.a = 1; 18847 * this.b = 2; 18848 * } 18849 * 18850 * Foo.prototype.c = 3; 18851 * 18852 * _.forOwnRight(new Foo, function(value, key) { 18853 * console.log(key); 18854 * }); 18855 * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'. 18856 */ 18857 function forOwnRight(object, iteratee) { 18858 return object && baseForOwnRight(object, getIteratee(iteratee, 3)); 18859 } 18860 18861 /** 18862 * Creates an array of function property names from own enumerable properties 18863 * of `object`. 18864 * 18865 * @static 18866 * @since 0.1.0 18867 * @memberOf _ 18868 * @category Object 18869 * @param {Object} object The object to inspect. 18870 * @returns {Array} Returns the function names. 18871 * @see _.functionsIn 18872 * @example 18873 * 18874 * function Foo() { 18875 * this.a = _.constant('a'); 18876 * this.b = _.constant('b'); 18877 * } 18878 * 18879 * Foo.prototype.c = _.constant('c'); 18880 * 18881 * _.functions(new Foo); 18882 * // => ['a', 'b'] 18883 */ 18884 function functions(object) { 18885 return object == null ? [] : baseFunctions(object, keys(object)); 18886 } 18887 18888 /** 18889 * Creates an array of function property names from own and inherited 18890 * enumerable properties of `object`. 18891 * 18892 * @static 18893 * @memberOf _ 18894 * @since 4.0.0 18895 * @category Object 18896 * @param {Object} object The object to inspect. 18897 * @returns {Array} Returns the function names. 18898 * @see _.functions 18899 * @example 18900 * 18901 * function Foo() { 18902 * this.a = _.constant('a'); 18903 * this.b = _.constant('b'); 18904 * } 18905 * 18906 * Foo.prototype.c = _.constant('c'); 18907 * 18908 * _.functionsIn(new Foo); 18909 * // => ['a', 'b', 'c'] 18910 */ 18911 function functionsIn(object) { 18912 return object == null ? [] : baseFunctions(object, keysIn(object)); 18913 } 18914 18915 /** 18916 * Gets the value at `path` of `object`. If the resolved value is 18917 * `undefined`, the `defaultValue` is returned in its place. 18918 * 18919 * @static 18920 * @memberOf _ 18921 * @since 3.7.0 18922 * @category Object 18923 * @param {Object} object The object to query. 18924 * @param {Array|string} path The path of the property to get. 18925 * @param {*} [defaultValue] The value returned for `undefined` resolved values. 18926 * @returns {*} Returns the resolved value. 18927 * @example 18928 * 18929 * var object = { 'a': [{ 'b': { 'c': 3 } }] }; 18930 * 18931 * _.get(object, 'a[0].b.c'); 18932 * // => 3 18933 * 18934 * _.get(object, ['a', '0', 'b', 'c']); 18935 * // => 3 18936 * 18937 * _.get(object, 'a.b.c', 'default'); 18938 * // => 'default' 18939 */ 18940 function get(object, path, defaultValue) { 18941 var result = object == null ? undefined : baseGet(object, path); 18942 return result === undefined ? defaultValue : result; 18943 } 18944 18945 /** 18946 * Checks if `path` is a direct property of `object`. 18947 * 18948 * @static 18949 * @since 0.1.0 18950 * @memberOf _ 18951 * @category Object 18952 * @param {Object} object The object to query. 18953 * @param {Array|string} path The path to check. 18954 * @returns {boolean} Returns `true` if `path` exists, else `false`. 18955 * @example 18956 * 18957 * var object = { 'a': { 'b': 2 } }; 18958 * var other = _.create({ 'a': _.create({ 'b': 2 }) }); 18959 * 18960 * _.has(object, 'a'); 18961 * // => true 18962 * 18963 * _.has(object, 'a.b'); 18964 * // => true 18965 * 18966 * _.has(object, ['a', 'b']); 18967 * // => true 18968 * 18969 * _.has(other, 'a'); 18970 * // => false 18971 */ 18972 function has(object, path) { 18973 return object != null && hasPath(object, path, baseHas); 18974 } 18975 18976 /** 18977 * Checks if `path` is a direct or inherited property of `object`. 18978 * 18979 * @static 18980 * @memberOf _ 18981 * @since 4.0.0 18982 * @category Object 18983 * @param {Object} object The object to query. 18984 * @param {Array|string} path The path to check. 18985 * @returns {boolean} Returns `true` if `path` exists, else `false`. 18986 * @example 18987 * 18988 * var object = _.create({ 'a': _.create({ 'b': 2 }) }); 18989 * 18990 * _.hasIn(object, 'a'); 18991 * // => true 18992 * 18993 * _.hasIn(object, 'a.b'); 18994 * // => true 18995 * 18996 * _.hasIn(object, ['a', 'b']); 18997 * // => true 18998 * 18999 * _.hasIn(object, 'b'); 19000 * // => false 19001 */ 19002 function hasIn(object, path) { 19003 return object != null && hasPath(object, path, baseHasIn); 19004 } 19005 19006 /**
vendor: 11,848 bytes, lines 19007-19377
19007 * Creates an object composed of the inverted keys and values of `object`. 19008 * If `object` contains duplicate values, subsequent values overwrite 19009 * property assignments of previous values. 19010 * 19011 * @static 19012 * @memberOf _ 19013 * @since 0.7.0 19014 * @category Object 19015 * @param {Object} object The object to invert. 19016 * @returns {Object} Returns the new inverted object. 19017 * @example 19018 * 19019 * var object = { 'a': 1, 'b': 2, 'c': 1 }; 19020 * 19021 * _.invert(object); 19022 * // => { '1': 'c', '2': 'b' } 19023 */ 19024 var invert = createInverter(function(result, value, key) { 19025 if (value != null && 19026 typeof value.toString != 'function') { 19027 value = nativeObjectToString.call(value); 19028 } 19029 19030 result[value] = key; 19031 }, constant(identity)); 19032 19033 /** 19034 * This method is like `_.invert` except that the inverted object is generated 19035 * from the results of running each element of `object` thru `iteratee`. The 19036 * corresponding inverted value of each inverted key is an array of keys 19037 * responsible for generating the inverted value. The iteratee is invoked 19038 * with one argument: (value). 19039 * 19040 * @static 19041 * @memberOf _ 19042 * @since 4.1.0 19043 * @category Object 19044 * @param {Object} object The object to invert. 19045 * @param {Function} [iteratee=_.identity] The iteratee invoked per element. 19046 * @returns {Object} Returns the new inverted object. 19047 * @example 19048 * 19049 * var object = { 'a': 1, 'b': 2, 'c': 1 }; 19050 * 19051 * _.invertBy(object); 19052 * // => { '1': ['a', 'c'], '2': ['b'] } 19053 * 19054 * _.invertBy(object, function(value) { 19055 * return 'group' + value; 19056 * }); 19057 * // => { 'group1': ['a', 'c'], 'group2': ['b'] } 19058 */ 19059 var invertBy = createInverter(function(result, value, key) { 19060 if (value != null && 19061 typeof value.toString != 'function') { 19062 value = nativeObjectToString.call(value); 19063 } 19064 19065 if (hasOwnProperty.call(result, value)) { 19066 result[value].push(key); 19067 } else { 19068 result[value] = [key]; 19069 } 19070 }, getIteratee); 19071 19072 /** 19073 * Invokes the method at `path` of `object`. 19074 * 19075 * @static 19076 * @memberOf _ 19077 * @since 4.0.0 19078 * @category Object 19079 * @param {Object} object The object to query. 19080 * @param {Array|string} path The path of the method to invoke. 19081 * @param {...*} [args] The arguments to invoke the method with. 19082 * @returns {*} Returns the result of the invoked method. 19083 * @example 19084 * 19085 * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] }; 19086 * 19087 * _.invoke(object, 'a[0].b.c.slice', 1, 3); 19088 * // => [2, 3] 19089 */ 19090 var invoke = baseRest(baseInvoke); 19091 19092 /** 19093 * Creates an array of the own enumerable property names of `object`. 19094 * 19095 * **Note:** Non-object values are coerced to objects. See the 19096 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) 19097 * for more details. 19098 * 19099 * @static 19100 * @since 0.1.0 19101 * @memberOf _ 19102 * @category Object 19103 * @param {Object} object The object to query. 19104 * @returns {Array} Returns the array of property names. 19105 * @example 19106 * 19107 * function Foo() { 19108 * this.a = 1; 19109 * this.b = 2; 19110 * } 19111 * 19112 * Foo.prototype.c = 3; 19113 * 19114 * _.keys(new Foo); 19115 * // => ['a', 'b'] (iteration order is not guaranteed) 19116 * 19117 * _.keys('hi'); 19118 * // => ['0', '1'] 19119 */ 19120 function keys(object) { 19121 return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); 19122 } 19123 19124 /** 19125 * Creates an array of the own and inherited enumerable property names of `object`. 19126 * 19127 * **Note:** Non-object values are coerced to objects. 19128 * 19129 * @static 19130 * @memberOf _ 19131 * @since 3.0.0 19132 * @category Object 19133 * @param {Object} object The object to query. 19134 * @returns {Array} Returns the array of property names. 19135 * @example 19136 * 19137 * function Foo() { 19138 * this.a = 1; 19139 * this.b = 2; 19140 * } 19141 * 19142 * Foo.prototype.c = 3; 19143 * 19144 * _.keysIn(new Foo); 19145 * // => ['a', 'b', 'c'] (iteration order is not guaranteed) 19146 */ 19147 function keysIn(object) { 19148 return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); 19149 } 19150 19151 /** 19152 * The opposite of `_.mapValues`; this method creates an object with the 19153 * same values as `object` and keys generated by running each own enumerable 19154 * string keyed property of `object` thru `iteratee`. The iteratee is invoked 19155 * with three arguments: (value, key, object). 19156 * 19157 * @static 19158 * @memberOf _ 19159 * @since 3.8.0 19160 * @category Object 19161 * @param {Object} object The object to iterate over. 19162 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 19163 * @returns {Object} Returns the new mapped object. 19164 * @see _.mapValues 19165 * @example 19166 * 19167 * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) { 19168 * return key + value; 19169 * }); 19170 * // => { 'a1': 1, 'b2': 2 } 19171 */ 19172 function mapKeys(object, iteratee) { 19173 var result = {}; 19174 iteratee = getIteratee(iteratee, 3); 19175 19176 baseForOwn(object, function(value, key, object) { 19177 baseAssignValue(result, iteratee(value, key, object), value); 19178 }); 19179 return result; 19180 } 19181 19182 /** 19183 * Creates an object with the same keys as `object` and values generated 19184 * by running each own enumerable string keyed property of `object` thru 19185 * `iteratee`. The iteratee is invoked with three arguments: 19186 * (value, key, object). 19187 * 19188 * @static 19189 * @memberOf _ 19190 * @since 2.4.0 19191 * @category Object 19192 * @param {Object} object The object to iterate over. 19193 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 19194 * @returns {Object} Returns the new mapped object. 19195 * @see _.mapKeys 19196 * @example 19197 * 19198 * var users = { 19199 * 'fred': { 'user': 'fred', 'age': 40 }, 19200 * 'pebbles': { 'user': 'pebbles', 'age': 1 } 19201 * }; 19202 * 19203 * _.mapValues(users, function(o) { return o.age; }); 19204 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) 19205 * 19206 * // The `_.property` iteratee shorthand. 19207 * _.mapValues(users, 'age'); 19208 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) 19209 */ 19210 function mapValues(object, iteratee) { 19211 var result = {}; 19212 iteratee = getIteratee(iteratee, 3); 19213 19214 baseForOwn(object, function(value, key, object) { 19215 baseAssignValue(result, key, iteratee(value, key, object)); 19216 }); 19217 return result; 19218 } 19219 19220 /** 19221 * This method is like `_.assign` except that it recursively merges own and 19222 * inherited enumerable string keyed properties of source objects into the 19223 * destination object. Source properties that resolve to `undefined` are 19224 * skipped if a destination value exists. Array and plain object properties 19225 * are merged recursively. Other objects and value types are overridden by 19226 * assignment. Source objects are applied from left to right. Subsequent 19227 * sources overwrite property assignments of previous sources. 19228 * 19229 * **Note:** This method mutates `object`. 19230 * 19231 * @static 19232 * @memberOf _ 19233 * @since 0.5.0 19234 * @category Object 19235 * @param {Object} object The destination object. 19236 * @param {...Object} [sources] The source objects. 19237 * @returns {Object} Returns `object`. 19238 * @example 19239 * 19240 * var object = { 19241 * 'a': [{ 'b': 2 }, { 'd': 4 }] 19242 * }; 19243 * 19244 * var other = { 19245 * 'a': [{ 'c': 3 }, { 'e': 5 }] 19246 * }; 19247 * 19248 * _.merge(object, other); 19249 * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } 19250 */ 19251 var merge = createAssigner(function(object, source, srcIndex) { 19252 baseMerge(object, source, srcIndex); 19253 }); 19254 19255 /** 19256 * This method is like `_.merge` except that it accepts `customizer` which 19257 * is invoked to produce the merged values of the destination and source 19258 * properties. If `customizer` returns `undefined`, merging is handled by the 19259 * method instead. The `customizer` is invoked with six arguments: 19260 * (objValue, srcValue, key, object, source, stack). 19261 * 19262 * **Note:** This method mutates `object`. 19263 * 19264 * @static 19265 * @memberOf _ 19266 * @since 4.0.0 19267 * @category Object 19268 * @param {Object} object The destination object. 19269 * @param {...Object} sources The source objects. 19270 * @param {Function} customizer The function to customize assigned values. 19271 * @returns {Object} Returns `object`. 19272 * @example 19273 * 19274 * function customizer(objValue, srcValue) { 19275 * if (_.isArray(objValue)) { 19276 * return objValue.concat(srcValue); 19277 * } 19278 * } 19279 * 19280 * var object = { 'a': [1], 'b': [2] }; 19281 * var other = { 'a': [3], 'b': [4] }; 19282 * 19283 * _.mergeWith(object, other, customizer); 19284 * // => { 'a': [1, 3], 'b': [2, 4] } 19285 */ 19286 var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { 19287 baseMerge(object, source, srcIndex, customizer); 19288 }); 19289 19290 /** 19291 * The opposite of `_.pick`; this method creates an object composed of the 19292 * own and inherited enumerable property paths of `object` that are not omitted. 19293 * 19294 * **Note:** This method is considerably slower than `_.pick`. 19295 * 19296 * @static 19297 * @since 0.1.0 19298 * @memberOf _ 19299 * @category Object 19300 * @param {Object} object The source object. 19301 * @param {...(string|string[])} [paths] The property paths to omit. 19302 * @returns {Object} Returns the new object. 19303 * @example 19304 * 19305 * var object = { 'a': 1, 'b': '2', 'c': 3 }; 19306 * 19307 * _.omit(object, ['a', 'c']); 19308 * // => { 'b': '2' } 19309 */ 19310 var omit = flatRest(function(object, paths) { 19311 var result = {}; 19312 if (object == null) { 19313 return result; 19314 } 19315 var isDeep = false; 19316 paths = arrayMap(paths, function(path) { 19317 path = castPath(path, object); 19318 isDeep || (isDeep = path.length > 1); 19319 return path; 19320 }); 19321 copyObject(object, getAllKeysIn(object), result); 19322 if (isDeep) { 19323 result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); 19324 } 19325 var length = paths.length; 19326 while (length--) { 19327 baseUnset(result, paths[length]); 19328 } 19329 return result; 19330 }); 19331 19332 /** 19333 * The opposite of `_.pickBy`; this method creates an object composed of 19334 * the own and inherited enumerable string keyed properties of `object` that 19335 * `predicate` doesn't return truthy for. The predicate is invoked with two 19336 * arguments: (value, key). 19337 * 19338 * @static 19339 * @memberOf _ 19340 * @since 4.0.0 19341 * @category Object 19342 * @param {Object} object The source object. 19343 * @param {Function} [predicate=_.identity] The function invoked per property. 19344 * @returns {Object} Returns the new object. 19345 * @example 19346 * 19347 * var object = { 'a': 1, 'b': '2', 'c': 3 }; 19348 * 19349 * _.omitBy(object, _.isNumber); 19350 * // => { 'b': '2' } 19351 */ 19352 function omitBy(object, predicate) { 19353 return pickBy(object, negate(getIteratee(predicate))); 19354 } 19355 19356 /** 19357 * Creates an object composed of the picked `object` properties. 19358 * 19359 * @static 19360 * @since 0.1.0 19361 * @memberOf _ 19362 * @category Object 19363 * @param {Object} object The source object. 19364 * @param {...(string|string[])} [paths] The property paths to pick. 19365 * @returns {Object} Returns the new object. 19366 * @example 19367 * 19368 * var object = { 'a': 1, 'b': '2', 'c': 3 }; 19369 * 19370 * _.pick(object, ['a', 'c']); 19371 * // => { 'a': 1, 'c': 3 } 19372 */ 19373 var pick = flatRest(function(object, paths) { 19374 return object == null ? {} : basePick(object, paths); 19375 }); 19376 19377 /**
vendor: 11,160 bytes, lines 19378-19716
19378 * Creates an object composed of the `object` properties `predicate` returns 19379 * truthy for. The predicate is invoked with two arguments: (value, key). 19380 * 19381 * @static 19382 * @memberOf _ 19383 * @since 4.0.0 19384 * @category Object 19385 * @param {Object} object The source object. 19386 * @param {Function} [predicate=_.identity] The function invoked per property. 19387 * @returns {Object} Returns the new object. 19388 * @example 19389 * 19390 * var object = { 'a': 1, 'b': '2', 'c': 3 }; 19391 * 19392 * _.pickBy(object, _.isNumber); 19393 * // => { 'a': 1, 'c': 3 } 19394 */ 19395 function pickBy(object, predicate) { 19396 if (object == null) { 19397 return {}; 19398 } 19399 var props = arrayMap(getAllKeysIn(object), function(prop) { 19400 return [prop]; 19401 }); 19402 predicate = getIteratee(predicate); 19403 return basePickBy(object, props, function(value, path) { 19404 return predicate(value, path[0]); 19405 }); 19406 } 19407 19408 /** 19409 * This method is like `_.get` except that if the resolved value is a 19410 * function it's invoked with the `this` binding of its parent object and 19411 * its result is returned. 19412 * 19413 * @static 19414 * @since 0.1.0 19415 * @memberOf _ 19416 * @category Object 19417 * @param {Object} object The object to query. 19418 * @param {Array|string} path The path of the property to resolve. 19419 * @param {*} [defaultValue] The value returned for `undefined` resolved values. 19420 * @returns {*} Returns the resolved value. 19421 * @example 19422 * 19423 * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] }; 19424 * 19425 * _.result(object, 'a[0].b.c1'); 19426 * // => 3 19427 * 19428 * _.result(object, 'a[0].b.c2'); 19429 * // => 4 19430 * 19431 * _.result(object, 'a[0].b.c3', 'default'); 19432 * // => 'default' 19433 * 19434 * _.result(object, 'a[0].b.c3', _.constant('default')); 19435 * // => 'default' 19436 */ 19437 function result(object, path, defaultValue) { 19438 path = castPath(path, object); 19439 19440 var index = -1, 19441 length = path.length; 19442 19443 // Ensure the loop is entered when path is empty. 19444 if (!length) { 19445 length = 1; 19446 object = undefined; 19447 } 19448 while (++index < length) { 19449 var value = object == null ? undefined : object[toKey(path[index])]; 19450 if (value === undefined) { 19451 index = length; 19452 value = defaultValue; 19453 } 19454 object = isFunction(value) ? value.call(object) : value; 19455 } 19456 return object; 19457 } 19458 19459 /** 19460 * Sets the value at `path` of `object`. If a portion of `path` doesn't exist, 19461 * it's created. Arrays are created for missing index properties while objects 19462 * are created for all other missing properties. Use `_.setWith` to customize 19463 * `path` creation. 19464 * 19465 * **Note:** This method mutates `object`. 19466 * 19467 * @static 19468 * @memberOf _ 19469 * @since 3.7.0 19470 * @category Object 19471 * @param {Object} object The object to modify. 19472 * @param {Array|string} path The path of the property to set. 19473 * @param {*} value The value to set. 19474 * @returns {Object} Returns `object`. 19475 * @example 19476 * 19477 * var object = { 'a': [{ 'b': { 'c': 3 } }] }; 19478 * 19479 * _.set(object, 'a[0].b.c', 4); 19480 * console.log(object.a[0].b.c); 19481 * // => 4 19482 * 19483 * _.set(object, ['x', '0', 'y', 'z'], 5); 19484 * console.log(object.x[0].y.z); 19485 * // => 5 19486 */ 19487 function set(object, path, value) { 19488 return object == null ? object : baseSet(object, path, value); 19489 } 19490 19491 /** 19492 * This method is like `_.set` except that it accepts `customizer` which is 19493 * invoked to produce the objects of `path`. If `customizer` returns `undefined` 19494 * path creation is handled by the method instead. The `customizer` is invoked 19495 * with three arguments: (nsValue, key, nsObject). 19496 * 19497 * **Note:** This method mutates `object`. 19498 * 19499 * @static 19500 * @memberOf _ 19501 * @since 4.0.0 19502 * @category Object 19503 * @param {Object} object The object to modify. 19504 * @param {Array|string} path The path of the property to set. 19505 * @param {*} value The value to set. 19506 * @param {Function} [customizer] The function to customize assigned values. 19507 * @returns {Object} Returns `object`. 19508 * @example 19509 * 19510 * var object = {}; 19511 * 19512 * _.setWith(object, '[0][1]', 'a', Object); 19513 * // => { '0': { '1': 'a' } } 19514 */ 19515 function setWith(object, path, value, customizer) { 19516 customizer = typeof customizer == 'function' ? customizer : undefined; 19517 return object == null ? object : baseSet(object, path, value, customizer); 19518 } 19519 19520 /** 19521 * Creates an array of own enumerable string keyed-value pairs for `object` 19522 * which can be consumed by `_.fromPairs`. If `object` is a map or set, its 19523 * entries are returned. 19524 * 19525 * @static 19526 * @memberOf _ 19527 * @since 4.0.0 19528 * @alias entries 19529 * @category Object 19530 * @param {Object} object The object to query. 19531 * @returns {Array} Returns the key-value pairs. 19532 * @example 19533 * 19534 * function Foo() { 19535 * this.a = 1; 19536 * this.b = 2; 19537 * } 19538 * 19539 * Foo.prototype.c = 3; 19540 * 19541 * _.toPairs(new Foo); 19542 * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed) 19543 */ 19544 var toPairs = createToPairs(keys); 19545 19546 /** 19547 * Creates an array of own and inherited enumerable string keyed-value pairs 19548 * for `object` which can be consumed by `_.fromPairs`. If `object` is a map 19549 * or set, its entries are returned. 19550 * 19551 * @static 19552 * @memberOf _ 19553 * @since 4.0.0 19554 * @alias entriesIn 19555 * @category Object 19556 * @param {Object} object The object to query. 19557 * @returns {Array} Returns the key-value pairs. 19558 * @example 19559 * 19560 * function Foo() { 19561 * this.a = 1; 19562 * this.b = 2; 19563 * } 19564 * 19565 * Foo.prototype.c = 3; 19566 * 19567 * _.toPairsIn(new Foo); 19568 * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed) 19569 */ 19570 var toPairsIn = createToPairs(keysIn); 19571 19572 /** 19573 * An alternative to `_.reduce`; this method transforms `object` to a new 19574 * `accumulator` object which is the result of running each of its own 19575 * enumerable string keyed properties thru `iteratee`, with each invocation 19576 * potentially mutating the `accumulator` object. If `accumulator` is not 19577 * provided, a new object with the same `[[Prototype]]` will be used. The 19578 * iteratee is invoked with four arguments: (accumulator, value, key, object). 19579 * Iteratee functions may exit iteration early by explicitly returning `false`. 19580 * 19581 * @static 19582 * @memberOf _ 19583 * @since 1.3.0 19584 * @category Object 19585 * @param {Object} object The object to iterate over. 19586 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 19587 * @param {*} [accumulator] The custom accumulator value. 19588 * @returns {*} Returns the accumulated value. 19589 * @example 19590 * 19591 * _.transform([2, 3, 4], function(result, n) { 19592 * result.push(n *= n); 19593 * return n % 2 == 0; 19594 * }, []); 19595 * // => [4, 9] 19596 * 19597 * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { 19598 * (result[value] || (result[value] = [])).push(key); 19599 * }, {}); 19600 * // => { '1': ['a', 'c'], '2': ['b'] } 19601 */ 19602 function transform(object, iteratee, accumulator) { 19603 var isArr = isArray(object), 19604 isArrLike = isArr || isBuffer(object) || isTypedArray(object); 19605 19606 iteratee = getIteratee(iteratee, 4); 19607 if (accumulator == null) { 19608 var Ctor = object && object.constructor; 19609 if (isArrLike) { 19610 accumulator = isArr ? new Ctor : []; 19611 } 19612 else if (isObject(object)) { 19613 accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; 19614 } 19615 else { 19616 accumulator = {}; 19617 } 19618 } 19619 (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) { 19620 return iteratee(accumulator, value, index, object); 19621 }); 19622 return accumulator; 19623 } 19624 19625 /** 19626 * Removes the property at `path` of `object`. 19627 * 19628 * **Note:** This method mutates `object`. 19629 * 19630 * @static 19631 * @memberOf _ 19632 * @since 4.0.0 19633 * @category Object 19634 * @param {Object} object The object to modify. 19635 * @param {Array|string} path The path of the property to unset. 19636 * @returns {boolean} Returns `true` if the property is deleted, else `false`. 19637 * @example 19638 * 19639 * var object = { 'a': [{ 'b': { 'c': 7 } }] }; 19640 * _.unset(object, 'a[0].b.c'); 19641 * // => true 19642 * 19643 * console.log(object); 19644 * // => { 'a': [{ 'b': {} }] }; 19645 * 19646 * _.unset(object, ['a', '0', 'b', 'c']); 19647 * // => true 19648 * 19649 * console.log(object); 19650 * // => { 'a': [{ 'b': {} }] }; 19651 */ 19652 function unset(object, path) { 19653 return object == null ? true : baseUnset(object, path); 19654 } 19655 19656 /** 19657 * This method is like `_.set` except that accepts `updater` to produce the 19658 * value to set. Use `_.updateWith` to customize `path` creation. The `updater` 19659 * is invoked with one argument: (value). 19660 * 19661 * **Note:** This method mutates `object`. 19662 * 19663 * @static 19664 * @memberOf _ 19665 * @since 4.6.0 19666 * @category Object 19667 * @param {Object} object The object to modify. 19668 * @param {Array|string} path The path of the property to set. 19669 * @param {Function} updater The function to produce the updated value. 19670 * @returns {Object} Returns `object`. 19671 * @example 19672 * 19673 * var object = { 'a': [{ 'b': { 'c': 3 } }] }; 19674 * 19675 * _.update(object, 'a[0].b.c', function(n) { return n * n; }); 19676 * console.log(object.a[0].b.c); 19677 * // => 9 19678 * 19679 * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; }); 19680 * console.log(object.x[0].y.z); 19681 * // => 0 19682 */ 19683 function update(object, path, updater) { 19684 return object == null ? object : baseUpdate(object, path, castFunction(updater)); 19685 } 19686 19687 /** 19688 * This method is like `_.update` except that it accepts `customizer` which is 19689 * invoked to produce the objects of `path`. If `customizer` returns `undefined` 19690 * path creation is handled by the method instead. The `customizer` is invoked 19691 * with three arguments: (nsValue, key, nsObject). 19692 * 19693 * **Note:** This method mutates `object`. 19694 * 19695 * @static 19696 * @memberOf _ 19697 * @since 4.6.0 19698 * @category Object 19699 * @param {Object} object The object to modify. 19700 * @param {Array|string} path The path of the property to set. 19701 * @param {Function} updater The function to produce the updated value. 19702 * @param {Function} [customizer] The function to customize assigned values. 19703 * @returns {Object} Returns `object`. 19704 * @example 19705 * 19706 * var object = {}; 19707 * 19708 * _.updateWith(object, '[0][1]', _.constant('a'), Object); 19709 * // => { '0': { '1': 'a' } } 19710 */ 19711 function updateWith(object, path, updater, customizer) { 19712 customizer = typeof customizer == 'function' ? customizer : undefined; 19713 return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer); 19714 } 19715 19716 /**
vendor: 1,263 bytes, lines 19717-19766
19717 * Creates an array of the own enumerable string keyed property values of `object`. 19718 * 19719 * **Note:** Non-object values are coerced to objects. 19720 * 19721 * @static 19722 * @since 0.1.0 19723 * @memberOf _ 19724 * @category Object 19725 * @param {Object} object The object to query. 19726 * @returns {Array} Returns the array of property values. 19727 * @example 19728 * 19729 * function Foo() { 19730 * this.a = 1; 19731 * this.b = 2; 19732 * } 19733 * 19734 * Foo.prototype.c = 3; 19735 * 19736 * _.values(new Foo); 19737 * // => [1, 2] (iteration order is not guaranteed) 19738 * 19739 * _.values('hi'); 19740 * // => ['h', 'i'] 19741 */ 19742 function values(object) { 19743 return object == null ? [] : baseValues(object, keys(object)); 19744 } 19745 19746 /** 19747 * Creates an array of the own and inherited enumerable string keyed property 19748 * values of `object`. 19749 * 19750 * **Note:** Non-object values are coerced to objects. 19751 * 19752 * @static 19753 * @memberOf _ 19754 * @since 3.0.0 19755 * @category Object 19756 * @param {Object} object The object to query. 19757 * @returns {Array} Returns the array of property values. 19758 * @example 19759 * 19760 * function Foo() { 19761 * this.a = 1; 19762 * this.b = 2; 19763 * } 19764 * 19765 * Foo.prototype.c = 3; 19766 *
vendor: 9,679 bytes, lines 19767-20087
19767 * _.valuesIn(new Foo); 19768 * // => [1, 2, 3] (iteration order is not guaranteed) 19769 */ 19770 function valuesIn(object) { 19771 return object == null ? [] : baseValues(object, keysIn(object)); 19772 } 19773 19774 /*------------------------------------------------------------------------*/ 19775 19776 /** 19777 * Clamps `number` within the inclusive `lower` and `upper` bounds. 19778 * 19779 * @static 19780 * @memberOf _ 19781 * @since 4.0.0 19782 * @category Number 19783 * @param {number} number The number to clamp. 19784 * @param {number} [lower] The lower bound. 19785 * @param {number} upper The upper bound. 19786 * @returns {number} Returns the clamped number. 19787 * @example 19788 * 19789 * _.clamp(-10, -5, 5); 19790 * // => -5 19791 * 19792 * _.clamp(10, -5, 5); 19793 * // => 5 19794 */ 19795 function clamp(number, lower, upper) { 19796 if (upper === undefined) { 19797 upper = lower; 19798 lower = undefined; 19799 } 19800 if (upper !== undefined) { 19801 upper = toNumber(upper); 19802 upper = upper === upper ? upper : 0; 19803 } 19804 if (lower !== undefined) { 19805 lower = toNumber(lower); 19806 lower = lower === lower ? lower : 0; 19807 } 19808 return baseClamp(toNumber(number), lower, upper); 19809 } 19810 19811 /** 19812 * Checks if `n` is between `start` and up to, but not including, `end`. If 19813 * `end` is not specified, it's set to `start` with `start` then set to `0`. 19814 * If `start` is greater than `end` the params are swapped to support 19815 * negative ranges. 19816 * 19817 * @static 19818 * @memberOf _ 19819 * @since 3.3.0 19820 * @category Number 19821 * @param {number} number The number to check. 19822 * @param {number} [start=0] The start of the range. 19823 * @param {number} end The end of the range. 19824 * @returns {boolean} Returns `true` if `number` is in the range, else `false`. 19825 * @see _.range, _.rangeRight 19826 * @example 19827 * 19828 * _.inRange(3, 2, 4); 19829 * // => true 19830 * 19831 * _.inRange(4, 8); 19832 * // => true 19833 * 19834 * _.inRange(4, 2); 19835 * // => false 19836 * 19837 * _.inRange(2, 2); 19838 * // => false 19839 * 19840 * _.inRange(1.2, 2); 19841 * // => true 19842 * 19843 * _.inRange(5.2, 4); 19844 * // => false 19845 * 19846 * _.inRange(-3, -2, -6); 19847 * // => true 19848 */ 19849 function inRange(number, start, end) { 19850 start = toFinite(start); 19851 if (end === undefined) { 19852 end = start; 19853 start = 0; 19854 } else { 19855 end = toFinite(end); 19856 } 19857 number = toNumber(number); 19858 return baseInRange(number, start, end); 19859 } 19860 19861 /** 19862 * Produces a random number between the inclusive `lower` and `upper` bounds. 19863 * If only one argument is provided a number between `0` and the given number 19864 * is returned. If `floating` is `true`, or either `lower` or `upper` are 19865 * floats, a floating-point number is returned instead of an integer. 19866 * 19867 * **Note:** JavaScript follows the IEEE-754 standard for resolving 19868 * floating-point values which can produce unexpected results. 19869 * 19870 * @static 19871 * @memberOf _ 19872 * @since 0.7.0 19873 * @category Number 19874 * @param {number} [lower=0] The lower bound. 19875 * @param {number} [upper=1] The upper bound. 19876 * @param {boolean} [floating] Specify returning a floating-point number. 19877 * @returns {number} Returns the random number. 19878 * @example 19879 * 19880 * _.random(0, 5); 19881 * // => an integer between 0 and 5 19882 * 19883 * _.random(5); 19884 * // => also an integer between 0 and 5 19885 * 19886 * _.random(5, true); 19887 * // => a floating-point number between 0 and 5 19888 * 19889 * _.random(1.2, 5.2); 19890 * // => a floating-point number between 1.2 and 5.2 19891 */ 19892 function random(lower, upper, floating) { 19893 if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) { 19894 upper = floating = undefined; 19895 } 19896 if (floating === undefined) { 19897 if (typeof upper == 'boolean') { 19898 floating = upper; 19899 upper = undefined; 19900 } 19901 else if (typeof lower == 'boolean') { 19902 floating = lower; 19903 lower = undefined; 19904 } 19905 } 19906 if (lower === undefined && upper === undefined) { 19907 lower = 0; 19908 upper = 1; 19909 } 19910 else { 19911 lower = toFinite(lower); 19912 if (upper === undefined) { 19913 upper = lower; 19914 lower = 0; 19915 } else { 19916 upper = toFinite(upper); 19917 } 19918 } 19919 if (lower > upper) { 19920 var temp = lower; 19921 lower = upper; 19922 upper = temp; 19923 } 19924 if (floating || lower % 1 || upper % 1) { 19925 var rand = nativeRandom(); 19926 return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper); 19927 } 19928 return baseRandom(lower, upper); 19929 } 19930 19931 /*------------------------------------------------------------------------*/ 19932 19933 /** 19934 * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). 19935 * 19936 * @static 19937 * @memberOf _ 19938 * @since 3.0.0 19939 * @category String 19940 * @param {string} [string=''] The string to convert. 19941 * @returns {string} Returns the camel cased string. 19942 * @example 19943 * 19944 * _.camelCase('Foo Bar'); 19945 * // => 'fooBar' 19946 * 19947 * _.camelCase('--foo-bar--'); 19948 * // => 'fooBar' 19949 * 19950 * _.camelCase('__FOO_BAR__'); 19951 * // => 'fooBar' 19952 */ 19953 var camelCase = createCompounder(function(result, word, index) { 19954 word = word.toLowerCase(); 19955 return result + (index ? capitalize(word) : word); 19956 }); 19957 19958 /** 19959 * Converts the first character of `string` to upper case and the remaining 19960 * to lower case. 19961 * 19962 * @static 19963 * @memberOf _ 19964 * @since 3.0.0 19965 * @category String 19966 * @param {string} [string=''] The string to capitalize. 19967 * @returns {string} Returns the capitalized string. 19968 * @example 19969 * 19970 * _.capitalize('FRED'); 19971 * // => 'Fred' 19972 */ 19973 function capitalize(string) { 19974 return upperFirst(toString(string).toLowerCase()); 19975 } 19976 19977 /** 19978 * Deburrs `string` by converting 19979 * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) 19980 * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A) 19981 * letters to basic Latin letters and removing 19982 * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). 19983 * 19984 * @static 19985 * @memberOf _ 19986 * @since 3.0.0 19987 * @category String 19988 * @param {string} [string=''] The string to deburr. 19989 * @returns {string} Returns the deburred string. 19990 * @example 19991 * 19992 * _.deburr('déjà vu'); 19993 * // => 'deja vu' 19994 */ 19995 function deburr(string) { 19996 string = toString(string); 19997 return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ''); 19998 } 19999 20000 /** 20001 * Checks if `string` ends with the given target string. 20002 * 20003 * @static 20004 * @memberOf _ 20005 * @since 3.0.0 20006 * @category String 20007 * @param {string} [string=''] The string to inspect. 20008 * @param {string} [target] The string to search for. 20009 * @param {number} [position=string.length] The position to search up to. 20010 * @returns {boolean} Returns `true` if `string` ends with `target`, 20011 * else `false`. 20012 * @example 20013 * 20014 * _.endsWith('abc', 'c'); 20015 * // => true 20016 * 20017 * _.endsWith('abc', 'b'); 20018 * // => false 20019 * 20020 * _.endsWith('abc', 'b', 2); 20021 * // => true 20022 */ 20023 function endsWith(string, target, position) { 20024 string = toString(string); 20025 target = baseToString(target); 20026 20027 var length = string.length; 20028 position = position === undefined 20029 ? length 20030 : baseClamp(toInteger(position), 0, length); 20031 20032 var end = position; 20033 position -= target.length; 20034 return position >= 0 && string.slice(position, end) == target; 20035 } 20036 20037 /** 20038 * Converts the characters "&", "<", ">", '"', and "'" in `string` to their 20039 * corresponding HTML entities. 20040 * 20041 * **Note:** No other characters are escaped. To escape additional 20042 * characters use a third-party library like [_he_](https://mths.be/he). 20043 * 20044 * Though the ">" character is escaped for symmetry, characters like 20045 * ">" and "/" don't need escaping in HTML and have no special meaning 20046 * unless they're part of a tag or unquoted attribute value. See 20047 * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) 20048 * (under "semi-related fun fact") for more details. 20049 * 20050 * When working with HTML you should always 20051 * [quote attribute values](http://wonko.com/post/html-escaping) to reduce 20052 * XSS vectors. 20053 * 20054 * @static 20055 * @since 0.1.0 20056 * @memberOf _ 20057 * @category String 20058 * @param {string} [string=''] The string to escape. 20059 * @returns {string} Returns the escaped string. 20060 * @example 20061 * 20062 * _.escape('fred, barney, & pebbles'); 20063 * // => 'fred, barney, & pebbles' 20064 */ 20065 function escape(string) { 20066 string = toString(string); 20067 return (string && reHasUnescapedHtml.test(string)) 20068 ? string.replace(reUnescapedHtml, escapeHtmlChar) 20069 : string; 20070 } 20071 20072 /** 20073 * Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+", 20074 * "?", "(", ")", "[", "]", "{", "}", and "|" in `string`. 20075 * 20076 * @static 20077 * @memberOf _ 20078 * @since 3.0.0 20079 * @category String 20080 * @param {string} [string=''] The string to escape. 20081 * @returns {string} Returns the escaped string. 20082 * @example 20083 * 20084 * _.escapeRegExp('[lodash](https://lodash.com/)'); 20085 * // => '\[lodash\]\(https://lodash\.com/\)' 20086 */ 20087 function escapeRegExp(string) {
vendor: 4,658 bytes, lines 20088-20257
20088 string = toString(string); 20089 return (string && reHasRegExpChar.test(string)) 20090 ? string.replace(reRegExpChar, '\\$&') 20091 : string; 20092 } 20093 20094 /** 20095 * Converts `string` to 20096 * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles). 20097 * 20098 * @static 20099 * @memberOf _ 20100 * @since 3.0.0 20101 * @category String 20102 * @param {string} [string=''] The string to convert. 20103 * @returns {string} Returns the kebab cased string. 20104 * @example 20105 * 20106 * _.kebabCase('Foo Bar'); 20107 * // => 'foo-bar' 20108 * 20109 * _.kebabCase('fooBar'); 20110 * // => 'foo-bar' 20111 * 20112 * _.kebabCase('__FOO_BAR__'); 20113 * // => 'foo-bar' 20114 */ 20115 var kebabCase = createCompounder(function(result, word, index) { 20116 return result + (index ? '-' : '') + word.toLowerCase(); 20117 }); 20118 20119 /** 20120 * Converts `string`, as space separated words, to lower case. 20121 * 20122 * @static 20123 * @memberOf _ 20124 * @since 4.0.0 20125 * @category String 20126 * @param {string} [string=''] The string to convert. 20127 * @returns {string} Returns the lower cased string. 20128 * @example 20129 * 20130 * _.lowerCase('--Foo-Bar--'); 20131 * // => 'foo bar' 20132 * 20133 * _.lowerCase('fooBar'); 20134 * // => 'foo bar' 20135 * 20136 * _.lowerCase('__FOO_BAR__'); 20137 * // => 'foo bar' 20138 */ 20139 var lowerCase = createCompounder(function(result, word, index) { 20140 return result + (index ? ' ' : '') + word.toLowerCase(); 20141 }); 20142 20143 /** 20144 * Converts the first character of `string` to lower case. 20145 * 20146 * @static 20147 * @memberOf _ 20148 * @since 4.0.0 20149 * @category String 20150 * @param {string} [string=''] The string to convert. 20151 * @returns {string} Returns the converted string. 20152 * @example 20153 * 20154 * _.lowerFirst('Fred'); 20155 * // => 'fred' 20156 * 20157 * _.lowerFirst('FRED'); 20158 * // => 'fRED' 20159 */ 20160 var lowerFirst = createCaseFirst('toLowerCase'); 20161 20162 /** 20163 * Pads `string` on the left and right sides if it's shorter than `length`. 20164 * Padding characters are truncated if they can't be evenly divided by `length`. 20165 * 20166 * @static 20167 * @memberOf _ 20168 * @since 3.0.0 20169 * @category String 20170 * @param {string} [string=''] The string to pad. 20171 * @param {number} [length=0] The padding length. 20172 * @param {string} [chars=' '] The string used as padding. 20173 * @returns {string} Returns the padded string. 20174 * @example 20175 * 20176 * _.pad('abc', 8); 20177 * // => ' abc ' 20178 * 20179 * _.pad('abc', 8, '_-'); 20180 * // => '_-abc_-_' 20181 * 20182 * _.pad('abc', 3); 20183 * // => 'abc' 20184 */ 20185 function pad(string, length, chars) { 20186 string = toString(string); 20187 length = toInteger(length); 20188 20189 var strLength = length ? stringSize(string) : 0; 20190 if (!length || strLength >= length) { 20191 return string; 20192 } 20193 var mid = (length - strLength) / 2; 20194 return ( 20195 createPadding(nativeFloor(mid), chars) + 20196 string + 20197 createPadding(nativeCeil(mid), chars) 20198 ); 20199 } 20200 20201 /** 20202 * Pads `string` on the right side if it's shorter than `length`. Padding 20203 * characters are truncated if they exceed `length`. 20204 * 20205 * @static 20206 * @memberOf _ 20207 * @since 4.0.0 20208 * @category String 20209 * @param {string} [string=''] The string to pad. 20210 * @param {number} [length=0] The padding length. 20211 * @param {string} [chars=' '] The string used as padding. 20212 * @returns {string} Returns the padded string. 20213 * @example 20214 * 20215 * _.padEnd('abc', 6); 20216 * // => 'abc ' 20217 * 20218 * _.padEnd('abc', 6, '_-'); 20219 * // => 'abc_-_' 20220 * 20221 * _.padEnd('abc', 3); 20222 * // => 'abc' 20223 */ 20224 function padEnd(string, length, chars) { 20225 string = toString(string); 20226 length = toInteger(length); 20227 20228 var strLength = length ? stringSize(string) : 0; 20229 return (length && strLength < length) 20230 ? (string + createPadding(length - strLength, chars)) 20231 : string; 20232 } 20233 20234 /** 20235 * Pads `string` on the left side if it's shorter than `length`. Padding 20236 * characters are truncated if they exceed `length`. 20237 * 20238 * @static 20239 * @memberOf _ 20240 * @since 4.0.0 20241 * @category String 20242 * @param {string} [string=''] The string to pad. 20243 * @param {number} [length=0] The padding length. 20244 * @param {string} [chars=' '] The string used as padding. 20245 * @returns {string} Returns the padded string. 20246 * @example 20247 * 20248 * _.padStart('abc', 6); 20249 * // => ' abc' 20250 * 20251 * _.padStart('abc', 6, '_-'); 20252 * // => '_-_abc' 20253 * 20254 * _.padStart('abc', 3); 20255 * // => 'abc' 20256 */ 20257 function padStart(string, length, chars) {
vendor: 29,827 bytes, lines 20258-21155
20258 string = toString(string); 20259 length = toInteger(length); 20260 20261 var strLength = length ? stringSize(string) : 0; 20262 return (length && strLength < length) 20263 ? (createPadding(length - strLength, chars) + string) 20264 : string; 20265 } 20266 20267 /** 20268 * Converts `string` to an integer of the specified radix. If `radix` is 20269 * `undefined` or `0`, a `radix` of `10` is used unless `value` is a 20270 * hexadecimal, in which case a `radix` of `16` is used. 20271 * 20272 * **Note:** This method aligns with the 20273 * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`. 20274 * 20275 * @static 20276 * @memberOf _ 20277 * @since 1.1.0 20278 * @category String 20279 * @param {string} string The string to convert. 20280 * @param {number} [radix=10] The radix to interpret `value` by. 20281 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 20282 * @returns {number} Returns the converted integer. 20283 * @example 20284 * 20285 * _.parseInt('08'); 20286 * // => 8 20287 * 20288 * _.map(['6', '08', '10'], _.parseInt); 20289 * // => [6, 8, 10] 20290 */ 20291 function parseInt(string, radix, guard) { 20292 if (guard || radix == null) { 20293 radix = 0; 20294 } else if (radix) { 20295 radix = +radix; 20296 } 20297 return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0); 20298 } 20299 20300 /** 20301 * Repeats the given string `n` times. 20302 * 20303 * @static 20304 * @memberOf _ 20305 * @since 3.0.0 20306 * @category String 20307 * @param {string} [string=''] The string to repeat. 20308 * @param {number} [n=1] The number of times to repeat the string. 20309 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 20310 * @returns {string} Returns the repeated string. 20311 * @example 20312 * 20313 * _.repeat('*', 3); 20314 * // => '***' 20315 * 20316 * _.repeat('abc', 2); 20317 * // => 'abcabc' 20318 * 20319 * _.repeat('abc', 0); 20320 * // => '' 20321 */ 20322 function repeat(string, n, guard) { 20323 if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) { 20324 n = 1; 20325 } else { 20326 n = toInteger(n); 20327 } 20328 return baseRepeat(toString(string), n); 20329 } 20330 20331 /** 20332 * Replaces matches for `pattern` in `string` with `replacement`. 20333 * 20334 * **Note:** This method is based on 20335 * [`String#replace`](https://mdn.io/String/replace). 20336 * 20337 * @static 20338 * @memberOf _ 20339 * @since 4.0.0 20340 * @category String 20341 * @param {string} [string=''] The string to modify. 20342 * @param {RegExp|string} pattern The pattern to replace. 20343 * @param {Function|string} replacement The match replacement. 20344 * @returns {string} Returns the modified string. 20345 * @example 20346 * 20347 * _.replace('Hi Fred', 'Fred', 'Barney'); 20348 * // => 'Hi Barney' 20349 */ 20350 function replace() { 20351 var args = arguments, 20352 string = toString(args[0]); 20353 20354 return args.length < 3 ? string : string.replace(args[1], args[2]); 20355 } 20356 20357 /** 20358 * Converts `string` to 20359 * [snake case](https://en.wikipedia.org/wiki/Snake_case). 20360 * 20361 * @static 20362 * @memberOf _ 20363 * @since 3.0.0 20364 * @category String 20365 * @param {string} [string=''] The string to convert. 20366 * @returns {string} Returns the snake cased string. 20367 * @example 20368 * 20369 * _.snakeCase('Foo Bar'); 20370 * // => 'foo_bar' 20371 * 20372 * _.snakeCase('fooBar'); 20373 * // => 'foo_bar' 20374 * 20375 * _.snakeCase('--FOO-BAR--'); 20376 * // => 'foo_bar' 20377 */ 20378 var snakeCase = createCompounder(function(result, word, index) { 20379 return result + (index ? '_' : '') + word.toLowerCase(); 20380 }); 20381 20382 /** 20383 * Splits `string` by `separator`. 20384 * 20385 * **Note:** This method is based on 20386 * [`String#split`](https://mdn.io/String/split). 20387 * 20388 * @static 20389 * @memberOf _ 20390 * @since 4.0.0 20391 * @category String 20392 * @param {string} [string=''] The string to split. 20393 * @param {RegExp|string} separator The separator pattern to split by. 20394 * @param {number} [limit] The length to truncate results to. 20395 * @returns {Array} Returns the string segments. 20396 * @example 20397 * 20398 * _.split('a-b-c', '-', 2); 20399 * // => ['a', 'b'] 20400 */ 20401 function split(string, separator, limit) { 20402 if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) { 20403 separator = limit = undefined; 20404 } 20405 limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0; 20406 if (!limit) { 20407 return []; 20408 } 20409 string = toString(string); 20410 if (string && ( 20411 typeof separator == 'string' || 20412 (separator != null && !isRegExp(separator)) 20413 )) { 20414 separator = baseToString(separator); 20415 if (!separator && hasUnicode(string)) { 20416 return castSlice(stringToArray(string), 0, limit); 20417 } 20418 } 20419 return string.split(separator, limit); 20420 } 20421 20422 /** 20423 * Converts `string` to 20424 * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage). 20425 * 20426 * @static 20427 * @memberOf _ 20428 * @since 3.1.0 20429 * @category String 20430 * @param {string} [string=''] The string to convert. 20431 * @returns {string} Returns the start cased string. 20432 * @example 20433 * 20434 * _.startCase('--foo-bar--'); 20435 * // => 'Foo Bar' 20436 * 20437 * _.startCase('fooBar'); 20438 * // => 'Foo Bar' 20439 * 20440 * _.startCase('__FOO_BAR__'); 20441 * // => 'FOO BAR' 20442 */ 20443 var startCase = createCompounder(function(result, word, index) { 20444 return result + (index ? ' ' : '') + upperFirst(word); 20445 }); 20446 20447 /** 20448 * Checks if `string` starts with the given target string. 20449 * 20450 * @static 20451 * @memberOf _ 20452 * @since 3.0.0 20453 * @category String 20454 * @param {string} [string=''] The string to inspect. 20455 * @param {string} [target] The string to search for. 20456 * @param {number} [position=0] The position to search from. 20457 * @returns {boolean} Returns `true` if `string` starts with `target`, 20458 * else `false`. 20459 * @example 20460 * 20461 * _.startsWith('abc', 'a'); 20462 * // => true 20463 * 20464 * _.startsWith('abc', 'b'); 20465 * // => false 20466 * 20467 * _.startsWith('abc', 'b', 1); 20468 * // => true 20469 */ 20470 function startsWith(string, target, position) { 20471 string = toString(string); 20472 position = position == null 20473 ? 0 20474 : baseClamp(toInteger(position), 0, string.length); 20475 20476 target = baseToString(target); 20477 return string.slice(position, position + target.length) == target; 20478 } 20479 20480 /** 20481 * Creates a compiled template function that can interpolate data properties 20482 * in "interpolate" delimiters, HTML-escape interpolated data properties in 20483 * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data 20484 * properties may be accessed as free variables in the template. If a setting 20485 * object is given, it takes precedence over `_.templateSettings` values. 20486 * 20487 * **Note:** In the development build `_.template` utilizes 20488 * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl) 20489 * for easier debugging. 20490 * 20491 * For more information on precompiling templates see 20492 * [lodash's custom builds documentation](https://lodash.com/custom-builds). 20493 * 20494 * For more information on Chrome extension sandboxes see 20495 * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval). 20496 * 20497 * @static 20498 * @since 0.1.0 20499 * @memberOf _ 20500 * @category String 20501 * @param {string} [string=''] The template string. 20502 * @param {Object} [options={}] The options object. 20503 * @param {RegExp} [options.escape=_.templateSettings.escape] 20504 * The HTML "escape" delimiter. 20505 * @param {RegExp} [options.evaluate=_.templateSettings.evaluate] 20506 * The "evaluate" delimiter. 20507 * @param {Object} [options.imports=_.templateSettings.imports] 20508 * An object to import into the template as free variables. 20509 * @param {RegExp} [options.interpolate=_.templateSettings.interpolate] 20510 * The "interpolate" delimiter. 20511 * @param {string} [options.sourceURL='lodash.templateSources[n]'] 20512 * The sourceURL of the compiled template. 20513 * @param {string} [options.variable='obj'] 20514 * The data object variable name. 20515 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 20516 * @returns {Function} Returns the compiled template function. 20517 * @example 20518 * 20519 * // Use the "interpolate" delimiter to create a compiled template. 20520 * var compiled = _.template('hello <%= user %>!'); 20521 * compiled({ 'user': 'fred' }); 20522 * // => 'hello fred!' 20523 * 20524 * // Use the HTML "escape" delimiter to escape data property values. 20525 * var compiled = _.template('<b><%- value %></b>'); 20526 * compiled({ 'value': '<script>' }); 20527 * // => '<b><script></b>' 20528 * 20529 * // Use the "evaluate" delimiter to execute JavaScript and generate HTML. 20530 * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>'); 20531 * compiled({ 'users': ['fred', 'barney'] }); 20532 * // => '<li>fred</li><li>barney</li>' 20533 * 20534 * // Use the internal `print` function in "evaluate" delimiters. 20535 * var compiled = _.template('<% print("hello " + user); %>!'); 20536 * compiled({ 'user': 'barney' }); 20537 * // => 'hello barney!' 20538 * 20539 * // Use the ES template literal delimiter as an "interpolate" delimiter. 20540 * // Disable support by replacing the "interpolate" delimiter. 20541 * var compiled = _.template('hello ${ user }!'); 20542 * compiled({ 'user': 'pebbles' }); 20543 * // => 'hello pebbles!' 20544 * 20545 * // Use backslashes to treat delimiters as plain text. 20546 * var compiled = _.template('<%= "\\<%- value %\\>" %>'); 20547 * compiled({ 'value': 'ignored' }); 20548 * // => '<%- value %>' 20549 * 20550 * // Use the `imports` option to import `jQuery` as `jq`. 20551 * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>'; 20552 * var compiled = _.template(text, { 'imports': { 'jq': jQuery } }); 20553 * compiled({ 'users': ['fred', 'barney'] }); 20554 * // => '<li>fred</li><li>barney</li>' 20555 * 20556 * // Use the `sourceURL` option to specify a custom sourceURL for the template. 20557 * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' }); 20558 * compiled(data); 20559 * // => Find the source of "greeting.jst" under the Sources tab or Resources panel of the web inspector. 20560 * 20561 * // Use the `variable` option to ensure a with-statement isn't used in the compiled template. 20562 * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' }); 20563 * compiled.source; 20564 * // => function(data) { 20565 * // var __t, __p = ''; 20566 * // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!'; 20567 * // return __p; 20568 * // } 20569 * 20570 * // Use custom template delimiters. 20571 * _.templateSettings.interpolate = /{{([\s\S]+?)}}/g; 20572 * var compiled = _.template('hello {{ user }}!'); 20573 * compiled({ 'user': 'mustache' }); 20574 * // => 'hello mustache!' 20575 * 20576 * // Use the `source` property to inline compiled templates for meaningful 20577 * // line numbers in error messages and stack traces. 20578 * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\ 20579 * var JST = {\ 20580 * "main": ' + _.template(mainText).source + '\ 20581 * };\ 20582 * '); 20583 */ 20584 function template(string, options, guard) { 20585 // Based on John Resig's `tmpl` implementation 20586 // (http://ejohn.org/blog/javascript-micro-templating/) 20587 // and Laura Doktorova's doT.js (https://github.com/olado/doT). 20588 var settings = lodash.templateSettings; 20589 20590 if (guard && isIterateeCall(string, options, guard)) { 20591 options = undefined; 20592 } 20593 string = toString(string); 20594 options = assignInWith({}, options, settings, customDefaultsAssignIn); 20595 20596 var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn), 20597 importsKeys = keys(imports), 20598 importsValues = baseValues(imports, importsKeys); 20599 20600 var isEscaping, 20601 isEvaluating, 20602 index = 0, 20603 interpolate = options.interpolate || reNoMatch, 20604 source = "__p += '"; 20605 20606 // Compile the regexp to match each delimiter. 20607 var reDelimiters = RegExp( 20608 (options.escape || reNoMatch).source + '|' + 20609 interpolate.source + '|' + 20610 (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' + 20611 (options.evaluate || reNoMatch).source + '|$' 20612 , 'g'); 20613 20614 // Use a sourceURL for easier debugging. 20615 // The sourceURL gets injected into the source that's eval-ed, so be careful 20616 // to normalize all kinds of whitespace, so e.g. newlines (and unicode versions of it) can't sneak in 20617 // and escape the comment, thus injecting code that gets evaled. 20618 var sourceURL = '//# sourceURL=' + 20619 (hasOwnProperty.call(options, 'sourceURL') 20620 ? (options.sourceURL + '').replace(/\s/g, ' ') 20621 : ('lodash.templateSources[' + (++templateCounter) + ']') 20622 ) + '\n'; 20623 20624 string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) { 20625 interpolateValue || (interpolateValue = esTemplateValue); 20626 20627 // Escape characters that can't be included in string literals. 20628 source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar); 20629 20630 // Replace delimiters with snippets. 20631 if (escapeValue) { 20632 isEscaping = true; 20633 source += "' +\n__e(" + escapeValue + ") +\n'"; 20634 } 20635 if (evaluateValue) { 20636 isEvaluating = true; 20637 source += "';\n" + evaluateValue + ";\n__p += '"; 20638 } 20639 if (interpolateValue) { 20640 source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'"; 20641 } 20642 index = offset + match.length; 20643 20644 // The JS engine embedded in Adobe products needs `match` returned in 20645 // order to produce the correct `offset` value. 20646 return match; 20647 }); 20648 20649 source += "';\n"; 20650 20651 // If `variable` is not specified wrap a with-statement around the generated 20652 // code to add the data object to the top of the scope chain. 20653 var variable = hasOwnProperty.call(options, 'variable') && options.variable; 20654 if (!variable) { 20655 source = 'with (obj) {\n' + source + '\n}\n'; 20656 } 20657 // Throw an error if a forbidden character was found in `variable`, to prevent 20658 // potential command injection attacks. 20659 else if (reForbiddenIdentifierChars.test(variable)) { 20660 throw new Error(INVALID_TEMPL_VAR_ERROR_TEXT); 20661 } 20662 20663 // Cleanup code by stripping empty strings. 20664 source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source) 20665 .replace(reEmptyStringMiddle, '$1') 20666 .replace(reEmptyStringTrailing, '$1;'); 20667 20668 // Frame code as the function body. 20669 source = 'function(' + (variable || 'obj') + ') {\n' + 20670 (variable 20671 ? '' 20672 : 'obj || (obj = {});\n' 20673 ) + 20674 "var __t, __p = ''" + 20675 (isEscaping 20676 ? ', __e = _.escape' 20677 : '' 20678 ) + 20679 (isEvaluating 20680 ? ', __j = Array.prototype.join;\n' + 20681 "function print() { __p += __j.call(arguments, '') }\n" 20682 : ';\n' 20683 ) + 20684 source + 20685 'return __p\n}'; 20686 20687 var result = attempt(function() { 20688 return Function(importsKeys, sourceURL + 'return ' + source) 20689 .apply(undefined, importsValues); 20690 }); 20691 20692 // Provide the compiled function's source by its `toString` method or 20693 // the `source` property as a convenience for inlining compiled templates. 20694 result.source = source; 20695 if (isError(result)) { 20696 throw result; 20697 } 20698 return result; 20699 } 20700 20701 /** 20702 * Converts `string`, as a whole, to lower case just like 20703 * [String#toLowerCase](https://mdn.io/toLowerCase). 20704 * 20705 * @static 20706 * @memberOf _ 20707 * @since 4.0.0 20708 * @category String 20709 * @param {string} [string=''] The string to convert. 20710 * @returns {string} Returns the lower cased string. 20711 * @example 20712 * 20713 * _.toLower('--Foo-Bar--'); 20714 * // => '--foo-bar--' 20715 * 20716 * _.toLower('fooBar'); 20717 * // => 'foobar' 20718 * 20719 * _.toLower('__FOO_BAR__'); 20720 * // => '__foo_bar__' 20721 */ 20722 function toLower(value) { 20723 return toString(value).toLowerCase(); 20724 } 20725 20726 /** 20727 * Converts `string`, as a whole, to upper case just like 20728 * [String#toUpperCase](https://mdn.io/toUpperCase). 20729 * 20730 * @static 20731 * @memberOf _ 20732 * @since 4.0.0 20733 * @category String 20734 * @param {string} [string=''] The string to convert. 20735 * @returns {string} Returns the upper cased string. 20736 * @example 20737 * 20738 * _.toUpper('--foo-bar--'); 20739 * // => '--FOO-BAR--' 20740 * 20741 * _.toUpper('fooBar'); 20742 * // => 'FOOBAR' 20743 * 20744 * _.toUpper('__foo_bar__'); 20745 * // => '__FOO_BAR__' 20746 */ 20747 function toUpper(value) { 20748 return toString(value).toUpperCase(); 20749 } 20750 20751 /** 20752 * Removes leading and trailing whitespace or specified characters from `string`. 20753 * 20754 * @static 20755 * @memberOf _ 20756 * @since 3.0.0 20757 * @category String 20758 * @param {string} [string=''] The string to trim. 20759 * @param {string} [chars=whitespace] The characters to trim. 20760 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 20761 * @returns {string} Returns the trimmed string. 20762 * @example 20763 * 20764 * _.trim(' abc '); 20765 * // => 'abc' 20766 * 20767 * _.trim('-_-abc-_-', '_-'); 20768 * // => 'abc' 20769 * 20770 * _.map([' foo ', ' bar '], _.trim); 20771 * // => ['foo', 'bar'] 20772 */ 20773 function trim(string, chars, guard) { 20774 string = toString(string); 20775 if (string && (guard || chars === undefined)) { 20776 return baseTrim(string); 20777 } 20778 if (!string || !(chars = baseToString(chars))) { 20779 return string; 20780 } 20781 var strSymbols = stringToArray(string), 20782 chrSymbols = stringToArray(chars), 20783 start = charsStartIndex(strSymbols, chrSymbols), 20784 end = charsEndIndex(strSymbols, chrSymbols) + 1; 20785 20786 return castSlice(strSymbols, start, end).join(''); 20787 } 20788 20789 /** 20790 * Removes trailing whitespace or specified characters from `string`. 20791 * 20792 * @static 20793 * @memberOf _ 20794 * @since 4.0.0 20795 * @category String 20796 * @param {string} [string=''] The string to trim. 20797 * @param {string} [chars=whitespace] The characters to trim. 20798 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 20799 * @returns {string} Returns the trimmed string. 20800 * @example 20801 * 20802 * _.trimEnd(' abc '); 20803 * // => ' abc' 20804 * 20805 * _.trimEnd('-_-abc-_-', '_-'); 20806 * // => '-_-abc' 20807 */ 20808 function trimEnd(string, chars, guard) { 20809 string = toString(string); 20810 if (string && (guard || chars === undefined)) { 20811 return string.slice(0, trimmedEndIndex(string) + 1); 20812 } 20813 if (!string || !(chars = baseToString(chars))) { 20814 return string; 20815 } 20816 var strSymbols = stringToArray(string), 20817 end = charsEndIndex(strSymbols, stringToArray(chars)) + 1; 20818 20819 return castSlice(strSymbols, 0, end).join(''); 20820 } 20821 20822 /** 20823 * Removes leading whitespace or specified characters from `string`. 20824 * 20825 * @static 20826 * @memberOf _ 20827 * @since 4.0.0 20828 * @category String 20829 * @param {string} [string=''] The string to trim. 20830 * @param {string} [chars=whitespace] The characters to trim. 20831 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 20832 * @returns {string} Returns the trimmed string. 20833 * @example 20834 * 20835 * _.trimStart(' abc '); 20836 * // => 'abc ' 20837 * 20838 * _.trimStart('-_-abc-_-', '_-'); 20839 * // => 'abc-_-' 20840 */ 20841 function trimStart(string, chars, guard) { 20842 string = toString(string); 20843 if (string && (guard || chars === undefined)) { 20844 return string.replace(reTrimStart, ''); 20845 } 20846 if (!string || !(chars = baseToString(chars))) { 20847 return string; 20848 } 20849 var strSymbols = stringToArray(string), 20850 start = charsStartIndex(strSymbols, stringToArray(chars)); 20851 20852 return castSlice(strSymbols, start).join(''); 20853 } 20854 20855 /** 20856 * Truncates `string` if it's longer than the given maximum string length. 20857 * The last characters of the truncated string are replaced with the omission 20858 * string which defaults to "...". 20859 * 20860 * @static 20861 * @memberOf _ 20862 * @since 4.0.0 20863 * @category String 20864 * @param {string} [string=''] The string to truncate. 20865 * @param {Object} [options={}] The options object. 20866 * @param {number} [options.length=30] The maximum string length. 20867 * @param {string} [options.omission='...'] The string to indicate text is omitted. 20868 * @param {RegExp|string} [options.separator] The separator pattern to truncate to. 20869 * @returns {string} Returns the truncated string. 20870 * @example 20871 * 20872 * _.truncate('hi-diddly-ho there, neighborino'); 20873 * // => 'hi-diddly-ho there, neighbo...' 20874 * 20875 * _.truncate('hi-diddly-ho there, neighborino', { 20876 * 'length': 24, 20877 * 'separator': ' ' 20878 * }); 20879 * // => 'hi-diddly-ho there,...' 20880 * 20881 * _.truncate('hi-diddly-ho there, neighborino', { 20882 * 'length': 24, 20883 * 'separator': /,? +/ 20884 * }); 20885 * // => 'hi-diddly-ho there...' 20886 * 20887 * _.truncate('hi-diddly-ho there, neighborino', { 20888 * 'omission': ' [...]' 20889 * }); 20890 * // => 'hi-diddly-ho there, neig [...]' 20891 */ 20892 function truncate(string, options) { 20893 var length = DEFAULT_TRUNC_LENGTH, 20894 omission = DEFAULT_TRUNC_OMISSION; 20895 20896 if (isObject(options)) { 20897 var separator = 'separator' in options ? options.separator : separator; 20898 length = 'length' in options ? toInteger(options.length) : length; 20899 omission = 'omission' in options ? baseToString(options.omission) : omission; 20900 } 20901 string = toString(string); 20902 20903 var strLength = string.length; 20904 if (hasUnicode(string)) { 20905 var strSymbols = stringToArray(string); 20906 strLength = strSymbols.length; 20907 } 20908 if (length >= strLength) { 20909 return string; 20910 } 20911 var end = length - stringSize(omission); 20912 if (end < 1) { 20913 return omission; 20914 } 20915 var result = strSymbols 20916 ? castSlice(strSymbols, 0, end).join('') 20917 : string.slice(0, end); 20918 20919 if (separator === undefined) { 20920 return result + omission; 20921 } 20922 if (strSymbols) { 20923 end += (result.length - end); 20924 } 20925 if (isRegExp(separator)) { 20926 if (string.slice(end).search(separator)) { 20927 var match, 20928 substring = result; 20929 20930 if (!separator.global) { 20931 separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g'); 20932 } 20933 separator.lastIndex = 0; 20934 while ((match = separator.exec(substring))) { 20935 var newEnd = match.index; 20936 } 20937 result = result.slice(0, newEnd === undefined ? end : newEnd); 20938 } 20939 } else if (string.indexOf(baseToString(separator), end) != end) { 20940 var index = result.lastIndexOf(separator); 20941 if (index > -1) { 20942 result = result.slice(0, index); 20943 } 20944 } 20945 return result + omission; 20946 } 20947 20948 /** 20949 * The inverse of `_.escape`; this method converts the HTML entities 20950 * `&`, `<`, `>`, `"`, and `'` in `string` to 20951 * their corresponding characters. 20952 * 20953 * **Note:** No other HTML entities are unescaped. To unescape additional 20954 * HTML entities use a third-party library like [_he_](https://mths.be/he). 20955 * 20956 * @static 20957 * @memberOf _ 20958 * @since 0.6.0 20959 * @category String 20960 * @param {string} [string=''] The string to unescape. 20961 * @returns {string} Returns the unescaped string. 20962 * @example 20963 * 20964 * _.unescape('fred, barney, & pebbles'); 20965 * // => 'fred, barney, & pebbles' 20966 */ 20967 function unescape(string) { 20968 string = toString(string); 20969 return (string && reHasEscapedHtml.test(string)) 20970 ? string.replace(reEscapedHtml, unescapeHtmlChar) 20971 : string; 20972 } 20973 20974 /** 20975 * Converts `string`, as space separated words, to upper case. 20976 * 20977 * @static 20978 * @memberOf _ 20979 * @since 4.0.0 20980 * @category String 20981 * @param {string} [string=''] The string to convert. 20982 * @returns {string} Returns the upper cased string. 20983 * @example 20984 * 20985 * _.upperCase('--foo-bar'); 20986 * // => 'FOO BAR' 20987 * 20988 * _.upperCase('fooBar'); 20989 * // => 'FOO BAR' 20990 * 20991 * _.upperCase('__foo_bar__'); 20992 * // => 'FOO BAR' 20993 */ 20994 var upperCase = createCompounder(function(result, word, index) { 20995 return result + (index ? ' ' : '') + word.toUpperCase(); 20996 }); 20997 20998 /** 20999 * Converts the first character of `string` to upper case. 21000 * 21001 * @static 21002 * @memberOf _ 21003 * @since 4.0.0 21004 * @category String 21005 * @param {string} [string=''] The string to convert. 21006 * @returns {string} Returns the converted string. 21007 * @example 21008 * 21009 * _.upperFirst('fred'); 21010 * // => 'Fred' 21011 * 21012 * _.upperFirst('FRED'); 21013 * // => 'FRED' 21014 */ 21015 var upperFirst = createCaseFirst('toUpperCase'); 21016 21017 /** 21018 * Splits `string` into an array of its words. 21019 * 21020 * @static 21021 * @memberOf _ 21022 * @since 3.0.0 21023 * @category String 21024 * @param {string} [string=''] The string to inspect. 21025 * @param {RegExp|string} [pattern] The pattern to match words. 21026 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. 21027 * @returns {Array} Returns the words of `string`. 21028 * @example 21029 * 21030 * _.words('fred, barney, & pebbles'); 21031 * // => ['fred', 'barney', 'pebbles'] 21032 * 21033 * _.words('fred, barney, & pebbles', /[^, ]+/g); 21034 * // => ['fred', 'barney', '&', 'pebbles'] 21035 */ 21036 function words(string, pattern, guard) { 21037 string = toString(string); 21038 pattern = guard ? undefined : pattern; 21039 21040 if (pattern === undefined) { 21041 return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string); 21042 } 21043 return string.match(pattern) || []; 21044 } 21045 21046 /*------------------------------------------------------------------------*/ 21047 21048 /** 21049 * Attempts to invoke `func`, returning either the result or the caught error 21050 * object. Any additional arguments are provided to `func` when it's invoked. 21051 * 21052 * @static 21053 * @memberOf _ 21054 * @since 3.0.0 21055 * @category Util 21056 * @param {Function} func The function to attempt. 21057 * @param {...*} [args] The arguments to invoke `func` with. 21058 * @returns {*} Returns the `func` result or error object. 21059 * @example 21060 * 21061 * // Avoid throwing errors for invalid selectors. 21062 * var elements = _.attempt(function(selector) { 21063 * return document.querySelectorAll(selector); 21064 * }, '>_>'); 21065 * 21066 * if (_.isError(elements)) { 21067 * elements = []; 21068 * } 21069 */ 21070 var attempt = baseRest(function(func, args) { 21071 try { 21072 return apply(func, undefined, args); 21073 } catch (e) { 21074 return isError(e) ? e : new Error(e); 21075 } 21076 }); 21077 21078 /** 21079 * Binds methods of an object to the object itself, overwriting the existing 21080 * method. 21081 * 21082 * **Note:** This method doesn't set the "length" property of bound functions. 21083 * 21084 * @static 21085 * @since 0.1.0 21086 * @memberOf _ 21087 * @category Util 21088 * @param {Object} object The object to bind and assign the bound methods to. 21089 * @param {...(string|string[])} methodNames The object method names to bind. 21090 * @returns {Object} Returns `object`. 21091 * @example 21092 * 21093 * var view = { 21094 * 'label': 'docs', 21095 * 'click': function() { 21096 * console.log('clicked ' + this.label); 21097 * } 21098 * }; 21099 * 21100 * _.bindAll(view, ['click']); 21101 * jQuery(element).on('click', view.click); 21102 * // => Logs 'clicked docs' when clicked. 21103 */ 21104 var bindAll = flatRest(function(object, methodNames) { 21105 arrayEach(methodNames, function(key) { 21106 key = toKey(key); 21107 baseAssignValue(object, key, bind(object[key], object)); 21108 }); 21109 return object; 21110 }); 21111 21112 /** 21113 * Creates a function that iterates over `pairs` and invokes the corresponding 21114 * function of the first predicate to return truthy. The predicate-function 21115 * pairs are invoked with the `this` binding and arguments of the created 21116 * function. 21117 * 21118 * @static 21119 * @memberOf _ 21120 * @since 4.0.0 21121 * @category Util 21122 * @param {Array} pairs The predicate-function pairs. 21123 * @returns {Function} Returns the new composite function. 21124 * @example 21125 * 21126 * var func = _.cond([ 21127 * [_.matches({ 'a': 1 }), _.constant('matches A')], 21128 * [_.conforms({ 'b': _.isNumber }), _.constant('matches B')], 21129 * [_.stubTrue, _.constant('no match')] 21130 * ]); 21131 * 21132 * func({ 'a': 1, 'b': 2 }); 21133 * // => 'matches A' 21134 * 21135 * func({ 'a': 0, 'b': 1 }); 21136 * // => 'matches B' 21137 * 21138 * func({ 'a': '1', 'b': '2' }); 21139 * // => 'no match' 21140 */ 21141 function cond(pairs) { 21142 var length = pairs == null ? 0 : pairs.length, 21143 toIteratee = getIteratee(); 21144 21145 pairs = !length ? [] : arrayMap(pairs, function(pair) { 21146 if (typeof pair[1] != 'function') { 21147 throw new TypeError(FUNC_ERROR_TEXT); 21148 } 21149 return [toIteratee(pair[0]), pair[1]]; 21150 }); 21151 21152 return baseRest(function(args) { 21153 var index = -1; 21154 while (++index < length) { 21155 var pair = pairs[index];
vendor: 10,296 bytes, lines 21156-21488
21156 if (apply(pair[0], this, args)) { 21157 return apply(pair[1], this, args); 21158 } 21159 } 21160 }); 21161 } 21162 21163 /** 21164 * Creates a function that invokes the predicate properties of `source` with 21165 * the corresponding property values of a given object, returning `true` if 21166 * all predicates return truthy, else `false`. 21167 * 21168 * **Note:** The created function is equivalent to `_.conformsTo` with 21169 * `source` partially applied. 21170 * 21171 * @static 21172 * @memberOf _ 21173 * @since 4.0.0 21174 * @category Util 21175 * @param {Object} source The object of property predicates to conform to. 21176 * @returns {Function} Returns the new spec function. 21177 * @example 21178 * 21179 * var objects = [ 21180 * { 'a': 2, 'b': 1 }, 21181 * { 'a': 1, 'b': 2 } 21182 * ]; 21183 * 21184 * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } })); 21185 * // => [{ 'a': 1, 'b': 2 }] 21186 */ 21187 function conforms(source) { 21188 return baseConforms(baseClone(source, CLONE_DEEP_FLAG)); 21189 } 21190 21191 /** 21192 * Creates a function that returns `value`. 21193 * 21194 * @static 21195 * @memberOf _ 21196 * @since 2.4.0 21197 * @category Util 21198 * @param {*} value The value to return from the new function. 21199 * @returns {Function} Returns the new constant function. 21200 * @example 21201 * 21202 * var objects = _.times(2, _.constant({ 'a': 1 })); 21203 * 21204 * console.log(objects); 21205 * // => [{ 'a': 1 }, { 'a': 1 }] 21206 * 21207 * console.log(objects[0] === objects[1]); 21208 * // => true 21209 */ 21210 function constant(value) { 21211 return function() { 21212 return value; 21213 }; 21214 } 21215 21216 /** 21217 * Checks `value` to determine whether a default value should be returned in 21218 * its place. The `defaultValue` is returned if `value` is `NaN`, `null`, 21219 * or `undefined`. 21220 * 21221 * @static 21222 * @memberOf _ 21223 * @since 4.14.0 21224 * @category Util 21225 * @param {*} value The value to check. 21226 * @param {*} defaultValue The default value. 21227 * @returns {*} Returns the resolved value. 21228 * @example 21229 * 21230 * _.defaultTo(1, 10); 21231 * // => 1 21232 * 21233 * _.defaultTo(undefined, 10); 21234 * // => 10 21235 */ 21236 function defaultTo(value, defaultValue) { 21237 return (value == null || value !== value) ? defaultValue : value; 21238 } 21239 21240 /** 21241 * Creates a function that returns the result of invoking the given functions 21242 * with the `this` binding of the created function, where each successive 21243 * invocation is supplied the return value of the previous. 21244 * 21245 * @static 21246 * @memberOf _ 21247 * @since 3.0.0 21248 * @category Util 21249 * @param {...(Function|Function[])} [funcs] The functions to invoke. 21250 * @returns {Function} Returns the new composite function. 21251 * @see _.flowRight 21252 * @example 21253 * 21254 * function square(n) { 21255 * return n * n; 21256 * } 21257 * 21258 * var addSquare = _.flow([_.add, square]); 21259 * addSquare(1, 2); 21260 * // => 9 21261 */ 21262 var flow = createFlow(); 21263 21264 /** 21265 * This method is like `_.flow` except that it creates a function that 21266 * invokes the given functions from right to left. 21267 * 21268 * @static 21269 * @since 3.0.0 21270 * @memberOf _ 21271 * @category Util 21272 * @param {...(Function|Function[])} [funcs] The functions to invoke. 21273 * @returns {Function} Returns the new composite function. 21274 * @see _.flow 21275 * @example 21276 * 21277 * function square(n) { 21278 * return n * n; 21279 * } 21280 * 21281 * var addSquare = _.flowRight([square, _.add]); 21282 * addSquare(1, 2); 21283 * // => 9 21284 */ 21285 var flowRight = createFlow(true); 21286 21287 /** 21288 * This method returns the first argument it receives. 21289 * 21290 * @static 21291 * @since 0.1.0 21292 * @memberOf _ 21293 * @category Util 21294 * @param {*} value Any value. 21295 * @returns {*} Returns `value`. 21296 * @example 21297 * 21298 * var object = { 'a': 1 }; 21299 * 21300 * console.log(_.identity(object) === object); 21301 * // => true 21302 */ 21303 function identity(value) { 21304 return value; 21305 } 21306 21307 /** 21308 * Creates a function that invokes `func` with the arguments of the created 21309 * function. If `func` is a property name, the created function returns the 21310 * property value for a given element. If `func` is an array or object, the 21311 * created function returns `true` for elements that contain the equivalent 21312 * source properties, otherwise it returns `false`. 21313 * 21314 * @static 21315 * @since 4.0.0 21316 * @memberOf _ 21317 * @category Util 21318 * @param {*} [func=_.identity] The value to convert to a callback. 21319 * @returns {Function} Returns the callback. 21320 * @example 21321 * 21322 * var users = [ 21323 * { 'user': 'barney', 'age': 36, 'active': true }, 21324 * { 'user': 'fred', 'age': 40, 'active': false } 21325 * ]; 21326 * 21327 * // The `_.matches` iteratee shorthand. 21328 * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true })); 21329 * // => [{ 'user': 'barney', 'age': 36, 'active': true }] 21330 * 21331 * // The `_.matchesProperty` iteratee shorthand. 21332 * _.filter(users, _.iteratee(['user', 'fred'])); 21333 * // => [{ 'user': 'fred', 'age': 40 }] 21334 * 21335 * // The `_.property` iteratee shorthand. 21336 * _.map(users, _.iteratee('user')); 21337 * // => ['barney', 'fred'] 21338 * 21339 * // Create custom iteratee shorthands. 21340 * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) { 21341 * return !_.isRegExp(func) ? iteratee(func) : function(string) { 21342 * return func.test(string); 21343 * }; 21344 * }); 21345 * 21346 * _.filter(['abc', 'def'], /ef/); 21347 * // => ['def'] 21348 */ 21349 function iteratee(func) { 21350 return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG)); 21351 } 21352 21353 /** 21354 * Creates a function that performs a partial deep comparison between a given 21355 * object and `source`, returning `true` if the given object has equivalent 21356 * property values, else `false`. 21357 * 21358 * **Note:** The created function is equivalent to `_.isMatch` with `source` 21359 * partially applied. 21360 * 21361 * Partial comparisons will match empty array and empty object `source` 21362 * values against any array or object value, respectively. See `_.isEqual` 21363 * for a list of supported value comparisons. 21364 * 21365 * **Note:** Multiple values can be checked by combining several matchers 21366 * using `_.overSome` 21367 * 21368 * @static 21369 * @memberOf _ 21370 * @since 3.0.0 21371 * @category Util 21372 * @param {Object} source The object of property values to match. 21373 * @returns {Function} Returns the new spec function. 21374 * @example 21375 * 21376 * var objects = [ 21377 * { 'a': 1, 'b': 2, 'c': 3 }, 21378 * { 'a': 4, 'b': 5, 'c': 6 } 21379 * ]; 21380 * 21381 * _.filter(objects, _.matches({ 'a': 4, 'c': 6 })); 21382 * // => [{ 'a': 4, 'b': 5, 'c': 6 }] 21383 * 21384 * // Checking for several possible values 21385 * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })])); 21386 * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }] 21387 */ 21388 function matches(source) { 21389 return baseMatches(baseClone(source, CLONE_DEEP_FLAG)); 21390 } 21391 21392 /** 21393 * Creates a function that performs a partial deep comparison between the 21394 * value at `path` of a given object to `srcValue`, returning `true` if the 21395 * object value is equivalent, else `false`. 21396 * 21397 * **Note:** Partial comparisons will match empty array and empty object 21398 * `srcValue` values against any array or object value, respectively. See 21399 * `_.isEqual` for a list of supported value comparisons. 21400 * 21401 * **Note:** Multiple values can be checked by combining several matchers 21402 * using `_.overSome` 21403 * 21404 * @static 21405 * @memberOf _ 21406 * @since 3.2.0 21407 * @category Util 21408 * @param {Array|string} path The path of the property to get. 21409 * @param {*} srcValue The value to match. 21410 * @returns {Function} Returns the new spec function. 21411 * @example 21412 * 21413 * var objects = [ 21414 * { 'a': 1, 'b': 2, 'c': 3 }, 21415 * { 'a': 4, 'b': 5, 'c': 6 } 21416 * ]; 21417 * 21418 * _.find(objects, _.matchesProperty('a', 4)); 21419 * // => { 'a': 4, 'b': 5, 'c': 6 } 21420 * 21421 * // Checking for several possible values 21422 * _.filter(objects, _.overSome([_.matchesProperty('a', 1), _.matchesProperty('a', 4)])); 21423 * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }] 21424 */ 21425 function matchesProperty(path, srcValue) { 21426 return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG)); 21427 } 21428 21429 /** 21430 * Creates a function that invokes the method at `path` of a given object. 21431 * Any additional arguments are provided to the invoked method. 21432 * 21433 * @static 21434 * @memberOf _ 21435 * @since 3.7.0 21436 * @category Util 21437 * @param {Array|string} path The path of the method to invoke. 21438 * @param {...*} [args] The arguments to invoke the method with. 21439 * @returns {Function} Returns the new invoker function. 21440 * @example 21441 * 21442 * var objects = [ 21443 * { 'a': { 'b': _.constant(2) } }, 21444 * { 'a': { 'b': _.constant(1) } } 21445 * ]; 21446 * 21447 * _.map(objects, _.method('a.b')); 21448 * // => [2, 1] 21449 * 21450 * _.map(objects, _.method(['a', 'b'])); 21451 * // => [2, 1] 21452 */ 21453 var method = baseRest(function(path, args) { 21454 return function(object) { 21455 return baseInvoke(object, path, args); 21456 }; 21457 }); 21458 21459 /** 21460 * The opposite of `_.method`; this method creates a function that invokes 21461 * the method at a given path of `object`. Any additional arguments are 21462 * provided to the invoked method. 21463 * 21464 * @static 21465 * @memberOf _ 21466 * @since 3.7.0 21467 * @category Util 21468 * @param {Object} object The object to query. 21469 * @param {...*} [args] The arguments to invoke the method with. 21470 * @returns {Function} Returns the new invoker function. 21471 * @example 21472 * 21473 * var array = _.times(3, _.constant), 21474 * object = { 'a': array, 'b': array, 'c': array }; 21475 * 21476 * _.map(['a[2]', 'c[0]'], _.methodOf(object)); 21477 * // => [2, 0] 21478 * 21479 * _.map([['a', '2'], ['c', '0']], _.methodOf(object)); 21480 * // => [2, 0] 21481 */ 21482 var methodOf = baseRest(function(object, args) { 21483 return function(path) { 21484 return baseInvoke(object, path, args); 21485 }; 21486 }); 21487 21488 /**
vendor: 10,734 bytes, lines 21489-21876
21489 * Adds all own enumerable string keyed function properties of a source 21490 * object to the destination object. If `object` is a function, then methods 21491 * are added to its prototype as well. 21492 * 21493 * **Note:** Use `_.runInContext` to create a pristine `lodash` function to 21494 * avoid conflicts caused by modifying the original. 21495 * 21496 * @static 21497 * @since 0.1.0 21498 * @memberOf _ 21499 * @category Util 21500 * @param {Function|Object} [object=lodash] The destination object. 21501 * @param {Object} source The object of functions to add. 21502 * @param {Object} [options={}] The options object. 21503 * @param {boolean} [options.chain=true] Specify whether mixins are chainable. 21504 * @returns {Function|Object} Returns `object`. 21505 * @example 21506 * 21507 * function vowels(string) { 21508 * return _.filter(string, function(v) { 21509 * return /[aeiou]/i.test(v); 21510 * }); 21511 * } 21512 * 21513 * _.mixin({ 'vowels': vowels }); 21514 * _.vowels('fred'); 21515 * // => ['e'] 21516 * 21517 * _('fred').vowels().value(); 21518 * // => ['e'] 21519 * 21520 * _.mixin({ 'vowels': vowels }, { 'chain': false }); 21521 * _('fred').vowels(); 21522 * // => ['e'] 21523 */ 21524 function mixin(object, source, options) { 21525 var props = keys(source), 21526 methodNames = baseFunctions(source, props); 21527 21528 if (options == null && 21529 !(isObject(source) && (methodNames.length || !props.length))) { 21530 options = source; 21531 source = object; 21532 object = this; 21533 methodNames = baseFunctions(source, keys(source)); 21534 } 21535 var chain = !(isObject(options) && 'chain' in options) || !!options.chain, 21536 isFunc = isFunction(object); 21537 21538 arrayEach(methodNames, function(methodName) { 21539 var func = source[methodName]; 21540 object[methodName] = func; 21541 if (isFunc) { 21542 object.prototype[methodName] = function() { 21543 var chainAll = this.__chain__; 21544 if (chain || chainAll) { 21545 var result = object(this.__wrapped__), 21546 actions = result.__actions__ = copyArray(this.__actions__); 21547 21548 actions.push({ 'func': func, 'args': arguments, 'thisArg': object }); 21549 result.__chain__ = chainAll; 21550 return result; 21551 } 21552 return func.apply(object, arrayPush([this.value()], arguments)); 21553 }; 21554 } 21555 }); 21556 21557 return object; 21558 } 21559 21560 /** 21561 * Reverts the `_` variable to its previous value and returns a reference to 21562 * the `lodash` function. 21563 * 21564 * @static 21565 * @since 0.1.0 21566 * @memberOf _ 21567 * @category Util 21568 * @returns {Function} Returns the `lodash` function. 21569 * @example 21570 * 21571 * var lodash = _.noConflict(); 21572 */ 21573 function noConflict() { 21574 if (root._ === this) { 21575 root._ = oldDash; 21576 } 21577 return this; 21578 } 21579 21580 /** 21581 * This method returns `undefined`. 21582 * 21583 * @static 21584 * @memberOf _ 21585 * @since 2.3.0 21586 * @category Util 21587 * @example 21588 * 21589 * _.times(2, _.noop); 21590 * // => [undefined, undefined] 21591 */ 21592 function noop() { 21593 // No operation performed. 21594 } 21595 21596 /** 21597 * Creates a function that gets the argument at index `n`. If `n` is negative, 21598 * the nth argument from the end is returned. 21599 * 21600 * @static 21601 * @memberOf _ 21602 * @since 4.0.0 21603 * @category Util 21604 * @param {number} [n=0] The index of the argument to return. 21605 * @returns {Function} Returns the new pass-thru function. 21606 * @example 21607 * 21608 * var func = _.nthArg(1); 21609 * func('a', 'b', 'c', 'd'); 21610 * // => 'b' 21611 * 21612 * var func = _.nthArg(-2); 21613 * func('a', 'b', 'c', 'd'); 21614 * // => 'c' 21615 */ 21616 function nthArg(n) { 21617 n = toInteger(n); 21618 return baseRest(function(args) { 21619 return baseNth(args, n); 21620 }); 21621 } 21622 21623 /** 21624 * Creates a function that invokes `iteratees` with the arguments it receives 21625 * and returns their results. 21626 * 21627 * @static 21628 * @memberOf _ 21629 * @since 4.0.0 21630 * @category Util 21631 * @param {...(Function|Function[])} [iteratees=[_.identity]] 21632 * The iteratees to invoke. 21633 * @returns {Function} Returns the new function. 21634 * @example 21635 * 21636 * var func = _.over([Math.max, Math.min]); 21637 * 21638 * func(1, 2, 3, 4); 21639 * // => [4, 1] 21640 */ 21641 var over = createOver(arrayMap); 21642 21643 /** 21644 * Creates a function that checks if **all** of the `predicates` return 21645 * truthy when invoked with the arguments it receives. 21646 * 21647 * Following shorthands are possible for providing predicates. 21648 * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate. 21649 * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them. 21650 * 21651 * @static 21652 * @memberOf _ 21653 * @since 4.0.0 21654 * @category Util 21655 * @param {...(Function|Function[])} [predicates=[_.identity]] 21656 * The predicates to check. 21657 * @returns {Function} Returns the new function. 21658 * @example 21659 * 21660 * var func = _.overEvery([Boolean, isFinite]); 21661 * 21662 * func('1'); 21663 * // => true 21664 * 21665 * func(null); 21666 * // => false 21667 * 21668 * func(NaN); 21669 * // => false 21670 */ 21671 var overEvery = createOver(arrayEvery); 21672 21673 /** 21674 * Creates a function that checks if **any** of the `predicates` return 21675 * truthy when invoked with the arguments it receives. 21676 * 21677 * Following shorthands are possible for providing predicates. 21678 * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate. 21679 * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them. 21680 * 21681 * @static 21682 * @memberOf _ 21683 * @since 4.0.0 21684 * @category Util 21685 * @param {...(Function|Function[])} [predicates=[_.identity]] 21686 * The predicates to check. 21687 * @returns {Function} Returns the new function. 21688 * @example 21689 * 21690 * var func = _.overSome([Boolean, isFinite]); 21691 * 21692 * func('1'); 21693 * // => true 21694 * 21695 * func(null); 21696 * // => true 21697 * 21698 * func(NaN); 21699 * // => false 21700 * 21701 * var matchesFunc = _.overSome([{ 'a': 1 }, { 'a': 2 }]) 21702 * var matchesPropertyFunc = _.overSome([['a', 1], ['a', 2]]) 21703 */ 21704 var overSome = createOver(arraySome); 21705 21706 /** 21707 * Creates a function that returns the value at `path` of a given object. 21708 * 21709 * @static 21710 * @memberOf _ 21711 * @since 2.4.0 21712 * @category Util 21713 * @param {Array|string} path The path of the property to get. 21714 * @returns {Function} Returns the new accessor function. 21715 * @example 21716 * 21717 * var objects = [ 21718 * { 'a': { 'b': 2 } }, 21719 * { 'a': { 'b': 1 } } 21720 * ]; 21721 * 21722 * _.map(objects, _.property('a.b')); 21723 * // => [2, 1] 21724 * 21725 * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); 21726 * // => [1, 2] 21727 */ 21728 function property(path) { 21729 return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); 21730 } 21731 21732 /** 21733 * The opposite of `_.property`; this method creates a function that returns 21734 * the value at a given path of `object`. 21735 * 21736 * @static 21737 * @memberOf _ 21738 * @since 3.0.0 21739 * @category Util 21740 * @param {Object} object The object to query. 21741 * @returns {Function} Returns the new accessor function. 21742 * @example 21743 * 21744 * var array = [0, 1, 2], 21745 * object = { 'a': array, 'b': array, 'c': array }; 21746 * 21747 * _.map(['a[2]', 'c[0]'], _.propertyOf(object)); 21748 * // => [2, 0] 21749 * 21750 * _.map([['a', '2'], ['c', '0']], _.propertyOf(object)); 21751 * // => [2, 0] 21752 */ 21753 function propertyOf(object) { 21754 return function(path) { 21755 return object == null ? undefined : baseGet(object, path); 21756 }; 21757 } 21758 21759 /** 21760 * Creates an array of numbers (positive and/or negative) progressing from 21761 * `start` up to, but not including, `end`. A step of `-1` is used if a negative 21762 * `start` is specified without an `end` or `step`. If `end` is not specified, 21763 * it's set to `start` with `start` then set to `0`. 21764 * 21765 * **Note:** JavaScript follows the IEEE-754 standard for resolving 21766 * floating-point values which can produce unexpected results. 21767 * 21768 * @static 21769 * @since 0.1.0 21770 * @memberOf _ 21771 * @category Util 21772 * @param {number} [start=0] The start of the range. 21773 * @param {number} end The end of the range. 21774 * @param {number} [step=1] The value to increment or decrement by. 21775 * @returns {Array} Returns the range of numbers. 21776 * @see _.inRange, _.rangeRight 21777 * @example 21778 * 21779 * _.range(4); 21780 * // => [0, 1, 2, 3] 21781 * 21782 * _.range(-4); 21783 * // => [0, -1, -2, -3] 21784 * 21785 * _.range(1, 5); 21786 * // => [1, 2, 3, 4] 21787 * 21788 * _.range(0, 20, 5); 21789 * // => [0, 5, 10, 15] 21790 * 21791 * _.range(0, -4, -1); 21792 * // => [0, -1, -2, -3] 21793 * 21794 * _.range(1, 4, 0); 21795 * // => [1, 1, 1] 21796 * 21797 * _.range(0); 21798 * // => [] 21799 */ 21800 var range = createRange(); 21801 21802 /** 21803 * This method is like `_.range` except that it populates values in 21804 * descending order. 21805 * 21806 * @static 21807 * @memberOf _ 21808 * @since 4.0.0 21809 * @category Util 21810 * @param {number} [start=0] The start of the range. 21811 * @param {number} end The end of the range. 21812 * @param {number} [step=1] The value to increment or decrement by. 21813 * @returns {Array} Returns the range of numbers. 21814 * @see _.inRange, _.range 21815 * @example 21816 * 21817 * _.rangeRight(4); 21818 * // => [3, 2, 1, 0] 21819 * 21820 * _.rangeRight(-4); 21821 * // => [-3, -2, -1, 0] 21822 * 21823 * _.rangeRight(1, 5); 21824 * // => [4, 3, 2, 1] 21825 * 21826 * _.rangeRight(0, 20, 5); 21827 * // => [15, 10, 5, 0] 21828 * 21829 * _.rangeRight(0, -4, -1); 21830 * // => [-3, -2, -1, 0] 21831 * 21832 * _.rangeRight(1, 4, 0); 21833 * // => [1, 1, 1] 21834 * 21835 * _.rangeRight(0); 21836 * // => [] 21837 */ 21838 var rangeRight = createRange(true); 21839 21840 /** 21841 * This method returns a new empty array. 21842 * 21843 * @static 21844 * @memberOf _ 21845 * @since 4.13.0 21846 * @category Util 21847 * @returns {Array} Returns the new empty array. 21848 * @example 21849 * 21850 * var arrays = _.times(2, _.stubArray); 21851 * 21852 * console.log(arrays); 21853 * // => [[], []] 21854 * 21855 * console.log(arrays[0] === arrays[1]); 21856 * // => false 21857 */ 21858 function stubArray() { 21859 return []; 21860 } 21861 21862 /** 21863 * This method returns `false`. 21864 * 21865 * @static 21866 * @memberOf _ 21867 * @since 4.13.0 21868 * @category Util 21869 * @returns {boolean} Returns `false`. 21870 * @example 21871 * 21872 * _.times(2, _.stubFalse); 21873 * // => [false, false] 21874 */ 21875 function stubFalse() { 21876 return false;
vendor: 1,044 bytes, lines 21877-21930
21877 } 21878 21879 /** 21880 * This method returns a new empty object. 21881 * 21882 * @static 21883 * @memberOf _ 21884 * @since 4.13.0 21885 * @category Util 21886 * @returns {Object} Returns the new empty object. 21887 * @example 21888 * 21889 * var objects = _.times(2, _.stubObject); 21890 * 21891 * console.log(objects); 21892 * // => [{}, {}] 21893 * 21894 * console.log(objects[0] === objects[1]); 21895 * // => false 21896 */ 21897 function stubObject() { 21898 return {}; 21899 } 21900 21901 /** 21902 * This method returns an empty string. 21903 * 21904 * @static 21905 * @memberOf _ 21906 * @since 4.13.0 21907 * @category Util 21908 * @returns {string} Returns the empty string. 21909 * @example 21910 * 21911 * _.times(2, _.stubString); 21912 * // => ['', ''] 21913 */ 21914 function stubString() { 21915 return ''; 21916 } 21917 21918 /** 21919 * This method returns `true`. 21920 * 21921 * @static 21922 * @memberOf _ 21923 * @since 4.13.0 21924 * @category Util 21925 * @returns {boolean} Returns `true`. 21926 * @example 21927 * 21928 * _.times(2, _.stubTrue); 21929 * // => [true, true] 21930 */
vendor: 9,081 bytes, lines 21931-22274
21931 function stubTrue() { 21932 return true; 21933 } 21934 21935 /** 21936 * Invokes the iteratee `n` times, returning an array of the results of 21937 * each invocation. The iteratee is invoked with one argument; (index). 21938 * 21939 * @static 21940 * @since 0.1.0 21941 * @memberOf _ 21942 * @category Util 21943 * @param {number} n The number of times to invoke `iteratee`. 21944 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 21945 * @returns {Array} Returns the array of results. 21946 * @example 21947 * 21948 * _.times(3, String); 21949 * // => ['0', '1', '2'] 21950 * 21951 * _.times(4, _.constant(0)); 21952 * // => [0, 0, 0, 0] 21953 */ 21954 function times(n, iteratee) { 21955 n = toInteger(n); 21956 if (n < 1 || n > MAX_SAFE_INTEGER) { 21957 return []; 21958 } 21959 var index = MAX_ARRAY_LENGTH, 21960 length = nativeMin(n, MAX_ARRAY_LENGTH); 21961 21962 iteratee = getIteratee(iteratee); 21963 n -= MAX_ARRAY_LENGTH; 21964 21965 var result = baseTimes(length, iteratee); 21966 while (++index < n) { 21967 iteratee(index); 21968 } 21969 return result; 21970 } 21971 21972 /** 21973 * Converts `value` to a property path array. 21974 * 21975 * @static 21976 * @memberOf _ 21977 * @since 4.0.0 21978 * @category Util 21979 * @param {*} value The value to convert. 21980 * @returns {Array} Returns the new property path array. 21981 * @example 21982 * 21983 * _.toPath('a.b.c'); 21984 * // => ['a', 'b', 'c'] 21985 * 21986 * _.toPath('a[0].b.c'); 21987 * // => ['a', '0', 'b', 'c'] 21988 */ 21989 function toPath(value) { 21990 if (isArray(value)) { 21991 return arrayMap(value, toKey); 21992 } 21993 return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value))); 21994 } 21995 21996 /** 21997 * Generates a unique ID. If `prefix` is given, the ID is appended to it. 21998 * 21999 * @static 22000 * @since 0.1.0 22001 * @memberOf _ 22002 * @category Util 22003 * @param {string} [prefix=''] The value to prefix the ID with. 22004 * @returns {string} Returns the unique ID. 22005 * @example 22006 * 22007 * _.uniqueId('contact_'); 22008 * // => 'contact_104' 22009 * 22010 * _.uniqueId(); 22011 * // => '105' 22012 */ 22013 function uniqueId(prefix) { 22014 var id = ++idCounter; 22015 return toString(prefix) + id; 22016 } 22017 22018 /*------------------------------------------------------------------------*/ 22019 22020 /** 22021 * Adds two numbers. 22022 * 22023 * @static 22024 * @memberOf _ 22025 * @since 3.4.0 22026 * @category Math 22027 * @param {number} augend The first number in an addition. 22028 * @param {number} addend The second number in an addition. 22029 * @returns {number} Returns the total. 22030 * @example 22031 * 22032 * _.add(6, 4); 22033 * // => 10 22034 */ 22035 var add = createMathOperation(function(augend, addend) { 22036 return augend + addend; 22037 }, 0); 22038 22039 /** 22040 * Computes `number` rounded up to `precision`. 22041 * 22042 * @static 22043 * @memberOf _ 22044 * @since 3.10.0 22045 * @category Math 22046 * @param {number} number The number to round up. 22047 * @param {number} [precision=0] The precision to round up to. 22048 * @returns {number} Returns the rounded up number. 22049 * @example 22050 * 22051 * _.ceil(4.006); 22052 * // => 5 22053 * 22054 * _.ceil(6.004, 2); 22055 * // => 6.01 22056 * 22057 * _.ceil(6040, -2); 22058 * // => 6100 22059 */ 22060 var ceil = createRound('ceil'); 22061 22062 /** 22063 * Divide two numbers. 22064 * 22065 * @static 22066 * @memberOf _ 22067 * @since 4.7.0 22068 * @category Math 22069 * @param {number} dividend The first number in a division. 22070 * @param {number} divisor The second number in a division. 22071 * @returns {number} Returns the quotient. 22072 * @example 22073 * 22074 * _.divide(6, 4); 22075 * // => 1.5 22076 */ 22077 var divide = createMathOperation(function(dividend, divisor) { 22078 return dividend / divisor; 22079 }, 1); 22080 22081 /** 22082 * Computes `number` rounded down to `precision`. 22083 * 22084 * @static 22085 * @memberOf _ 22086 * @since 3.10.0 22087 * @category Math 22088 * @param {number} number The number to round down. 22089 * @param {number} [precision=0] The precision to round down to. 22090 * @returns {number} Returns the rounded down number. 22091 * @example 22092 * 22093 * _.floor(4.006); 22094 * // => 4 22095 * 22096 * _.floor(0.046, 2); 22097 * // => 0.04 22098 * 22099 * _.floor(4060, -2); 22100 * // => 4000 22101 */ 22102 var floor = createRound('floor'); 22103 22104 /** 22105 * Computes the maximum value of `array`. If `array` is empty or falsey, 22106 * `undefined` is returned. 22107 * 22108 * @static 22109 * @since 0.1.0 22110 * @memberOf _ 22111 * @category Math 22112 * @param {Array} array The array to iterate over. 22113 * @returns {*} Returns the maximum value. 22114 * @example 22115 * 22116 * _.max([4, 2, 8, 6]); 22117 * // => 8 22118 * 22119 * _.max([]); 22120 * // => undefined 22121 */ 22122 function max(array) { 22123 return (array && array.length) 22124 ? baseExtremum(array, identity, baseGt) 22125 : undefined; 22126 } 22127 22128 /** 22129 * This method is like `_.max` except that it accepts `iteratee` which is 22130 * invoked for each element in `array` to generate the criterion by which 22131 * the value is ranked. The iteratee is invoked with one argument: (value). 22132 * 22133 * @static 22134 * @memberOf _ 22135 * @since 4.0.0 22136 * @category Math 22137 * @param {Array} array The array to iterate over. 22138 * @param {Function} [iteratee=_.identity] The iteratee invoked per element. 22139 * @returns {*} Returns the maximum value. 22140 * @example 22141 * 22142 * var objects = [{ 'n': 1 }, { 'n': 2 }]; 22143 * 22144 * _.maxBy(objects, function(o) { return o.n; }); 22145 * // => { 'n': 2 } 22146 * 22147 * // The `_.property` iteratee shorthand. 22148 * _.maxBy(objects, 'n'); 22149 * // => { 'n': 2 } 22150 */ 22151 function maxBy(array, iteratee) { 22152 return (array && array.length) 22153 ? baseExtremum(array, getIteratee(iteratee, 2), baseGt) 22154 : undefined; 22155 } 22156 22157 /** 22158 * Computes the mean of the values in `array`. 22159 * 22160 * @static 22161 * @memberOf _ 22162 * @since 4.0.0 22163 * @category Math 22164 * @param {Array} array The array to iterate over. 22165 * @returns {number} Returns the mean. 22166 * @example 22167 * 22168 * _.mean([4, 2, 8, 6]); 22169 * // => 5 22170 */ 22171 function mean(array) { 22172 return baseMean(array, identity); 22173 } 22174 22175 /** 22176 * This method is like `_.mean` except that it accepts `iteratee` which is 22177 * invoked for each element in `array` to generate the value to be averaged. 22178 * The iteratee is invoked with one argument: (value). 22179 * 22180 * @static 22181 * @memberOf _ 22182 * @since 4.7.0 22183 * @category Math 22184 * @param {Array} array The array to iterate over. 22185 * @param {Function} [iteratee=_.identity] The iteratee invoked per element. 22186 * @returns {number} Returns the mean. 22187 * @example 22188 * 22189 * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }]; 22190 * 22191 * _.meanBy(objects, function(o) { return o.n; }); 22192 * // => 5 22193 * 22194 * // The `_.property` iteratee shorthand. 22195 * _.meanBy(objects, 'n'); 22196 * // => 5 22197 */ 22198 function meanBy(array, iteratee) { 22199 return baseMean(array, getIteratee(iteratee, 2)); 22200 } 22201 22202 /** 22203 * Computes the minimum value of `array`. If `array` is empty or falsey, 22204 * `undefined` is returned. 22205 * 22206 * @static 22207 * @since 0.1.0 22208 * @memberOf _ 22209 * @category Math 22210 * @param {Array} array The array to iterate over. 22211 * @returns {*} Returns the minimum value. 22212 * @example 22213 * 22214 * _.min([4, 2, 8, 6]); 22215 * // => 2 22216 * 22217 * _.min([]); 22218 * // => undefined 22219 */ 22220 function min(array) { 22221 return (array && array.length) 22222 ? baseExtremum(array, identity, baseLt) 22223 : undefined; 22224 } 22225 22226 /** 22227 * This method is like `_.min` except that it accepts `iteratee` which is 22228 * invoked for each element in `array` to generate the criterion by which 22229 * the value is ranked. The iteratee is invoked with one argument: (value). 22230 * 22231 * @static 22232 * @memberOf _ 22233 * @since 4.0.0 22234 * @category Math 22235 * @param {Array} array The array to iterate over. 22236 * @param {Function} [iteratee=_.identity] The iteratee invoked per element. 22237 * @returns {*} Returns the minimum value. 22238 * @example 22239 * 22240 * var objects = [{ 'n': 1 }, { 'n': 2 }]; 22241 * 22242 * _.minBy(objects, function(o) { return o.n; }); 22243 * // => { 'n': 1 } 22244 * 22245 * // The `_.property` iteratee shorthand. 22246 * _.minBy(objects, 'n'); 22247 * // => { 'n': 1 } 22248 */ 22249 function minBy(array, iteratee) { 22250 return (array && array.length) 22251 ? baseExtremum(array, getIteratee(iteratee, 2), baseLt) 22252 : undefined; 22253 } 22254 22255 /** 22256 * Multiply two numbers. 22257 * 22258 * @static 22259 * @memberOf _ 22260 * @since 4.7.0 22261 * @category Math 22262 * @param {number} multiplier The first number in a multiplication. 22263 * @param {number} multiplicand The second number in a multiplication. 22264 * @returns {number} Returns the product. 22265 * @example 22266 * 22267 * _.multiply(6, 4); 22268 * // => 24 22269 */ 22270 var multiply = createMathOperation(function(multiplier, multiplicand) { 22271 return multiplier * multiplicand; 22272 }, 1); 22273 22274 /**
vendor: 13,137 bytes, lines 22275-22713
22275 * Computes `number` rounded to `precision`. 22276 * 22277 * @static 22278 * @memberOf _ 22279 * @since 3.10.0 22280 * @category Math 22281 * @param {number} number The number to round. 22282 * @param {number} [precision=0] The precision to round to. 22283 * @returns {number} Returns the rounded number. 22284 * @example 22285 * 22286 * _.round(4.006); 22287 * // => 4 22288 * 22289 * _.round(4.006, 2); 22290 * // => 4.01 22291 * 22292 * _.round(4060, -2); 22293 * // => 4100 22294 */ 22295 var round = createRound('round'); 22296 22297 /** 22298 * Subtract two numbers. 22299 * 22300 * @static 22301 * @memberOf _ 22302 * @since 4.0.0 22303 * @category Math 22304 * @param {number} minuend The first number in a subtraction. 22305 * @param {number} subtrahend The second number in a subtraction. 22306 * @returns {number} Returns the difference. 22307 * @example 22308 * 22309 * _.subtract(6, 4); 22310 * // => 2 22311 */ 22312 var subtract = createMathOperation(function(minuend, subtrahend) { 22313 return minuend - subtrahend; 22314 }, 0); 22315 22316 /** 22317 * Computes the sum of the values in `array`. 22318 * 22319 * @static 22320 * @memberOf _ 22321 * @since 3.4.0 22322 * @category Math 22323 * @param {Array} array The array to iterate over. 22324 * @returns {number} Returns the sum. 22325 * @example 22326 * 22327 * _.sum([4, 2, 8, 6]); 22328 * // => 20 22329 */ 22330 function sum(array) { 22331 return (array && array.length) 22332 ? baseSum(array, identity) 22333 : 0; 22334 } 22335 22336 /** 22337 * This method is like `_.sum` except that it accepts `iteratee` which is 22338 * invoked for each element in `array` to generate the value to be summed. 22339 * The iteratee is invoked with one argument: (value). 22340 * 22341 * @static 22342 * @memberOf _ 22343 * @since 4.0.0 22344 * @category Math 22345 * @param {Array} array The array to iterate over. 22346 * @param {Function} [iteratee=_.identity] The iteratee invoked per element. 22347 * @returns {number} Returns the sum. 22348 * @example 22349 * 22350 * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }]; 22351 * 22352 * _.sumBy(objects, function(o) { return o.n; }); 22353 * // => 20 22354 * 22355 * // The `_.property` iteratee shorthand. 22356 * _.sumBy(objects, 'n'); 22357 * // => 20 22358 */ 22359 function sumBy(array, iteratee) { 22360 return (array && array.length) 22361 ? baseSum(array, getIteratee(iteratee, 2)) 22362 : 0; 22363 } 22364 22365 /*------------------------------------------------------------------------*/ 22366 22367 // Add methods that return wrapped values in chain sequences. 22368 lodash.after = after; 22369 lodash.ary = ary; 22370 lodash.assign = assign; 22371 lodash.assignIn = assignIn; 22372 lodash.assignInWith = assignInWith; 22373 lodash.assignWith = assignWith; 22374 lodash.at = at; 22375 lodash.before = before; 22376 lodash.bind = bind; 22377 lodash.bindAll = bindAll; 22378 lodash.bindKey = bindKey; 22379 lodash.castArray = castArray; 22380 lodash.chain = chain; 22381 lodash.chunk = chunk; 22382 lodash.compact = compact; 22383 lodash.concat = concat; 22384 lodash.cond = cond; 22385 lodash.conforms = conforms; 22386 lodash.constant = constant; 22387 lodash.countBy = countBy; 22388 lodash.create = create; 22389 lodash.curry = curry; 22390 lodash.curryRight = curryRight; 22391 lodash.debounce = debounce; 22392 lodash.defaults = defaults; 22393 lodash.defaultsDeep = defaultsDeep; 22394 lodash.defer = defer; 22395 lodash.delay = delay; 22396 lodash.difference = difference; 22397 lodash.differenceBy = differenceBy; 22398 lodash.differenceWith = differenceWith; 22399 lodash.drop = drop; 22400 lodash.dropRight = dropRight; 22401 lodash.dropRightWhile = dropRightWhile; 22402 lodash.dropWhile = dropWhile; 22403 lodash.fill = fill; 22404 lodash.filter = filter; 22405 lodash.flatMap = flatMap; 22406 lodash.flatMapDeep = flatMapDeep; 22407 lodash.flatMapDepth = flatMapDepth; 22408 lodash.flatten = flatten; 22409 lodash.flattenDeep = flattenDeep; 22410 lodash.flattenDepth = flattenDepth; 22411 lodash.flip = flip; 22412 lodash.flow = flow; 22413 lodash.flowRight = flowRight; 22414 lodash.fromPairs = fromPairs; 22415 lodash.functions = functions; 22416 lodash.functionsIn = functionsIn; 22417 lodash.groupBy = groupBy; 22418 lodash.initial = initial; 22419 lodash.intersection = intersection; 22420 lodash.intersectionBy = intersectionBy; 22421 lodash.intersectionWith = intersectionWith; 22422 lodash.invert = invert; 22423 lodash.invertBy = invertBy; 22424 lodash.invokeMap = invokeMap; 22425 lodash.iteratee = iteratee; 22426 lodash.keyBy = keyBy; 22427 lodash.keys = keys; 22428 lodash.keysIn = keysIn; 22429 lodash.map = map; 22430 lodash.mapKeys = mapKeys; 22431 lodash.mapValues = mapValues; 22432 lodash.matches = matches; 22433 lodash.matchesProperty = matchesProperty; 22434 lodash.memoize = memoize; 22435 lodash.merge = merge; 22436 lodash.mergeWith = mergeWith; 22437 lodash.method = method; 22438 lodash.methodOf = methodOf; 22439 lodash.mixin = mixin; 22440 lodash.negate = negate; 22441 lodash.nthArg = nthArg; 22442 lodash.omit = omit; 22443 lodash.omitBy = omitBy; 22444 lodash.once = once; 22445 lodash.orderBy = orderBy; 22446 lodash.over = over; 22447 lodash.overArgs = overArgs; 22448 lodash.overEvery = overEvery; 22449 lodash.overSome = overSome; 22450 lodash.partial = partial; 22451 lodash.partialRight = partialRight; 22452 lodash.partition = partition; 22453 lodash.pick = pick; 22454 lodash.pickBy = pickBy; 22455 lodash.property = property; 22456 lodash.propertyOf = propertyOf; 22457 lodash.pull = pull; 22458 lodash.pullAll = pullAll; 22459 lodash.pullAllBy = pullAllBy; 22460 lodash.pullAllWith = pullAllWith; 22461 lodash.pullAt = pullAt; 22462 lodash.range = range; 22463 lodash.rangeRight = rangeRight; 22464 lodash.rearg = rearg; 22465 lodash.reject = reject; 22466 lodash.remove = remove; 22467 lodash.rest = rest; 22468 lodash.reverse = reverse; 22469 lodash.sampleSize = sampleSize; 22470 lodash.set = set; 22471 lodash.setWith = setWith; 22472 lodash.shuffle = shuffle; 22473 lodash.slice = slice; 22474 lodash.sortBy = sortBy; 22475 lodash.sortedUniq = sortedUniq; 22476 lodash.sortedUniqBy = sortedUniqBy; 22477 lodash.split = split; 22478 lodash.spread = spread; 22479 lodash.tail = tail; 22480 lodash.take = take; 22481 lodash.takeRight = takeRight; 22482 lodash.takeRightWhile = takeRightWhile; 22483 lodash.takeWhile = takeWhile; 22484 lodash.tap = tap; 22485 lodash.throttle = throttle; 22486 lodash.thru = thru; 22487 lodash.toArray = toArray; 22488 lodash.toPairs = toPairs; 22489 lodash.toPairsIn = toPairsIn; 22490 lodash.toPath = toPath; 22491 lodash.toPlainObject = toPlainObject; 22492 lodash.transform = transform; 22493 lodash.unary = unary; 22494 lodash.union = union; 22495 lodash.unionBy = unionBy; 22496 lodash.unionWith = unionWith; 22497 lodash.uniq = uniq; 22498 lodash.uniqBy = uniqBy; 22499 lodash.uniqWith = uniqWith; 22500 lodash.unset = unset; 22501 lodash.unzip = unzip; 22502 lodash.unzipWith = unzipWith; 22503 lodash.update = update; 22504 lodash.updateWith = updateWith; 22505 lodash.values = values; 22506 lodash.valuesIn = valuesIn; 22507 lodash.without = without; 22508 lodash.words = words; 22509 lodash.wrap = wrap; 22510 lodash.xor = xor; 22511 lodash.xorBy = xorBy; 22512 lodash.xorWith = xorWith; 22513 lodash.zip = zip; 22514 lodash.zipObject = zipObject; 22515 lodash.zipObjectDeep = zipObjectDeep; 22516 lodash.zipWith = zipWith; 22517 22518 // Add aliases. 22519 lodash.entries = toPairs; 22520 lodash.entriesIn = toPairsIn; 22521 lodash.extend = assignIn; 22522 lodash.extendWith = assignInWith; 22523 22524 // Add methods to `lodash.prototype`. 22525 mixin(lodash, lodash); 22526 22527 /*------------------------------------------------------------------------*/ 22528 22529 // Add methods that return unwrapped values in chain sequences. 22530 lodash.add = add; 22531 lodash.attempt = attempt; 22532 lodash.camelCase = camelCase; 22533 lodash.capitalize = capitalize; 22534 lodash.ceil = ceil; 22535 lodash.clamp = clamp; 22536 lodash.clone = clone; 22537 lodash.cloneDeep = cloneDeep; 22538 lodash.cloneDeepWith = cloneDeepWith; 22539 lodash.cloneWith = cloneWith; 22540 lodash.conformsTo = conformsTo; 22541 lodash.deburr = deburr; 22542 lodash.defaultTo = defaultTo; 22543 lodash.divide = divide; 22544 lodash.endsWith = endsWith; 22545 lodash.eq = eq; 22546 lodash.escape = escape; 22547 lodash.escapeRegExp = escapeRegExp; 22548 lodash.every = every; 22549 lodash.find = find; 22550 lodash.findIndex = findIndex; 22551 lodash.findKey = findKey; 22552 lodash.findLast = findLast; 22553 lodash.findLastIndex = findLastIndex; 22554 lodash.findLastKey = findLastKey; 22555 lodash.floor = floor; 22556 lodash.forEach = forEach; 22557 lodash.forEachRight = forEachRight; 22558 lodash.forIn = forIn; 22559 lodash.forInRight = forInRight; 22560 lodash.forOwn = forOwn; 22561 lodash.forOwnRight = forOwnRight; 22562 lodash.get = get; 22563 lodash.gt = gt; 22564 lodash.gte = gte; 22565 lodash.has = has; 22566 lodash.hasIn = hasIn; 22567 lodash.head = head; 22568 lodash.identity = identity; 22569 lodash.includes = includes; 22570 lodash.indexOf = indexOf; 22571 lodash.inRange = inRange; 22572 lodash.invoke = invoke; 22573 lodash.isArguments = isArguments; 22574 lodash.isArray = isArray; 22575 lodash.isArrayBuffer = isArrayBuffer; 22576 lodash.isArrayLike = isArrayLike; 22577 lodash.isArrayLikeObject = isArrayLikeObject; 22578 lodash.isBoolean = isBoolean; 22579 lodash.isBuffer = isBuffer; 22580 lodash.isDate = isDate; 22581 lodash.isElement = isElement; 22582 lodash.isEmpty = isEmpty; 22583 lodash.isEqual = isEqual; 22584 lodash.isEqualWith = isEqualWith; 22585 lodash.isError = isError; 22586 lodash.isFinite = isFinite; 22587 lodash.isFunction = isFunction; 22588 lodash.isInteger = isInteger; 22589 lodash.isLength = isLength; 22590 lodash.isMap = isMap; 22591 lodash.isMatch = isMatch; 22592 lodash.isMatchWith = isMatchWith; 22593 lodash.isNaN = isNaN; 22594 lodash.isNative = isNative; 22595 lodash.isNil = isNil; 22596 lodash.isNull = isNull; 22597 lodash.isNumber = isNumber; 22598 lodash.isObject = isObject; 22599 lodash.isObjectLike = isObjectLike; 22600 lodash.isPlainObject = isPlainObject; 22601 lodash.isRegExp = isRegExp; 22602 lodash.isSafeInteger = isSafeInteger; 22603 lodash.isSet = isSet; 22604 lodash.isString = isString; 22605 lodash.isSymbol = isSymbol; 22606 lodash.isTypedArray = isTypedArray; 22607 lodash.isUndefined = isUndefined; 22608 lodash.isWeakMap = isWeakMap; 22609 lodash.isWeakSet = isWeakSet; 22610 lodash.join = join; 22611 lodash.kebabCase = kebabCase; 22612 lodash.last = last; 22613 lodash.lastIndexOf = lastIndexOf; 22614 lodash.lowerCase = lowerCase; 22615 lodash.lowerFirst = lowerFirst; 22616 lodash.lt = lt; 22617 lodash.lte = lte; 22618 lodash.max = max; 22619 lodash.maxBy = maxBy; 22620 lodash.mean = mean; 22621 lodash.meanBy = meanBy; 22622 lodash.min = min; 22623 lodash.minBy = minBy; 22624 lodash.stubArray = stubArray; 22625 lodash.stubFalse = stubFalse; 22626 lodash.stubObject = stubObject; 22627 lodash.stubString = stubString; 22628 lodash.stubTrue = stubTrue; 22629 lodash.multiply = multiply; 22630 lodash.nth = nth; 22631 lodash.noConflict = noConflict; 22632 lodash.noop = noop; 22633 lodash.now = now; 22634 lodash.pad = pad; 22635 lodash.padEnd = padEnd; 22636 lodash.padStart = padStart; 22637 lodash.parseInt = parseInt; 22638 lodash.random = random; 22639 lodash.reduce = reduce; 22640 lodash.reduceRight = reduceRight; 22641 lodash.repeat = repeat; 22642 lodash.replace = replace; 22643 lodash.result = result; 22644 lodash.round = round; 22645 lodash.runInContext = runInContext; 22646 lodash.sample = sample; 22647 lodash.size = size; 22648 lodash.snakeCase = snakeCase; 22649 lodash.some = some; 22650 lodash.sortedIndex = sortedIndex; 22651 lodash.sortedIndexBy = sortedIndexBy; 22652 lodash.sortedIndexOf = sortedIndexOf; 22653 lodash.sortedLastIndex = sortedLastIndex; 22654 lodash.sortedLastIndexBy = sortedLastIndexBy; 22655 lodash.sortedLastIndexOf = sortedLastIndexOf; 22656 lodash.startCase = startCase; 22657 lodash.startsWith = startsWith; 22658 lodash.subtract = subtract; 22659 lodash.sum = sum; 22660 lodash.sumBy = sumBy; 22661 lodash.template = template; 22662 lodash.times = times; 22663 lodash.toFinite = toFinite; 22664 lodash.toInteger = toInteger; 22665 lodash.toLength = toLength; 22666 lodash.toLower = toLower; 22667 lodash.toNumber = toNumber; 22668 lodash.toSafeInteger = toSafeInteger; 22669 lodash.toString = toString; 22670 lodash.toUpper = toUpper; 22671 lodash.trim = trim; 22672 lodash.trimEnd = trimEnd; 22673 lodash.trimStart = trimStart; 22674 lodash.truncate = truncate; 22675 lodash.unescape = unescape; 22676 lodash.uniqueId = uniqueId; 22677 lodash.upperCase = upperCase; 22678 lodash.upperFirst = upperFirst; 22679 22680 // Add aliases. 22681 lodash.each = forEach; 22682 lodash.eachRight = forEachRight; 22683 lodash.first = head; 22684 22685 mixin(lodash, (function() { 22686 var source = {}; 22687 baseForOwn(lodash, function(func, methodName) { 22688 if (!hasOwnProperty.call(lodash.prototype, methodName)) { 22689 source[methodName] = func; 22690 } 22691 }); 22692 return source; 22693 }()), { 'chain': false }); 22694 22695 /*------------------------------------------------------------------------*/ 22696 22697 /** 22698 * The semantic version number. 22699 * 22700 * @static 22701 * @memberOf _ 22702 * @type {string} 22703 */ 22704 lodash.VERSION = VERSION; 22705 22706 // Assign default placeholders. 22707 arrayEach(['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'], function(methodName) { 22708 lodash[methodName].placeholder = lodash; 22709 }); 22710 22711 // Add `LazyWrapper` methods for `_.drop` and `_.take` variants. 22712 arrayEach(['drop', 'take'], function(methodName, index) { 22713 LazyWrapper.prototype[methodName] = function(n) {
vendor: 8,463 bytes, lines 22714-22958
22714 n = n === undefined ? 1 : nativeMax(toInteger(n), 0); 22715 22716 var result = (this.__filtered__ && !index) 22717 ? new LazyWrapper(this) 22718 : this.clone(); 22719 22720 if (result.__filtered__) { 22721 result.__takeCount__ = nativeMin(n, result.__takeCount__); 22722 } else { 22723 result.__views__.push({ 22724 'size': nativeMin(n, MAX_ARRAY_LENGTH), 22725 'type': methodName + (result.__dir__ < 0 ? 'Right' : '') 22726 }); 22727 } 22728 return result; 22729 }; 22730 22731 LazyWrapper.prototype[methodName + 'Right'] = function(n) { 22732 return this.reverse()[methodName](n).reverse(); 22733 }; 22734 }); 22735 22736 // Add `LazyWrapper` methods that accept an `iteratee` value. 22737 arrayEach(['filter', 'map', 'takeWhile'], function(methodName, index) { 22738 var type = index + 1, 22739 isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG; 22740 22741 LazyWrapper.prototype[methodName] = function(iteratee) { 22742 var result = this.clone(); 22743 result.__iteratees__.push({ 22744 'iteratee': getIteratee(iteratee, 3), 22745 'type': type 22746 }); 22747 result.__filtered__ = result.__filtered__ || isFilter; 22748 return result; 22749 }; 22750 }); 22751 22752 // Add `LazyWrapper` methods for `_.head` and `_.last`. 22753 arrayEach(['head', 'last'], function(methodName, index) { 22754 var takeName = 'take' + (index ? 'Right' : ''); 22755 22756 LazyWrapper.prototype[methodName] = function() { 22757 return this[takeName](1).value()[0]; 22758 }; 22759 }); 22760 22761 // Add `LazyWrapper` methods for `_.initial` and `_.tail`. 22762 arrayEach(['initial', 'tail'], function(methodName, index) { 22763 var dropName = 'drop' + (index ? '' : 'Right'); 22764 22765 LazyWrapper.prototype[methodName] = function() { 22766 return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1); 22767 }; 22768 }); 22769 22770 LazyWrapper.prototype.compact = function() { 22771 return this.filter(identity); 22772 }; 22773 22774 LazyWrapper.prototype.find = function(predicate) { 22775 return this.filter(predicate).head(); 22776 }; 22777 22778 LazyWrapper.prototype.findLast = function(predicate) { 22779 return this.reverse().find(predicate); 22780 }; 22781 22782 LazyWrapper.prototype.invokeMap = baseRest(function(path, args) { 22783 if (typeof path == 'function') { 22784 return new LazyWrapper(this); 22785 } 22786 return this.map(function(value) { 22787 return baseInvoke(value, path, args); 22788 }); 22789 }); 22790 22791 LazyWrapper.prototype.reject = function(predicate) { 22792 return this.filter(negate(getIteratee(predicate))); 22793 }; 22794 22795 LazyWrapper.prototype.slice = function(start, end) { 22796 start = toInteger(start); 22797 22798 var result = this; 22799 if (result.__filtered__ && (start > 0 || end < 0)) { 22800 return new LazyWrapper(result); 22801 } 22802 if (start < 0) { 22803 result = result.takeRight(-start); 22804 } else if (start) { 22805 result = result.drop(start); 22806 } 22807 if (end !== undefined) { 22808 end = toInteger(end); 22809 result = end < 0 ? result.dropRight(-end) : result.take(end - start); 22810 } 22811 return result; 22812 }; 22813 22814 LazyWrapper.prototype.takeRightWhile = function(predicate) { 22815 return this.reverse().takeWhile(predicate).reverse(); 22816 }; 22817 22818 LazyWrapper.prototype.toArray = function() { 22819 return this.take(MAX_ARRAY_LENGTH); 22820 }; 22821 22822 // Add `LazyWrapper` methods to `lodash.prototype`. 22823 baseForOwn(LazyWrapper.prototype, function(func, methodName) { 22824 var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName), 22825 isTaker = /^(?:head|last)$/.test(methodName), 22826 lodashFunc = lodash[isTaker ? ('take' + (methodName == 'last' ? 'Right' : '')) : methodName], 22827 retUnwrapped = isTaker || /^find/.test(methodName); 22828 22829 if (!lodashFunc) { 22830 return; 22831 } 22832 lodash.prototype[methodName] = function() { 22833 var value = this.__wrapped__, 22834 args = isTaker ? [1] : arguments, 22835 isLazy = value instanceof LazyWrapper, 22836 iteratee = args[0], 22837 useLazy = isLazy || isArray(value); 22838 22839 var interceptor = function(value) { 22840 var result = lodashFunc.apply(lodash, arrayPush([value], args)); 22841 return (isTaker && chainAll) ? result[0] : result; 22842 }; 22843 22844 if (useLazy && checkIteratee && typeof iteratee == 'function' && iteratee.length != 1) { 22845 // Avoid lazy use if the iteratee has a "length" value other than `1`. 22846 isLazy = useLazy = false; 22847 } 22848 var chainAll = this.__chain__, 22849 isHybrid = !!this.__actions__.length, 22850 isUnwrapped = retUnwrapped && !chainAll, 22851 onlyLazy = isLazy && !isHybrid; 22852 22853 if (!retUnwrapped && useLazy) { 22854 value = onlyLazy ? value : new LazyWrapper(this); 22855 var result = func.apply(value, args); 22856 result.__actions__.push({ 'func': thru, 'args': [interceptor], 'thisArg': undefined }); 22857 return new LodashWrapper(result, chainAll); 22858 } 22859 if (isUnwrapped && onlyLazy) { 22860 return func.apply(this, args); 22861 } 22862 result = this.thru(interceptor); 22863 return isUnwrapped ? (isTaker ? result.value()[0] : result.value()) : result; 22864 }; 22865 }); 22866 22867 // Add `Array` methods to `lodash.prototype`. 22868 arrayEach(['pop', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) { 22869 var func = arrayProto[methodName], 22870 chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru', 22871 retUnwrapped = /^(?:pop|shift)$/.test(methodName); 22872 22873 lodash.prototype[methodName] = function() { 22874 var args = arguments; 22875 if (retUnwrapped && !this.__chain__) { 22876 var value = this.value(); 22877 return func.apply(isArray(value) ? value : [], args); 22878 } 22879 return this[chainName](function(value) { 22880 return func.apply(isArray(value) ? value : [], args); 22881 }); 22882 }; 22883 }); 22884 22885 // Map minified method names to their real names. 22886 baseForOwn(LazyWrapper.prototype, function(func, methodName) { 22887 var lodashFunc = lodash[methodName]; 22888 if (lodashFunc) { 22889 var key = lodashFunc.name + ''; 22890 if (!hasOwnProperty.call(realNames, key)) { 22891 realNames[key] = []; 22892 } 22893 realNames[key].push({ 'name': methodName, 'func': lodashFunc }); 22894 } 22895 }); 22896 22897 realNames[createHybrid(undefined, WRAP_BIND_KEY_FLAG).name] = [{ 22898 'name': 'wrapper', 22899 'func': undefined 22900 }]; 22901 22902 // Add methods to `LazyWrapper`. 22903 LazyWrapper.prototype.clone = lazyClone; 22904 LazyWrapper.prototype.reverse = lazyReverse; 22905 LazyWrapper.prototype.value = lazyValue; 22906 22907 // Add chain sequence methods to the `lodash` wrapper. 22908 lodash.prototype.at = wrapperAt; 22909 lodash.prototype.chain = wrapperChain; 22910 lodash.prototype.commit = wrapperCommit; 22911 lodash.prototype.next = wrapperNext; 22912 lodash.prototype.plant = wrapperPlant; 22913 lodash.prototype.reverse = wrapperReverse; 22914 lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue; 22915 22916 // Add lazy aliases. 22917 lodash.prototype.first = lodash.prototype.head; 22918 22919 if (symIterator) { 22920 lodash.prototype[symIterator] = wrapperToIterator; 22921 } 22922 return lodash; 22923 }); 22924 22925 /*--------------------------------------------------------------------------*/ 22926 22927 // Export lodash. 22928 var _ = runInContext(); 22929 22930 // Some AMD build optimizers, like r.js, check for condition patterns like: 22931 if (true) { 22932 // Expose Lodash on the global object to prevent errors when Lodash is 22933 // loaded by a script tag in the presence of an AMD loader. 22934 // See http://requirejs.org/docs/errors.html#mismatch for more details. 22935 // Use `_.noConflict` to remove Lodash from the global object. 22936 root._ = _; 22937 22938 // Define as an anonymous module so, through path mapping, it can be 22939 // referenced as the "underscore" module. 22940 !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { 22941 return _; 22942 }).call(exports, __webpack_require__, exports, module), 22943 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 22944 } 22945 // Check for `exports` after `define` in case a build optimizer adds it. 22946 else if (freeModule) { 22947 // Export for Node.js. 22948 (freeModule.exports = _)._ = _; 22949 // Export for CommonJS support. 22950 freeExports._ = _; 22951 } 22952 else { 22953 // Export to the global object. 22954 root._ = _; 22955 } 22956}.call(this)); 22957 22958/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(
22958143), __webpack_require__(3)(module))) 22959 22960/***/ }), 22961/* 2 */ 22962/***/ (function(module, __webpack_exports__, __webpack_require__) { 22963 22964"use strict"; 22965/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return serialize; }); 22966/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return throttleAnimationFrame; }); 22967/* harmony export (immutable) */ __webpack_exports__["a"] = isMobileDevice; 22968var serialize = function serialize(obj) { 22969 var str = []; 22970 for (var p in obj) { 22971 if (obj.hasOwnProperty(p)) { 22972 str.push(encodeURIComponent(p) + '=' + encodeURIComponent(obj[p])); 22973 } 22974 }return str.join('&'); 22975}; 22976 22977/** 22978 * Since resize events can fire at a high rate, the event handler shouldn't execute computationally expensive operations such as DOM modifications. Instead, it is recommended to throttle the event using requestAnimationFrame, setTimeout or customEvent*, as follows: 22979 * IMPORTANT: Please note that IE11 needs the customEvent polyfill to function correctly. 22980 * https://developer.mozilla.org/en-US/docs/Web/Events/resize 22981 * @param {*} type - event type. e.g. "resize" 22982 * @param {*} name - name of the event to fire instead. e.g. "optimizedResize" 22983 * @param {*} obj - object to dispatch the event from. e.g. window 22984 */ 22985var throttleAnimationFrame = function throttleAnimationFrame(type, name, obj) { 22986 customEventPolyfill(); 22987 obj = obj || window; 22988 var running = false; 22989 var func = function func() { 22990 if (running) { 22991 return; 22992 } 22993 running = true; 22994 requestAnimationFrame(function () { 22995 obj.dispatchEvent(new CustomEvent(name)); 22996 running = false; 22997 }); 22998 }; 22999 obj.addEventListener(type, func); 23000}; 23001 23002function customEventPolyfill() { 23003 if (typeof window.CustomEvent === 'function') return false; 23004 23005 function CustomEvent(event, params) { 23006 params = params || { bubbles: false, cancelable: false, detail: undefined }; 23007 var evt = document.createEvent('CustomEvent'); 23008 evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); 23009 return evt; 23010 } 23011 23012 CustomEvent.prototype = window.Event.prototype; 23013 23014 window.CustomEvent = CustomEvent; 23015} 23016 23017function isMobileDevice() { 23018 try { 23019 // 767px matches our $screen-md-max 23020 return window.matchMedia('(max-width: 767px)').matches; 23021 } catch (e) { 23022 return false; 23023 } 23024} 23025 23026/***/ }), 23027/* 3 */ 23028/***/ (function(module, exports) { 23029 23030module.exports = function(module) { 23031 if(!module.webpackPolyfill) { 23032 module.deprecate = function() {}; 23033 module.paths = []; 23034 // module.parent = undefined by default 23035 if(!module.children) module.children = []; 23036 Object.defineProperty(module, "loaded", { 23037 enumerable: true, 23038 get: function() { 23039 return module.l; 23040 } 23041 }); 23042 Object.defineProperty(module, "id", { 23043 enumerable: true, 23044 get: function() { 23045 return module.i; 23046 } 23047 }); 23048 module.webpackPolyfill = 1; 23049 } 23050 return module; 23051}; 23052 23053 23054/***/ }), 23055/* 4 */ 23056/***/ (function(module, exports, __webpack_require__) { 23057 23058//! moment.js locale configuration 23059//! locale : Afrikaans [af] 23060//! author : Werner Mollentze : https://github.com/wernerm 23061 23062;(function (global, factory) { 23063 true ? factory(__webpack_require__(0)) : 23064 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 23065 factory(global.moment) 23066}(this, (function (moment) { 'use strict'; 23067 23068 //! moment.js locale configuration 23069 23070 var af = moment.defineLocale('af', { 23071 months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( 23072 '_' 23073 ), 23074 monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), 23075 weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( 23076 '_' 23077 ), 23078 weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), 23079 weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), 23080 meridiemParse: /vm|nm/i, 23081 isPM: function (input) { 23082 return /^nm$/i.test(input); 23083 }, 23084 meridiem: function (hours, minutes, isLower) { 23085 if (hours < 12) { 23086 return isLower ? 'vm' : 'VM'; 23087 } else { 23088 return isLower ? 'nm' : 'NM'; 23089 } 23090 }, 23091 longDateFormat: { 23092 LT: 'HH:mm', 23093 LTS: 'HH:mm:ss', 23094 L: 'DD/MM/YYYY', 23095 LL: 'D MMMM YYYY', 23096 LLL: 'D MMMM YYYY HH:mm', 23097 LLLL: 'dddd, D MMMM YYYY HH:mm', 23098 }, 23099 calendar: { 23100 sameDay: '[Vandag om] LT', 23101 nextDay: '[Môre om] LT', 23102 nextWeek: 'dddd [om] LT', 23103 lastDay: '[Gister om] LT', 23104 lastWeek: '[Laas] dddd [om] LT', 23105 sameElse: 'L', 23106 }, 23107 relativeTime: {
23108 future: 'oor %s', 23109 past: '%s gelede', 23110 s: "'n paar sekondes", 23111 ss: '%d sekondes', 23112 m: "'n minuut", 23113 mm: '%d minute', 23114 h: "'n uur", 23115 hh: '%d ure', 23116 d: "'n dag", 23117 dd: '%d dae', 23118 M: "'n maand", 23119 MM: '%d maande', 23120 y: "'n jaar", 23121 yy: '%d jaar', 23122 }, 23123 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, 23124 ordinal: function (number) { 23125 return ( 23126 number + 23127 (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') 23128 ); // Thanks to Joris Röling : https://github.com/jjupiter 23129 }, 23130 week: { 23131 dow: 1, // Maandag is die eerste dag van die week. 23132 doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. 23133 }, 23134 }); 23135 23136 return af; 23137 23138}))); 23139 23140 23141/***/ }), 23142/* 5 */ 23143/***/ (function(module, exports, __webpack_require__) { 23144 23145//! moment.js locale configuration 23146//! locale : Arabic [ar] 23147//! author : Abdel Said: https://github.com/abdelsaid 23148//! author : Ahmed Elkhatib 23149//! author : forabi https://github.com/forabi 23150 23151;(function (global, factory) { 23152 true ? factory(__webpack_require__(0)) : 23153 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 23154 factory(global.moment) 23155}(this, (function (moment) { 'use strict'; 23156 23157 //! moment.js locale configuration 23158 23159 var symbolMap = { 23160 1: 'Ù¡', 23161 2: 'Ù¢', 23162 3: 'Ù£', 23163 4: 'Ù¤', 23164 5: 'Ù¥', 23165 6: 'Ù¦', 23166 7: 'Ù§', 23167 8: 'Ù¨', 23168 9: 'Ù©', 23169 0: 'Ù ', 23170 }, 23171 numberMap = { 23172 'Ù¡': '1', 23173 'Ù¢': '2', 23174 'Ù£': '3', 23175 'Ù¤': '4', 23176 'Ù¥': '5', 23177 'Ù¦': '6', 23178 'Ù§': '7', 23179 'Ù¨': '8', 23180 'Ù©': '9', 23181 'Ù ': '0', 23182 }, 23183 pluralForm = function (n) { 23184 return n === 0 23185 ? 0 23186 : n === 1 23187 ? 1 23188 : n === 2 23189 ? 2 23190 : n % 100 >= 3 && n % 100 <= 10 23191 ? 3 23192 : n % 100 >= 11 23193 ? 4 23194 : 5; 23195 }, 23196 plurals = { 23197 s: [ 23198 'Ø£Ù٠٠٠ثاÙÙØ©', 23199 'ثاÙÙØ© ÙØ§ØØ¯Ø©', 23200 ['ثاÙÙØªØ§Ù', 'ثاÙÙØªÙÙ'], 23201 '%d Ø«ÙØ§Ù', 23202 '%d ثاÙÙØ©', 23203 '%d ثاÙÙØ©', 23204 ], 23205 m: [ 23206 'Ø£Ù٠٠٠دÙÙÙØ©', 23207 'دÙÙÙØ© ÙØ§ØØ¯Ø©', 23208 ['دÙÙÙØªØ§Ù', 'دÙÙÙØªÙÙ'], 23209 '%d Ø¯ÙØ§Ø¦Ù', 23210 '%d دÙÙÙØ©', 23211 '%d دÙÙÙØ©', 23212 ], 23213 h: [ 23214 'Ø£Ù٠٠٠ساعة', 23215 'ساعة ÙØ§ØØ¯Ø©', 23216 ['ساعتاÙ', 'ساعتÙÙ'], 23217 '%d ساعات', 23218 '%d ساعة', 23219 '%d ساعة', 23220 ], 23221 d: [ 23222 'Ø£ÙÙ Ù Ù ÙÙÙ ', 23223 'ÙÙÙ ÙØ§ØØ¯', 23224 ['ÙÙ٠اÙ', 'ÙÙÙ ÙÙ'], 23225 '%d Ø£ÙØ§Ù ', 23226 '%d ÙÙÙ ÙØ§', 23227 '%d ÙÙÙ ', 23228 ], 23229 M: [ 23230 'Ø£ÙÙ Ù Ù Ø´ÙØ±', 23231 'Ø´ÙØ± ÙØ§ØØ¯', 23232 ['Ø´ÙØ±Ø§Ù', 'Ø´ÙØ±ÙÙ'], 23233 '%d Ø£Ø´ÙØ±', 23234 '%d Ø´ÙØ±Ø§', 23235 '%d Ø´ÙØ±', 23236 ], 23237 y: [ 23238 'Ø£Ù٠٠٠عا٠', 23239 'Ø¹Ø§Ù ÙØ§ØØ¯', 23240 ['عا٠اÙ', 'عا٠ÙÙ'], 23241 '%d Ø£Ø¹ÙØ§Ù ', 23242 '%d Ø¹Ø§Ù ÙØ§', 23243 '%d عا٠', 23244 ], 23245 }, 23246 pluralize = function (u) { 23247 return function (number, withoutSuffix, string, isFuture) { 23248 var f = pluralForm(number), 23249 str = plurals[u][pluralForm(number)]; 23250 if (f === 2) { 23251 str = str[withoutSuffix ? 0 : 1]; 23252 } 23253 return str.replace(/%d/i, number); 23254 }; 23255 }, 23256 months = [ 23257 'ÙÙØ§Ùر', 23258 'ÙØ¨Ø±Ø§Ùر', 23259 '٠ارس', 23260 'أبرÙÙ', 23261 '٠اÙÙ', 23262 'ÙÙÙÙÙ', 23263 'ÙÙÙÙÙ', 23264 'أغسطس', 23265 'سبت٠بر', 23266 'Ø£ÙØªÙبر', 23267 'ÙÙÙ٠بر', 23268 'Ø¯ÙØ³Ù بر', 23269 ]; 23270 23271 var ar = moment.defineLocale('ar', { 23272 months: months, 23273 monthsShort: months, 23274 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 23275 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 23276 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 23277 weekdaysParseExact: true, 23278 longDateFormat: { 23279 LT: 'HH:mm', 23280 LTS: 'HH:mm:ss', 23281 L: 'D/\u200FM/\u200FYYYY', 23282 LL: 'D MMMM YYYY', 23283 LLL: 'D MMMM YYYY HH:mm', 23284 LLLL: 'dddd D MMMM YYYY HH:mm', 23285 }, 23286 meridiemParse: /ص|Ù /, 23287 isPM: function (input) { 23288 return 'Ù ' === input; 23289 }, 23290 meridiem: function (hour, minute, isLower) { 23291 if (hour < 12) { 23292 return 'ص'; 23293 } else { 23294 return 'Ù '; 23295 } 23296 }, 23297 calendar: { 23298 sameDay: '[اÙÙÙÙ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23299 nextDay: '[ØºØ¯ÙØ§ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23300 nextWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23301 lastDay: '[أ٠س Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23302 lastWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23303 sameElse: 'L', 23304 }, 23305 relativeTime: { 23306 future: 'بعد %s', 23307 past: 'Ù ÙØ° %s', 23308 s: pluralize('s'), 23309 ss: pluralize('s'), 23310 m: pluralize('m'), 23311 mm: pluralize('m'), 23312 h: pluralize('h'), 23313 hh: pluralize('h'), 23314 d: pluralize('d'), 23315 dd: pluralize('d'), 23316 M: pluralize('M'), 23317 MM: pluralize('M'), 23318 y: pluralize('y'), 23319 yy: pluralize('y'), 23320 }, 23321 preparse: function (string) { 23322 return string 23323 .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { 23324 return numberMap[match]; 23325 }) 23326 .replace(/Ø/g, ','); 23327 }, 23328 postformat: function (string) { 23329 return string 23330 .replace(/\d/g, function (match) { 23331 return symbolMap[match]; 23332 }) 23333 .replace(/,/g, 'Ø'); 23334 }, 23335 week: { 23336 dow: 6, // Saturday is the first day of the week. 23337 doy: 12, // The week that contains Jan 12th is the first week of the year. 23338 }, 23339 }); 23340 23341 return ar; 23342 23343}))); 23344 23345 23346/***/ }), 23347/* 6 */ 23348/***/ (function(module, exports, __webpack_require__) { 23349 23350//! moment.js locale configuration 23351//! locale : Arabic (Algeria) [ar-dz] 23352//! author : Amine Roukh: https://github.com/Amine27 23353//! author : Abdel Said: https://github.com/abdelsaid 23354//! author : Ahmed Elkhatib 23355//! author : forabi https://github.com/forabi 23356//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem 23357 23358;(function (global, factory) { 23359 true ? factory(__webpack_require__(0)) : 23360 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 23361 factory(global.moment) 23362}(this, (function (moment) { 'use strict'; 23363 23364 //! moment.js locale configuration 23365 23366 var pluralForm = function (n) { 23367 return n === 0 23368 ? 0 23369 : n === 1 23370 ? 1 23371 : n === 2 23372 ? 2 23373 : n % 100 >= 3 && n % 100 <= 10 23374 ? 3 23375 : n % 100 >= 11 23376 ? 4 23377 : 5; 23378 }, 23379 plurals = { 23380 s: [ 23381 'Ø£Ù٠٠٠ثاÙÙØ©', 23382 'ثاÙÙØ© ÙØ§ØØ¯Ø©', 23383 ['ثاÙÙØªØ§Ù', 'ثاÙÙØªÙÙ'], 23384 '%d Ø«ÙØ§Ù', 23385 '%d ثاÙÙØ©', 23386 '%d ثاÙÙØ©', 23387 ], 23388 m: [ 23389 'Ø£Ù٠٠٠دÙÙÙØ©', 23390 'دÙÙÙØ© ÙØ§ØØ¯Ø©', 23391 ['دÙÙÙØªØ§Ù', 'دÙÙÙØªÙÙ'], 23392 '%d Ø¯ÙØ§Ø¦Ù', 23393 '%d دÙÙÙØ©', 23394 '%d دÙÙÙØ©', 23395 ], 23396 h: [ 23397 'Ø£Ù٠٠٠ساعة', 23398 'ساعة ÙØ§ØØ¯Ø©', 23399 ['ساعتاÙ', 'ساعتÙÙ'], 23400 '%d ساعات', 23401 '%d ساعة', 23402 '%d ساعة', 23403 ], 23404 d: [ 23405 'Ø£ÙÙ Ù Ù ÙÙÙ ', 23406 'ÙÙÙ ÙØ§ØØ¯', 23407 ['ÙÙ٠اÙ', 'ÙÙÙ ÙÙ'], 23408 '%d Ø£ÙØ§Ù ', 23409 '%d ÙÙÙ ÙØ§', 23410 '%d ÙÙÙ ', 23411 ], 23412 M: [ 23413 'Ø£ÙÙ Ù Ù Ø´ÙØ±', 23414 'Ø´ÙØ± ÙØ§ØØ¯', 23415 ['Ø´ÙØ±Ø§Ù', 'Ø´ÙØ±ÙÙ'], 23416 '%d Ø£Ø´ÙØ±', 23417 '%d Ø´ÙØ±Ø§', 23418 '%d Ø´ÙØ±', 23419 ], 23420 y: [ 23421 'Ø£Ù٠٠٠عا٠', 23422 'Ø¹Ø§Ù ÙØ§ØØ¯', 23423 ['عا٠اÙ', 'عا٠ÙÙ'], 23424 '%d Ø£Ø¹ÙØ§Ù ', 23425 '%d Ø¹Ø§Ù ÙØ§', 23426 '%d عا٠', 23427 ], 23428 }, 23429 pluralize = function (u) { 23430 return function (number, withoutSuffix, string, isFuture) { 23431 var f = pluralForm(number), 23432 str = plurals[u][pluralForm(number)]; 23433 if (f === 2) { 23434 str = str[withoutSuffix ? 0 : 1]; 23435 } 23436 return str.replace(/%d/i, number); 23437 }; 23438 }, 23439 months = [ 23440 'جاÙÙÙ', 23441 'ÙÙÙØ±Ù', 23442 '٠ارس', 23443 'Ø£ÙØ±ÙÙ', 23444 '٠اÙ', 23445 'Ø¬ÙØ§Ù', 23446 'جÙÙÙÙØ©', 23447 'Ø£ÙØª', 23448 'سبت٠بر', 23449 'Ø£ÙØªÙبر', 23450 'ÙÙÙ٠بر', 23451 'Ø¯ÙØ³Ù بر', 23452 ]; 23453 23454 var arDz = moment.defineLocale('ar-dz', { 23455 months: months, 23456 monthsShort: months, 23457 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 23458 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 23459 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 23460 weekdaysParseExact: true, 23461 longDateFormat: { 23462 LT: 'HH:mm', 23463 LTS: 'HH:mm:ss', 23464 L: 'D/\u200FM/\u200FYYYY', 23465 LL: 'D MMMM YYYY', 23466 LLL: 'D MMMM YYYY HH:mm', 23467 LLLL: 'dddd D MMMM YYYY HH:mm', 23468 }, 23469 meridiemParse: /ص|Ù /, 23470 isPM: function (input) { 23471 return 'Ù ' === input; 23472 }, 23473 meridiem: function (hour, minute, isLower) { 23474 if (hour < 12) { 23475 return 'ص'; 23476 } else { 23477 return 'Ù '; 23478 } 23479 }, 23480 calendar: { 23481 sameDay: '[اÙÙÙÙ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23482 nextDay: '[ØºØ¯ÙØ§ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23483 nextWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23484 lastDay: '[أ٠س Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23485 lastWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23486 sameElse: 'L', 23487 }, 23488 relativeTime: { 23489 future: 'بعد %s', 23490 past: 'Ù ÙØ° %s', 23491 s: pluralize('s'), 23492 ss: pluralize('s'), 23493 m: pluralize('m'), 23494 mm: pluralize('m'), 23495 h: pluralize('h'), 23496 hh: pluralize('h'), 23497 d: pluralize('d'), 23498 dd: pluralize('d'), 23499 M: pluralize('M'), 23500 MM: pluralize('M'), 23501 y: pluralize('y'), 23502 yy: pluralize('y'), 23503 }, 23504 postformat: function (string) { 23505 return string.replace(/,/g, 'Ø'); 23506 }, 23507 week: { 23508 dow: 0, // Sunday is the first day of the week. 23509 doy: 4, // The week that contains Jan 4th is the first week of the year. 23510 }, 23511 }); 23512 23513 return arDz; 23514 23515}))); 23516 23517 23518/***/ }), 23519/* 7 */ 23520/***/ (function(module, exports, __webpack_require__) { 23521 23522//! moment.js locale configuration 23523//! locale : Arabic (Kuwait) [ar-kw] 23524//! author : Nusret Parlak: https://github.com/nusretparlak 23525 23526;(function (global, factory) { 23527 true ? factory(__webpack_require__(0)) : 23528 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 23529 factory(global.moment) 23530}(this, (function (moment) { 'use strict'; 23531 23532 //! moment.js locale configuration 23533 23534 var arKw = moment.defineLocale('ar-kw', { 23535 months: 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙ_ÙÙÙÙÙ_ÙÙÙÙÙØ²_
vendor: 16,384 bytes, lines 23535-24045
23535غشت_Ø´ØªÙØ¨Ø±_Ø£ÙØªÙبر_ÙÙÙØ¨Ø±_Ø¯Ø¬ÙØ¨Ø±'.split( 23536 '_' 23537 ), 23538 monthsShort: 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙ_ÙÙÙÙÙ_ÙÙÙÙÙØ²_غشت_Ø´ØªÙØ¨Ø±_Ø£ÙØªÙبر_ÙÙÙØ¨Ø±_Ø¯Ø¬ÙØ¨Ø±'.split( 23539 '_' 23540 ), 23541 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥ØªÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 23542 weekdaysShort: 'Ø§ØØ¯_اتÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_اربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 23543 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 23544 weekdaysParseExact: true, 23545 longDateFormat: { 23546 LT: 'HH:mm', 23547 LTS: 'HH:mm:ss', 23548 L: 'DD/MM/YYYY', 23549 LL: 'D MMMM YYYY', 23550 LLL: 'D MMMM YYYY HH:mm', 23551 LLLL: 'dddd D MMMM YYYY HH:mm', 23552 }, 23553 calendar: { 23554 sameDay: '[اÙÙÙ٠عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23555 nextDay: '[غدا عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23556 nextWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23557 lastDay: '[أ٠س عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23558 lastWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23559 sameElse: 'L', 23560 }, 23561 relativeTime: { 23562 future: 'ÙÙ %s', 23563 past: 'Ù ÙØ° %s', 23564 s: 'Ø«ÙØ§Ù', 23565 ss: '%d ثاÙÙØ©', 23566 m: 'دÙÙÙØ©', 23567 mm: '%d Ø¯ÙØ§Ø¦Ù', 23568 h: 'ساعة', 23569 hh: '%d ساعات', 23570 d: 'ÙÙÙ ', 23571 dd: '%d Ø£ÙØ§Ù ', 23572 M: 'Ø´ÙØ±', 23573 MM: '%d Ø£Ø´ÙØ±', 23574 y: 'Ø³ÙØ©', 23575 yy: '%d سÙÙØ§Øª', 23576 }, 23577 week: { 23578 dow: 0, // Sunday is the first day of the week. 23579 doy: 12, // The week that contains Jan 12th is the first week of the year. 23580 }, 23581 }); 23582 23583 return arKw; 23584 23585}))); 23586 23587 23588/***/ }), 23589/* 8 */ 23590/***/ (function(module, exports, __webpack_require__) { 23591 23592//! moment.js locale configuration 23593//! locale : Arabic (Lybia) [ar-ly] 23594//! author : Ali Hmer: https://github.com/kikoanis 23595 23596;(function (global, factory) { 23597 true ? factory(__webpack_require__(0)) : 23598 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 23599 factory(global.moment) 23600}(this, (function (moment) { 'use strict'; 23601 23602 //! moment.js locale configuration 23603 23604 var symbolMap = { 23605 1: '1', 23606 2: '2', 23607 3: '3', 23608 4: '4', 23609 5: '5', 23610 6: '6', 23611 7: '7', 23612 8: '8', 23613 9: '9', 23614 0: '0', 23615 }, 23616 pluralForm = function (n) { 23617 return n === 0 23618 ? 0 23619 : n === 1 23620 ? 1 23621 : n === 2 23622 ? 2 23623 : n % 100 >= 3 && n % 100 <= 10 23624 ? 3 23625 : n % 100 >= 11 23626 ? 4 23627 : 5; 23628 }, 23629 plurals = { 23630 s: [ 23631 'Ø£Ù٠٠٠ثاÙÙØ©', 23632 'ثاÙÙØ© ÙØ§ØØ¯Ø©', 23633 ['ثاÙÙØªØ§Ù', 'ثاÙÙØªÙÙ'], 23634 '%d Ø«ÙØ§Ù', 23635 '%d ثاÙÙØ©', 23636 '%d ثاÙÙØ©', 23637 ], 23638 m: [ 23639 'Ø£Ù٠٠٠دÙÙÙØ©', 23640 'دÙÙÙØ© ÙØ§ØØ¯Ø©', 23641 ['دÙÙÙØªØ§Ù', 'دÙÙÙØªÙÙ'], 23642 '%d Ø¯ÙØ§Ø¦Ù', 23643 '%d دÙÙÙØ©', 23644 '%d دÙÙÙØ©', 23645 ], 23646 h: [ 23647 'Ø£Ù٠٠٠ساعة', 23648 'ساعة ÙØ§ØØ¯Ø©', 23649 ['ساعتاÙ', 'ساعتÙÙ'], 23650 '%d ساعات', 23651 '%d ساعة', 23652 '%d ساعة', 23653 ], 23654 d: [ 23655 'Ø£ÙÙ Ù Ù ÙÙÙ ', 23656 'ÙÙÙ ÙØ§ØØ¯', 23657 ['ÙÙ٠اÙ', 'ÙÙÙ ÙÙ'], 23658 '%d Ø£ÙØ§Ù ', 23659 '%d ÙÙÙ ÙØ§', 23660 '%d ÙÙÙ ', 23661 ], 23662 M: [ 23663 'Ø£ÙÙ Ù Ù Ø´ÙØ±', 23664 'Ø´ÙØ± ÙØ§ØØ¯', 23665 ['Ø´ÙØ±Ø§Ù', 'Ø´ÙØ±ÙÙ'], 23666 '%d Ø£Ø´ÙØ±', 23667 '%d Ø´ÙØ±Ø§', 23668 '%d Ø´ÙØ±', 23669 ], 23670 y: [ 23671 'Ø£Ù٠٠٠عا٠', 23672 'Ø¹Ø§Ù ÙØ§ØØ¯', 23673 ['عا٠اÙ', 'عا٠ÙÙ'], 23674 '%d Ø£Ø¹ÙØ§Ù ', 23675 '%d Ø¹Ø§Ù ÙØ§', 23676 '%d عا٠', 23677 ], 23678 }, 23679 pluralize = function (u) { 23680 return function (number, withoutSuffix, string, isFuture) { 23681 var f = pluralForm(number), 23682 str = plurals[u][pluralForm(number)]; 23683 if (f === 2) { 23684 str = str[withoutSuffix ? 0 : 1]; 23685 } 23686 return str.replace(/%d/i, number); 23687 }; 23688 }, 23689 months = [ 23690 'ÙÙØ§Ùر', 23691 'ÙØ¨Ø±Ø§Ùر', 23692 '٠ارس', 23693 'أبرÙÙ', 23694 '٠اÙÙ', 23695 'ÙÙÙÙÙ', 23696 'ÙÙÙÙÙ', 23697 'أغسطس', 23698 'سبت٠بر', 23699 'Ø£ÙØªÙبر', 23700 'ÙÙÙ٠بر', 23701 'Ø¯ÙØ³Ù بر', 23702 ]; 23703 23704 var arLy = moment.defineLocale('ar-ly', { 23705 months: months, 23706 monthsShort: months, 23707 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 23708 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 23709 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 23710 weekdaysParseExact: true, 23711 longDateFormat: { 23712 LT: 'HH:mm', 23713 LTS: 'HH:mm:ss', 23714 L: 'D/\u200FM/\u200FYYYY', 23715 LL: 'D MMMM YYYY', 23716 LLL: 'D MMMM YYYY HH:mm', 23717 LLLL: 'dddd D MMMM YYYY HH:mm', 23718 }, 23719 meridiemParse: /ص|Ù /, 23720 isPM: function (input) { 23721 return 'Ù ' === input; 23722 }, 23723 meridiem: function (hour, minute, isLower) { 23724 if (hour < 12) { 23725 return 'ص'; 23726 } else { 23727 return 'Ù '; 23728 } 23729 }, 23730 calendar: { 23731 sameDay: '[اÙÙÙÙ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23732 nextDay: '[ØºØ¯ÙØ§ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23733 nextWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23734 lastDay: '[أ٠س Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23735 lastWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23736 sameElse: 'L', 23737 }, 23738 relativeTime: { 23739 future: 'بعد %s', 23740 past: 'Ù ÙØ° %s', 23741 s: pluralize('s'), 23742 ss: pluralize('s'), 23743 m: pluralize('m'), 23744 mm: pluralize('m'), 23745 h: pluralize('h'), 23746 hh: pluralize('h'), 23747 d: pluralize('d'), 23748 dd: pluralize('d'), 23749 M: pluralize('M'), 23750 MM: pluralize('M'), 23751 y: pluralize('y'), 23752 yy: pluralize('y'), 23753 }, 23754 preparse: function (string) { 23755 return string.replace(/Ø/g, ','); 23756 }, 23757 postformat: function (string) { 23758 return string 23759 .replace(/\d/g, function (match) { 23760 return symbolMap[match]; 23761 }) 23762 .replace(/,/g, 'Ø'); 23763 }, 23764 week: { 23765 dow: 6, // Saturday is the first day of the week. 23766 doy: 12, // The week that contains Jan 12th is the first week of the year. 23767 }, 23768 }); 23769 23770 return arLy; 23771 23772}))); 23773 23774 23775/***/ }), 23776/* 9 */ 23777/***/ (function(module, exports, __webpack_require__) { 23778 23779//! moment.js locale configuration 23780//! locale : Arabic (Morocco) [ar-ma] 23781//! author : ElFadili Yassine : https://github.com/ElFadiliY 23782//! author : Abdel Said : https://github.com/abdelsaid 23783 23784;(function (global, factory) { 23785 true ? factory(__webpack_require__(0)) : 23786 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 23787 factory(global.moment) 23788}(this, (function (moment) { 'use strict'; 23789 23790 //! moment.js locale configuration 23791 23792 var arMa = moment.defineLocale('ar-ma', { 23793 months: 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙ_ÙÙÙÙÙ_ÙÙÙÙÙØ²_غشت_Ø´ØªÙØ¨Ø±_Ø£ÙØªÙبر_ÙÙÙØ¨Ø±_Ø¯Ø¬ÙØ¨Ø±'.split( 23794 '_' 23795 ), 23796 monthsShort: 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙ_ÙÙÙÙÙ_ÙÙÙÙÙØ²_غشت_Ø´ØªÙØ¨Ø±_Ø£ÙØªÙبر_ÙÙÙØ¨Ø±_Ø¯Ø¬ÙØ¨Ø±'.split( 23797 '_' 23798 ), 23799 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 23800 weekdaysShort: 'Ø§ØØ¯_اثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_اربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 23801 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 23802 weekdaysParseExact: true, 23803 longDateFormat: { 23804 LT: 'HH:mm', 23805 LTS: 'HH:mm:ss', 23806 L: 'DD/MM/YYYY', 23807 LL: 'D MMMM YYYY', 23808 LLL: 'D MMMM YYYY HH:mm', 23809 LLLL: 'dddd D MMMM YYYY HH:mm', 23810 }, 23811 calendar: { 23812 sameDay: '[اÙÙÙ٠عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23813 nextDay: '[غدا عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23814 nextWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23815 lastDay: '[أ٠س عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23816 lastWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23817 sameElse: 'L', 23818 }, 23819 relativeTime: { 23820 future: 'ÙÙ %s', 23821 past: 'Ù ÙØ° %s', 23822 s: 'Ø«ÙØ§Ù', 23823 ss: '%d ثاÙÙØ©', 23824 m: 'دÙÙÙØ©', 23825 mm: '%d Ø¯ÙØ§Ø¦Ù', 23826 h: 'ساعة', 23827 hh: '%d ساعات', 23828 d: 'ÙÙÙ ', 23829 dd: '%d Ø£ÙØ§Ù ', 23830 M: 'Ø´ÙØ±', 23831 MM: '%d Ø£Ø´ÙØ±', 23832 y: 'Ø³ÙØ©', 23833 yy: '%d سÙÙØ§Øª', 23834 }, 23835 week: { 23836 dow: 1, // Monday is the first day of the week. 23837 doy: 4, // The week that contains Jan 4th is the first week of the year. 23838 }, 23839 }); 23840 23841 return arMa; 23842 23843}))); 23844 23845 23846/***/ }), 23847/* 10 */ 23848/***/ (function(module, exports, __webpack_require__) { 23849 23850//! moment.js locale configuration 23851//! locale : Arabic (Saudi Arabia) [ar-sa] 23852//! author : Suhail Alkowaileet : https://github.com/xsoh 23853 23854;(function (global, factory) { 23855 true ? factory(__webpack_require__(0)) : 23856 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 23857 factory(global.moment) 23858}(this, (function (moment) { 'use strict'; 23859 23860 //! moment.js locale configuration 23861 23862 var symbolMap = { 23863 1: 'Ù¡', 23864 2: 'Ù¢', 23865 3: 'Ù£', 23866 4: 'Ù¤', 23867 5: 'Ù¥', 23868 6: 'Ù¦', 23869 7: 'Ù§', 23870 8: 'Ù¨', 23871 9: 'Ù©', 23872 0: 'Ù ', 23873 }, 23874 numberMap = { 23875 'Ù¡': '1', 23876 'Ù¢': '2', 23877 'Ù£': '3', 23878 'Ù¤': '4', 23879 'Ù¥': '5', 23880 'Ù¦': '6', 23881 'Ù§': '7', 23882 'Ù¨': '8', 23883 'Ù©': '9', 23884 'Ù ': '0', 23885 }; 23886 23887 var arSa = moment.defineLocale('ar-sa', { 23888 months: 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙÙ_ÙÙÙÙÙ_ÙÙÙÙÙ_أغسطس_سبت٠بر_Ø£ÙØªÙبر_ÙÙÙ٠بر_Ø¯ÙØ³Ù بر'.split( 23889 '_' 23890 ), 23891 monthsShort: 'ÙÙØ§Ùر_ÙØ¨Ø±Ø§Ùر_٠ارس_أبرÙÙ_٠اÙÙ_ÙÙÙÙÙ_ÙÙÙÙÙ_أغسطس_سبت٠بر_Ø£ÙØªÙبر_ÙÙÙ٠بر_Ø¯ÙØ³Ù بر'.split( 23892 '_' 23893 ), 23894 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 23895 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 23896 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 23897 weekdaysParseExact: true, 23898 longDateFormat: { 23899 LT: 'HH:mm', 23900 LTS: 'HH:mm:ss', 23901 L: 'DD/MM/YYYY', 23902 LL: 'D MMMM YYYY', 23903 LLL: 'D MMMM YYYY HH:mm', 23904 LLLL: 'dddd D MMMM YYYY HH:mm', 23905 }, 23906 meridiemParse: /ص|Ù /, 23907 isPM: function (input) { 23908 return 'Ù ' === input; 23909 }, 23910 meridiem: function (hour, minute, isLower) { 23911 if (hour < 12) { 23912 return 'ص'; 23913 } else { 23914 return 'Ù '; 23915 } 23916 }, 23917 calendar: { 23918 sameDay: '[اÙÙÙ٠عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23919 nextDay: '[غدا عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23920 nextWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23921 lastDay: '[أ٠س عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23922 lastWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 23923 sameElse: 'L', 23924 }, 23925 relativeTime: { 23926 future: 'ÙÙ %s', 23927 past: 'Ù ÙØ° %s', 23928 s: 'Ø«ÙØ§Ù', 23929 ss: '%d ثاÙÙØ©', 23930 m: 'دÙÙÙØ©', 23931 mm: '%d Ø¯ÙØ§Ø¦Ù', 23932 h: 'ساعة', 23933 hh: '%d ساعات', 23934 d: 'ÙÙÙ ', 23935 dd: '%d Ø£ÙØ§Ù ', 23936 M: 'Ø´ÙØ±', 23937 MM: '%d Ø£Ø´ÙØ±', 23938 y: 'Ø³ÙØ©', 23939 yy: '%d سÙÙØ§Øª', 23940 }, 23941 preparse: function (string) { 23942 return string 23943 .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { 23944 return numberMap[match]; 23945 }) 23946 .replace(/Ø/g, ','); 23947 }, 23948 postformat: function (string) { 23949 return string 23950 .replace(/\d/g, function (match) { 23951 return symbolMap[match]; 23952 }) 23953 .replace(/,/g, 'Ø'); 23954 }, 23955 week: { 23956 dow: 0, // Sunday is the first day of the week. 23957 doy: 6, // The week that contains Jan 6th is the first week of the year. 23958 }, 23959 }); 23960 23961 return arSa; 23962 23963}))); 23964 23965 23966/***/ }), 23967/* 11 */ 23968/***/ (function(module, exports, __webpack_require__) { 23969 23970//! moment.js locale configuration 23971//! locale : Arabic (Tunisia) [ar-tn] 23972//! author : Nader Toukabri : https://github.com/naderio 23973 23974;(function (global, factory) { 23975 true ? factory(__webpack_require__(0)) : 23976 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 23977 factory(global.moment) 23978}(this, (function (moment) { 'use strict'; 23979 23980 //! moment.js locale configuration 23981 23982 var arTn = moment.defineLocale('ar-tn', { 23983 months: 'جاÙÙÙ_ÙÙÙØ±Ù_٠ارس_Ø£ÙØ±ÙÙ_٠اÙ_Ø¬ÙØ§Ù_جÙÙÙÙØ©_Ø£ÙØª_سبت٠بر_Ø£ÙØªÙبر_ÙÙÙ٠بر_Ø¯ÙØ³Ù بر'.split( 23984 '_' 23985 ), 23986 monthsShort: 'جاÙÙÙ_ÙÙÙØ±Ù_٠ارس_Ø£ÙØ±ÙÙ_٠اÙ_Ø¬ÙØ§Ù_جÙÙÙÙØ©_Ø£ÙØª_سبت٠بر_Ø£ÙØªÙبر_ÙÙÙ٠بر_Ø¯ÙØ³Ù بر'.split( 23987 '_' 23988 ), 23989 weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù ÙØ³_Ø§ÙØ¬Ù عة_Ø§ÙØ³Ø¨Øª'.split('_'), 23990 weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù ÙØ³_ج٠عة_سبت'.split('_'), 23991 weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'), 23992 weekdaysParseExact: true, 23993 longDateFormat: { 23994 LT: 'HH:mm', 23995 LTS: 'HH:mm:ss', 23996 L: 'DD/MM/YYYY', 23997 LL: 'D MMMM YYYY', 23998 LLL: 'D MMMM YYYY HH:mm', 23999 LLLL: 'dddd D MMMM YYYY HH:mm', 24000 }, 24001 calendar: { 24002 sameDay: '[اÙÙÙ٠عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 24003 nextDay: '[غدا عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 24004 nextWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 24005 lastDay: '[أ٠س عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 24006 lastWeek: 'dddd [عÙÙ Ø§ÙØ³Ø§Ø¹Ø©] LT', 24007 sameElse: 'L', 24008 }, 24009 relativeTime: { 24010 future: 'ÙÙ %s', 24011 past: 'Ù ÙØ° %s', 24012 s: 'Ø«ÙØ§Ù', 24013 ss: '%d ثاÙÙØ©', 24014 m: 'دÙÙÙØ©', 24015 mm: '%d Ø¯ÙØ§Ø¦Ù', 24016 h: 'ساعة', 24017 hh: '%d ساعات', 24018 d: 'ÙÙÙ ', 24019 dd: '%d Ø£ÙØ§Ù ', 24020 M: 'Ø´ÙØ±', 24021 MM: '%d Ø£Ø´ÙØ±', 24022 y: 'Ø³ÙØ©', 24023 yy: '%d سÙÙØ§Øª', 24024 }, 24025 week: { 24026 dow: 1, // Monday is the first day of the week. 24027 doy: 4, // The week that contains Jan 4th is the first week of the year. 24028 }, 24029 }); 24030 24031 return arTn; 24032 24033}))); 24034 24035 24036/***/ }), 24037/* 12 */ 24038/***/ (function(module, exports, __webpack_require__) { 24039 24040//! moment.js locale configuration 24041//! locale : Azerbaijani [az] 24042//! author : topchiyev : https://github.com/topchiyev 24043 24044;(function (global, factory) { 24045
24045 true ? factory(__webpack_require__(0)) : 24046 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 24047 factory(global.moment) 24048}(this, (function (moment) { 'use strict'; 24049 24050 //! moment.js locale configuration 24051 24052 var suffixes = { 24053 1: '-inci', 24054 5: '-inci', 24055 8: '-inci', 24056 70: '-inci', 24057 80: '-inci', 24058 2: '-nci', 24059 7: '-nci', 24060 20: '-nci', 24061 50: '-nci', 24062 3: '-üncü', 24063 4: '-üncü', 24064 100: '-üncü', 24065 6: '-ncı', 24066 9: '-uncu', 24067 10: '-uncu', 24068 30: '-uncu', 24069 60: '-ıncı', 24070 90: '-ıncı', 24071 }; 24072 24073 var az = moment.defineLocale('az', { 24074 months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( 24075 '_' 24076 ), 24077 monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), 24078 weekdays: 'Bazar_Bazar ertÉsi_ÃÉrÅÉnbÉ axÅamı_ÃÉrÅÉnbÉ_CümÉ axÅamı_CümÉ_ÅÉnbÉ'.split( 24079 '_' 24080 ), 24081 weekdaysShort: 'Baz_BzE_ÃAx_ÃÉr_CAx_Cüm_ÅÉn'.split('_'), 24082 weekdaysMin: 'Bz_BE_ÃA_ÃÉ_CA_Cü_ÅÉ'.split('_'), 24083 weekdaysParseExact: true, 24084 longDateFormat: { 24085 LT: 'HH:mm', 24086 LTS: 'HH:mm:ss', 24087 L: 'DD.MM.YYYY', 24088 LL: 'D MMMM YYYY', 24089 LLL: 'D MMMM YYYY HH:mm', 24090 LLLL: 'dddd, D MMMM YYYY HH:mm', 24091 }, 24092 calendar: { 24093 sameDay: '[bugün saat] LT', 24094 nextDay: '[sabah saat] LT', 24095 nextWeek: '[gÉlÉn hÉftÉ] dddd [saat] LT', 24096 lastDay: '[dünÉn] LT', 24097 lastWeek: '[keçÉn hÉftÉ] dddd [saat] LT', 24098 sameElse: 'L', 24099 }, 24100 relativeTime: { 24101 future: '%s sonra', 24102 past: '%s ÉvvÉl', 24103 s: 'bir neÃ§É saniyÉ', 24104 ss: '%d saniyÉ', 24105 m: 'bir dÉqiqÉ', 24106 mm: '%d dÉqiqÉ', 24107 h: 'bir saat', 24108 hh: '%d saat', 24109 d: 'bir gün', 24110 dd: '%d gün', 24111 M: 'bir ay', 24112 MM: '%d ay', 24113 y: 'bir il', 24114 yy: '%d il', 24115 }, 24116 meridiemParse: /gecÉ|sÉhÉr|gündüz|axÅam/, 24117 isPM: function (input) { 24118 return /^(gündüz|axÅam)$/.test(input); 24119 }, 24120 meridiem: function (hour, minute, isLower) { 24121 if (hour < 4) { 24122 return 'gecÉ'; 24123 } else if (hour < 12) { 24124 return 'sÉhÉr'; 24125 } else if (hour < 17) { 24126 return 'gündüz'; 24127 } else { 24128 return 'axÅam'; 24129 } 24130 }, 24131 dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, 24132 ordinal: function (number) { 24133 if (number === 0) { 24134 // special case for zero 24135 return number + '-ıncı'; 24136 } 24137 var a = number % 10, 24138 b = (number % 100) - a, 24139 c = number >= 100 ? 100 : null; 24140 return number + (suffixes[a] || suffixes[b] || suffixes[c]); 24141 }, 24142 week: { 24143 dow: 1, // Monday is the first day of the week. 24144 doy: 7, // The week that contains Jan 7th is the first week of the year. 24145 }, 24146 }); 24147 24148 return az; 24149 24150}))); 24151 24152 24153/***/ }), 24154/* 13 */ 24155/***/ (function(module, exports, __webpack_require__) { 24156 24157//! moment.js locale configuration 24158//! locale : Belarusian [be] 24159//! author : Dmitry Demidov : https://github.com/demidov91 24160//! author: Praleska: http://praleska.pro/ 24161//! Author : Menelion Elensúle : https://github.com/Oire 24162 24163;(function (global, factory) { 24164 true ? factory(__webpack_require__(0)) : 24165 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 24166 factory(global.moment) 24167}(this, (function (moment) { 'use strict'; 24168 24169 //! moment.js locale configuration 24170 24171 function plural(word, num) { 24172 var forms = word.split('_'); 24173 return num % 10 === 1 && num % 100 !== 11 24174 ? forms[0] 24175 : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) 24176 ? forms[1] 24177 : forms[2]; 24178 } 24179 function relativeTimeWithPlural(number, withoutSuffix, key) { 24180 var format = { 24181 ss: withoutSuffix ? 'ÑекÑнда_ÑекÑндÑ_ÑекÑнд' : 'ÑекÑндÑ_ÑекÑндÑ_ÑекÑнд', 24182 mm: withoutSuffix ? 'Ñ Ð²ÑлÑна_Ñ Ð²ÑлÑнÑ_Ñ Ð²ÑлÑн' : 'Ñ Ð²ÑлÑнÑ_Ñ Ð²ÑлÑнÑ_Ñ Ð²ÑлÑн', 24183 hh: withoutSuffix ? 'гадзÑна_гадзÑнÑ_гадзÑн' : 'гадзÑнÑ_гадзÑнÑ_гадзÑн', 24184 dd: 'дзенÑ_днÑ_дзÑн', 24185 MM: 'меÑÑÑ_меÑÑÑÑ_меÑÑÑаÑ', 24186 yy: 'год_гадÑ_гадоÑ', 24187 }; 24188 if (key === 'm') { 24189 return withoutSuffix ? 'Ñ Ð²ÑлÑна' : 'Ñ Ð²ÑлÑнÑ'; 24190 } else if (key === 'h') { 24191 return withoutSuffix ? 'гадзÑна' : 'гадзÑнÑ'; 24192 } else {
vendor: 14,874 bytes, lines 24193-24618
24193 return number + ' ' + plural(format[key], +number); 24194 } 24195 } 24196 24197 var be = moment.defineLocale('be', { 24198 months: { 24199 format: 'ÑÑÑдзенÑ_лÑÑага_ÑакавÑка_кÑаÑавÑка_ÑÑаÑнÑ_ÑÑÑвенÑ_лÑпенÑ_жнÑÑнÑ_веÑаÑнÑ_каÑÑÑÑÑнÑка_лÑÑÑапада_ÑнежнÑ'.split( 24200 '_' 24201 ), 24202 standalone: 'ÑÑÑдзенÑ_лÑÑÑ_ÑакавÑк_кÑаÑавÑк_ÑÑавенÑ_ÑÑÑвенÑ_лÑпенÑ_жнÑвенÑ_веÑаÑенÑ_каÑÑÑÑÑнÑк_лÑÑÑапад_ÑнежанÑ'.split( 24203 '_' 24204 ), 24205 }, 24206 monthsShort: 'ÑÑÑд_лÑÑ_Ñак_кÑаÑ_ÑÑав_ÑÑÑв_лÑп_жнÑв_веÑ_каÑÑ_лÑÑÑ_Ñнеж'.split( 24207 '_' 24208 ), 24209 weekdays: { 24210 format: 'нÑдзелÑ_панÑдзелак_аÑÑоÑак_ÑеÑадÑ_ÑаÑвеÑ_пÑÑнÑÑÑ_ÑÑбоÑÑ'.split( 24211 '_' 24212 ), 24213 standalone: 'нÑдзелÑ_панÑдзелак_аÑÑоÑак_ÑеÑада_ÑаÑвеÑ_пÑÑнÑÑа_ÑÑбоÑа'.split( 24214 '_' 24215 ), 24216 isFormat: /\[ ?[УÑÑ] ?(?:мÑнÑлÑÑ|наÑÑÑпнÑÑ)? ?\] ?dddd/, 24217 }, 24218 weekdaysShort: 'нд_пн_аÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 24219 weekdaysMin: 'нд_пн_аÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 24220 longDateFormat: { 24221 LT: 'HH:mm', 24222 LTS: 'HH:mm:ss', 24223 L: 'DD.MM.YYYY', 24224 LL: 'D MMMM YYYY г.', 24225 LLL: 'D MMMM YYYY г., HH:mm', 24226 LLLL: 'dddd, D MMMM YYYY г., HH:mm', 24227 }, 24228 calendar: { 24229 sameDay: '[СÑÐ½Ð½Ñ Ñ] LT', 24230 nextDay: '[ÐаÑÑÑа Ñ] LT', 24231 lastDay: '[УÑоÑа Ñ] LT', 24232 nextWeek: function () { 24233 return '[У] dddd [Ñ] LT'; 24234 }, 24235 lastWeek: function () { 24236 switch (this.day()) { 24237 case 0: 24238 case 3: 24239 case 5: 24240 case 6: 24241 return '[У мÑнÑлÑÑ] dddd [Ñ] LT'; 24242 case 1: 24243 case 2: 24244 case 4: 24245 return '[У мÑнÑлÑ] dddd [Ñ] LT'; 24246 } 24247 }, 24248 sameElse: 'L', 24249 }, 24250 relativeTime: { 24251 future: 'пÑаз %s', 24252 past: '%s ÑамÑ', 24253 s: 'некалÑÐºÑ ÑекÑнд', 24254 m: relativeTimeWithPlural, 24255 mm: relativeTimeWithPlural, 24256 h: relativeTimeWithPlural, 24257 hh: relativeTimeWithPlural, 24258 d: 'дзенÑ', 24259 dd: relativeTimeWithPlural, 24260 M: 'меÑÑÑ', 24261 MM: relativeTimeWithPlural, 24262 y: 'год', 24263 yy: relativeTimeWithPlural, 24264 }, 24265 meridiemParse: /ноÑÑ|ÑанÑÑÑ|днÑ|веÑаÑа/, 24266 isPM: function (input) { 24267 return /^(днÑ|веÑаÑа)$/.test(input); 24268 }, 24269 meridiem: function (hour, minute, isLower) { 24270 if (hour < 4) { 24271 return 'ноÑÑ'; 24272 } else if (hour < 12) { 24273 return 'ÑанÑÑÑ'; 24274 } else if (hour < 17) { 24275 return 'днÑ'; 24276 } else { 24277 return 'веÑаÑа'; 24278 } 24279 }, 24280 dayOfMonthOrdinalParse: /\d{1,2}-(Ñ|Ñ|га)/, 24281 ordinal: function (number, period) { 24282 switch (period) { 24283 case 'M': 24284 case 'd': 24285 case 'DDD': 24286 case 'w': 24287 case 'W': 24288 return (number % 10 === 2 || number % 10 === 3) && 24289 number % 100 !== 12 && 24290 number % 100 !== 13 24291 ? number + '-Ñ' 24292 : number + '-Ñ'; 24293 case 'D': 24294 return number + '-га'; 24295 default: 24296 return number; 24297 } 24298 }, 24299 week: { 24300 dow: 1, // Monday is the first day of the week. 24301 doy: 7, // The week that contains Jan 7th is the first week of the year. 24302 }, 24303 }); 24304 24305 return be; 24306 24307}))); 24308 24309 24310/***/ }), 24311/* 14 */ 24312/***/ (function(module, exports, __webpack_require__) { 24313 24314//! moment.js locale configuration 24315//! locale : Bulgarian [bg] 24316//! author : Krasen Borisov : https://github.com/kraz 24317 24318;(function (global, factory) { 24319 true ? factory(__webpack_require__(0)) : 24320 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 24321 factory(global.moment) 24322}(this, (function (moment) { 'use strict'; 24323 24324 //! moment.js locale configuration 24325 24326 var bg = moment.defineLocale('bg', { 24327 months: 'ÑнÑаÑи_ÑевÑÑаÑи_маÑÑ_апÑил_май_Ñни_Ñли_авгÑÑÑ_ÑепÑемвÑи_окÑомвÑи_ноемвÑи_декемвÑи'.split( 24328 '_' 24329 ), 24330 monthsShort: 'ÑнÑ_Ñев_маÑ_апÑ_май_Ñни_Ñли_авг_Ñеп_окÑ_ное_дек'.split('_'), 24331 weekdays: 'неделÑ_понеделник_вÑоÑник_ÑÑÑда_ÑеÑвÑÑÑÑк_пеÑÑк_ÑÑбоÑа'.split( 24332 '_' 24333 ), 24334 weekdaysShort: 'нед_пон_вÑо_ÑÑÑ_ÑеÑ_пеÑ_ÑÑб'.split('_'), 24335 weekdaysMin: 'нд_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 24336 longDateFormat: { 24337 LT: 'H:mm', 24338 LTS: 'H:mm:ss', 24339 L: 'D.MM.YYYY', 24340 LL: 'D MMMM YYYY', 24341 LLL: 'D MMMM YYYY H:mm', 24342 LLLL: 'dddd, D MMMM YYYY H:mm', 24343 }, 24344 calendar: { 24345 sameDay: '[ÐÐ½ÐµÑ Ð²] LT', 24346 nextDay: '[УÑÑе в] LT', 24347 nextWeek: 'dddd [в] LT', 24348 lastDay: '[ÐÑеÑа в] LT', 24349 lastWeek: function () { 24350 switch (this.day()) { 24351 case 0: 24352 case 3: 24353 case 6: 24354 return '[ÐиналаÑа] dddd [в] LT'; 24355 case 1: 24356 case 2: 24357 case 4: 24358 case 5: 24359 return '[ÐиналиÑ] dddd [в] LT'; 24360 } 24361 }, 24362 sameElse: 'L', 24363 }, 24364 relativeTime: { 24365 future: 'Ñлед %s', 24366 past: 'пÑеди %s', 24367 s: 'нÑколко ÑекÑнди', 24368 ss: '%d ÑекÑнди', 24369 m: 'минÑÑа', 24370 mm: '%d минÑÑи', 24371 h: 'ÑаÑ', 24372 hh: '%d ÑаÑа', 24373 d: 'ден', 24374 dd: '%d дена', 24375 w: 'ÑедмиÑа', 24376 ww: '%d ÑедмиÑи', 24377 M: 'меÑеÑ', 24378 MM: '%d меÑеÑа', 24379 y: 'година', 24380 yy: '%d години', 24381 }, 24382 dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|Ñи|ви|Ñи|ми)/, 24383 ordinal: function (number) { 24384 var lastDigit = number % 10, 24385 last2Digits = number % 100; 24386 if (number === 0) { 24387 return number + '-ев'; 24388 } else if (last2Digits === 0) { 24389 return number + '-ен'; 24390 } else if (last2Digits > 10 && last2Digits < 20) { 24391 return number + '-Ñи'; 24392 } else if (lastDigit === 1) { 24393 return number + '-ви'; 24394 } else if (lastDigit === 2) { 24395 return number + '-Ñи'; 24396 } else if (lastDigit === 7 || lastDigit === 8) { 24397 return number + '-ми'; 24398 } else { 24399 return number + '-Ñи'; 24400 } 24401 }, 24402 week: { 24403 dow: 1, // Monday is the first day of the week. 24404 doy: 7, // The week that contains Jan 7th is the first week of the year. 24405 }, 24406 }); 24407 24408 return bg; 24409 24410}))); 24411 24412 24413/***/ }), 24414/* 15 */ 24415/***/ (function(module, exports, __webpack_require__) { 24416 24417//! moment.js locale configuration 24418//! locale : Bambara [bm] 24419//! author : Estelle Comment : https://github.com/estellecomment 24420 24421;(function (global, factory) { 24422 true ? factory(__webpack_require__(0)) : 24423 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 24424 factory(global.moment) 24425}(this, (function (moment) { 'use strict'; 24426 24427 //! moment.js locale configuration 24428 24429 var bm = moment.defineLocale('bm', { 24430 months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_MÉkalo_ZuwÉnkalo_Zuluyekalo_Utikalo_SÉtanburukalo_ÉkutÉburukalo_Nowanburukalo_Desanburukalo'.split( 24431 '_' 24432 ), 24433 monthsShort: 'Zan_Few_Mar_Awi_MÉ_Zuw_Zul_Uti_SÉt_Éku_Now_Des'.split('_'), 24434 weekdays: 'Kari_NtÉnÉn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), 24435 weekdaysShort: 'Kar_NtÉ_Tar_Ara_Ala_Jum_Sib'.split('_'), 24436 weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), 24437 longDateFormat: { 24438 LT: 'HH:mm', 24439 LTS: 'HH:mm:ss', 24440 L: 'DD/MM/YYYY', 24441 LL: 'MMMM [tile] D [san] YYYY', 24442 LLL: 'MMMM [tile] D [san] YYYY [lÉrÉ] HH:mm', 24443 LLLL: 'dddd MMMM [tile] D [san] YYYY [lÉrÉ] HH:mm', 24444 }, 24445 calendar: { 24446 sameDay: '[Bi lÉrÉ] LT', 24447 nextDay: '[Sini lÉrÉ] LT', 24448 nextWeek: 'dddd [don lÉrÉ] LT', 24449 lastDay: '[Kunu lÉrÉ] LT', 24450 lastWeek: 'dddd [tÉmÉnen lÉrÉ] LT', 24451 sameElse: 'L', 24452 }, 24453 relativeTime: { 24454 future: '%s kÉnÉ', 24455 past: 'a bÉ %s bÉ', 24456 s: 'sanga dama dama', 24457 ss: 'sekondi %d', 24458 m: 'miniti kelen', 24459 mm: 'miniti %d', 24460 h: 'lÉrÉ kelen', 24461 hh: 'lÉrÉ %d', 24462 d: 'tile kelen', 24463 dd: 'tile %d', 24464 M: 'kalo kelen', 24465 MM: 'kalo %d', 24466 y: 'san kelen', 24467 yy: 'san %d', 24468 }, 24469 week: { 24470 dow: 1, // Monday is the first day of the week. 24471 doy: 4, // The week that contains Jan 4th is the first week of the year. 24472 }, 24473 }); 24474 24475 return bm; 24476 24477}))); 24478 24479 24480/***/ }), 24481/* 16 */ 24482/***/ (function(module, exports, __webpack_require__) { 24483 24484//! moment.js locale configuration 24485//! locale : Bengali [bn] 24486//! author : Kaushik Gandhi : https://github.com/kaushikgandhi 24487 24488;(function (global, factory) { 24489 true ? factory(__webpack_require__(0)) : 24490 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 24491 factory(global.moment) 24492}(this, (function (moment) { 'use strict'; 24493 24494 //! moment.js locale configuration 24495 24496 var symbolMap = { 24497 1: 'à§§', 24498 2: '২', 24499 3: 'à§©', 24500 4: '৪', 24501 5: 'à§«', 24502 6: '৬', 24503 7: 'à§', 24504 8: 'à§®', 24505 9: '৯', 24506 0: '০', 24507 }, 24508 numberMap = { 24509 'à§§': '1', 24510 '২': '2', 24511 'à§©': '3', 24512 '৪': '4', 24513 'à§«': '5', 24514 '৬': '6', 24515 'à§': '7', 24516 'à§®': '8', 24517 '৯': '9', 24518 '০': '0', 24519 }; 24520 24521 var bn = moment.defineLocale('bn', { 24522 months: 'à¦à¦¾à¦¨à§à§à¦¾à¦°à¦¿_ফà§à¦¬à§à¦°à§à§à¦¾à¦°à¦¿_মারà§à¦_à¦à¦ªà§à¦°à¦¿à¦²_মà§_à¦à§à¦¨_à¦à§à¦²à¦¾à¦_à¦à¦à¦¸à§à¦_সà§à¦ªà§à¦à§à¦®à§à¦¬à¦°_ঠà¦à§à¦à§à¦¬à¦°_নà¦à§à¦®à§à¦¬à¦°_ডিসà§à¦®à§à¦¬à¦°'.split( 24523 '_' 24524 ), 24525 monthsShort: 'à¦à¦¾à¦¨à§_ফà§à¦¬à§à¦°à§_মারà§à¦_à¦à¦ªà§à¦°à¦¿à¦²_মà§_à¦à§à¦¨_à¦à§à¦²à¦¾à¦_à¦à¦à¦¸à§à¦_সà§à¦ªà§à¦_ঠà¦à§à¦à§_নà¦à§_ডিসà§'.split( 24526 '_' 24527 ), 24528 weekdays: 'রবিবার_সà§à¦®à¦¬à¦¾à¦°_মà¦à§à¦à¦²à¦¬à¦¾à¦°_বà§à¦§à¦¬à¦¾à¦°_বà§à¦¹à¦¸à§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°_শà§à¦à§à¦°à¦¬à¦¾à¦°_শনিবার'.split( 24529 '_' 24530 ), 24531 weekdaysShort: 'রবি_সà§à¦®_মà¦à§à¦à¦²_বà§à¦§_বà§à¦¹à¦¸à§à¦ªà¦¤à¦¿_শà§à¦à§à¦°_শনি'.split('_'), 24532 weekdaysMin: 'রবি_সà§à¦®_মà¦à§à¦à¦²_বà§à¦§_বà§à¦¹_শà§à¦à§à¦°_শনি'.split('_'), 24533 longDateFormat: { 24534 LT: 'A h:mm সমà§', 24535 LTS: 'A h:mm:ss সমà§', 24536 L: 'DD/MM/YYYY', 24537 LL: 'D MMMM YYYY', 24538 LLL: 'D MMMM YYYY, A h:mm সমà§', 24539 LLLL: 'dddd, D MMMM YYYY, A h:mm সমà§', 24540 }, 24541 calendar: { 24542 sameDay: '[à¦à¦] LT', 24543 nextDay: '[à¦à¦à¦¾à¦®à§à¦à¦¾à¦²] LT', 24544 nextWeek: 'dddd, LT', 24545 lastDay: '[à¦à¦¤à¦à¦¾à¦²] LT', 24546 lastWeek: '[à¦à¦¤] dddd, LT', 24547 sameElse: 'L', 24548 }, 24549 relativeTime: { 24550 future: '%s পরà§', 24551 past: '%s à¦à¦à§', 24552 s: 'à¦à§à§à¦ সà§à¦à§à¦¨à§à¦¡', 24553 ss: '%d সà§à¦à§à¦¨à§à¦¡', 24554 m: 'à¦à¦ মিনিà¦', 24555 mm: '%d মিনিà¦', 24556 h: 'à¦à¦ à¦à¦¨à§à¦à¦¾', 24557 hh: '%d à¦à¦¨à§à¦à¦¾', 24558 d: 'à¦à¦ দিন', 24559 dd: '%d দিন', 24560 M: 'à¦à¦ মাস', 24561 MM: '%d মাস', 24562 y: 'à¦à¦ বà¦à¦°', 24563 yy: '%d বà¦à¦°', 24564 }, 24565 preparse: function (string) { 24566 return string.replace(/[১২৩৪৫৬à§à§®à§¯à§¦]/g, function (match) { 24567 return numberMap[match]; 24568 }); 24569 }, 24570 postformat: function (string) { 24571 return string.replace(/\d/g, function (match) { 24572 return symbolMap[match]; 24573 }); 24574 }, 24575 meridiemParse: /রাত|সà¦à¦¾à¦²|দà§à¦ªà§à¦°|বিà¦à¦¾à¦²|রাত/, 24576 meridiemHour: function (hour, meridiem) { 24577 if (hour === 12) { 24578 hour = 0; 24579 } 24580 if ( 24581 (meridiem === 'রাত' && hour >= 4) || 24582 (meridiem === 'দà§à¦ªà§à¦°' && hour < 5) || 24583 meridiem === 'বিà¦à¦¾à¦²' 24584 ) { 24585 return hour + 12; 24586 } else { 24587 return hour; 24588 } 24589 }, 24590 meridiem: function (hour, minute, isLower) { 24591 if (hour < 4) { 24592 return 'রাত'; 24593 } else if (hour < 10) { 24594 return 'সà¦à¦¾à¦²'; 24595 } else if (hour < 17) { 24596 return 'দà§à¦ªà§à¦°'; 24597 } else if (hour < 20) { 24598 return 'বিà¦à¦¾à¦²'; 24599 } else { 24600 return 'রাত'; 24601 } 24602 }, 24603 week: { 24604 dow: 0, // Sunday is the first day of the week. 24605 doy: 6, // The week that contains Jan 6th is the first week of the year. 24606 }, 24607 }); 24608 24609 return bn; 24610 24611}))); 24612 24613 24614/***/ }), 24615/* 17 */ 24616/***/ (function(module, exports, __webpack_require__) { 24617 24618//! moment.js locale configuration
24619//! locale : Bengali (Bangladesh) [bn-bd] 24620//! author : Asraf Hossain Patoary : https://github.com/ashwoolford 24621 24622;(function (global, factory) { 24623 true ? factory(__webpack_require__(0)) : 24624 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 24625 factory(global.moment) 24626}(this, (function (moment) { 'use strict'; 24627 24628 //! moment.js locale configuration 24629 24630 var symbolMap = { 24631 1: 'à§§', 24632 2: '২', 24633 3: 'à§©', 24634 4: '৪', 24635 5: 'à§«', 24636 6: '৬', 24637 7: 'à§', 24638 8: 'à§®', 24639 9: '৯', 24640 0: '০', 24641 }, 24642 numberMap = { 24643 'à§§': '1', 24644 '২': '2', 24645 'à§©': '3', 24646 '৪': '4', 24647 'à§«': '5', 24648 '৬': '6', 24649 'à§': '7', 24650 'à§®': '8', 24651 '৯': '9', 24652 '০': '0', 24653 }; 24654 24655 var bnBd = moment.defineLocale('bn-bd', { 24656 months: 'à¦à¦¾à¦¨à§à§à¦¾à¦°à¦¿_ফà§à¦¬à§à¦°à§à§à¦¾à¦°à¦¿_মারà§à¦_à¦à¦ªà§à¦°à¦¿à¦²_মà§_à¦à§à¦¨_à¦à§à¦²à¦¾à¦_à¦à¦à¦¸à§à¦_সà§à¦ªà§à¦à§à¦®à§à¦¬à¦°_ঠà¦à§à¦à§à¦¬à¦°_নà¦à§à¦®à§à¦¬à¦°_ডিসà§à¦®à§à¦¬à¦°'.split( 24657 '_' 24658 ), 24659 monthsShort: 'à¦à¦¾à¦¨à§_ফà§à¦¬à§à¦°à§_মারà§à¦_à¦à¦ªà§à¦°à¦¿à¦²_মà§_à¦à§à¦¨_à¦à§à¦²à¦¾à¦_à¦à¦à¦¸à§à¦_সà§à¦ªà§à¦_ঠà¦à§à¦à§_নà¦à§_ডিসà§'.split( 24660 '_' 24661 ), 24662 weekdays: 'রবিবার_সà§à¦®à¦¬à¦¾à¦°_মà¦à§à¦à¦²à¦¬à¦¾à¦°_বà§à¦§à¦¬à¦¾à¦°_বà§à¦¹à¦¸à§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°_শà§à¦à§à¦°à¦¬à¦¾à¦°_শনিবার'.split( 24663 '_' 24664 ), 24665 weekdaysShort: 'রবি_সà§à¦®_মà¦à§à¦à¦²_বà§à¦§_বà§à¦¹à¦¸à§à¦ªà¦¤à¦¿_শà§à¦à§à¦°_শনি'.split('_'), 24666 weekdaysMin: 'রবি_সà§à¦®_মà¦à§à¦à¦²_বà§à¦§_বà§à¦¹_শà§à¦à§à¦°_শনি'.split('_'), 24667 longDateFormat: { 24668 LT: 'A h:mm সমà§', 24669 LTS: 'A h:mm:ss সমà§', 24670 L: 'DD/MM/YYYY', 24671 LL: 'D MMMM YYYY', 24672 LLL: 'D MMMM YYYY, A h:mm সমà§', 24673 LLLL: 'dddd, D MMMM YYYY, A h:mm সমà§', 24674 }, 24675 calendar: { 24676 sameDay: '[à¦à¦] LT', 24677 nextDay: '[à¦à¦à¦¾à¦®à§à¦à¦¾à¦²] LT', 24678 nextWeek: 'dddd, LT', 24679 lastDay: '[à¦à¦¤à¦à¦¾à¦²] LT', 24680 lastWeek: '[à¦à¦¤] dddd, LT', 24681 sameElse: 'L', 24682 }, 24683 relativeTime: { 24684 future: '%s পরà§', 24685 past: '%s à¦à¦à§', 24686 s: 'à¦à§à§à¦ সà§à¦à§à¦¨à§à¦¡', 24687 ss: '%d সà§à¦à§à¦¨à§à¦¡', 24688 m: 'à¦à¦ মিনিà¦', 24689 mm: '%d মিনিà¦', 24690 h: 'à¦à¦ à¦à¦¨à§à¦à¦¾', 24691 hh: '%d à¦à¦¨à§à¦à¦¾', 24692 d: 'à¦à¦ দিন', 24693 dd: '%d দিন', 24694 M: 'à¦à¦ মাস', 24695 MM: '%d মাস', 24696 y: 'à¦à¦ বà¦à¦°', 24697 yy: '%d বà¦à¦°', 24698 }, 24699 preparse: function (string) { 24700 return string.replace(/[১২৩৪৫৬à§à§®à§¯à§¦]/g, function (match) { 24701 return numberMap[match]; 24702 }); 24703 }, 24704 postformat: function (string) { 24705 return string.replace(/\d/g, function (match) { 24706 return symbolMap[match]; 24707 }); 24708 }, 24709 24710 meridiemParse: /রাত|à¦à§à¦°|সà¦à¦¾à¦²|দà§à¦ªà§à¦°|বিà¦à¦¾à¦²|সনà§à¦§à§à¦¯à¦¾|রাত/, 24711 meridiemHour: function (hour, meridiem) { 24712 if (hour === 12) { 24713 hour = 0; 24714 } 24715 if (meridiem === 'রাত') { 24716 return hour < 4 ? hour : hour + 12; 24717 } else if (meridiem === 'à¦à§à¦°') { 24718 return hour; 24719 } else if (meridiem === 'সà¦à¦¾à¦²') { 24720 return hour; 24721 } else if (meridiem === 'দà§à¦ªà§à¦°') { 24722 return hour >= 3 ? hour : hour + 12; 24723 } else if (meridiem === 'বিà¦à¦¾à¦²') { 24724 return hour + 12; 24725 } else if (meridiem === 'সনà§à¦§à§à¦¯à¦¾') { 24726 return hour + 12; 24727 } 24728 }, 24729 24730 meridiem: function (hour, minute, isLower) { 24731 if (hour < 4) { 24732 return 'রাত'; 24733 } else if (hour < 6) { 24734 return 'à¦à§à¦°'; 24735 } else if (hour < 12) { 24736 return 'সà¦à¦¾à¦²'; 24737 } else if (hour < 15) { 24738 return 'দà§à¦ªà§à¦°'; 24739 } else if (hour < 18) { 24740 return 'বিà¦à¦¾à¦²'; 24741 } else if (hour < 20) { 24742 return 'সনà§à¦§à§à¦¯à¦¾'; 24743 } else { 24744 return 'রাত'; 24745 } 24746 }, 24747 week: { 24748 dow: 0, // Sunday is the first day of the week. 24749 doy: 6, // The week that contains Jan 6th is the first week of the year. 24750 }, 24751 }); 24752 24753 return bnBd; 24754 24755}))); 24756 24757 24758/***/ }), 24759/* 18 */ 24760/***/ (function(module, exports, __webpack_require__) { 24761 24762//! moment.js locale configuration 24763//! locale : Tibetan [bo] 24764//! author : Thupten N. Chakrishar : https://github.com/vajradog 24765 24766;(function (global, factory) { 24767 true ? factory(__webpack_require__(0)) : 24768 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 24769 factory(global.moment) 24770}(this, (function (moment) { 'use strict'; 24771 24772 //! moment.js locale configuration 24773 24774 var symbolMap = { 24775 1: '༡', 24776 2: '༢', 24777 3: '༣', 24778 4: '༤', 24779 5: '༥', 24780 6: '༦', 24781 7: '༧', 24782 8: '༨', 24783 9: '༩', 24784 0: '༠', 24785 }, 24786 numberMap = { 24787 '༡': '1', 24788 '༢': '2', 24789 '༣': '3', 24790 '༤': '4', 24791 '༥': '5', 24792 '༦': '6', 24793 '༧': '7', 24794 '༨': '8', 24795 '༩': '9', 24796 '༠': '0', 24797 }; 24798 24799 var bo = moment.defineLocale('bo', { 24800 months: 'à½à¾³à¼à½à¼à½à½à¼à½à½¼_à½à¾³à¼à½à¼à½à½à½²à½¦à¼à½_à½à¾³à¼à½à¼à½à½¦à½´à½à¼à½_à½à¾³à¼à½à¼à½à½à½²à¼à½_à½à¾³à¼à½à¼à½£à¾à¼à½_à½à¾³à¼à½à¼à½à¾²à½´à½à¼à½_à½à¾³à¼à½à¼à½à½à½´à½à¼à½_à½à¾³à¼à½à¼à½à½¢à¾à¾±à½à¼à½_à½à¾³à¼à½à¼à½à½à½´à¼à½_à½à¾³à¼à½à¼à½à½ ུà¼à½_à½à¾³à¼à½à¼à½à½ ུà¼à½à½ ིà½à¼à½_à½à¾³à¼à½à¼à½à½ ུà¼à½à½à½²à½¦à¼à½'.split( 24801 '_' 24802 ), 24803 monthsShort: 'à½à¾³à¼1_à½à¾³à¼2_à½à¾³à¼3_à½à¾³à¼4_à½à¾³à¼5_à½à¾³à¼6_à½à¾³à¼7_à½à¾³à¼8_à½à¾³à¼9_à½à¾³à¼10_à½à¾³à¼11_à½à¾³à¼12'.split( 24804 '_' 24805 ), 24806 monthsShortRegex: /^(à½à¾³à¼\d{1,2})/, 24807 monthsParseExact: true, 24808 weekdays: 'à½à½à½ à¼à½à½²à¼à½à¼_à½à½à½ à¼à½à¾³à¼à½à¼_à½à½à½ à¼à½à½²à½à¼à½à½à½¢à¼_à½à½à½ à¼à½£à¾·à½à¼à½à¼_à½à½à½ à¼à½à½´à½¢à¼à½à½´_à½à½à½ à¼à½à¼à½¦à½à½¦à¼_à½à½à½ à¼à½¦à¾¤à½ºà½à¼à½à¼'.split( 24809 '_' 24810 ), 24811 weekdaysShort: 'à½à½²à¼à½à¼_à½à¾³à¼à½à¼_à½à½²à½à¼à½à½à½¢à¼_ལྷà½à¼à½à¼_à½à½´à½¢à¼à½à½´_à½à¼à½¦à½à½¦à¼_སྤེà½à¼à½à¼'.split( 24812 '_' 24813 ), 24814 weekdaysMin: 'à½à½²_à½à¾³_à½à½²à½_ལྷà½_à½à½´à½¢_སà½à½¦_སྤེà½'.split('_'), 24815 longDateFormat: { 24816 LT: 'A h:mm', 24817 LTS: 'A h:mm:ss', 24818 L: 'DD/MM/YYYY', 24819 LL: 'D MMMM YYYY', 24820 LLL: 'D MMMM YYYY, A h:mm', 24821 LLLL: 'dddd, D MMMM YYYY, A h:mm', 24822 }, 24823 calendar: { 24824 sameDay: '[à½à½²à¼à½¢à½²à½] LT', 24825 nextDay: '[སà½à¼à½à½²à½] LT', 24826 nextWeek: '[à½à½à½´à½à¼à½à¾²à½à¼à½¢à¾à½ºà½¦à¼à½], LT', 24827 lastDay: '[à½à¼à½¦à½] LT', 24828 lastWeek: '[à½à½à½´à½à¼à½à¾²à½à¼à½à½à½ à¼à½] dddd, LT', 24829 sameElse: 'L', 24830 }, 24831 relativeTime: { 24832 future: '%s ལà¼', 24833 past: '%s སà¾à½à¼à½£', 24834 s: 'ལà½à¼à½¦à½', 24835 ss: '%d སà¾à½¢à¼à½à¼', 24836 m: 'སà¾à½¢à¼à½à¼à½à½ ིà½', 24837 mm: '%d སà¾à½¢à¼à½', 24838 h: 'à½à½´à¼à½à½¼à½à¼à½à½ ིà½', 24839 hh: '%d à½à½´à¼à½à½¼à½', 24840 d: 'à½à½²à½à¼à½à½ ིà½', 24841 dd: '%d à½à½²à½à¼', 24842 M: 'à½à¾³à¼à½à¼à½à½ ིà½', 24843 MM: '%d à½à¾³à¼à½', 24844 y: 'ལོà¼à½à½ ིà½', 24845 yy: '%d ལོ', 24846 }, 24847 preparse: function (string) { 24848 return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { 24849 return numberMap[match]; 24850 }); 24851 }, 24852 postformat: function (string) { 24853 return string.replace(/\d/g, function (match) { 24854 return symbolMap[match]; 24855 }); 24856 }, 24857 meridiemParse: /à½à½à½à¼à½à½¼|à½à½¼à½à½¦à¼à½à½¦|à½à½²à½à¼à½à½´à½|à½à½à½¼à½à¼à½à½|à½à½à½à¼à½à½¼/, 24858 meridiemHour: function (hour, meridiem) { 24859 if (hour === 12) { 24860 hour = 0; 24861 } 24862 if ( 24863 (meridiem === 'à½à½à½à¼à½à½¼' && hour >= 4) || 24864 (meridiem === 'à½à½²à½à¼à½à½´à½' && hour < 5) || 24865 meridiem === 'à½à½à½¼à½à¼à½à½' 24866 ) { 24867 return hour + 12; 24868 } else { 24869 return hour; 24870 } 24871 }, 24872 meridiem: function (hour, minute, isLower) { 24873 if (hour < 4) { 24874 return 'à½à½à½à¼à½à½¼'; 24875 } else if (hour < 10) { 24876 return 'à½à½¼à½à½¦à¼à½à½¦'; 24877 } else if (hour < 17) { 24878 return 'à½à½²à½à¼à½à½´à½'; 24879 } else if (hour < 20) { 24880 return 'à½à½à½¼à½à¼à½à½'; 24881 } else { 24882 return 'à½à½à½à¼à½à½¼'; 24883 } 24884 }, 24885 week: { 24886 dow: 0, // Sunday is the first day of the week. 24887 doy: 6, // The week that contains Jan 6th is the first week of the year. 24888 }, 24889 }); 24890 24891 return bo; 24892 24893}))); 24894 24895 24896/***/ }), 24897/* 19 */ 24898/***/ (function(module, exports, __webpack_require__) { 24899 24900//! moment.js locale configuration 24901//! locale : Breton [br] 24902//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou 24903 24904;(function (global, factory) { 24905 true ? factory(__webpack_require__(0)) : 24906 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 24907 factory(global.moment) 24908}(this, (function (moment) { 'use strict'; 24909 24910 //! moment.js locale configuration 24911 24912 function relativeTimeWithMutation(number, withoutSuffix, key) { 24913 var format = { 24914 mm: 'munutenn', 24915 MM: 'miz', 24916 dd: 'devezh', 24917 }; 24918 return number + ' ' + mutation(format[key], number); 24919 } 24920 function specialMutationForYears(number) { 24921 switch (lastNumber(number)) { 24922 case 1: 24923 case 3: 24924 case 4: 24925 case 5: 24926 case 9: 24927 return number + ' bloaz'; 24928 default: 24929 return number + ' vloaz'; 24930 } 24931 } 24932 function lastNumber(number) { 24933 if (number > 9) { 24934 return lastNumber(number % 10); 24935 } 24936 return number; 24937 } 24938 function mutation(text, number) { 24939 if (number === 2) { 24940 return softMutation(text); 24941 } 24942 return text; 24943 } 24944 function softMutation(text) { 24945 var mutationTable = { 24946 m: 'v', 24947 b: 'v', 24948 d: 'z', 24949 }; 24950 if (mutationTable[text.charAt(0)] === undefined) { 24951 return text; 24952 } 24953 return mutationTable[text.charAt(0)] + text.substring(1); 24954 } 24955 24956 var monthsParse = [ 24957 /^gen/i, 24958 /^c[ʼ\']hwe/i, 24959 /^meu/i, 24960 /^ebr/i, 24961 /^mae/i, 24962 /^(mez|eve)/i, 24963 /^gou/i, 24964 /^eos/i, 24965 /^gwe/i, 24966 /^her/i, 24967 /^du/i, 24968 /^ker/i, 24969 ], 24970 monthsRegex = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, 24971 monthsStrictRegex = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, 24972 monthsShortStrictRegex = /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, 24973 fullWeekdaysParse = [ 24974 /^sul/i, 24975 /^lun/i, 24976 /^meurzh/i, 24977 /^merc[ʼ\']her/i, 24978 /^yaou/i, 24979 /^gwener/i, 24980 /^sadorn/i, 24981 ], 24982 shortWeekdaysParse = [ 24983 /^Sul/i, 24984 /^Lun/i, 24985 /^Meu/i, 24986 /^Mer/i, 24987 /^Yao/i, 24988 /^Gwe/i, 24989 /^Sad/i, 24990 ], 24991 minWeekdaysParse = [ 24992 /^Su/i, 24993 /^Lu/i, 24994 /^Me([^r]|$)/i, 24995 /^Mer/i, 24996 /^Ya/i, 24997 /^Gw/i, 24998 /^Sa/i, 24999 ]; 25000 25001 var br = moment.defineLocale('br', {
25002 months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( 25003 '_' 25004 ), 25005 monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), 25006 weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'), 25007 weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), 25008 weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), 25009 weekdaysParse: minWeekdaysParse, 25010 fullWeekdaysParse: fullWeekdaysParse, 25011 shortWeekdaysParse: shortWeekdaysParse, 25012 minWeekdaysParse: minWeekdaysParse, 25013 25014 monthsRegex: monthsRegex, 25015 monthsShortRegex: monthsRegex, 25016 monthsStrictRegex: monthsStrictRegex, 25017 monthsShortStrictRegex: monthsShortStrictRegex, 25018 monthsParse: monthsParse, 25019 longMonthsParse: monthsParse, 25020 shortMonthsParse: monthsParse, 25021 25022 longDateFormat: { 25023 LT: 'HH:mm', 25024 LTS: 'HH:mm:ss', 25025 L: 'DD/MM/YYYY', 25026 LL: 'D [a viz] MMMM YYYY', 25027 LLL: 'D [a viz] MMMM YYYY HH:mm', 25028 LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', 25029 }, 25030 calendar: { 25031 sameDay: '[Hiziv da] LT', 25032 nextDay: '[Warcʼhoazh da] LT', 25033 nextWeek: 'dddd [da] LT', 25034 lastDay: '[Decʼh da] LT', 25035 lastWeek: 'dddd [paset da] LT', 25036 sameElse: 'L', 25037 }, 25038 relativeTime: { 25039 future: 'a-benn %s', 25040 past: '%s ʼzo', 25041 s: 'un nebeud segondennoù', 25042 ss: '%d eilenn', 25043 m: 'ur vunutenn', 25044 mm: relativeTimeWithMutation, 25045 h: 'un eur', 25046 hh: '%d eur', 25047 d: 'un devezh', 25048 dd: relativeTimeWithMutation, 25049 M: 'ur miz', 25050 MM: relativeTimeWithMutation, 25051 y: 'ur bloaz', 25052 yy: specialMutationForYears, 25053 }, 25054 dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, 25055 ordinal: function (number) { 25056 var output = number === 1 ? 'añ' : 'vet'; 25057 return number + output; 25058 }, 25059 week: { 25060 dow: 1, // Monday is the first day of the week. 25061 doy: 4, // The week that contains Jan 4th is the first week of the year. 25062 }, 25063 meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn 25064 isPM: function (token) { 25065 return token === 'g.m.'; 25066 }, 25067 meridiem: function (hour, minute, isLower) { 25068 return hour < 12 ? 'a.m.' : 'g.m.'; 25069 }, 25070 }); 25071 25072 return br; 25073 25074}))); 25075 25076 25077/***/ }), 25078/* 20 */ 25079/***/ (function(module, exports, __webpack_require__) { 25080 25081//! moment.js locale configuration 25082//! locale : Bosnian [bs] 25083//! author : Nedim Cholich : https://github.com/frontyard 25084//! based on (hr) translation by Bojan MarkoviÄ 25085 25086;(function (global, factory) { 25087 true ? factory(__webpack_require__(0)) : 25088 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 25089 factory(global.moment) 25090}(this, (function (moment) { 'use strict'; 25091 25092 //! moment.js locale configuration 25093 25094 function translate(number, withoutSuffix, key) { 25095 var result = number + ' '; 25096 switch (key) { 25097 case 'ss': 25098 if (number === 1) { 25099 result += 'sekunda'; 25100 } else if (number === 2 || number === 3 || number === 4) { 25101 result += 'sekunde'; 25102 } else { 25103 result += 'sekundi'; 25104 } 25105 return result; 25106 case 'm': 25107 return withoutSuffix ? 'jedna minuta' : 'jedne minute'; 25108 case 'mm': 25109 if (number === 1) { 25110 result += 'minuta'; 25111 } else if (number === 2 || number === 3 || number === 4) { 25112 result += 'minute'; 25113 } else { 25114 result += 'minuta'; 25115 } 25116 return result; 25117 case 'h': 25118 return withoutSuffix ? 'jedan sat' : 'jednog sata'; 25119 case 'hh': 25120 if (number === 1) { 25121 result += 'sat'; 25122 } else if (number === 2 || number === 3 || number === 4) { 25123 result += 'sata'; 25124 } else { 25125 result += 'sati'; 25126 } 25127 return result; 25128 case 'dd': 25129 if (number === 1) { 25130 result += 'dan'; 25131 } else { 25132 result += 'dana'; 25133 } 25134 return result; 25135 case 'MM': 25136 if (number === 1) { 25137 result += 'mjesec'; 25138 } else if (number === 2 || number === 3 || number === 4) { 25139 result += 'mjeseca'; 25140 } else { 25141 result += 'mjeseci'; 25142 } 25143 return result; 25144 case 'yy': 25145 if (number === 1) { 25146 result += 'godina'; 25147 } else if (number === 2 || number === 3 || number === 4) { 25148 result += 'godine'; 25149 } else { 25150 result += 'godina'; 25151 } 25152 return result; 25153 } 25154 } 25155 25156 var bs = moment.defineLocale('bs', { 25157 months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split( 25158 '_' 25159 ), 25160 monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split( 25161 '_' 25162 ), 25163 monthsParseExact: true, 25164 weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split( 25165 '_' 25166 ), 25167 weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'), 25168 weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'), 25169 weekdaysParseExact: true, 25170 longDateFormat: { 25171 LT: 'H:mm', 25172 LTS: 'H:mm:ss', 25173 L: 'DD.MM.YYYY', 25174 LL: 'D. MMMM YYYY', 25175 LLL: 'D. MMMM YYYY H:mm', 25176 LLLL: 'dddd, D. MMMM YYYY H:mm', 25177 }, 25178 calendar: { 25179 sameDay: '[danas u] LT', 25180 nextDay: '[sutra u] LT', 25181 nextWeek: function () { 25182 switch (this.day()) { 25183 case 0: 25184 return '[u] [nedjelju] [u] LT'; 25185 case 3: 25186 return '[u] [srijedu] [u] LT'; 25187 case 6: 25188 return '[u] [subotu] [u] LT'; 25189 case 1: 25190 case 2: 25191 case 4: 25192 case 5: 25193 return '[u] dddd [u] LT'; 25194 } 25195 }, 25196 lastDay: '[juÄer u] LT', 25197 lastWeek: function () { 25198 switch (this.day()) { 25199 case 0: 25200 case 3: 25201 return '[proÅ¡lu] dddd [u] LT'; 25202 case 6: 25203 return '[proÅ¡le] [subote] [u] LT'; 25204 case 1: 25205 case 2: 25206 case 4: 25207 case 5: 25208 return '[proÅ¡li] dddd [u] LT'; 25209 } 25210 }, 25211 sameElse: 'L', 25212 }, 25213 relativeTime: { 25214 future: 'za %s', 25215 past: 'prije %s', 25216 s: 'par sekundi', 25217 ss: translate, 25218 m: translate, 25219 mm: translate, 25220 h: translate, 25221 hh: translate, 25222 d: 'dan', 25223 dd: translate, 25224 M: 'mjesec', 25225 MM: translate, 25226 y: 'godinu', 25227 yy: translate, 25228 }, 25229 dayOfMonthOrdinalParse: /\d{1,2}\./, 25230 ordinal: '%d.', 25231 week: { 25232 dow: 1, // Monday is the first day of the week. 25233 doy: 7, // The week that contains Jan 7th is the first week of the year. 25234 }, 25235 }); 25236 25237 return bs; 25238 25239}))); 25240 25241 25242/***/ }), 25243/* 21 */ 25244/***/ (function(module, exports, __webpack_require__) { 25245 25246//! moment.js locale configuration 25247//! locale : Catalan [ca] 25248//! author : Juan G. Hurtado : https://github.com/juanghurtado 25249 25250;(function (global, factory) { 25251 true ? factory(__webpack_require__(0)) : 25252 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 25253 factory(global.moment) 25254}(this, (function (moment) { 'use strict'; 25255 25256 //! moment.js locale configuration 25257 25258 var ca = moment.defineLocale('ca', { 25259 months: { 25260 standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( 25261 '_' 25262 ), 25263 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( 25264 '_' 25265 ), 25266 isFormat: /D[oD]?(\s)+MMMM/, 25267 }, 25268 monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( 25269 '_' 25270 ), 25271 monthsParseExact: true, 25272 weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( 25273 '_' 25274 ), 25275 weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), 25276 weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), 25277 weekdaysParseExact: true, 25278 longDateFormat: { 25279 LT: 'H:mm', 25280 LTS: 'H:mm:ss', 25281 L: 'DD/MM/YYYY', 25282 LL: 'D MMMM [de] YYYY', 25283 ll: 'D MMM YYYY', 25284 LLL: 'D MMMM [de] YYYY [a les] H:mm', 25285 lll: 'D MMM YYYY, H:mm', 25286 LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', 25287 llll: 'ddd D MMM YYYY, H:mm', 25288 }, 25289 calendar: { 25290 sameDay: function () { 25291 return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; 25292 }, 25293 nextDay: function () { 25294 return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; 25295 }, 25296 nextWeek: function () { 25297 return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; 25298 }, 25299 lastDay: function () { 25300 return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; 25301 }, 25302 lastWeek: function () { 25303 return ( 25304 '[el] dddd [passat a ' + 25305 (this.hours() !== 1 ? 'les' : 'la') + 25306 '] LT' 25307 ); 25308 }, 25309 sameElse: 'L', 25310 }, 25311 relativeTime: { 25312 future: "d'aquà %s", 25313 past: 'fa %s', 25314 s: 'uns segons', 25315 ss: '%d segons', 25316 m: 'un minut', 25317 mm: '%d minuts', 25318 h: 'una hora', 25319 hh: '%d hores', 25320 d: 'un dia', 25321 dd: '%d dies', 25322 M: 'un mes', 25323 MM: '%d mesos', 25324 y: 'un any', 25325 yy: '%d anys', 25326 }, 25327 dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, 25328 ordinal: function (number, period) { 25329 var output = 25330 number === 1 25331 ? 'r' 25332 : number === 2 25333 ? 'n' 25334 : number === 3 25335 ? 'r' 25336 : number === 4 25337 ? 't' 25338 : 'è'; 25339 if (period === 'w' || period === 'W') { 25340 output = 'a'; 25341 } 25342 return number + output; 25343 }, 25344 week: { 25345 dow: 1, // Monday is the first day of the week. 25346 doy: 4, // The week that contains Jan 4th is the first week of the year. 25347 }, 25348 }); 25349 25350 return ca; 25351 25352}))); 25353 25354 25355/***/ }), 25356/* 22 */ 25357/***/ (function(module, exports, __webpack_require__) { 25358 25359//! moment.js locale configuration 25360//! locale : Czech [cs] 25361//! author : petrbela : https://github.com/petrbela 25362 25363;(function (global, factory) { 25364 true ? factory(__webpack_require__(0)) : 25365 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 25366 factory(global.moment) 25367}(this, (function (moment) { 'use strict'; 25368 25369 //! moment.js locale configuration 25370 25371 var months = 'leden_únor_bÅezen_duben_kvÄten_Äerven_Äervenec_srpen_záÅÃ_ÅÃjen_listopad_prosinec'.
25371split( 25372 '_' 25373 ), 25374 monthsShort = 'led_úno_bÅe_dub_kvÄ_Ävn_Ävc_srp_záÅ_ÅÃj_lis_pro'.split('_'), 25375 monthsParse = [ 25376 /^led/i, 25377 /^úno/i, 25378 /^bÅe/i, 25379 /^dub/i, 25380 /^kvÄ/i, 25381 /^(Ävn|Äerven$|Äervna)/i, 25382 /^(Ävc|Äervenec|Äervence)/i, 25383 /^srp/i, 25384 /^záÅ/i, 25385 /^ÅÃj/i, 25386 /^lis/i, 25387 /^pro/i, 25388 ], 25389 // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched. 25390 // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'. 25391 monthsRegex = /^(leden|únor|bÅezen|duben|kvÄten|Äervenec|Äervence|Äerven|Äervna|srpen|záÅÃ|ÅÃjen|listopad|prosinec|led|úno|bÅe|dub|kvÄ|Ävn|Ävc|srp|záÅ|ÅÃj|lis|pro)/i; 25392 25393 function plural(n) { 25394 return n > 1 && n < 5 && ~~(n / 10) !== 1; 25395 } 25396 function translate(number, withoutSuffix, key, isFuture) { 25397 var result = number + ' '; 25398 switch (key) { 25399 case 's': // a few seconds / in a few seconds / a few seconds ago 25400 return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami'; 25401 case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago 25402 if (withoutSuffix || isFuture) { 25403 return result + (plural(number) ? 'sekundy' : 'sekund'); 25404 } else { 25405 return result + 'sekundami'; 25406 } 25407 case 'm': // a minute / in a minute / a minute ago 25408 return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; 25409 case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago 25410 if (withoutSuffix || isFuture) { 25411 return result + (plural(number) ? 'minuty' : 'minut'); 25412 } else { 25413 return result + 'minutami'; 25414 } 25415 case 'h': // an hour / in an hour / an hour ago 25416 return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; 25417 case 'hh': // 9 hours / in 9 hours / 9 hours ago 25418 if (withoutSuffix || isFuture) { 25419 return result + (plural(number) ? 'hodiny' : 'hodin'); 25420 } else { 25421 return result + 'hodinami'; 25422 } 25423 case 'd': // a day / in a day / a day ago 25424 return withoutSuffix || isFuture ? 'den' : 'dnem'; 25425 case 'dd': // 9 days / in 9 days / 9 days ago 25426 if (withoutSuffix || isFuture) { 25427 return result + (plural(number) ? 'dny' : 'dnÃ'); 25428 } else { 25429 return result + 'dny'; 25430 } 25431 case 'M': // a month / in a month / a month ago 25432 return withoutSuffix || isFuture ? 'mÄsÃc' : 'mÄsÃcem'; 25433 case 'MM': // 9 months / in 9 months / 9 months ago 25434 if (withoutSuffix || isFuture) { 25435 return result + (plural(number) ? 'mÄsÃce' : 'mÄsÃců'); 25436 } else { 25437 return result + 'mÄsÃci'; 25438 } 25439 case 'y': // a year / in a year / a year ago 25440 return withoutSuffix || isFuture ? 'rok' : 'rokem'; 25441 case 'yy': // 9 years / in 9 years / 9 years ago 25442 if (withoutSuffix || isFuture) { 25443 return result + (plural(number) ? 'roky' : 'let'); 25444 } else { 25445 return result + 'lety'; 25446 } 25447 } 25448 } 25449 25450 var cs = moment.defineLocale('cs', { 25451 months: months, 25452 monthsShort: monthsShort, 25453 monthsRegex: monthsRegex, 25454 monthsShortRegex: monthsRegex, 25455 // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched. 25456 // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'. 25457 monthsStrictRegex: /^(leden|ledna|února|únor|bÅezen|bÅezna|duben|dubna|kvÄten|kvÄtna|Äervenec|Äervence|Äerven|Äervna|srpen|srpna|záÅÃ|ÅÃjen|ÅÃjna|listopadu|listopad|prosinec|prosince)/i, 25458 monthsShortStrictRegex: /^(led|úno|bÅe|dub|kvÄ|Ävn|Ävc|srp|záÅ|ÅÃj|lis|pro)/i, 25459 monthsParse: monthsParse, 25460 longMonthsParse: monthsParse, 25461 shortMonthsParse: monthsParse, 25462 weekdays: 'nedÄle_pondÄlÃ_úterý_stÅeda_Ätvrtek_pátek_sobota'.split('_'), 25463 weekdaysShort: 'ne_po_út_st_Ät_pá_so'.split('_'), 25464 weekdaysMin: 'ne_po_út_st_Ät_pá_so'.split('_'), 25465 longDateFormat: { 25466 LT: 'H:mm', 25467 LTS: 'H:mm:ss', 25468 L: 'DD.MM.YYYY', 25469 LL: 'D. MMMM YYYY', 25470 LLL: 'D. MMMM YYYY H:mm', 25471 LLLL: 'dddd D. MMMM YYYY H:mm', 25472 l: 'D. M. YYYY', 25473 }, 25474 calendar: { 25475 sameDay: '[dnes v] LT', 25476 nextDay: '[zÃtra v] LT', 25477 nextWeek: function () { 25478 switch (this.day()) { 25479 case 0: 25480 return '[v nedÄli v] LT'; 25481 case 1: 25482 case 2: 25483 return '[v] dddd [v] LT'; 25484 case 3: 25485 return '[ve stÅedu v] LT'; 25486 case 4: 25487 return '[ve Ätvrtek v] LT'; 25488 case 5: 25489 return '[v pátek v] LT'; 25490 case 6: 25491 return '[v sobotu v] LT'; 25492 } 25493 }, 25494 lastDay: '[vÄera v] LT', 25495 lastWeek: function () { 25496 switch (this.day()) { 25497 case 0: 25498 return '[minulou nedÄli v] LT'; 25499 case 1: 25500 case 2: 25501 return '[minulé] dddd [v] LT'; 25502 case 3: 25503 return '[minulou stÅedu v] LT'; 25504 case 4: 25505 case 5: 25506 return '[minulý] dddd [v] LT'; 25507 case 6: 25508 return '[minulou sobotu v] LT'; 25509 } 25510 }, 25511 sameElse: 'L', 25512 }, 25513 relativeTime: { 25514 future: 'za %s', 25515 past: 'pÅed %s', 25516 s: translate, 25517 ss: translate, 25518 m: translate, 25519 mm: translate, 25520 h: translate, 25521 hh: translate, 25522 d: translate, 25523 dd: translate, 25524 M: translate, 25525 MM: translate, 25526 y: translate, 25527 yy: translate, 25528 }, 25529 dayOfMonthOrdinalParse: /\d{1,2}\./, 25530 ordinal: '%d.', 25531 week: { 25532 dow: 1, // Monday is the first day of the week. 25533 doy: 4, // The week that contains Jan 4th is the first week of the year. 25534 }, 25535 }); 25536 25537 return cs; 25538 25539}))); 25540 25541 25542/***/ }), 25543/* 23 */ 25544/***/ (function(module, exports, __webpack_require__) { 25545 25546//! moment.js locale configuration 25547//! locale : Chuvash [cv] 25548//! author : Anatoly Mironov : https://github.com/mirontoli 25549 25550;(function (global, factory) { 25551 true ? factory(__webpack_require__(0)) : 25552 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 25553 factory(global.moment) 25554}(this, (function (moment) { 'use strict'; 25555 25556 //! moment.js locale configuration 25557 25558 var cv = moment.defineLocale('cv', { 25559 months: 'кÓÑлаÑ_наÑÓÑ_пÑÑ_ака_май_Ò«ÓÑÑме_ÑÑÓ_Ò«ÑÑла_авÓн_Ñпа_Ñӳк_ÑаÑÑав'.split( 25560 '_' 25561 ), 25562 monthsShort: 'кÓÑ_наÑ_пÑÑ_ака_май_Ò«ÓÑ_ÑÑÓ_Ò«ÑÑ_авн_Ñпа_Ñӳк_ÑаÑ'.split('_'), 25563 weekdays: 'вÑÑÑаÑникÑн_ÑÑнÑикÑн_ÑÑлаÑикÑн_ÑнкÑн_кÓҫнеÑникÑн_ÑÑнекÑн_ÑÓмаÑкÑн'.split( 25564 '_' 25565 ), 25566 weekdaysShort: 'вÑÑ_ÑÑн_ÑÑл_Ñн_кÓÒ«_ÑÑн_ÑÓм'.split('_'), 25567 weekdaysMin: 'вÑ_Ñн_ÑÑ_Ñн_кҫ_ÑÑ_Ñм'.split('_'), 25568 longDateFormat: { 25569 LT: 'HH:mm', 25570 LTS: 'HH:mm:ss', 25571 L: 'DD-MM-YYYY', 25572 LL: 'YYYY [Ò«ÑÐ»Ñ Ð¸] MMMM [ÑйÓÑ Óн] D[-мÓÑÓ]', 25573 LLL: 'YYYY [Ò«ÑÐ»Ñ Ð¸] MMMM [ÑйÓÑ Óн] D[-мÓÑÓ], HH:mm', 25574 LLLL: 'dddd, YYYY [Ò«ÑÐ»Ñ Ð¸] MMMM [ÑйÓÑ Óн] D[-мÓÑÓ], HH:mm', 25575 }, 25576 calendar: { 25577 sameDay: '[ÐаÑн] LT [ÑÐµÑ ÐµÑÑе]', 25578 nextDay: '[ЫÑан] LT [ÑÐµÑ ÐµÑÑе]', 25579 lastDay: '[ÓнеÑ] LT [ÑÐµÑ ÐµÑÑе]', 25580 nextWeek: '[ҪиÑеÑ] dddd LT [ÑÐµÑ ÐµÑÑе]', 25581 lastWeek: '[ÐÑÑнÓ] dddd LT [ÑÐµÑ ÐµÑÑе]', 25582 sameElse: 'L', 25583 }, 25584 relativeTime: { 25585 future: function (output) {
25586 var affix = /ÑÐµÑ ÐµÑ$/i.exec(output) 25587 ? 'Ñен' 25588 : /Ò«Ñл$/i.exec(output) 25589 ? 'Ñан' 25590 : 'Ñан'; 25591 return output + affix; 25592 }, 25593 past: '%s каÑлла', 25594 s: 'пÓÑ-ик ҫеккÑнÑ', 25595 ss: '%d ҫеккÑнÑ', 25596 m: 'пÓÑ Ð¼Ð¸Ð½ÑÑ', 25597 mm: '%d минÑÑ', 25598 h: 'пÓÑ ÑÐµÑ ÐµÑ', 25599 hh: '%d ÑÐµÑ ÐµÑ', 25600 d: 'пÓÑ ÐºÑн', 25601 dd: '%d кÑн', 25602 M: 'пÓÑ ÑйÓÑ ', 25603 MM: '%d ÑйÓÑ ', 25604 y: 'пÓÑ Ò«Ñл', 25605 yy: '%d Ò«Ñл', 25606 }, 25607 dayOfMonthOrdinalParse: /\d{1,2}-мÓÑ/, 25608 ordinal: '%d-мÓÑ', 25609 week: { 25610 dow: 1, // Monday is the first day of the week. 25611 doy: 7, // The week that contains Jan 7th is the first week of the year. 25612 }, 25613 }); 25614 25615 return cv; 25616 25617}))); 25618 25619 25620/***/ }), 25621/* 24 */ 25622/***/ (function(module, exports, __webpack_require__) { 25623 25624//! moment.js locale configuration 25625//! locale : Welsh [cy] 25626//! author : Robert Allen : https://github.com/robgallen 25627//! author : https://github.com/ryangreaves 25628 25629;(function (global, factory) { 25630 true ? factory(__webpack_require__(0)) : 25631 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 25632 factory(global.moment) 25633}(this, (function (moment) { 'use strict'; 25634 25635 //! moment.js locale configuration 25636 25637 var cy = moment.defineLocale('cy', { 25638 months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( 25639 '_' 25640 ), 25641 monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( 25642 '_' 25643 ), 25644 weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( 25645 '_' 25646 ), 25647 weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), 25648 weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), 25649 weekdaysParseExact: true, 25650 // time formats are the same as en-gb 25651 longDateFormat: { 25652 LT: 'HH:mm', 25653 LTS: 'HH:mm:ss', 25654 L: 'DD/MM/YYYY', 25655 LL: 'D MMMM YYYY', 25656 LLL: 'D MMMM YYYY HH:mm', 25657 LLLL: 'dddd, D MMMM YYYY HH:mm', 25658 }, 25659 calendar: { 25660 sameDay: '[Heddiw am] LT', 25661 nextDay: '[Yfory am] LT', 25662 nextWeek: 'dddd [am] LT', 25663 lastDay: '[Ddoe am] LT', 25664 lastWeek: 'dddd [diwethaf am] LT', 25665 sameElse: 'L', 25666 }, 25667 relativeTime: { 25668 future: 'mewn %s', 25669 past: '%s yn ôl', 25670 s: 'ychydig eiliadau', 25671 ss: '%d eiliad', 25672 m: 'munud', 25673 mm: '%d munud', 25674 h: 'awr', 25675 hh: '%d awr', 25676 d: 'diwrnod', 25677 dd: '%d diwrnod', 25678 M: 'mis', 25679 MM: '%d mis', 25680 y: 'blwyddyn', 25681 yy: '%d flynedd', 25682 }, 25683 dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, 25684 // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh 25685 ordinal: function (number) { 25686 var b = number, 25687 output = '', 25688 lookup = [ 25689 '', 25690 'af', 25691 'il', 25692 'ydd', 25693 'ydd', 25694 'ed', 25695 'ed', 25696 'ed', 25697 'fed', 25698 'fed', 25699 'fed', // 1af to 10fed 25700 'eg', 25701 'fed', 25702 'eg', 25703 'eg', 25704 'fed', 25705 'eg', 25706 'eg', 25707 'fed', 25708 'eg', 25709 'fed', // 11eg to 20fed 25710 ]; 25711 if (b > 20) { 25712 if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { 25713 output = 'fed'; // not 30ain, 70ain or 90ain 25714 } else { 25715 output = 'ain'; 25716 } 25717 } else if (b > 0) { 25718 output = lookup[b]; 25719 } 25720 return number + output; 25721 }, 25722 week: { 25723 dow: 1, // Monday is the first day of the week. 25724 doy: 4, // The week that contains Jan 4th is the first week of the year. 25725 }, 25726 }); 25727 25728 return cy; 25729 25730}))); 25731 25732 25733/***/ }), 25734/* 25 */ 25735/***/ (function(module, exports, __webpack_require__) { 25736 25737//! moment.js locale configuration 25738//! locale : Danish [da] 25739//! author : Ulrik Nielsen : https://github.com/mrbase 25740 25741;(function (global, factory) { 25742 true ? factory(__webpack_require__(0)) : 25743 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 25744 factory(global.moment) 25745}(this, (function (moment) { 'use strict'; 25746 25747 //! moment.js locale configuration 25748 25749 var da = moment.defineLocale('da', { 25750 months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( 25751 '_' 25752 ), 25753 monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), 25754 weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), 25755 weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'), 25756 weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), 25757 longDateFormat: { 25758 LT: 'HH:mm', 25759 LTS: 'HH:mm:ss', 25760 L: 'DD.MM.YYYY', 25761 LL: 'D. MMMM YYYY', 25762 LLL: 'D. MMMM YYYY HH:mm', 25763 LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', 25764 }, 25765 calendar: { 25766 sameDay: '[i dag kl.] LT', 25767 nextDay: '[i morgen kl.] LT', 25768 nextWeek: 'pÃ¥ dddd [kl.] LT', 25769 lastDay: '[i gÃ¥r kl.] LT', 25770 lastWeek: '[i] dddd[s kl.] LT', 25771 sameElse: 'L', 25772 }, 25773 relativeTime: { 25774 future: 'om %s', 25775 past: '%s siden', 25776 s: 'fÃ¥ sekunder', 25777 ss: '%d sekunder', 25778 m: 'et minut', 25779 mm: '%d minutter', 25780 h: 'en time', 25781 hh: '%d timer', 25782 d: 'en dag', 25783 dd: '%d dage', 25784 M: 'en mÃ¥ned', 25785 MM: '%d mÃ¥neder', 25786 y: 'et Ã¥r', 25787 yy: '%d Ã¥r', 25788 }, 25789 dayOfMonthOrdinalParse: /\d{1,2}\./, 25790 ordinal: '%d.', 25791 week: { 25792 dow: 1, // Monday is the first day of the week. 25793 doy: 4, // The week that contains Jan 4th is the first week of the year. 25794 }, 25795 }); 25796 25797 return da; 25798 25799}))); 25800 25801 25802/***/ }), 25803/* 26 */ 25804/***/ (function(module, exports, __webpack_require__) { 25805 25806//! moment.js locale configuration 25807//! locale : German [de] 25808//! author : lluchs : https://github.com/lluchs 25809//! author: Menelion Elensúle: https://github.com/Oire 25810//! author : Mikolaj Dadela : https://github.com/mik01aj 25811 25812;(function (global, factory) { 25813 true ? factory(__webpack_require__(0)) : 25814 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 25815 factory(global.moment) 25816}(this, (function (moment) { 'use strict'; 25817 25818 //! moment.js locale configuration 25819 25820 function processRelativeTime(number, withoutSuffix, key, isFuture) { 25821 var format = { 25822 m: ['eine Minute', 'einer Minute'], 25823 h: ['eine Stunde', 'einer Stunde'], 25824 d: ['ein Tag', 'einem Tag'], 25825 dd: [number + ' Tage', number + ' Tagen'], 25826 w: ['eine Woche', 'einer Woche'], 25827 M: ['ein Monat', 'einem Monat'], 25828 MM: [number + ' Monate', number + ' Monaten'], 25829 y: ['ein Jahr', 'einem Jahr'],
25830 yy: [number + ' Jahre', number + ' Jahren'], 25831 }; 25832 return withoutSuffix ? format[key][0] : format[key][1]; 25833 } 25834 25835 var de = moment.defineLocale('de', { 25836 months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( 25837 '_' 25838 ), 25839 monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split( 25840 '_' 25841 ), 25842 monthsParseExact: true, 25843 weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( 25844 '_' 25845 ), 25846 weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), 25847 weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), 25848 weekdaysParseExact: true, 25849 longDateFormat: { 25850 LT: 'HH:mm', 25851 LTS: 'HH:mm:ss', 25852 L: 'DD.MM.YYYY', 25853 LL: 'D. MMMM YYYY', 25854 LLL: 'D. MMMM YYYY HH:mm', 25855 LLLL: 'dddd, D. MMMM YYYY HH:mm', 25856 }, 25857 calendar: { 25858 sameDay: '[heute um] LT [Uhr]', 25859 sameElse: 'L', 25860 nextDay: '[morgen um] LT [Uhr]', 25861 nextWeek: 'dddd [um] LT [Uhr]', 25862 lastDay: '[gestern um] LT [Uhr]', 25863 lastWeek: '[letzten] dddd [um] LT [Uhr]', 25864 }, 25865 relativeTime: { 25866 future: 'in %s', 25867 past: 'vor %s', 25868 s: 'ein paar Sekunden', 25869 ss: '%d Sekunden', 25870 m: processRelativeTime, 25871 mm: '%d Minuten', 25872 h: processRelativeTime, 25873 hh: '%d Stunden', 25874 d: processRelativeTime, 25875 dd: processRelativeTime, 25876 w: processRelativeTime, 25877 ww: '%d Wochen', 25878 M: processRelativeTime, 25879 MM: processRelativeTime, 25880 y: processRelativeTime, 25881 yy: processRelativeTime, 25882 }, 25883 dayOfMonthOrdinalParse: /\d{1,2}\./, 25884 ordinal: '%d.', 25885 week: { 25886 dow: 1, // Monday is the first day of the week. 25887 doy: 4, // The week that contains Jan 4th is the first week of the year. 25888 }, 25889 }); 25890 25891 return de; 25892 25893}))); 25894 25895 25896/***/ }), 25897/* 27 */ 25898/***/ (function(module, exports, __webpack_require__) { 25899 25900//! moment.js locale configuration 25901//! locale : German (Austria) [de-at] 25902//! author : lluchs : https://github.com/lluchs 25903//! author: Menelion Elensúle: https://github.com/Oire 25904//! author : Martin Groller : https://github.com/MadMG 25905//! author : Mikolaj Dadela : https://github.com/mik01aj 25906 25907;(function (global, factory) { 25908 true ? factory(__webpack_require__(0)) : 25909 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 25910 factory(global.moment) 25911}(this, (function (moment) { 'use strict'; 25912 25913 //! moment.js locale configuration 25914 25915 function processRelativeTime(number, withoutSuffix, key, isFuture) { 25916 var format = { 25917 m: ['eine Minute', 'einer Minute'], 25918 h: ['eine Stunde', 'einer Stunde'], 25919 d: ['ein Tag', 'einem Tag'], 25920 dd: [number + ' Tage', number + ' Tagen'], 25921 w: ['eine Woche', 'einer Woche'], 25922 M: ['ein Monat', 'einem Monat'], 25923 MM: [number + ' Monate', number + ' Monaten'], 25924 y: ['ein Jahr', 'einem Jahr'], 25925 yy: [number + ' Jahre', number + ' Jahren'], 25926 }; 25927 return withoutSuffix ? format[key][0] : format[key][1]; 25928 } 25929 25930 var deAt = moment.defineLocale('de-at', { 25931 months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( 25932 '_' 25933 ), 25934 monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split( 25935 '_' 25936 ), 25937 monthsParseExact: true, 25938 weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( 25939 '_' 25940 ), 25941 weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), 25942 weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), 25943 weekdaysParseExact: true, 25944 longDateFormat: { 25945 LT: 'HH:mm', 25946 LTS: 'HH:mm:ss', 25947 L: 'DD.MM.YYYY', 25948 LL: 'D. MMMM YYYY', 25949 LLL: 'D. MMMM YYYY HH:mm', 25950 LLLL: 'dddd, D. MMMM YYYY HH:mm', 25951 }, 25952 calendar: { 25953 sameDay: '[heute um] LT [Uhr]', 25954 sameElse: 'L', 25955 nextDay: '[morgen um] LT [Uhr]', 25956 nextWeek: 'dddd [um] LT [Uhr]', 25957 lastDay: '[gestern um] LT [Uhr]', 25958 lastWeek: '[letzten] dddd [um] LT [Uhr]', 25959 }, 25960 relativeTime: { 25961 future: 'in %s', 25962 past: 'vor %s', 25963 s: 'ein paar Sekunden', 25964 ss: '%d Sekunden', 25965 m: processRelativeTime, 25966 mm: '%d Minuten', 25967 h: processRelativeTime, 25968 hh: '%d Stunden', 25969 d: processRelativeTime, 25970 dd: processRelativeTime, 25971 w: processRelativeTime, 25972 ww: '%d Wochen', 25973 M: processRelativeTime, 25974 MM: processRelativeTime, 25975 y: processRelativeTime, 25976 yy: processRelativeTime, 25977 }, 25978 dayOfMonthOrdinalParse: /\d{1,2}\./, 25979 ordinal: '%d.', 25980 week: { 25981 dow: 1, // Monday is the first day of the week. 25982 doy: 4, // The week that contains Jan 4th is the first week of the year. 25983 }, 25984 }); 25985 25986 return deAt; 25987 25988}))); 25989 25990 25991/***/ }), 25992/* 28 */ 25993/***/ (function(module, exports, __webpack_require__) { 25994 25995//! moment.js locale configuration 25996//! locale : German (Switzerland) [de-ch] 25997//! author : sschueller : https://github.com/sschueller 25998 25999;(function (global, factory) { 26000 true ? factory(__webpack_require__(0)) : 26001 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 26002 factory(global.moment) 26003}(this, (function (moment) { 'use strict'; 26004 26005 //! moment.js locale configuration 26006 26007 function processRelativeTime(number, withoutSuffix, key, isFuture) { 26008 var format = { 26009 m: ['eine Minute', 'einer Minute'], 26010 h: ['eine Stunde', 'einer Stunde'], 26011 d: ['ein Tag', 'einem Tag'], 26012 dd: [number + ' Tage', number + ' Tagen'], 26013 w: ['eine Woche', 'einer Woche'], 26014 M: ['ein Monat', 'einem Monat'], 26015 MM: [number + ' Monate', number + ' Monaten'], 26016 y: ['ein Jahr', 'einem Jahr'],
26017 yy: [number + ' Jahre', number + ' Jahren'], 26018 }; 26019 return withoutSuffix ? format[key][0] : format[key][1]; 26020 } 26021 26022 var deCh = moment.defineLocale('de-ch', { 26023 months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( 26024 '_' 26025 ), 26026 monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split( 26027 '_' 26028 ), 26029 monthsParseExact: true, 26030 weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( 26031 '_' 26032 ), 26033 weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), 26034 weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), 26035 weekdaysParseExact: true, 26036 longDateFormat: { 26037 LT: 'HH:mm', 26038 LTS: 'HH:mm:ss', 26039 L: 'DD.MM.YYYY', 26040 LL: 'D. MMMM YYYY', 26041 LLL: 'D. MMMM YYYY HH:mm', 26042 LLLL: 'dddd, D. MMMM YYYY HH:mm', 26043 }, 26044 calendar: { 26045 sameDay: '[heute um] LT [Uhr]', 26046 sameElse: 'L', 26047 nextDay: '[morgen um] LT [Uhr]', 26048 nextWeek: 'dddd [um] LT [Uhr]', 26049 lastDay: '[gestern um] LT [Uhr]', 26050 lastWeek: '[letzten] dddd [um] LT [Uhr]', 26051 }, 26052 relativeTime: { 26053 future: 'in %s', 26054 past: 'vor %s', 26055 s: 'ein paar Sekunden', 26056 ss: '%d Sekunden', 26057 m: processRelativeTime, 26058 mm: '%d Minuten', 26059 h: processRelativeTime, 26060 hh: '%d Stunden', 26061 d: processRelativeTime, 26062 dd: processRelativeTime, 26063 w: processRelativeTime, 26064 ww: '%d Wochen', 26065 M: processRelativeTime, 26066 MM: processRelativeTime, 26067 y: processRelativeTime, 26068 yy: processRelativeTime, 26069 }, 26070 dayOfMonthOrdinalParse: /\d{1,2}\./, 26071 ordinal: '%d.', 26072 week: { 26073 dow: 1, // Monday is the first day of the week. 26074 doy: 4, // The week that contains Jan 4th is the first week of the year. 26075 }, 26076 }); 26077 26078 return deCh; 26079 26080}))); 26081 26082 26083/***/ }), 26084/* 29 */ 26085/***/ (function(module, exports, __webpack_require__) { 26086 26087//! moment.js locale configuration 26088//! locale : Maldivian [dv] 26089//! author : Jawish Hameed : https://github.com/jawish 26090 26091;(function (global, factory) { 26092 true ? factory(__webpack_require__(0)) : 26093 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 26094 factory(global.moment) 26095}(this, (function (moment) { 'use strict'; 26096 26097 //! moment.js locale configuration 26098 26099 var months = [ 26100 'ÞÞ¬ÞÞªÞÞ¦ÞÞ©', 26101 'ÞÞ¬ÞÞ°ÞÞªÞÞ¦ÞÞ©', 26102 'ÞÞ§ÞÞ¨ÞÞª', 26103 'ÞÞÞÞ°ÞÞ©ÞÞª', 26104 'ÞÞ', 26105 'ÞÞ«ÞÞ°', 26106 'ÞÞªÞÞ¦ÞÞ¨', 26107 'ÞÞ¯ÞÞ¦ÞÞ°ÞÞª', 26108 'ÞÞ¬ÞÞ°ÞÞ¬ÞÞ°ÞÞ¦ÞÞª', 26109 'ÞÞ®ÞÞ°ÞÞ¯ÞÞ¦ÞÞª', 26110 'ÞÞ®ÞÞ¬ÞÞ°ÞÞ¦ÞÞª', 26111 'ÞÞ¨ÞÞ¬ÞÞ°ÞÞ¦ÞÞª', 26112 ], 26113 weekdays = [ 26114 'ÞÞ§ÞÞ¨ÞÞ°ÞÞ¦', 26115 'ÞÞ¯ÞÞ¦', 26116 'ÞÞ¦ÞÞ°ÞÞ§ÞÞ¦', 26117 'ÞÞªÞÞ¦', 26118 'ÞÞªÞÞ§ÞÞ°ÞÞ¦ÞÞ¨', 26119 'ÞÞªÞÞªÞÞª', 26120 'ÞÞ®ÞÞ¨ÞÞ¨ÞÞª', 26121 ]; 26122 26123 var dv = moment.defineLocale('dv', { 26124 months: months, 26125 monthsShort: months, 26126 weekdays: weekdays, 26127 weekdaysShort: weekdays, 26128 weekdaysMin: 'ÞÞ§ÞÞ¨_ÞÞ¯ÞÞ¦_ÞÞ¦ÞÞ°_ÞÞªÞÞ¦_ÞÞªÞÞ§_ÞÞªÞÞª_ÞÞ®ÞÞ¨'.split('_'), 26129 longDateFormat: { 26130 LT: 'HH:mm', 26131 LTS: 'HH:mm:ss', 26132 L: 'D/M/YYYY', 26133 LL: 'D MMMM YYYY', 26134 LLL: 'D MMMM YYYY HH:mm', 26135 LLLL: 'dddd D MMMM YYYY HH:mm', 26136 }, 26137 meridiemParse: /ÞÞ|ÞÞ/, 26138 isPM: function (input) { 26139 return 'ÞÞ' === input; 26140 }, 26141 meridiem: function (hour, minute, isLower) { 26142 if (hour < 12) { 26143 return 'ÞÞ'; 26144 } else { 26145 return 'ÞÞ'; 26146 } 26147 }, 26148 calendar: { 26149 sameDay: '[ÞÞ¨ÞÞ¦ÞÞª] LT', 26150 nextDay: '[ÞÞ§ÞÞ¦ÞÞ§] LT', 26151 nextWeek: 'dddd LT', 26152 lastDay: '[ÞÞ¨ÞÞ°ÞÞ¬] LT', 26153 lastWeek: '[ÞÞ§ÞÞ¨ÞÞªÞÞ¨] dddd LT', 26154 sameElse: 'L', 26155 }, 26156 relativeTime: { 26157 future: 'ÞÞ¬ÞÞÞÞ¦ÞÞ¨ %s', 26158 past: 'ÞÞªÞÞ¨ÞÞ° %s', 26159 s: 'ÞÞ¨ÞÞªÞÞ°ÞÞªÞÞ®Þ Þ¬ÞÞ°', 26160 ss: 'd% ÞÞ¨ÞÞªÞÞ°ÞÞª', 26161 m: 'ÞÞ¨ÞÞ¨ÞÞ¬ÞÞ°', 26162 mm: 'ÞÞ¨ÞÞ¨ÞÞª %d', 26163 h: 'ÞÞ¦ÞÞ¨ÞÞ¨ÞÞ¬ÞÞ°', 26164 hh: 'ÞÞ¦ÞÞ¨ÞÞ¨ÞÞª %d', 26165 d: 'ÞÞªÞÞ¦ÞÞ¬ÞÞ°', 26166 dd: 'ÞÞªÞÞ¦ÞÞ° %d', 26167 M: 'ÞÞ¦ÞÞ¬ÞÞ°', 26168 MM: 'ÞÞ¦ÞÞ° %d', 26169 y: 'ÞÞ¦ÞÞ¦ÞÞ¬ÞÞ°', 26170 yy: 'ÞÞ¦ÞÞ¦ÞÞª %d', 26171 }, 26172 preparse: function (string) { 26173 return string.replace(/Ø/g, ','); 26174 }, 26175 postformat: function (string) { 26176 return string.replace(/,/g, 'Ø'); 26177 }, 26178 week: { 26179 dow: 7, // Sunday is the first day of the week. 26180 doy: 12, // The week that contains Jan 12th is the first week of the year. 26181 }, 26182 }); 26183 26184 return dv; 26185 26186}))); 26187 26188 26189/***/ }), 26190/* 30 */ 26191/***/ (function(module, exports, __webpack_require__) { 26192 26193//! moment.js locale configuration 26194//! locale : Greek [el] 26195//! author : Aggelos Karalias : https://github.com/mehiel 26196 26197;(function (global, factory) { 26198 true ? factory(__webpack_require__(0)) : 26199 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 26200 factory(global.moment) 26201}(this, (function (moment) { 'use strict'; 26202 26203 //! moment.js locale configuration 26204 26205 function isFunction(input) { 26206 return ( 26207 (typeof Function !== 'undefined' && input instanceof Function) || 26208 Object.prototype.toString.call(input) === '[object Function]' 26209 ); 26210 } 26211 26212 var el = moment.defineLocale('el', { 26213 monthsNominativeEl: 'ÎÎ±Î½Î¿Ï Î¬ÏιοÏ_ΦεβÏÎ¿Ï Î¬ÏιοÏ_ÎάÏÏιοÏ_ÎÏÏίλιοÏ_ÎάιοÏ_ÎοÏνιοÏ_ÎοÏλιοÏ_ÎÏÎ³Î¿Ï ÏÏοÏ_ΣεÏÏÎμβÏιοÏ_ÎκÏÏβÏιοÏ_ÎοÎμβÏιοÏ_ÎεκÎμβÏιοÏ'.split( 26214 '_' 26215 ), 26216 monthsGenitiveEl: 'ÎÎ±Î½Î¿Ï Î±ÏÎ¯Î¿Ï _ΦεβÏÎ¿Ï Î±ÏÎ¯Î¿Ï _ÎαÏÏÎ¯Î¿Ï _ÎÏÏÎ¹Î»Î¯Î¿Ï _ÎαÎÎ¿Ï _ÎÎ¿Ï Î½Î¯Î¿Ï _ÎÎ¿Ï Î»Î¯Î¿Ï _ÎÏ Î³Î¿ÏÏÏÎ¿Ï _ΣεÏÏεμβÏÎ¯Î¿Ï _ÎκÏÏβÏÎ¯Î¿Ï _ÎοεμβÏÎ¯Î¿Ï _ÎεκεμβÏÎ¯Î¿Ï '.split( 26217 '_' 26218 ), 26219 months: function (momentToFormat, format) { 26220 if (!momentToFormat) { 26221 return this._monthsNominativeEl; 26222 } else if ( 26223 typeof format === 'string' && 26224 /D/.test(format.substring(0, format.indexOf('MMMM'))) 26225 ) { 26226 // if there is a day number before 'MMMM' 26227 return this._monthsGenitiveEl[momentToFormat.month()]; 26228 } else { 26229 return this._monthsNominativeEl[momentToFormat.month()]; 26230 } 26231 }, 26232 monthsShort: 'Îαν_Φεβ_ÎαÏ_ÎÏÏ_ÎαÏ_ÎÎ¿Ï Î½_ÎÎ¿Ï Î»_ÎÏ Î³_ΣεÏ_ÎκÏ_Îοε_Îεκ'.split('_'), 26233 weekdays: 'ÎÏ Ïιακή_ÎÎµÏ ÏÎÏα_ΤÏίÏη_ΤεÏάÏÏη_Î ÎμÏÏη_ΠαÏαÏÎºÎµÏ Î®_ΣάββαÏο'.split( 26234 '_' 26235 ), 26236 weekdaysShort: 'ÎÏ Ï_ÎÎµÏ _ΤÏι_ΤεÏ_Πεμ_ΠαÏ_Σαβ'.split('_'), 26237 weekdaysMin: 'ÎÏ _Îε_ΤÏ_Τε_Πε_Πα_Σα'.split('_'), 26238 meridiem: function (hours, minutes, isLower) { 26239 if (hours > 11) { 26240 return isLower ? 'μμ' : 'ÎÎ'; 26241 } else { 26242 return isLower ? 'Ïμ' : 'Î Î'; 26243 } 26244 }, 26245 isPM: function (input) { 26246 return (input + '').toLowerCase()[0] === 'μ'; 26247 }, 26248 meridiemParse: /[Î Î]\.?Î?\.?/i, 26249 longDateFormat: { 26250 LT: 'h:mm A', 26251 LTS: 'h:mm:ss A', 26252 L: 'DD/MM/YYYY', 26253 LL: 'D MMMM YYYY', 26254 LLL: 'D MMMM YYYY h:mm A', 26255 LLLL: 'dddd, D MMMM YYYY h:mm A', 26256 }, 26257 calendarEl: { 26258 sameDay: '[ΣήμεÏα {}] LT', 26259 nextDay: '[ÎÏÏιο {}] LT', 26260 nextWeek: 'dddd [{}] LT', 26261 lastDay: '[Î§Î¸ÎµÏ {}] LT', 26262 lastWeek: function () { 26263 switch (this.day()) { 26264 case 6: 26265 return '[Ïο ÏÏοηγοÏμενο] dddd [{}] LT'; 26266 default: 26267 return '[Ïην ÏÏοηγοÏμενη] dddd [{}] LT'; 26268 } 26269 }, 26270 sameElse: 'L', 26271 }, 26272 calendar: function (key, mom) { 26273 var output = this._calendarEl[key], 26274 hours = mom && mom.hours(); 26275 if (isFunction(output)) { 26276 output = output.apply(mom); 26277 } 26278 return output.replace('{}', hours % 12 === 1 ? 'ÏÏη' : 'ÏÏιÏ'); 26279 }, 26280 relativeTime: { 26281 future: 'Ïε %s', 26282 past: '%s ÏÏιν', 26283 s: 'λίγα Î´ÎµÏ ÏεÏÏλεÏÏα', 26284 ss: '%d Î´ÎµÏ ÏεÏÏλεÏÏα', 26285 m: 'Îνα λεÏÏÏ', 26286 mm: '%d λεÏÏά', 26287 h: 'μία ÏÏα', 26288 hh: '%d ÏÏεÏ', 26289 d: 'μία μÎÏα', 26290 dd: '%d μÎÏεÏ',
26291 M: 'ÎÎ½Î±Ï Î¼Î®Î½Î±Ï', 26292 MM: '%d μήνεÏ', 26293 y: 'ÎÎ½Î±Ï ÏÏÏνοÏ', 26294 yy: '%d ÏÏÏνια', 26295 }, 26296 dayOfMonthOrdinalParse: /\d{1,2}η/, 26297 ordinal: '%dη', 26298 week: { 26299 dow: 1, // Monday is the first day of the week. 26300 doy: 4, // The week that contains Jan 4st is the first week of the year. 26301 }, 26302 }); 26303 26304 return el; 26305 26306}))); 26307 26308 26309/***/ }), 26310/* 31 */ 26311/***/ (function(module, exports, __webpack_require__) { 26312 26313//! moment.js locale configuration 26314//! locale : English (Australia) [en-au] 26315//! author : Jared Morse : https://github.com/jarcoal 26316 26317;(function (global, factory) { 26318 true ? factory(__webpack_require__(0)) : 26319 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 26320 factory(global.moment) 26321}(this, (function (moment) { 'use strict'; 26322 26323 //! moment.js locale configuration 26324 26325 var enAu = moment.defineLocale('en-au', { 26326 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 26327 '_' 26328 ), 26329 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 26330 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 26331 '_' 26332 ), 26333 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 26334 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 26335 longDateFormat: { 26336 LT: 'h:mm A', 26337 LTS: 'h:mm:ss A', 26338 L: 'DD/MM/YYYY', 26339 LL: 'D MMMM YYYY', 26340 LLL: 'D MMMM YYYY h:mm A', 26341 LLLL: 'dddd, D MMMM YYYY h:mm A', 26342 }, 26343 calendar: { 26344 sameDay: '[Today at] LT', 26345 nextDay: '[Tomorrow at] LT', 26346 nextWeek: 'dddd [at] LT', 26347 lastDay: '[Yesterday at] LT', 26348 lastWeek: '[Last] dddd [at] LT', 26349 sameElse: 'L', 26350 }, 26351 relativeTime: { 26352 future: 'in %s', 26353 past: '%s ago', 26354 s: 'a few seconds', 26355 ss: '%d seconds', 26356 m: 'a minute', 26357 mm: '%d minutes', 26358 h: 'an hour', 26359 hh: '%d hours', 26360 d: 'a day', 26361 dd: '%d days', 26362 M: 'a month', 26363 MM: '%d months', 26364 y: 'a year', 26365 yy: '%d years', 26366 }, 26367 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 26368 ordinal: function (number) { 26369 var b = number % 10, 26370 output = 26371 ~~((number % 100) / 10) === 1 26372 ? 'th' 26373 : b === 1 26374 ? 'st' 26375 : b === 2 26376 ? 'nd' 26377 : b === 3 26378 ? 'rd' 26379 : 'th'; 26380 return number + output; 26381 }, 26382 week: { 26383 dow: 0, // Sunday is the first day of the week. 26384 doy: 4, // The week that contains Jan 4th is the first week of the year. 26385 }, 26386 }); 26387 26388 return enAu; 26389 26390}))); 26391 26392 26393/***/ }), 26394/* 32 */ 26395/***/ (function(module, exports, __webpack_require__) { 26396 26397//! moment.js locale configuration 26398//! locale : English (Canada) [en-ca] 26399//! author : Jonathan Abourbih : https://github.com/jonbca 26400 26401;(function (global, factory) { 26402 true ? factory(__webpack_require__(0)) : 26403 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 26404 factory(global.moment) 26405}(this, (function (moment) { 'use strict'; 26406 26407 //! moment.js locale configuration 26408 26409 var enCa = moment.defineLocale('en-ca', { 26410 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 26411 '_' 26412 ), 26413 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 26414 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 26415 '_' 26416 ), 26417 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 26418 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 26419 longDateFormat: { 26420 LT: 'h:mm A', 26421 LTS: 'h:mm:ss A', 26422 L: 'YYYY-MM-DD', 26423 LL: 'MMMM D, YYYY', 26424 LLL: 'MMMM D, YYYY h:mm A', 26425 LLLL: 'dddd, MMMM D, YYYY h:mm A', 26426 }, 26427 calendar: { 26428 sameDay: '[Today at] LT', 26429 nextDay: '[Tomorrow at] LT', 26430 nextWeek: 'dddd [at] LT', 26431 lastDay: '[Yesterday at] LT', 26432 lastWeek: '[Last] dddd [at] LT', 26433 sameElse: 'L', 26434 }, 26435 relativeTime: { 26436 future: 'in %s', 26437 past: '%s ago', 26438 s: 'a few seconds', 26439 ss: '%d seconds', 26440 m: 'a minute', 26441 mm: '%d minutes', 26442 h: 'an hour', 26443 hh: '%d hours', 26444 d: 'a day', 26445 dd: '%d days', 26446 M: 'a month', 26447 MM: '%d months', 26448 y: 'a year', 26449 yy: '%d years', 26450 }, 26451 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 26452 ordinal: function (number) { 26453 var b = number % 10, 26454 output = 26455 ~~((number % 100) / 10) === 1 26456 ? 'th' 26457 : b === 1 26458 ? 'st' 26459 : b === 2 26460 ? 'nd' 26461 : b === 3 26462 ? 'rd' 26463 : 'th'; 26464 return number + output; 26465 }, 26466 }); 26467 26468 return enCa; 26469 26470}))); 26471 26472 26473/***/ }), 26474/* 33 */ 26475/***/ (function(module, exports, __webpack_require__) { 26476 26477//! moment.js locale configuration 26478//! locale : English (United Kingdom) [en-gb] 26479//! author : Chris Gedrim : https://github.com/chrisgedrim 26480 26481;(function (global, factory) { 26482 true ? factory(__webpack_require__(0)) : 26483 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 26484 factory(global.moment) 26485}(this, (function (moment) { 'use strict'; 26486 26487 //! moment.js locale configuration 26488 26489 var enGb = moment.defineLocale('en-gb', { 26490 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 26491 '_' 26492 ), 26493 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 26494 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 26495 '_' 26496 ), 26497 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 26498 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 26499 longDateFormat: { 26500 LT: 'HH:mm', 26501 LTS: 'HH:mm:ss', 26502 L: 'DD/MM/YYYY', 26503 LL: 'D MMMM YYYY', 26504 LLL: 'D MMMM YYYY HH:mm', 26505 LLLL: 'dddd, D MMMM YYYY HH:mm', 26506 }, 26507 calendar: { 26508 sameDay: '[Today at] LT', 26509 nextDay: '[Tomorrow at] LT', 26510 nextWeek: 'dddd [at] LT', 26511 lastDay: '[Yesterday at] LT', 26512 lastWeek: '[Last] dddd [at] LT', 26513 sameElse: 'L', 26514 }, 26515 relativeTime: { 26516 future: 'in %s', 26517 past: '%s ago', 26518 s: 'a few seconds', 26519 ss: '%d seconds', 26520 m: 'a minute', 26521 mm: '%d minutes', 26522 h: 'an hour', 26523 hh: '%d hours', 26524 d: 'a day', 26525 dd: '%d days', 26526 M: 'a month', 26527 MM: '%d months', 26528 y: 'a year', 26529 yy: '%d years', 26530 }, 26531 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 26532 ordinal: function (number) { 26533 var b = number % 10, 26534 output = 26535 ~~((number % 100) / 10) === 1 26536 ? 'th' 26537 : b === 1 26538 ? 'st' 26539 : b === 2 26540 ? 'nd' 26541 : b === 3 26542 ? 'rd' 26543 : 'th'; 26544 return number + output; 26545 }, 26546 week: { 26547 dow: 1, // Monday is the first day of the week. 26548 doy: 4, // The week that contains Jan 4th is the first week of the year. 26549 }, 26550 }); 26551 26552 return enGb;
26553 26554}))); 26555 26556 26557/***/ }), 26558/* 34 */ 26559/***/ (function(module, exports, __webpack_require__) { 26560 26561//! moment.js locale configuration 26562//! locale : English (Ireland) [en-ie] 26563//! author : Chris Cartlidge : https://github.com/chriscartlidge 26564 26565;(function (global, factory) { 26566 true ? factory(__webpack_require__(0)) : 26567 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 26568 factory(global.moment) 26569}(this, (function (moment) { 'use strict'; 26570 26571 //! moment.js locale configuration 26572 26573 var enIe = moment.defineLocale('en-ie', { 26574 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 26575 '_' 26576 ), 26577 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 26578 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 26579 '_' 26580 ), 26581 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 26582 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 26583 longDateFormat: { 26584 LT: 'HH:mm', 26585 LTS: 'HH:mm:ss', 26586 L: 'DD/MM/YYYY', 26587 LL: 'D MMMM YYYY', 26588 LLL: 'D MMMM YYYY HH:mm', 26589 LLLL: 'dddd D MMMM YYYY HH:mm', 26590 }, 26591 calendar: { 26592 sameDay: '[Today at] LT', 26593 nextDay: '[Tomorrow at] LT', 26594 nextWeek: 'dddd [at] LT', 26595 lastDay: '[Yesterday at] LT', 26596 lastWeek: '[Last] dddd [at] LT', 26597 sameElse: 'L', 26598 }, 26599 relativeTime: { 26600 future: 'in %s', 26601 past: '%s ago', 26602 s: 'a few seconds', 26603 ss: '%d seconds', 26604 m: 'a minute', 26605 mm: '%d minutes', 26606 h: 'an hour', 26607 hh: '%d hours', 26608 d: 'a day', 26609 dd: '%d days', 26610 M: 'a month', 26611 MM: '%d months', 26612 y: 'a year', 26613 yy: '%d years', 26614 }, 26615 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 26616 ordinal: function (number) { 26617 var b = number % 10, 26618 output = 26619 ~~((number % 100) / 10) === 1 26620 ? 'th' 26621 : b === 1 26622 ? 'st' 26623 : b === 2 26624 ? 'nd' 26625 : b === 3 26626 ? 'rd' 26627 : 'th'; 26628 return number + output; 26629 }, 26630 week: { 26631 dow: 1, // Monday is the first day of the week. 26632 doy: 4, // The week that contains Jan 4th is the first week of the year. 26633 }, 26634 }); 26635 26636 return enIe; 26637 26638}))); 26639 26640 26641/***/ }), 26642/* 35 */ 26643/***/ (function(module, exports, __webpack_require__) { 26644 26645//! moment.js locale configuration 26646//! locale : English (Israel) [en-il] 26647//! author : Chris Gedrim : https://github.com/chrisgedrim 26648 26649;(function (global, factory) { 26650 true ? factory(__webpack_require__(0)) : 26651 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 26652 factory(global.moment) 26653}(this, (function (moment) { 'use strict'; 26654 26655 //! moment.js locale configuration 26656 26657 var enIl = moment.defineLocale('en-il', { 26658 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 26659 '_' 26660 ), 26661 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 26662 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 26663 '_' 26664 ), 26665 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 26666 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 26667 longDateFormat: { 26668 LT: 'HH:mm', 26669 LTS: 'HH:mm:ss', 26670 L: 'DD/MM/YYYY', 26671 LL: 'D MMMM YYYY', 26672 LLL: 'D MMMM YYYY HH:mm', 26673 LLLL: 'dddd, D MMMM YYYY HH:mm', 26674 }, 26675 calendar: { 26676 sameDay: '[Today at] LT', 26677 nextDay: '[Tomorrow at] LT', 26678 nextWeek: 'dddd [at] LT', 26679 lastDay: '[Yesterday at] LT', 26680 lastWeek: '[Last] dddd [at] LT', 26681 sameElse: 'L', 26682 }, 26683 relativeTime: { 26684 future: 'in %s', 26685 past: '%s ago', 26686 s: 'a few seconds', 26687 ss: '%d seconds', 26688 m: 'a minute', 26689 mm: '%d minutes', 26690 h: 'an hour', 26691 hh: '%d hours', 26692 d: 'a day', 26693 dd: '%d days', 26694 M: 'a month', 26695 MM: '%d months', 26696 y: 'a year', 26697 yy: '%d years', 26698 }, 26699 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 26700 ordinal: function (number) { 26701 var b = number % 10, 26702 output = 26703 ~~((number % 100) / 10) === 1 26704 ? 'th' 26705 : b === 1 26706 ? 'st' 26707 : b === 2 26708 ? 'nd' 26709 : b === 3 26710 ? 'rd' 26711 : 'th'; 26712 return number + output; 26713 }, 26714 }); 26715 26716 return enIl; 26717 26718}))); 26719 26720 26721/***/ }), 26722/* 36 */ 26723/***/ (function(module, exports, __webpack_require__) { 26724 26725//! moment.js locale configuration 26726//! locale : English (India) [en-in] 26727//! author : Jatin Agrawal : https://github.com/jatinag22 26728 26729;(function (global, factory) { 26730 true ? factory(__webpack_require__(0)) : 26731 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 26732 factory(global.moment) 26733}(this, (function (moment) { 'use strict'; 26734 26735 //! moment.js locale configuration 26736 26737 var enIn = moment.defineLocale('en-in', { 26738 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 26739 '_' 26740 ), 26741 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 26742 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 26743 '_' 26744 ), 26745 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 26746 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 26747 longDateFormat: { 26748 LT: 'h:mm A', 26749 LTS: 'h:mm:ss A', 26750 L: 'DD/MM/YYYY', 26751 LL: 'D MMMM YYYY', 26752 LLL: 'D MMMM YYYY h:mm A', 26753 LLLL: 'dddd, D MMMM YYYY h:mm A', 26754 }, 26755 calendar: { 26756 sameDay: '[Today at] LT', 26757 nextDay: '[Tomorrow at] LT', 26758 nextWeek: 'dddd [at] LT', 26759 lastDay: '[Yesterday at] LT', 26760 lastWeek: '[Last] dddd [at] LT', 26761 sameElse: 'L', 26762 }, 26763 relativeTime: { 26764 future: 'in %s', 26765 past: '%s ago', 26766 s: 'a few seconds', 26767 ss: '%d seconds', 26768 m: 'a minute', 26769 mm: '%d minutes', 26770 h: 'an hour', 26771 hh: '%d hours', 26772 d: 'a day', 26773 dd: '%d days', 26774 M: 'a month', 26775 MM: '%d months', 26776 y: 'a year', 26777 yy: '%d years', 26778 }, 26779 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 26780 ordinal: function (number) { 26781 var b = number % 10, 26782 output = 26783 ~~((number % 100) / 10) === 1 26784 ? 'th' 26785 : b === 1 26786 ? 'st' 26787 : b === 2 26788 ? 'nd' 26789 : b === 3 26790 ? 'rd' 26791 : 'th'; 26792 return number + output; 26793 }, 26794 week: { 26795 dow: 0, // Sunday is the first day of the week. 26796 doy: 6, // The week that contains Jan 1st is the first week of the year. 26797 }, 26798 }); 26799 26800 return enIn; 26801 26802}))); 26803 26804 26805/***/ }), 26806/* 37 */ 26807/***/ (function(module, exports, __webpack_require__) { 26808 26809//! moment.js locale configuration 26810//! locale : English (New Zealand) [en-nz] 26811//! author : Luke McGregor : https://github.com/lukemcgregor 26812 26813;(function (global, factory) { 26814 true ? factory(__webpack_require__(0)) : 26815 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 26816 factory(global.moment) 26817}(this, (function (moment) { 'use strict'; 26818 26819 //! moment.js locale configuration 26820 26821 var enNz = moment.defineLocale('en-nz', { 26822 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 26823 '_' 26824 ), 26825 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 26826 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 26827 '_' 26828 ), 26829 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 26830 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 26831 longDateFormat: { 26832 LT: 'h:mm A', 26833 LTS: 'h:mm:ss A', 26834 L: 'DD/MM/YYYY', 26835 LL: 'D MMMM YYYY', 26836 LLL: 'D MMMM YYYY h:mm A', 26837 LLLL: 'dddd, D MMMM YYYY h:mm A', 26838 }, 26839 calendar: { 26840 sameDay: '[Today at] LT', 26841 nextDay: '[Tomorrow at] LT', 26842 nextWeek: 'dddd [at] LT', 26843 lastDay: '[Yesterday at] LT', 26844 lastWeek: '[Last] dddd [at] LT', 26845 sameElse: 'L', 26846 }, 26847 relativeTime: { 26848 future: 'in %s', 26849 past: '%s ago', 26850 s: 'a few seconds', 26851 ss: '%d seconds', 26852 m: 'a minute', 26853 mm: '%d minutes', 26854 h: 'an hour', 26855 hh: '%d hours', 26856 d: 'a day', 26857 dd: '%d days', 26858 M: 'a month', 26859 MM: '%d months', 26860 y: 'a year', 26861 yy: '%d years', 26862 }, 26863 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 26864 ordinal: function (number) { 26865 var b = number % 10, 26866 output = 26867 ~~((number % 100) / 10) === 1 26868 ? 'th' 26869 : b === 1 26870 ? 'st' 26871 : b === 2 26872 ? 'nd' 26873 : b === 3 26874 ? 'rd' 26875 : 'th'; 26876 return number + output; 26877 }, 26878 week: { 26879 dow: 1, // Monday is the first day of the week. 26880 doy: 4, // The week that contains Jan 4th is the first week of the year. 26881 }, 26882 }); 26883 26884 return enNz; 26885 26886}))); 26887 26888 26889/***/ }), 26890/* 38 */ 26891/***/ (function(module, exports, __webpack_require__) { 26892 26893//! moment.js locale configuration 26894//! locale : English (Singapore) [en-sg] 26895//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension 26896 26897;(function (global, factory) { 26898 true ? factory(__webpack_require__(0)) : 26899 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 26900 factory(global.moment) 26901}(this, (function (moment) { 'use strict'; 26902 26903 //! moment.js locale configuration 26904 26905 var enSg = moment.defineLocale('en-sg', { 26906 months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 26907 '_' 26908 ), 26909 monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), 26910 weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 26911 '_' 26912 ), 26913 weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 26914 weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 26915 longDateFormat: { 26916 LT: 'HH:mm', 26917 LTS: 'HH:mm:ss', 26918 L: 'DD/MM/YYYY', 26919 LL: 'D MMMM YYYY', 26920 LLL: 'D MMMM YYYY HH:mm', 26921 LLLL: 'dddd, D MMMM YYYY HH:mm', 26922 }, 26923 calendar: { 26924 sameDay: '[Today at] LT', 26925 nextDay: '[Tomorrow at] LT', 26926 nextWeek: 'dddd [at] LT', 26927 lastDay: '[Yesterday at] LT', 26928 lastWeek: '[Last] dddd [at] LT', 26929 sameElse: 'L', 26930 }, 26931 relativeTime: { 26932 future: 'in %s', 26933 past: '%s ago', 26934 s: 'a few seconds', 26935 ss: '%d seconds', 26936 m: 'a minute', 26937 mm: '%d minutes', 26938 h: 'an hour', 26939 hh: '%d hours', 26940 d: 'a day', 26941 dd: '%d days', 26942 M: 'a month', 26943 MM: '%d months', 26944 y: 'a year', 26945 yy: '%d years', 26946 }, 26947 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 26948 ordinal: function (number) { 26949 var b = number % 10, 26950 output = 26951 ~~((number % 100) / 10) === 1 26952 ? 'th' 26953 : b === 1 26954 ? 'st' 26955 : b === 2 26956 ? 'nd' 26957 : b === 3 26958 ? 'rd' 26959 : 'th'; 26960 return number + output; 26961 }, 26962 week: { 26963 dow: 1, // Monday is the first day of the week. 26964 doy: 4, // The week that contains Jan 4th is the first week of the year. 26965 }, 26966 }); 26967 26968 return enSg; 26969 26970}))); 26971 26972 26973/***/ }), 26974/* 39 */ 26975/***/ (function(module, exports, __webpack_require__) { 26976 26977//! moment.js locale configuration 26978//! locale : Esperanto [eo] 26979//! author : Colin Dean : https://github.com/colindean 26980//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia 26981//! comment : miestasmia corrected the translation by colindean 26982//! comment : Vivakvo corrected the translation by colindean and miestasmia 26983 26984;(function (global, factory) { 26985 true ? factory(__webpack_require__(0)) : 26986 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 26987 factory(global.moment) 26988}(this, (function (moment) { 'use strict'; 26989 26990 //! moment.js locale configuration 26991 26992 var eo = moment.defineLocale('eo', { 26993 months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aÅgusto_septembro_oktobro_novembro_decembro'.split( 26994 '_' 26995 ), 26996 monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aÅg_sept_okt_nov_dec'.split('_'), 26997 weekdays: 'dimanÄo_lundo_mardo_merkredo_ĵaÅdo_vendredo_sabato'.split('_'), 26998 weekdaysShort: 'dim_lun_mard_merk_ĵaÅ_ven_sab'.split('_'), 26999 weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'), 27000 longDateFormat: { 27001 LT: 'HH:mm', 27002 LTS: 'HH:mm:ss', 27003 L: 'YYYY-MM-DD', 27004 LL: '[la] D[-an de] MMMM, YYYY', 27005 LLL: '[la] D[-an de] MMMM, YYYY HH:mm', 27006 LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', 27007 llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', 27008 }, 27009 meridiemParse: /[ap]\.t\.m/i, 27010 isPM: function (input) { 27011 return input.charAt(0).toLowerCase() === 'p'; 27012 }, 27013 meridiem: function (hours, minutes, isLower) { 27014 if (hours > 11) { 27015 return isLower ? 'p.t.m.' : 'P.T.M.'; 27016 } else { 27017 return isLower ? 'a.t.m.' : 'A.T.M.'; 27018 } 27019 }, 27020 calendar: { 27021 sameDay: '[HodiaÅ je] LT', 27022 nextDay: '[MorgaÅ je] LT', 27023 nextWeek: 'dddd[n je] LT', 27024 lastDay: '[HieraÅ je] LT', 27025 lastWeek: '[pasintan] dddd[n je] LT', 27026 sameElse: 'L', 27027 }, 27028 relativeTime: { 27029 future: 'post %s', 27030 past: 'antaÅ %s', 27031 s: 'kelkaj sekundoj', 27032 ss: '%d sekundoj', 27033 m: 'unu minuto', 27034 mm: '%d minutoj', 27035 h: 'unu horo', 27036 hh: '%d horoj', 27037 d: 'unu tago', //ne 'diurno', Äar estas uzita por proksimumo 27038 dd: '%d tagoj', 27039 M: 'unu monato', 27040 MM: '%d monatoj', 27041 y: 'unu jaro', 27042 yy: '%d jaroj', 27043 }, 27044 dayOfMonthOrdinalParse: /\d{1,2}a/, 27045 ordinal: '%da', 27046 week: { 27047 dow: 1, // Monday is the first day of the week. 27048 doy: 7, // The week that contains Jan 7th is the first week of the year. 27049 }, 27050 }); 27051 27052 return eo; 27053 27054}))); 27055 27056 27057/***/ }), 27058/* 40 */ 27059/***/ (function(module, exports, __webpack_require__) { 27060 27061//! moment.js locale configuration 27062//! locale : Spanish [es] 27063//! author : Julio Napurà : https://github.com/julionc 27064 27065;(function (global, factory) { 27066 true ? factory(__webpack_require__(0)) : 27067 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 27068 factory(global.moment) 27069}(this, (function (moment) { 'use strict'; 27070 27071 //! moment.js locale configuration 27072 27073 var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( 27074
vendor: 16,304 bytes, lines 27074-27548
27074 '_' 27075 ), 27076 monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), 27077 monthsParse = [ 27078 /^ene/i, 27079 /^feb/i, 27080 /^mar/i, 27081 /^abr/i, 27082 /^may/i, 27083 /^jun/i, 27084 /^jul/i, 27085 /^ago/i, 27086 /^sep/i, 27087 /^oct/i, 27088 /^nov/i, 27089 /^dic/i, 27090 ], 27091 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; 27092 27093 var es = moment.defineLocale('es', { 27094 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( 27095 '_' 27096 ), 27097 monthsShort: function (m, format) { 27098 if (!m) { 27099 return monthsShortDot; 27100 } else if (/-MMM-/.test(format)) { 27101 return monthsShort[m.month()]; 27102 } else { 27103 return monthsShortDot[m.month()]; 27104 } 27105 }, 27106 monthsRegex: monthsRegex, 27107 monthsShortRegex: monthsRegex, 27108 monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, 27109 monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, 27110 monthsParse: monthsParse, 27111 longMonthsParse: monthsParse, 27112 shortMonthsParse: monthsParse, 27113 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), 27114 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), 27115 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), 27116 weekdaysParseExact: true, 27117 longDateFormat: { 27118 LT: 'H:mm', 27119 LTS: 'H:mm:ss', 27120 L: 'DD/MM/YYYY', 27121 LL: 'D [de] MMMM [de] YYYY', 27122 LLL: 'D [de] MMMM [de] YYYY H:mm', 27123 LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', 27124 }, 27125 calendar: { 27126 sameDay: function () { 27127 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 27128 }, 27129 nextDay: function () { 27130 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 27131 }, 27132 nextWeek: function () { 27133 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 27134 }, 27135 lastDay: function () { 27136 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 27137 }, 27138 lastWeek: function () { 27139 return ( 27140 '[el] dddd [pasado a la' + 27141 (this.hours() !== 1 ? 's' : '') + 27142 '] LT' 27143 ); 27144 }, 27145 sameElse: 'L', 27146 }, 27147 relativeTime: { 27148 future: 'en %s', 27149 past: 'hace %s', 27150 s: 'unos segundos', 27151 ss: '%d segundos', 27152 m: 'un minuto', 27153 mm: '%d minutos', 27154 h: 'una hora', 27155 hh: '%d horas', 27156 d: 'un dÃa', 27157 dd: '%d dÃas', 27158 w: 'una semana', 27159 ww: '%d semanas', 27160 M: 'un mes', 27161 MM: '%d meses', 27162 y: 'un año', 27163 yy: '%d años', 27164 }, 27165 dayOfMonthOrdinalParse: /\d{1,2}º/, 27166 ordinal: '%dº', 27167 week: { 27168 dow: 1, // Monday is the first day of the week. 27169 doy: 4, // The week that contains Jan 4th is the first week of the year. 27170 }, 27171 invalidDate: 'Fecha inválida', 27172 }); 27173 27174 return es; 27175 27176}))); 27177 27178 27179/***/ }), 27180/* 41 */ 27181/***/ (function(module, exports, __webpack_require__) { 27182 27183//! moment.js locale configuration 27184//! locale : Spanish (Dominican Republic) [es-do] 27185 27186;(function (global, factory) { 27187 true ? factory(__webpack_require__(0)) : 27188 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 27189 factory(global.moment) 27190}(this, (function (moment) { 'use strict'; 27191 27192 //! moment.js locale configuration 27193 27194 var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( 27195 '_' 27196 ), 27197 monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), 27198 monthsParse = [ 27199 /^ene/i, 27200 /^feb/i, 27201 /^mar/i, 27202 /^abr/i, 27203 /^may/i, 27204 /^jun/i, 27205 /^jul/i, 27206 /^ago/i, 27207 /^sep/i, 27208 /^oct/i, 27209 /^nov/i, 27210 /^dic/i, 27211 ], 27212 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; 27213 27214 var esDo = moment.defineLocale('es-do', { 27215 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( 27216 '_' 27217 ), 27218 monthsShort: function (m, format) { 27219 if (!m) { 27220 return monthsShortDot; 27221 } else if (/-MMM-/.test(format)) { 27222 return monthsShort[m.month()]; 27223 } else { 27224 return monthsShortDot[m.month()]; 27225 } 27226 }, 27227 monthsRegex: monthsRegex, 27228 monthsShortRegex: monthsRegex, 27229 monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, 27230 monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, 27231 monthsParse: monthsParse, 27232 longMonthsParse: monthsParse, 27233 shortMonthsParse: monthsParse, 27234 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), 27235 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), 27236 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), 27237 weekdaysParseExact: true, 27238 longDateFormat: { 27239 LT: 'h:mm A', 27240 LTS: 'h:mm:ss A', 27241 L: 'DD/MM/YYYY', 27242 LL: 'D [de] MMMM [de] YYYY', 27243 LLL: 'D [de] MMMM [de] YYYY h:mm A', 27244 LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', 27245 }, 27246 calendar: { 27247 sameDay: function () { 27248 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 27249 }, 27250 nextDay: function () { 27251 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 27252 }, 27253 nextWeek: function () { 27254 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 27255 }, 27256 lastDay: function () { 27257 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 27258 }, 27259 lastWeek: function () { 27260 return ( 27261 '[el] dddd [pasado a la' + 27262 (this.hours() !== 1 ? 's' : '') + 27263 '] LT' 27264 ); 27265 }, 27266 sameElse: 'L', 27267 }, 27268 relativeTime: { 27269 future: 'en %s', 27270 past: 'hace %s', 27271 s: 'unos segundos', 27272 ss: '%d segundos', 27273 m: 'un minuto', 27274 mm: '%d minutos', 27275 h: 'una hora', 27276 hh: '%d horas', 27277 d: 'un dÃa', 27278 dd: '%d dÃas', 27279 w: 'una semana', 27280 ww: '%d semanas', 27281 M: 'un mes', 27282 MM: '%d meses', 27283 y: 'un año', 27284 yy: '%d años', 27285 }, 27286 dayOfMonthOrdinalParse: /\d{1,2}º/, 27287 ordinal: '%dº', 27288 week: { 27289 dow: 1, // Monday is the first day of the week. 27290 doy: 4, // The week that contains Jan 4th is the first week of the year. 27291 }, 27292 }); 27293 27294 return esDo; 27295 27296}))); 27297 27298 27299/***/ }), 27300/* 42 */ 27301/***/ (function(module, exports, __webpack_require__) { 27302 27303//! moment.js locale configuration 27304//! locale : Spanish (Mexico) [es-mx] 27305//! author : JC Franco : https://github.com/jcfranco 27306 27307;(function (global, factory) { 27308 true ? factory(__webpack_require__(0)) : 27309 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 27310 factory(global.moment) 27311}(this, (function (moment) { 'use strict'; 27312 27313 //! moment.js locale configuration 27314 27315 var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( 27316 '_' 27317 ), 27318 monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), 27319 monthsParse = [ 27320 /^ene/i, 27321 /^feb/i, 27322 /^mar/i, 27323 /^abr/i, 27324 /^may/i, 27325 /^jun/i, 27326 /^jul/i, 27327 /^ago/i, 27328 /^sep/i, 27329 /^oct/i, 27330 /^nov/i, 27331 /^dic/i, 27332 ], 27333 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; 27334 27335 var esMx = moment.defineLocale('es-mx', { 27336 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( 27337 '_' 27338 ), 27339 monthsShort: function (m, format) { 27340 if (!m) { 27341 return monthsShortDot; 27342 } else if (/-MMM-/.test(format)) { 27343 return monthsShort[m.month()]; 27344 } else { 27345 return monthsShortDot[m.month()]; 27346 } 27347 }, 27348 monthsRegex: monthsRegex, 27349 monthsShortRegex: monthsRegex, 27350 monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, 27351 monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, 27352 monthsParse: monthsParse, 27353 longMonthsParse: monthsParse, 27354 shortMonthsParse: monthsParse, 27355 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), 27356 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), 27357 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), 27358 weekdaysParseExact: true, 27359 longDateFormat: { 27360 LT: 'H:mm', 27361 LTS: 'H:mm:ss', 27362 L: 'DD/MM/YYYY', 27363 LL: 'D [de] MMMM [de] YYYY', 27364 LLL: 'D [de] MMMM [de] YYYY H:mm', 27365 LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', 27366 }, 27367 calendar: { 27368 sameDay: function () { 27369 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 27370 }, 27371 nextDay: function () { 27372 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 27373 }, 27374 nextWeek: function () { 27375 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 27376 }, 27377 lastDay: function () { 27378 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 27379 }, 27380 lastWeek: function () { 27381 return ( 27382 '[el] dddd [pasado a la' + 27383 (this.hours() !== 1 ? 's' : '') + 27384 '] LT' 27385 ); 27386 }, 27387 sameElse: 'L', 27388 }, 27389 relativeTime: { 27390 future: 'en %s', 27391 past: 'hace %s', 27392 s: 'unos segundos', 27393 ss: '%d segundos', 27394 m: 'un minuto', 27395 mm: '%d minutos', 27396 h: 'una hora', 27397 hh: '%d horas', 27398 d: 'un dÃa', 27399 dd: '%d dÃas', 27400 w: 'una semana', 27401 ww: '%d semanas', 27402 M: 'un mes', 27403 MM: '%d meses', 27404 y: 'un año', 27405 yy: '%d años', 27406 }, 27407 dayOfMonthOrdinalParse: /\d{1,2}º/, 27408 ordinal: '%dº', 27409 week: { 27410 dow: 0, // Sunday is the first day of the week. 27411 doy: 4, // The week that contains Jan 4th is the first week of the year. 27412 }, 27413 invalidDate: 'Fecha inválida', 27414 }); 27415 27416 return esMx; 27417 27418}))); 27419 27420 27421/***/ }), 27422/* 43 */ 27423/***/ (function(module, exports, __webpack_require__) { 27424 27425//! moment.js locale configuration 27426//! locale : Spanish (United States) [es-us] 27427//! author : bustta : https://github.com/bustta 27428//! author : chrisrodz : https://github.com/chrisrodz 27429 27430;(function (global, factory) { 27431 true ? factory(__webpack_require__(0)) : 27432 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 27433 factory(global.moment) 27434}(this, (function (moment) { 'use strict'; 27435 27436 //! moment.js locale configuration 27437 27438 var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( 27439 '_' 27440 ), 27441 monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), 27442 monthsParse = [ 27443 /^ene/i, 27444 /^feb/i, 27445 /^mar/i, 27446 /^abr/i, 27447 /^may/i, 27448 /^jun/i, 27449 /^jul/i, 27450 /^ago/i, 27451 /^sep/i, 27452 /^oct/i, 27453 /^nov/i, 27454 /^dic/i, 27455 ], 27456 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; 27457 27458 var esUs = moment.defineLocale('es-us', { 27459 months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( 27460 '_' 27461 ), 27462 monthsShort: function (m, format) { 27463 if (!m) { 27464 return monthsShortDot; 27465 } else if (/-MMM-/.test(format)) { 27466 return monthsShort[m.month()]; 27467 } else { 27468 return monthsShortDot[m.month()]; 27469 } 27470 }, 27471 monthsRegex: monthsRegex, 27472 monthsShortRegex: monthsRegex, 27473 monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, 27474 monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, 27475 monthsParse: monthsParse, 27476 longMonthsParse: monthsParse, 27477 shortMonthsParse: monthsParse, 27478 weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), 27479 weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), 27480 weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'), 27481 weekdaysParseExact: true, 27482 longDateFormat: { 27483 LT: 'h:mm A', 27484 LTS: 'h:mm:ss A', 27485 L: 'MM/DD/YYYY', 27486 LL: 'D [de] MMMM [de] YYYY', 27487 LLL: 'D [de] MMMM [de] YYYY h:mm A', 27488 LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', 27489 }, 27490 calendar: { 27491 sameDay: function () { 27492 return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 27493 }, 27494 nextDay: function () { 27495 return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 27496 }, 27497 nextWeek: function () { 27498 return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 27499 }, 27500 lastDay: function () { 27501 return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; 27502 }, 27503 lastWeek: function () { 27504 return ( 27505 '[el] dddd [pasado a la' + 27506 (this.hours() !== 1 ? 's' : '') + 27507 '] LT' 27508 ); 27509 }, 27510 sameElse: 'L', 27511 }, 27512 relativeTime: { 27513 future: 'en %s', 27514 past: 'hace %s', 27515 s: 'unos segundos', 27516 ss: '%d segundos', 27517 m: 'un minuto', 27518 mm: '%d minutos', 27519 h: 'una hora', 27520 hh: '%d horas', 27521 d: 'un dÃa', 27522 dd: '%d dÃas', 27523 w: 'una semana', 27524 ww: '%d semanas', 27525 M: 'un mes', 27526 MM: '%d meses', 27527 y: 'un año', 27528 yy: '%d años', 27529 }, 27530 dayOfMonthOrdinalParse: /\d{1,2}º/, 27531 ordinal: '%dº', 27532 week: { 27533 dow: 0, // Sunday is the first day of the week. 27534 doy: 6, // The week that contains Jan 6th is the first week of the year. 27535 }, 27536 }); 27537 27538 return esUs; 27539 27540}))); 27541 27542 27543/***/ }), 27544/* 44 */ 27545/***/ (function(module, exports, __webpack_require__) { 27546 27547//! moment.js locale configuration 27548//! locale : Estonian [et]
27549//! author : Henry Kehlmann : https://github.com/madhenry 27550//! improvements : Illimar Tambek : https://github.com/ragulka 27551 27552;(function (global, factory) { 27553 true ? factory(__webpack_require__(0)) : 27554 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 27555 factory(global.moment) 27556}(this, (function (moment) { 'use strict'; 27557 27558 //! moment.js locale configuration 27559 27560 function processRelativeTime(number, withoutSuffix, key, isFuture) { 27561 var format = { 27562 s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'], 27563 ss: [number + 'sekundi', number + 'sekundit'], 27564 m: ['ühe minuti', 'üks minut'], 27565 mm: [number + ' minuti', number + ' minutit'], 27566 h: ['ühe tunni', 'tund aega', 'üks tund'], 27567 hh: [number + ' tunni', number + ' tundi'], 27568 d: ['ühe päeva', 'üks päev'], 27569 M: ['kuu aja', 'kuu aega', 'üks kuu'], 27570 MM: [number + ' kuu', number + ' kuud'], 27571 y: ['ühe aasta', 'aasta', 'üks aasta'], 27572 yy: [number + ' aasta', number + ' aastat'], 27573 }; 27574 if (withoutSuffix) { 27575 return format[key][2] ? format[key][2] : format[key][1]; 27576 } 27577 return isFuture ? format[key][0] : format[key][1]; 27578 } 27579 27580 var et = moment.defineLocale('et', { 27581 months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( 27582 '_' 27583 ), 27584 monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split( 27585 '_' 27586 ), 27587 weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split( 27588 '_' 27589 ), 27590 weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), 27591 weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), 27592 longDateFormat: { 27593 LT: 'H:mm', 27594 LTS: 'H:mm:ss', 27595 L: 'DD.MM.YYYY', 27596 LL: 'D. MMMM YYYY', 27597 LLL: 'D. MMMM YYYY H:mm', 27598 LLLL: 'dddd, D. MMMM YYYY H:mm', 27599 }, 27600 calendar: { 27601 sameDay: '[Täna,] LT', 27602 nextDay: '[Homme,] LT', 27603 nextWeek: '[Järgmine] dddd LT', 27604 lastDay: '[Eile,] LT', 27605 lastWeek: '[Eelmine] dddd LT', 27606 sameElse: 'L', 27607 }, 27608 relativeTime: { 27609 future: '%s pärast', 27610 past: '%s tagasi', 27611 s: processRelativeTime, 27612 ss: processRelativeTime, 27613 m: processRelativeTime, 27614 mm: processRelativeTime, 27615 h: processRelativeTime, 27616 hh: processRelativeTime, 27617 d: processRelativeTime, 27618 dd: '%d päeva', 27619 M: processRelativeTime, 27620 MM: processRelativeTime, 27621 y: processRelativeTime, 27622 yy: processRelativeTime, 27623 }, 27624 dayOfMonthOrdinalParse: /\d{1,2}\./, 27625 ordinal: '%d.', 27626 week: { 27627 dow: 1, // Monday is the first day of the week. 27628 doy: 4, // The week that contains Jan 4th is the first week of the year. 27629 }, 27630 }); 27631 27632 return et; 27633 27634}))); 27635 27636 27637/***/ }), 27638/* 45 */ 27639/***/ (function(module, exports, __webpack_require__) { 27640 27641//! moment.js locale configuration 27642//! locale : Basque [eu] 27643//! author : Eneko Illarramendi : https://github.com/eillarra 27644 27645;(function (global, factory) { 27646 true ? factory(__webpack_require__(0)) : 27647 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 27648 factory(global.moment) 27649}(this, (function (moment) { 'use strict'; 27650 27651 //! moment.js locale configuration 27652 27653 var eu = moment.defineLocale('eu', { 27654 months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( 27655 '_' 27656 ), 27657 monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( 27658 '_' 27659 ), 27660 monthsParseExact: true, 27661 weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( 27662 '_' 27663 ), 27664 weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), 27665 weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), 27666 weekdaysParseExact: true, 27667 longDateFormat: { 27668 LT: 'HH:mm', 27669 LTS: 'HH:mm:ss', 27670 L: 'YYYY-MM-DD', 27671 LL: 'YYYY[ko] MMMM[ren] D[a]', 27672 LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', 27673 LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', 27674 l: 'YYYY-M-D', 27675 ll: 'YYYY[ko] MMM D[a]', 27676 lll: 'YYYY[ko] MMM D[a] HH:mm', 27677 llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', 27678 }, 27679 calendar: { 27680 sameDay: '[gaur] LT[etan]', 27681 nextDay: '[bihar] LT[etan]', 27682 nextWeek: 'dddd LT[etan]', 27683 lastDay: '[atzo] LT[etan]', 27684 lastWeek: '[aurreko] dddd LT[etan]', 27685 sameElse: 'L', 27686 }, 27687 relativeTime: { 27688 future: '%s barru', 27689 past: 'duela %s', 27690 s: 'segundo batzuk', 27691 ss: '%d segundo', 27692 m: 'minutu bat', 27693 mm: '%d minutu', 27694 h: 'ordu bat', 27695 hh: '%d ordu', 27696 d: 'egun bat', 27697 dd: '%d egun', 27698 M: 'hilabete bat', 27699 MM: '%d hilabete', 27700 y: 'urte bat', 27701 yy: '%d urte', 27702 }, 27703 dayOfMonthOrdinalParse: /\d{1,2}\./, 27704 ordinal: '%d.', 27705 week: { 27706 dow: 1, // Monday is the first day of the week. 27707 doy: 7, // The week that contains Jan 7th is the first week of the year. 27708 }, 27709 }); 27710 27711 return eu; 27712 27713}))); 27714 27715 27716/***/ }), 27717/* 46 */ 27718/***/ (function(module, exports, __webpack_require__) { 27719 27720//! moment.js locale configuration 27721//! locale : Persian [fa] 27722//! author : Ebrahim Byagowi : https://github.com/ebraminio 27723 27724;(function (global, factory) { 27725 true ? factory(__webpack_require__(0)) : 27726 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 27727 factory(global.moment) 27728}(this, (function (moment) { 'use strict'; 27729 27730 //! moment.js locale configuration 27731 27732 var symbolMap = { 27733 1: 'Û±', 27734 2: 'Û²', 27735 3: 'Û³', 27736 4: 'Û´', 27737 5: 'Ûµ', 27738 6: 'Û¶', 27739 7: 'Û·', 27740 8: 'Û¸', 27741 9: 'Û¹', 27742 0: 'Û°', 27743 }, 27744 numberMap = { 27745 'Û±': '1', 27746 'Û²': '2', 27747 'Û³': '3', 27748 'Û´': '4', 27749 'Ûµ': '5', 27750 'Û¶': '6', 27751 'Û·': '7', 27752 'Û¸': '8', 27753 'Û¹': '9', 27754 'Û°': '0', 27755 }; 27756 27757 var fa = moment.defineLocale('fa', { 27758 months: 'ÚØ§ÙÙÛÙ_ÙÙØ±ÛÙ_٠ارس_Ø¢ÙØ±ÛÙ_Ù Ù_ÚÙØ¦Ù_ÚÙØ¦ÛÙ_Ø§ÙØª_سپتا٠بر_اکتبر_ÙÙØ§Ù بر_دسا٠بر'.split( 27759 '_' 27760 ), 27761 monthsShort: 'ÚØ§ÙÙÛÙ_ÙÙØ±ÛÙ_٠ارس_Ø¢ÙØ±ÛÙ_Ù Ù_ÚÙØ¦Ù_ÚÙØ¦ÛÙ_Ø§ÙØª_سپتا٠بر_اکتبر_ÙÙØ§Ù بر_دسا٠بر'.split( 27762 '_' 27763 ), 27764 weekdays: 'ÛÚ©\u200cØ´ÙØ¨Ù_Ø¯ÙØ´ÙبÙ_سÙ\u200cØ´ÙØ¨Ù_ÚÙØ§Ø±Ø´ÙبÙ_Ù¾ÙØ¬\u200cØ´ÙØ¨Ù_ج٠عÙ_Ø´ÙØ¨Ù'.split( 27765 '_' 27766 ), 27767 weekdaysShort: 'ÛÚ©\u200cØ´ÙØ¨Ù_Ø¯ÙØ´ÙبÙ_سÙ\u200cØ´ÙØ¨Ù_ÚÙØ§Ø±Ø´ÙبÙ_Ù¾ÙØ¬\u200cØ´ÙØ¨Ù_ج٠عÙ_Ø´ÙØ¨Ù'.split( 27768 '_' 27769 ), 27770 weekdaysMin: 'Û_د_س_Ú_Ù¾_ج_Ø´'.split('_'), 27771 weekdaysParseExact: true, 27772 longDateFormat: { 27773 LT: 'HH:mm', 27774 LTS: 'HH:mm:ss', 27775 L: 'DD/MM/YYYY', 27776 LL: 'D MMMM YYYY', 27777 LLL: 'D MMMM YYYY HH:mm', 27778 LLLL: 'dddd, D MMMM YYYY HH:mm', 27779 }, 27780 meridiemParse: /ÙØ¨Ù از Ø¸ÙØ±|بعد از Ø¸ÙØ±/, 27781 isPM: function (input) { 27782 return /بعد از Ø¸ÙØ±/.test(input); 27783 }, 27784 meridiem: function (hour, minute, isLower) { 27785 if (hour < 12) { 27786 return 'ÙØ¨Ù از Ø¸ÙØ±'; 27787 } else { 27788 return 'بعد از Ø¸ÙØ±'; 27789 } 27790 }, 27791 calendar: { 27792 sameDay: '[Ø§Ù Ø±ÙØ² ساعت] LT', 27793 nextDay: '[ÙØ±Ø¯Ø§ ساعت] LT', 27794 nextWeek: 'dddd [ساعت] LT', 27795 lastDay: '[Ø¯ÛØ±Ùز ساعت] LT', 27796 lastWeek: 'dddd [Ù¾ÛØ´] [ساعت] LT', 27797 sameElse: 'L', 27798 }, 27799 relativeTime: { 27800 future: 'در %s', 27801 past: '%s Ù¾ÛØ´', 27802 s: 'ÚÙØ¯ ثاÙÛÙ', 27803 ss: '%d ثاÙÛÙ', 27804 m: 'ÛÚ© دÙÛÙÙ', 27805 mm: '%d دÙÛÙÙ', 27806 h: 'ÛÚ© ساعت', 27807 hh: '%d ساعت', 27808 d: 'ÛÚ© Ø±ÙØ²', 27809 dd: '%d Ø±ÙØ²', 27810 M: 'ÛÚ© ٠اÙ', 27811 MM: '%d ٠اÙ', 27812 y: 'ÛÚ© ساÙ', 27813 yy: '%d ساÙ', 27814 }, 27815 preparse: function (string) { 27816 return string 27817 .replace(/[Û°-Û¹]/g, function (match) { 27818 return numberMap[match]; 27819 }) 27820 .replace(/Ø/g, ','); 27821 }, 27822 postformat: function (string) { 27823 return string 27824 .replace(/\d/g, function (match) { 27825 return symbolMap[match]; 27826 }) 27827 .replace(/,/g, 'Ø'); 27828 }, 27829 dayOfMonthOrdinalParse: /\d{1,2}Ù /, 27830 ordinal: '%dÙ ', 27831 week: { 27832 dow: 6, // Saturday is the first day of the week. 27833 doy: 12, // The week that contains Jan 12th is the first week of the year. 27834 }, 27835 }); 27836 27837 return fa; 27838 27839}))); 27840 27841 27842/***/ }), 27843/* 47 */ 27844/***/ (function(module, exports, __webpack_require__) { 27845 27846//! moment.js locale configuration 27847//! locale : Finnish [fi] 27848//! author : Tarmo Aidantausta : https://github.com/bleadof 27849 27850;(function (global, factory) { 27851 true ? factory(__webpack_require__(0)) : 27852 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 27853 factory(global.moment) 27854}(this, (function (moment) { 'use strict'; 27855 27856 //! moment.js locale configuration 27857 27858 var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split( 27859 ' ' 27860 ), 27861 numbersFuture = [ 27862 'nolla', 27863 'yhden', 27864 'kahden', 27865 'kolmen', 27866 'neljän', 27867 'viiden', 27868 'kuuden', 27869 numbersPast[7], 27870 numbersPast[8], 27871 numbersPast[9], 27872 ]; 27873 function translate(number, withoutSuffix, key, isFuture) { 27874 var result = ''; 27875 switch (key) { 27876 case 's': 27877 return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; 27878 case 'ss': 27879 result = isFuture ? 'sekunnin' : 'sekuntia'; 27880 break; 27881 case 'm': 27882 return isFuture ? 'minuutin' : 'minuutti'; 27883 case 'mm': 27884 result = isFuture ? 'minuutin' : 'minuuttia'; 27885 break; 27886 case 'h': 27887 return isFuture ? 'tunnin' : 'tunti'; 27888 case 'hh': 27889 result = isFuture ? 'tunnin' : 'tuntia'; 27890 break; 27891 case 'd': 27892 return isFuture ? 'päivän' : 'päivä'; 27893 case 'dd': 27894 result = isFuture ? 'päivän' : 'päivää'; 27895 break; 27896 case 'M': 27897 return isFuture ? 'kuukauden' : 'kuukausi'; 27898 case 'MM': 27899 result = isFuture ? 'kuukauden' : 'kuukautta'; 27900 break; 27901 case 'y': 27902 return isFuture ? 'vuoden' : 'vuosi'; 27903 case 'yy': 27904 result = isFuture ? 'vuoden' : 'vuotta'; 27905 break; 27906 } 27907 result = verbalNumber(number, isFuture) + ' ' + result; 27908 return result; 27909 } 27910 function verbalNumber(number, isFuture) { 27911 return number < 10 27912 ? isFuture 27913 ? numbersFuture[number] 27914 : numbersPast[number] 27915 : number; 27916 } 27917 27918 var fi = moment.defineLocale('fi', { 27919 months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( 27920 '_' 27921 ), 27922 monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split( 27923 '_' 27924 ), 27925 weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( 27926 '_' 27927 ), 27928 weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), 27929 weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'), 27930 longDateFormat: { 27931 LT: 'HH.mm', 27932 LTS: 'HH.mm.ss', 27933 L: 'DD.MM.YYYY', 27934 LL: 'Do MMMM[ta] YYYY', 27935 LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm', 27936 LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', 27937 l: 'D.M.YYYY', 27938 ll: 'Do MMM YYYY', 27939 lll: 'Do MMM YYYY, [klo] HH.mm', 27940 llll: 'ddd, Do MMM YYYY, [klo] HH.mm', 27941 }, 27942 calendar: { 27943 sameDay: '[tänään] [klo] LT', 27944 nextDay: '[huomenna] [klo] LT', 27945 nextWeek: 'dddd [klo] LT', 27946 lastDay: '[eilen] [klo] LT', 27947 lastWeek: '[viime] dddd[na] [klo] LT', 27948 sameElse: 'L', 27949 }, 27950 relativeTime: { 27951 future: '%s päästä', 27952 past: '%s sitten', 27953 s: translate, 27954 ss: translate, 27955 m: translate, 27956 mm: translate, 27957 h: translate, 27958 hh: translate, 27959 d: translate, 27960 dd: translate, 27961 M: translate, 27962 MM: translate, 27963 y: translate, 27964 yy: translate, 27965 }, 27966 dayOfMonthOrdinalParse: /\d{1,2}\./, 27967 ordinal: '%d.', 27968 week: { 27969 dow: 1, // Monday is the first day of the week. 27970 doy: 4, // The week that contains Jan 4th is the first week of the year. 27971 }, 27972 }); 27973 27974 return fi; 27975 27976}
27976))); 27977 27978 27979/***/ }), 27980/* 48 */ 27981/***/ (function(module, exports, __webpack_require__) { 27982 27983//! moment.js locale configuration 27984//! locale : Filipino [fil] 27985//! author : Dan Hagman : https://github.com/hagmandan 27986//! author : Matthew Co : https://github.com/matthewdeeco 27987 27988;(function (global, factory) { 27989 true ? factory(__webpack_require__(0)) : 27990 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 27991 factory(global.moment) 27992}(this, (function (moment) { 'use strict'; 27993 27994 //! moment.js locale configuration 27995 27996 var fil = moment.defineLocale('fil', { 27997 months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( 27998 '_' 27999 ), 28000 monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), 28001 weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( 28002 '_' 28003 ), 28004 weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), 28005 weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), 28006 longDateFormat: { 28007 LT: 'HH:mm', 28008 LTS: 'HH:mm:ss', 28009 L: 'MM/D/YYYY', 28010 LL: 'MMMM D, YYYY', 28011 LLL: 'MMMM D, YYYY HH:mm', 28012 LLLL: 'dddd, MMMM DD, YYYY HH:mm', 28013 }, 28014 calendar: { 28015 sameDay: 'LT [ngayong araw]', 28016 nextDay: '[Bukas ng] LT', 28017 nextWeek: 'LT [sa susunod na] dddd', 28018 lastDay: 'LT [kahapon]', 28019 lastWeek: 'LT [noong nakaraang] dddd', 28020 sameElse: 'L', 28021 }, 28022 relativeTime: { 28023 future: 'sa loob ng %s', 28024 past: '%s ang nakalipas', 28025 s: 'ilang segundo', 28026 ss: '%d segundo', 28027 m: 'isang minuto', 28028 mm: '%d minuto', 28029 h: 'isang oras', 28030 hh: '%d oras', 28031 d: 'isang araw', 28032 dd: '%d araw', 28033 M: 'isang buwan', 28034 MM: '%d buwan', 28035 y: 'isang taon', 28036 yy: '%d taon', 28037 }, 28038 dayOfMonthOrdinalParse: /\d{1,2}/, 28039 ordinal: function (number) { 28040 return number; 28041 }, 28042 week: { 28043 dow: 1, // Monday is the first day of the week. 28044 doy: 4, // The week that contains Jan 4th is the first week of the year. 28045 }, 28046 }); 28047 28048 return fil; 28049 28050}))); 28051 28052 28053/***/ }), 28054/* 49 */ 28055/***/ (function(module, exports, __webpack_require__) { 28056 28057//! moment.js locale configuration 28058//! locale : Faroese [fo] 28059//! author : Ragnar Johannesen : https://github.com/ragnar123 28060//! author : Kristian Sakarisson : https://github.com/sakarisson 28061 28062;(function (global, factory) { 28063 true ? factory(__webpack_require__(0)) : 28064 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 28065 factory(global.moment) 28066}(this, (function (moment) { 'use strict'; 28067 28068 //! moment.js locale configuration 28069 28070 var fo = moment.defineLocale('fo', { 28071 months: 'januar_februar_mars_aprÃl_mai_juni_juli_august_september_oktober_november_desember'.split( 28072 '_' 28073 ), 28074 monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), 28075 weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_frÃggjadagur_leygardagur'.split( 28076 '_' 28077 ), 28078 weekdaysShort: 'sun_mán_týs_mik_hós_frÃ_ley'.split('_'), 28079 weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'), 28080 longDateFormat: { 28081 LT: 'HH:mm', 28082 LTS: 'HH:mm:ss', 28083 L: 'DD/MM/YYYY', 28084 LL: 'D MMMM YYYY', 28085 LLL: 'D MMMM YYYY HH:mm', 28086 LLLL: 'dddd D. MMMM, YYYY HH:mm', 28087 }, 28088 calendar: { 28089 sameDay: '[à dag kl.] LT', 28090 nextDay: '[à morgin kl.] LT', 28091 nextWeek: 'dddd [kl.] LT', 28092 lastDay: '[à gjár kl.] LT', 28093 lastWeek: '[sÃðstu] dddd [kl] LT', 28094 sameElse: 'L', 28095 }, 28096 relativeTime: { 28097 future: 'um %s', 28098 past: '%s sÃðani', 28099 s: 'fá sekund', 28100 ss: '%d sekundir', 28101 m: 'ein minuttur', 28102 mm: '%d minuttir', 28103 h: 'ein tÃmi', 28104 hh: '%d tÃmar', 28105 d: 'ein dagur', 28106 dd: '%d dagar', 28107 M: 'ein mánaður', 28108 MM: '%d mánaðir', 28109 y: 'eitt ár', 28110 yy: '%d ár', 28111 }, 28112 dayOfMonthOrdinalParse: /\d{1,2}\./, 28113 ordinal: '%d.', 28114 week: { 28115 dow: 1, // Monday is the first day of the week. 28116 doy: 4, // The week that contains Jan 4th is the first week of the year. 28117 }, 28118 }); 28119 28120 return fo; 28121 28122}))); 28123 28124 28125/***/ }), 28126/* 50 */ 28127/***/ (function(module, exports, __webpack_require__) { 28128 28129//! moment.js locale configuration 28130//! locale : French [fr] 28131//! author : John Fischer : https://github.com/jfroffice 28132 28133;(function (global, factory) { 28134 true ? factory(__webpack_require__(0)) : 28135 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 28136 factory(global.moment) 28137}(this, (function (moment) { 'use strict'; 28138 28139 //! moment.js locale configuration 28140 28141 var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, 28142 monthsShortStrictRegex = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,
vendor: 11,274 bytes, lines 28143-28488
28143 monthsRegex = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, 28144 monthsParse = [ 28145 /^janv/i, 28146 /^févr/i, 28147 /^mars/i, 28148 /^avr/i, 28149 /^mai/i, 28150 /^juin/i, 28151 /^juil/i, 28152 /^août/i, 28153 /^sept/i, 28154 /^oct/i, 28155 /^nov/i, 28156 /^déc/i, 28157 ]; 28158 28159 var fr = moment.defineLocale('fr', { 28160 months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( 28161 '_' 28162 ), 28163 monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( 28164 '_' 28165 ), 28166 monthsRegex: monthsRegex, 28167 monthsShortRegex: monthsRegex, 28168 monthsStrictRegex: monthsStrictRegex, 28169 monthsShortStrictRegex: monthsShortStrictRegex, 28170 monthsParse: monthsParse, 28171 longMonthsParse: monthsParse, 28172 shortMonthsParse: monthsParse, 28173 weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), 28174 weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), 28175 weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), 28176 weekdaysParseExact: true, 28177 longDateFormat: { 28178 LT: 'HH:mm', 28179 LTS: 'HH:mm:ss', 28180 L: 'DD/MM/YYYY', 28181 LL: 'D MMMM YYYY', 28182 LLL: 'D MMMM YYYY HH:mm', 28183 LLLL: 'dddd D MMMM YYYY HH:mm', 28184 }, 28185 calendar: { 28186 sameDay: '[Aujourdâhui à ] LT', 28187 nextDay: '[Demain à ] LT', 28188 nextWeek: 'dddd [à ] LT', 28189 lastDay: '[Hier à ] LT', 28190 lastWeek: 'dddd [dernier à ] LT', 28191 sameElse: 'L', 28192 }, 28193 relativeTime: { 28194 future: 'dans %s', 28195 past: 'il y a %s', 28196 s: 'quelques secondes', 28197 ss: '%d secondes', 28198 m: 'une minute', 28199 mm: '%d minutes', 28200 h: 'une heure', 28201 hh: '%d heures', 28202 d: 'un jour', 28203 dd: '%d jours', 28204 w: 'une semaine', 28205 ww: '%d semaines', 28206 M: 'un mois', 28207 MM: '%d mois', 28208 y: 'un an', 28209 yy: '%d ans', 28210 }, 28211 dayOfMonthOrdinalParse: /\d{1,2}(er|)/, 28212 ordinal: function (number, period) { 28213 switch (period) { 28214 // TODO: Return 'e' when day of month > 1. Move this case inside 28215 // block for masculine words below. 28216 // See https://github.com/moment/moment/issues/3375 28217 case 'D': 28218 return number + (number === 1 ? 'er' : ''); 28219 28220 // Words with masculine grammatical gender: mois, trimestre, jour 28221 default: 28222 case 'M': 28223 case 'Q': 28224 case 'DDD': 28225 case 'd': 28226 return number + (number === 1 ? 'er' : 'e'); 28227 28228 // Words with feminine grammatical gender: semaine 28229 case 'w': 28230 case 'W': 28231 return number + (number === 1 ? 're' : 'e'); 28232 } 28233 }, 28234 week: { 28235 dow: 1, // Monday is the first day of the week. 28236 doy: 4, // The week that contains Jan 4th is the first week of the year. 28237 }, 28238 }); 28239 28240 return fr; 28241 28242}))); 28243 28244 28245/***/ }), 28246/* 51 */ 28247/***/ (function(module, exports, __webpack_require__) { 28248 28249//! moment.js locale configuration 28250//! locale : French (Canada) [fr-ca] 28251//! author : Jonathan Abourbih : https://github.com/jonbca 28252 28253;(function (global, factory) { 28254 true ? factory(__webpack_require__(0)) : 28255 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 28256 factory(global.moment) 28257}(this, (function (moment) { 'use strict'; 28258 28259 //! moment.js locale configuration 28260 28261 var frCa = moment.defineLocale('fr-ca', { 28262 months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( 28263 '_' 28264 ), 28265 monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( 28266 '_' 28267 ), 28268 monthsParseExact: true, 28269 weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), 28270 weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), 28271 weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), 28272 weekdaysParseExact: true, 28273 longDateFormat: { 28274 LT: 'HH:mm', 28275 LTS: 'HH:mm:ss', 28276 L: 'YYYY-MM-DD', 28277 LL: 'D MMMM YYYY', 28278 LLL: 'D MMMM YYYY HH:mm', 28279 LLLL: 'dddd D MMMM YYYY HH:mm', 28280 }, 28281 calendar: { 28282 sameDay: '[Aujourdâhui à ] LT', 28283 nextDay: '[Demain à ] LT', 28284 nextWeek: 'dddd [à ] LT', 28285 lastDay: '[Hier à ] LT', 28286 lastWeek: 'dddd [dernier à ] LT', 28287 sameElse: 'L', 28288 }, 28289 relativeTime: { 28290 future: 'dans %s', 28291 past: 'il y a %s', 28292 s: 'quelques secondes', 28293 ss: '%d secondes', 28294 m: 'une minute', 28295 mm: '%d minutes', 28296 h: 'une heure', 28297 hh: '%d heures', 28298 d: 'un jour', 28299 dd: '%d jours', 28300 M: 'un mois', 28301 MM: '%d mois', 28302 y: 'un an', 28303 yy: '%d ans', 28304 }, 28305 dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, 28306 ordinal: function (number, period) { 28307 switch (period) { 28308 // Words with masculine grammatical gender: mois, trimestre, jour 28309 default: 28310 case 'M': 28311 case 'Q': 28312 case 'D': 28313 case 'DDD': 28314 case 'd': 28315 return number + (number === 1 ? 'er' : 'e'); 28316 28317 // Words with feminine grammatical gender: semaine 28318 case 'w': 28319 case 'W': 28320 return number + (number === 1 ? 're' : 'e'); 28321 } 28322 }, 28323 }); 28324 28325 return frCa; 28326 28327}))); 28328 28329 28330/***/ }), 28331/* 52 */ 28332/***/ (function(module, exports, __webpack_require__) { 28333 28334//! moment.js locale configuration 28335//! locale : French (Switzerland) [fr-ch] 28336//! author : Gaspard Bucher : https://github.com/gaspard 28337 28338;(function (global, factory) { 28339 true ? factory(__webpack_require__(0)) : 28340 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 28341 factory(global.moment) 28342}(this, (function (moment) { 'use strict'; 28343 28344 //! moment.js locale configuration 28345 28346 var frCh = moment.defineLocale('fr-ch', { 28347 months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split( 28348 '_' 28349 ), 28350 monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split( 28351 '_' 28352 ), 28353 monthsParseExact: true, 28354 weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), 28355 weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), 28356 weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), 28357 weekdaysParseExact: true, 28358 longDateFormat: { 28359 LT: 'HH:mm', 28360 LTS: 'HH:mm:ss', 28361 L: 'DD.MM.YYYY', 28362 LL: 'D MMMM YYYY', 28363 LLL: 'D MMMM YYYY HH:mm', 28364 LLLL: 'dddd D MMMM YYYY HH:mm', 28365 }, 28366 calendar: { 28367 sameDay: '[Aujourdâhui à ] LT', 28368 nextDay: '[Demain à ] LT', 28369 nextWeek: 'dddd [à ] LT', 28370 lastDay: '[Hier à ] LT', 28371 lastWeek: 'dddd [dernier à ] LT', 28372 sameElse: 'L', 28373 }, 28374 relativeTime: { 28375 future: 'dans %s', 28376 past: 'il y a %s', 28377 s: 'quelques secondes', 28378 ss: '%d secondes', 28379 m: 'une minute', 28380 mm: '%d minutes', 28381 h: 'une heure', 28382 hh: '%d heures', 28383 d: 'un jour', 28384 dd: '%d jours', 28385 M: 'un mois', 28386 MM: '%d mois', 28387 y: 'un an', 28388 yy: '%d ans', 28389 }, 28390 dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, 28391 ordinal: function (number, period) { 28392 switch (period) { 28393 // Words with masculine grammatical gender: mois, trimestre, jour 28394 default: 28395 case 'M': 28396 case 'Q': 28397 case 'D': 28398 case 'DDD': 28399 case 'd': 28400 return number + (number === 1 ? 'er' : 'e'); 28401 28402 // Words with feminine grammatical gender: semaine 28403 case 'w': 28404 case 'W': 28405 return number + (number === 1 ? 're' : 'e'); 28406 } 28407 }, 28408 week: { 28409 dow: 1, // Monday is the first day of the week. 28410 doy: 4, // The week that contains Jan 4th is the first week of the year. 28411 }, 28412 }); 28413 28414 return frCh; 28415 28416}))); 28417 28418 28419/***/ }), 28420/* 53 */ 28421/***/ (function(module, exports, __webpack_require__) { 28422 28423//! moment.js locale configuration 28424//! locale : Frisian [fy] 28425//! author : Robin van der Vliet : https://github.com/robin0van0der0v 28426 28427;(function (global, factory) { 28428 true ? factory(__webpack_require__(0)) : 28429 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 28430 factory(global.moment) 28431}(this, (function (moment) { 'use strict'; 28432 28433 //! moment.js locale configuration 28434 28435 var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split( 28436 '_' 28437 ), 28438 monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split( 28439 '_' 28440 ); 28441 28442 var fy = moment.defineLocale('fy', { 28443 months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( 28444 '_' 28445 ), 28446 monthsShort: function (m, format) { 28447 if (!m) { 28448 return monthsShortWithDots; 28449 } else if (/-MMM-/.test(format)) { 28450 return monthsShortWithoutDots[m.month()]; 28451 } else { 28452 return monthsShortWithDots[m.month()]; 28453 } 28454 }, 28455 monthsParseExact: true, 28456 weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( 28457 '_' 28458 ), 28459 weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), 28460 weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), 28461 weekdaysParseExact: true, 28462 longDateFormat: { 28463 LT: 'HH:mm', 28464 LTS: 'HH:mm:ss', 28465 L: 'DD-MM-YYYY', 28466 LL: 'D MMMM YYYY', 28467 LLL: 'D MMMM YYYY HH:mm', 28468 LLLL: 'dddd D MMMM YYYY HH:mm', 28469 }, 28470 calendar: { 28471 sameDay: '[hjoed om] LT', 28472 nextDay: '[moarn om] LT', 28473 nextWeek: 'dddd [om] LT', 28474 lastDay: '[juster om] LT', 28475 lastWeek: '[ôfrûne] dddd [om] LT', 28476 sameElse: 'L', 28477 }, 28478 relativeTime: { 28479 future: 'oer %s', 28480 past: '%s lyn', 28481 s: 'in pear sekonden', 28482 ss: '%d sekonden', 28483 m: 'ien minút', 28484 mm: '%d minuten', 28485 h: 'ien oere', 28486 hh: '%d oeren', 28487 d: 'ien dei', 28488 dd: '%d dagen',
28489 M: 'ien moanne', 28490 MM: '%d moannen', 28491 y: 'ien jier', 28492 yy: '%d jierren', 28493 }, 28494 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, 28495 ordinal: function (number) { 28496 return ( 28497 number + 28498 (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') 28499 ); 28500 }, 28501 week: { 28502 dow: 1, // Monday is the first day of the week. 28503 doy: 4, // The week that contains Jan 4th is the first week of the year. 28504 }, 28505 }); 28506 28507 return fy; 28508 28509}))); 28510 28511 28512/***/ }), 28513/* 54 */ 28514/***/ (function(module, exports, __webpack_require__) { 28515 28516//! moment.js locale configuration 28517//! locale : Irish or Irish Gaelic [ga] 28518//! author : André Silva : https://github.com/askpt 28519 28520;(function (global, factory) { 28521 true ? factory(__webpack_require__(0)) : 28522 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 28523 factory(global.moment) 28524}(this, (function (moment) { 'use strict'; 28525 28526 //! moment.js locale configuration 28527 28528 var months = [ 28529 'Eanáir', 28530 'Feabhra', 28531 'Márta', 28532 'Aibreán', 28533 'Bealtaine', 28534 'Meitheamh', 28535 'Iúil', 28536 'Lúnasa', 28537 'Meán Fómhair', 28538 'Deireadh Fómhair', 28539 'Samhain', 28540 'Nollaig', 28541 ], 28542 monthsShort = [ 28543 'Ean', 28544 'Feabh', 28545 'Márt', 28546 'Aib', 28547 'Beal', 28548 'Meith', 28549 'Iúil', 28550 'Lún', 28551 'M.F.', 28552 'D.F.', 28553 'Samh', 28554 'Noll', 28555 ], 28556 weekdays = [ 28557 'Dé Domhnaigh', 28558 'Dé Luain', 28559 'Dé Máirt', 28560 'Dé Céadaoin', 28561 'Déardaoin', 28562 'Dé hAoine', 28563 'Dé Sathairn', 28564 ], 28565 weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'], 28566 weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa']; 28567 28568 var ga = moment.defineLocale('ga', { 28569 months: months, 28570 monthsShort: monthsShort, 28571 monthsParseExact: true, 28572 weekdays: weekdays, 28573 weekdaysShort: weekdaysShort, 28574 weekdaysMin: weekdaysMin, 28575 longDateFormat: { 28576 LT: 'HH:mm', 28577 LTS: 'HH:mm:ss', 28578 L: 'DD/MM/YYYY', 28579 LL: 'D MMMM YYYY', 28580 LLL: 'D MMMM YYYY HH:mm', 28581 LLLL: 'dddd, D MMMM YYYY HH:mm', 28582 }, 28583 calendar: { 28584 sameDay: '[Inniu ag] LT', 28585 nextDay: '[Amárach ag] LT', 28586 nextWeek: 'dddd [ag] LT', 28587 lastDay: '[Inné ag] LT', 28588 lastWeek: 'dddd [seo caite] [ag] LT', 28589 sameElse: 'L', 28590 }, 28591 relativeTime: { 28592 future: 'i %s', 28593 past: '%s ó shin', 28594 s: 'cúpla soicind', 28595 ss: '%d soicind', 28596 m: 'nóiméad', 28597 mm: '%d nóiméad', 28598 h: 'uair an chloig', 28599 hh: '%d uair an chloig', 28600 d: 'lá', 28601 dd: '%d lá', 28602 M: 'mÃ', 28603 MM: '%d mÃonna', 28604 y: 'bliain', 28605 yy: '%d bliain', 28606 }, 28607 dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, 28608 ordinal: function (number) { 28609 var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; 28610 return number + output; 28611 }, 28612 week: { 28613 dow: 1, // Monday is the first day of the week. 28614 doy: 4, // The week that contains Jan 4th is the first week of the year. 28615 }, 28616 }); 28617 28618 return ga; 28619 28620}))); 28621 28622 28623/***/ }), 28624/* 55 */ 28625/***/ (function(module, exports, __webpack_require__) { 28626 28627//! moment.js locale configuration 28628//! locale : Scottish Gaelic [gd] 28629//! author : Jon Ashdown : https://github.com/jonashdown 28630 28631;(function (global, factory) { 28632 true ? factory(__webpack_require__(0)) : 28633 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 28634 factory(global.moment) 28635}(this, (function (moment) { 'use strict'; 28636 28637 //! moment.js locale configuration 28638 28639 var months = [ 28640 'Am Faoilleach', 28641 'An Gearran', 28642 'Am Mà rt', 28643 'An Giblean', 28644 'An Cèitean', 28645 'An t-Ãgmhios', 28646 'An t-Iuchar', 28647 'An Lùnastal', 28648 'An t-Sultain', 28649 'An Dà mhair', 28650 'An t-Samhain', 28651 'An Dùbhlachd', 28652 ], 28653 monthsShort = [ 28654 'Faoi', 28655 'Gear', 28656 'Mà rt', 28657 'Gibl', 28658 'Cèit', 28659 'Ãgmh', 28660 'Iuch', 28661 'Lùn', 28662 'Sult', 28663 'Dà mh', 28664 'Samh', 28665 'Dùbh', 28666 ], 28667 weekdays = [ 28668 'Didòmhnaich', 28669 'Diluain', 28670 'Dimà irt', 28671 'Diciadain', 28672 'Diardaoin', 28673 'Dihaoine', 28674 'Disathairne', 28675 ], 28676 weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], 28677 weekdaysMin = ['Dò', 'Lu', 'Mà ', 'Ci', 'Ar', 'Ha', 'Sa']; 28678 28679 var gd = moment.defineLocale('gd', { 28680 months: months, 28681 monthsShort: monthsShort, 28682 monthsParseExact: true, 28683 weekdays: weekdays, 28684 weekdaysShort: weekdaysShort, 28685 weekdaysMin: weekdaysMin, 28686 longDateFormat: { 28687 LT: 'HH:mm', 28688 LTS: 'HH:mm:ss', 28689 L: 'DD/MM/YYYY', 28690 LL: 'D MMMM YYYY', 28691 LLL: 'D MMMM YYYY HH:mm', 28692 LLLL: 'dddd, D MMMM YYYY HH:mm', 28693 }, 28694 calendar: { 28695 sameDay: '[An-diugh aig] LT', 28696 nextDay: '[A-mà ireach aig] LT', 28697 nextWeek: 'dddd [aig] LT',
28698 lastDay: '[An-dè aig] LT', 28699 lastWeek: 'dddd [seo chaidh] [aig] LT', 28700 sameElse: 'L', 28701 }, 28702 relativeTime: { 28703 future: 'ann an %s', 28704 past: 'bho chionn %s', 28705 s: 'beagan diogan', 28706 ss: '%d diogan', 28707 m: 'mionaid', 28708 mm: '%d mionaidean', 28709 h: 'uair', 28710 hh: '%d uairean', 28711 d: 'latha', 28712 dd: '%d latha', 28713 M: 'mìos', 28714 MM: '%d mìosan', 28715 y: 'bliadhna', 28716 yy: '%d bliadhna', 28717 }, 28718 dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, 28719 ordinal: function (number) { 28720 var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; 28721 return number + output; 28722 }, 28723 week: { 28724 dow: 1, // Monday is the first day of the week. 28725 doy: 4, // The week that contains Jan 4th is the first week of the year. 28726 }, 28727 }); 28728 28729 return gd; 28730 28731}))); 28732 28733 28734/***/ }), 28735/* 56 */ 28736/***/ (function(module, exports, __webpack_require__) { 28737 28738//! moment.js locale configuration 28739//! locale : Galician [gl] 28740//! author : Juan G. Hurtado : https://github.com/juanghurtado 28741 28742;(function (global, factory) { 28743 true ? factory(__webpack_require__(0)) : 28744 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 28745 factory(global.moment) 28746}(this, (function (moment) { 'use strict'; 28747 28748 //! moment.js locale configuration 28749 28750 var gl = moment.defineLocale('gl', { 28751 months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split( 28752 '_' 28753 ), 28754 monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split( 28755 '_' 28756 ), 28757 monthsParseExact: true, 28758 weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), 28759 weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), 28760 weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'), 28761 weekdaysParseExact: true, 28762 longDateFormat: { 28763 LT: 'H:mm', 28764 LTS: 'H:mm:ss', 28765 L: 'DD/MM/YYYY', 28766 LL: 'D [de] MMMM [de] YYYY', 28767 LLL: 'D [de] MMMM [de] YYYY H:mm', 28768 LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', 28769 }, 28770 calendar: { 28771 sameDay: function () { 28772 return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; 28773 }, 28774 nextDay: function () { 28775 return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT'; 28776 }, 28777 nextWeek: function () { 28778 return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'; 28779 }, 28780 lastDay: function () { 28781 return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT'; 28782 }, 28783 lastWeek: function () { 28784 return ( 28785 '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT' 28786 ); 28787 }, 28788 sameElse: 'L', 28789 }, 28790 relativeTime: { 28791 future: function (str) { 28792 if (str.indexOf('un') === 0) { 28793 return 'n' + str; 28794 } 28795 return 'en ' + str; 28796 }, 28797 past: 'hai %s', 28798 s: 'uns segundos', 28799 ss: '%d segundos', 28800 m: 'un minuto', 28801 mm: '%d minutos', 28802 h: 'unha hora', 28803 hh: '%d horas', 28804 d: 'un dÃa', 28805 dd: '%d dÃas', 28806 M: 'un mes', 28807 MM: '%d meses', 28808 y: 'un ano', 28809 yy: '%d anos', 28810 }, 28811 dayOfMonthOrdinalParse: /\d{1,2}º/, 28812 ordinal: '%dº', 28813 week: { 28814 dow: 1, // Monday is the first day of the week. 28815 doy: 4, // The week that contains Jan 4th is the first week of the year. 28816 }, 28817 }); 28818 28819 return gl; 28820 28821}))); 28822 28823 28824/***/ }), 28825/* 57 */ 28826/***/ (function(module, exports, __webpack_require__) { 28827 28828//! moment.js locale configuration 28829//! locale : Konkani Devanagari script [gom-deva] 28830//! author : The Discoverer : https://github.com/WikiDiscoverer 28831 28832;(function (global, factory) { 28833 true ? factory(__webpack_require__(0)) : 28834 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 28835 factory(global.moment) 28836}(this, (function (moment) { 'use strict'; 28837 28838 //! moment.js locale configuration 28839 28840 function processRelativeTime(number, withoutSuffix, key, isFuture) { 28841 var format = { 28842 s: ['थà¥à¤¡à¤¯à¤¾ सॠà¤à¤à¤¡à¤¾à¤à¤¨à¥', 'थà¥à¤¡à¥ सॠà¤à¤à¤¡'], 28843 ss: [number + ' सॠà¤à¤à¤¡à¤¾à¤à¤¨à¥', number + ' सॠà¤à¤à¤¡'], 28844 m: ['à¤à¤à¤¾ मिणà¤à¤¾à¤¨', 'à¤à¤ मिनà¥à¤'], 28845 mm: [number + ' मिणà¤à¤¾à¤à¤¨à¥', number + ' मिणà¤à¤¾à¤'], 28846 h: ['à¤à¤à¤¾ वरान', 'à¤à¤ वर'], 28847 hh: [number + ' वराà¤à¤¨à¥', number + ' वराà¤'], 28848 d: ['à¤à¤à¤¾ दिसान', 'à¤à¤ दà¥à¤¸'], 28849 dd: [number + ' दिसाà¤à¤¨à¥', number + ' दà¥à¤¸'], 28850 M: ['à¤à¤à¤¾ मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨', 'à¤à¤ मà¥à¤¹à¤¯à¤¨à¥'], 28851 MM: [number + ' मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨à¥', number + ' मà¥à¤¹à¤¯à¤¨à¥'], 28852 y: ['à¤à¤à¤¾ वरà¥à¤¸à¤¾à¤¨', 'à¤à¤ वरà¥à¤¸'], 28853 yy: [number + ' वरà¥à¤¸à¤¾à¤à¤¨à¥', number + ' वरà¥à¤¸à¤¾à¤'], 28854 }; 28855 return isFuture ? format[key][0] : format[key][1]; 28856 } 28857 28858 var gomDeva = moment.defineLocale('gom-deva', { 28859 months: { 28860 standalone: 'à¤à¤¾à¤¨à¥à¤µà¤¾à¤°à¥_फà¥à¤¬à¥à¤°à¥à¤µà¤¾à¤°à¥_मारà¥à¤_à¤à¤ªà¥à¤°à¥à¤²_मà¥_à¤à¥à¤¨_à¤à¥à¤²à¤¯_à¤à¤à¤¸à¥à¤_सपà¥à¤à¥à¤à¤¬à¤°_à¤à¤à¥à¤à¥à¤¬à¤°_नà¥à¤µà¥à¤¹à¥à¤à¤¬à¤°_डिसà¥à¤à¤¬à¤°'.split( 28861 '_' 28862 ), 28863 format: 'à¤à¤¾à¤¨à¥à¤µà¤¾à¤°à¥à¤à¥à¤¯à¤¾_फà¥à¤¬à¥à¤°à¥à¤µà¤¾à¤°à¥à¤à¥à¤¯à¤¾_मारà¥à¤à¤¾à¤à¥à¤¯à¤¾_à¤à¤ªà¥à¤°à¥à¤²à¤¾à¤à¥à¤¯à¤¾_मà¥à¤¯à¤¾à¤à¥à¤¯à¤¾_à¤à¥à¤¨à¤¾à¤à¥à¤¯à¤¾_à¤à¥à¤²à¤¯à¤¾à¤à¥à¤¯à¤¾_à¤à¤à¤¸à¥à¤à¤¾à¤à¥à¤¯à¤¾_सपà¥à¤à¥à¤à¤¬à¤°à¤¾à¤à¥à¤¯à¤¾_à¤à¤à¥à¤à¥à¤¬à¤°à¤¾à¤à¥à¤¯à¤¾_नà¥à¤µà¥à¤¹à¥à¤à¤¬à¤°à¤¾à¤à¥à¤¯à¤¾_डिसà¥à¤à¤¬à¤°à¤¾à¤à¥à¤¯à¤¾'.split( 28864 '_' 28865 ), 28866 isFormat: /MMMM(\s)+D[oD]?/, 28867 }, 28868 monthsShort: 'à¤à¤¾à¤¨à¥._फà¥à¤¬à¥à¤°à¥._मारà¥à¤_à¤à¤ªà¥à¤°à¥._मà¥_à¤à¥à¤¨_à¤à¥à¤²._à¤à¤._सपà¥à¤à¥à¤._à¤à¤à¥à¤à¥._नà¥à¤µà¥à¤¹à¥à¤._डिसà¥à¤.'.split( 28869 '_' 28870 ), 28871 monthsParseExact: true, 28872 weekdays: 'à¤à¤¯à¤¤à¤¾à¤°_सà¥à¤®à¤¾à¤°_मà¤à¤à¤³à¤¾à¤°_बà¥à¤§à¤µà¤¾à¤°_बिरà¥à¤¸à¥à¤¤à¤¾à¤°_सà¥à¤à¥à¤°à¤¾à
28872¤°_शà¥à¤¨à¤µà¤¾à¤°'.split('_'), 28873 weekdaysShort: 'à¤à¤¯à¤¤._सà¥à¤®._मà¤à¤à¤³._बà¥à¤§._बà¥à¤°à¥à¤¸à¥à¤¤._सà¥à¤à¥à¤°._शà¥à¤¨.'.split('_'), 28874 weekdaysMin: 'à¤_सà¥_मà¤_बà¥_बà¥à¤°à¥_सà¥_शà¥'.split('_'), 28875 weekdaysParseExact: true, 28876 longDateFormat: { 28877 LT: 'A h:mm [वाà¤à¤¤à¤¾à¤]', 28878 LTS: 'A h:mm:ss [वाà¤à¤¤à¤¾à¤]', 28879 L: 'DD-MM-YYYY', 28880 LL: 'D MMMM YYYY', 28881 LLL: 'D MMMM YYYY A h:mm [वाà¤à¤¤à¤¾à¤]', 28882 LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाà¤à¤¤à¤¾à¤]', 28883 llll: 'ddd, D MMM YYYY, A h:mm [वाà¤à¤¤à¤¾à¤]', 28884 }, 28885 calendar: { 28886 sameDay: '[à¤à¤¯à¤] LT', 28887 nextDay: '[फालà¥à¤¯à¤¾à¤] LT', 28888 nextWeek: '[फà¥à¤¡à¤²à¥] dddd[,] LT', 28889 lastDay: '[à¤à¤¾à¤²] LT', 28890 lastWeek: '[फाà¤à¤²à¥] dddd[,] LT', 28891 sameElse: 'L', 28892 }, 28893 relativeTime: { 28894 future: '%s', 28895 past: '%s à¤à¤¦à¥à¤', 28896 s: processRelativeTime, 28897 ss: processRelativeTime, 28898 m: processRelativeTime, 28899 mm: processRelativeTime, 28900 h: processRelativeTime, 28901 hh: processRelativeTime, 28902 d: processRelativeTime, 28903 dd: processRelativeTime, 28904 M: processRelativeTime, 28905 MM: processRelativeTime, 28906 y: processRelativeTime, 28907 yy: processRelativeTime, 28908 }, 28909 dayOfMonthOrdinalParse: /\d{1,2}(वà¥à¤°)/, 28910 ordinal: function (number, period) { 28911 switch (period) { 28912 // the ordinal 'वà¥à¤°' only applies to day of the month 28913 case 'D': 28914 return number + 'वà¥à¤°'; 28915 default: 28916 case 'M': 28917 case 'Q': 28918 case 'DDD': 28919 case 'd': 28920 case 'w': 28921 case 'W': 28922 return number; 28923 } 28924 }, 28925 week: { 28926 dow: 0, // Sunday is the first day of the week 28927 doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) 28928 }, 28929 meridiemParse: /रातà¥|सà¤à¤¾à¤³à¥à¤|दनपाराà¤|साà¤à¤à¥/, 28930 meridiemHour: function (hour, meridiem) { 28931 if (hour === 12) { 28932 hour = 0; 28933 } 28934 if (meridiem === 'रातà¥') { 28935 return hour < 4 ? hour : hour + 12; 28936 } else if (meridiem === 'सà¤à¤¾à¤³à¥à¤') { 28937 return hour; 28938 } else if (meridiem === 'दनपाराà¤') { 28939 return hour > 12 ? hour : hour + 12; 28940 } else if (meridiem === 'साà¤à¤à¥') { 28941 return hour + 12; 28942 } 28943 }, 28944 meridiem: function (hour, minute, isLower) { 28945 if (hour < 4) { 28946 return 'रातà¥'; 28947 } else if (hour < 12) { 28948 return 'सà¤à¤¾à¤³à¥à¤'; 28949 } else if (hour < 16) { 28950 return 'दनपाराà¤'; 28951 } else if (hour < 20) { 28952 return 'साà¤à¤à¥'; 28953 } else { 28954 return 'रातà¥'; 28955 } 28956 }, 28957 }); 28958 28959 return gomDeva; 28960 28961}))); 28962 28963 28964/***/ }), 28965/* 58 */ 28966/***/ (function(module, exports, __webpack_require__) { 28967 28968//! moment.js locale configuration 28969//! locale : Konkani Latin script [gom-latn] 28970//! author : The Discoverer : https://github.com/WikiDiscoverer 28971 28972;(function (global, factory) { 28973 true ? factory(__webpack_require__(0)) : 28974 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 28975 factory(global.moment) 28976}(this, (function (moment) { 'use strict'; 28977 28978 //! moment.js locale configuration 28979 28980 function processRelativeTime(number, withoutSuffix, key, isFuture) { 28981 var format = { 28982 s: ['thoddea sekondamni', 'thodde sekond'], 28983 ss: [number + ' sekondamni', number + ' sekond'], 28984 m: ['eka mintan', 'ek minut'], 28985 mm: [number + ' mintamni', number + ' mintam'], 28986 h: ['eka voran', 'ek vor'], 28987 hh: [number + ' voramni', number + ' voram'], 28988 d: ['eka disan', 'ek dis'], 28989 dd: [number + ' disamni', number + ' dis'], 28990 M: ['eka mhoinean', 'ek mhoino'], 28991 MM: [number + ' mhoineamni', number + ' mhoine'], 28992 y: ['eka vorsan', 'ek voros'], 28993 yy: [number + ' vorsamni', number + ' vorsam'], 28994 }; 28995 return isFuture ? format[key][0] : format[key][1]; 28996 } 28997 28998 var gomLatn = moment.defineLocale('gom-latn', { 28999 months: { 29000 standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( 29001 '_' 29002 ), 29003 format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( 29004 '_' 29005 ), 29006 isFormat: /MMMM(\s)+D[oD]?/, 29007 }, 29008 monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split( 29009 '_' 29010 ), 29011 monthsParseExact: true, 29012 weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), 29013 weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), 29014 weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), 29015 weekdaysParseExact: true, 29016 longDateFormat: { 29017 LT: 'A h:mm [vazta]', 29018 LTS: 'A h:mm:ss [vazta]', 29019 L: 'DD-MM-YYYY', 29020 LL: 'D MMMM YYYY', 29021 LLL: 'D MMMM YYYY A h:mm [vazta]', 29022 LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', 29023 llll: 'ddd, D MMM YYYY, A h:mm [vazta]', 29024 }, 29025 calendar: { 29026 sameDay: '[Aiz] LT', 29027 nextDay: '[Faleam] LT', 29028 nextWeek: '[Fuddlo] dddd[,] LT', 29029 lastDay: '[Kal] LT', 29030 lastWeek: '[Fattlo] dddd[,] LT', 29031 sameElse: 'L', 29032 }, 29033 relativeTime: { 29034 future: '%s', 29035 past: '%s adim', 29036 s: processRelativeTime, 29037 ss: processRelativeTime, 29038 m: processRelativeTime, 29039 mm: processRelativeTime, 29040 h: processRelativeTime, 29041 hh: processRelativeTime, 29042 d: processRelativeTime, 29043 dd: processRelativeTime, 29044 M: processRelativeTime, 29045 MM: processRelativeTime, 29046 y: processRelativeTime, 29047 yy: processRelativeTime, 29048 }, 29049 dayOfMonthOrdinalParse: /\d{1,2}(er)/, 29050 ordinal: function (number, period) { 29051 switch (period) { 29052 // the ordinal 'er' only applies to day of the month 29053 case 'D': 29054 return number + 'er'; 29055 default: 29056 case 'M': 29057 case 'Q': 29058 case 'DDD': 29059 case 'd': 29060 case 'w': 29061 case 'W': 29062 return number; 29063 } 29064 }, 29065 week: { 29066 dow: 0, // Sunday is the first day of the week 29067 doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) 29068 }, 29069 meridiemParse: /rati|sokallim|donparam|sanje/, 29070 meridiemHour: function (hour, meridiem) { 29071 if (hour === 12) { 29072 hour = 0; 29073 } 29074 if (meridiem === 'rati') { 29075 return hour < 4 ? hour : hour + 12; 29076 } else if (meridiem === 'sokallim') { 29077 return hour; 29078 } else if (meridiem === 'donparam') { 29079 return hour > 12 ? hour : hour + 12; 29080 } else if (meridiem === 'sanje') { 29081 return hour + 12; 29082 } 29083 }, 29084 meridiem: function (hour, minute, isLower) { 29085 if (hour < 4) { 29086 return 'rati'; 29087 } else if (hour < 12) { 29088 return 'sokallim'; 29089 } else if (hour < 16) { 29090 return 'donparam'; 29091 } else if (hour < 20) { 29092 return 'sanje'; 29093 } else { 29094 return 'rati'; 29095 } 29096 }, 29097 }); 29098 29099 return gomLatn; 29100 29101}))); 29102 29103 29104/***/ }), 29105/* 59 */ 29106/***/ (function(module, exports, __webpack_require__) { 29107 29108//! moment.js locale configuration 29109//! locale : Gujarati [gu] 29110//! author : Kaushik Thanki : https://github.com/Kaushik1987 29111 29112;(function (global, factory) { 29113 true ? factory(__webpack_require__(0)) : 29114 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 29115 factory(global.moment) 29116}(this, (function (moment) { 'use strict'; 29117 29118 //! moment.js locale configuration 29119 29120 var symbolMap = { 29121 1: 'à«§', 29122 2: '૨', 29123 3: 'à«©', 29124 4: '૪', 29125 5: 'à««', 29126 6: '૬', 29127 7: 'à«', 29128 8: 'à«®', 29129 9: '૯', 29130 0: '૦', 29131 }, 29132 numberMap = { 29133 'à«§': '1', 29134 '૨': '2', 29135 'à«©': '3', 29136 '૪': '4', 29137 'à««': '5', 29138 '૬': '6', 29139 'à«': '7', 29140 'à«®': '8', 29141 '૯': '9', 29142 '૦': '0', 29143 }; 29144 29145 var gu = moment.defineLocale('gu', { 29146 months: 'àªàª¾àª¨à«àª¯à«àªàª°à«_ફà«àª¬à«àª°à«àªàª°à«_મારà«àª_àªàªªà«àª°àª¿àª²_મà«_àªà«àª¨_àªà«àª²àª¾àª_àªàªàª¸à«àª_સપà«àªà«àª®à«àª¬àª°_àªàªà«àªà«àª¬àª°_નવà«àª®à«àª¬àª°_ડિસà«àª®à«àª¬àª°'.split( 29147 '_' 29148 ), 29149 monthsShort: 'àªàª¾àª¨à«àª¯à«._ફà«àª¬à«àª°à«._મારà«àª_àªàªªà«àª°àª¿._મà«_àªà«àª¨_àªà«àª²àª¾._àªàª._સપà«àªà«._àªàªà«àªà«._નવà«._ડà
vendor: 7,387 bytes, lines 29149-29355
29149ª¿àª¸à«.'.split( 29150 '_' 29151 ), 29152 monthsParseExact: true, 29153 weekdays: 'રવિવાર_સà«àª®àªµàª¾àª°_મàªàªàª³àªµàª¾àª°_બà«àª§à«àªµàª¾àª°_àªà«àª°à«àªµàª¾àª°_શà«àªà«àª°àªµàª¾àª°_શનિવાર'.split( 29154 '_' 29155 ), 29156 weekdaysShort: 'રવિ_સà«àª®_મàªàªàª³_બà«àª§à«_àªà«àª°à«_શà«àªà«àª°_શનિ'.split('_'), 29157 weekdaysMin: 'ર_સà«_મàª_બà«_àªà«_શà«_શ'.split('_'), 29158 longDateFormat: { 29159 LT: 'A h:mm વાàªà«àª¯à«', 29160 LTS: 'A h:mm:ss વાàªà«àª¯à«', 29161 L: 'DD/MM/YYYY', 29162 LL: 'D MMMM YYYY', 29163 LLL: 'D MMMM YYYY, A h:mm વાàªà«àª¯à«', 29164 LLLL: 'dddd, D MMMM YYYY, A h:mm વાàªà«àª¯à«', 29165 }, 29166 calendar: { 29167 sameDay: '[àªàª] LT', 29168 nextDay: '[àªàª¾àª²à«] LT', 29169 nextWeek: 'dddd, LT', 29170 lastDay: '[àªàªàªàª¾àª²à«] LT', 29171 lastWeek: '[પાàªàª²àª¾] dddd, LT', 29172 sameElse: 'L', 29173 }, 29174 relativeTime: { 29175 future: '%s મા', 29176 past: '%s પહà«àª²àª¾', 29177 s: 'ઠમà«àª પળà«', 29178 ss: '%d સà«àªàªàª¡', 29179 m: 'àªàª મિનિàª', 29180 mm: '%d મિનિàª', 29181 h: 'àªàª àªàª²àª¾àª', 29182 hh: '%d àªàª²àª¾àª', 29183 d: 'àªàª દિવસ', 29184 dd: '%d દિવસ', 29185 M: 'àªàª મહિનà«', 29186 MM: '%d મહિનà«', 29187 y: 'àªàª વરà«àª·', 29188 yy: '%d વરà«àª·', 29189 }, 29190 preparse: function (string) { 29191 return string.replace(/[૧૨૩૪૫૬à«à«®à«¯à«¦]/g, function (match) { 29192 return numberMap[match]; 29193 }); 29194 }, 29195 postformat: function (string) { 29196 return string.replace(/\d/g, function (match) { 29197 return symbolMap[match]; 29198 }); 29199 }, 29200 // Gujarati notation for meridiems are quite fuzzy in practice. While there exists 29201 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. 29202 meridiemParse: /રાત|બપà«àª°|સવાર|સાàªàª/, 29203 meridiemHour: function (hour, meridiem) { 29204 if (hour === 12) { 29205 hour = 0; 29206 } 29207 if (meridiem === 'રાત') { 29208 return hour < 4 ? hour : hour + 12; 29209 } else if (meridiem === 'સવાર') { 29210 return hour; 29211 } else if (meridiem === 'બપà«àª°') { 29212 return hour >= 10 ? hour : hour + 12; 29213 } else if (meridiem === 'સાàªàª') { 29214 return hour + 12; 29215 } 29216 }, 29217 meridiem: function (hour, minute, isLower) { 29218 if (hour < 4) { 29219 return 'રાત'; 29220 } else if (hour < 10) { 29221 return 'સવાર'; 29222 } else if (hour < 17) { 29223 return 'બપà«àª°'; 29224 } else if (hour < 20) { 29225 return 'સાàªàª'; 29226 } else { 29227 return 'રાત'; 29228 } 29229 }, 29230 week: { 29231 dow: 0, // Sunday is the first day of the week. 29232 doy: 6, // The week that contains Jan 6th is the first week of the year. 29233 }, 29234 }); 29235 29236 return gu; 29237 29238}))); 29239 29240 29241/***/ }), 29242/* 60 */ 29243/***/ (function(module, exports, __webpack_require__) { 29244 29245//! moment.js locale configuration 29246//! locale : Hebrew [he] 29247//! author : Tomer Cohen : https://github.com/tomer 29248//! author : Moshe Simantov : https://github.com/DevelopmentIL 29249//! author : Tal Ater : https://github.com/TalAter 29250 29251;(function (global, factory) { 29252 true ? factory(__webpack_require__(0)) : 29253 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 29254 factory(global.moment) 29255}(this, (function (moment) { 'use strict'; 29256 29257 //! moment.js locale configuration 29258 29259 var he = moment.defineLocale('he', { 29260 months: '×× ××ר_פ×ר××ר_×רץ_×פר××_×××_××× ×_××××_××××ס×_ספ×××ר_×××§×××ר_× ××××ר_×צ××ר'.split( 29261 '_' 29262 ), 29263 monthsShort: '×× ×׳_פ×ר׳_×רץ_×פר׳_×××_××× ×_××××_×××׳_ספ×׳_××ק׳_× ××׳_×צ×׳'.split( 29264 '_' 29265 ), 29266 weekdays: 'ר×ש××_×©× ×_ש××ש×_ר×××¢×_×××ש×_ש×ש×_ש×ת'.split('_'), 29267 weekdaysShort: '×׳_×׳_×׳_×׳_×׳_×׳_ש׳'.split('_'), 29268 weekdaysMin: '×_×_×_×_×_×_ש'.split('_'), 29269 longDateFormat: { 29270 LT: 'HH:mm', 29271 LTS: 'HH:mm:ss', 29272 L: 'DD/MM/YYYY', 29273 LL: 'D [×]MMMM YYYY', 29274 LLL: 'D [×]MMMM YYYY HH:mm', 29275 LLLL: 'dddd, D [×]MMMM YYYY HH:mm', 29276 l: 'D/M/YYYY', 29277 ll: 'D MMM YYYY', 29278 lll: 'D MMM YYYY HH:mm', 29279 llll: 'ddd, D MMM YYYY HH:mm', 29280 }, 29281 calendar: { 29282 sameDay: '[×××× ×Ö¾]LT', 29283 nextDay: '[××ר ×Ö¾]LT', 29284 nextWeek: 'dddd [×שע×] LT', 29285 lastDay: '[×ת××× ×Ö¾]LT', 29286 lastWeek: '[××××] dddd [×××ר×× ×שע×] LT', 29287 sameElse: 'L', 29288 }, 29289 relativeTime: { 29290 future: '××¢×× %s', 29291 past: '××¤× × %s', 29292 s: '×ספר ×©× ××ת', 29293 ss: '%d ×©× ××ת', 29294 m: '××§×', 29295 mm: '%d ××§×ת', 29296 h: 'שע×', 29297 hh: function (number) { 29298 if (number === 2) { 29299 return 'שעת×××'; 29300 } 29301 return number + ' שע×ת'; 29302 }, 29303 d: '×××', 29304 dd: function (number) { 29305 if (number === 2) { 29306 return '××××××'; 29307 } 29308 return number + ' ××××'; 29309 }, 29310 M: '×××ש', 29311 MM: function (number) { 29312 if (number === 2) { 29313 return '×××ש×××'; 29314 } 29315 return number + ' ×××ש××'; 29316 }, 29317 y: '×©× ×', 29318 yy: function (number) { 29319 if (number === 2) { 29320 return '×©× ×ª×××'; 29321 } else if (number % 10 === 0 && number !== 10) { 29322 return number + ' ×©× ×'; 29323 } 29324 return number + ' ×©× ××'; 29325 }, 29326 }, 29327 meridiemParse: /×××"צ|××¤× ×"צ|×××¨× ×צ×ר×××|××¤× × ×צ×ר×××|××¤× ×ת ××קר|×××קר|×ער×/i, 29328 isPM: function (input) { 29329 return /^(×××"צ|×××¨× ×צ×ר×××|×ער×)$/.test(input); 29330 }, 29331 meridiem: function (hour, minute, isLower) { 29332 if (hour < 5) { 29333 return '××¤× ×ת ××קר'; 29334 } else if (hour < 10) { 29335 return '×××קר'; 29336 } else if (hour < 12) { 29337 return isLower ? '××¤× ×"צ' : '××¤× × ×צ×ר×××'; 29338 } else if (hour < 18) { 29339 return isLower ? '×××"צ' : '×××¨× ×צ×ר×××'; 29340 } else { 29341 return '×ער×'; 29342 } 29343 }, 29344 }); 29345 29346 return he; 29347 29348}))); 29349 29350 29351/***/ }), 29352/* 61 */ 29353/***/ (function(module, exports, __webpack_require__) { 29354 29355//! moment.js locale configuration
29356//! locale : Hindi [hi] 29357//! author : Mayank Singhal : https://github.com/mayanksinghal 29358 29359;(function (global, factory) { 29360 true ? factory(__webpack_require__(0)) : 29361 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 29362 factory(global.moment) 29363}(this, (function (moment) { 'use strict'; 29364 29365 //! moment.js locale configuration 29366 29367 var symbolMap = { 29368 1: '१', 29369 2: '२', 29370 3: '३', 29371 4: '४', 29372 5: '५', 29373 6: '६', 29374 7: 'à¥', 29375 8: '८', 29376 9: '९', 29377 0: '०', 29378 }, 29379 numberMap = { 29380 '१': '1', 29381 '२': '2', 29382 '३': '3', 29383 '४': '4', 29384 '५': '5', 29385 '६': '6', 29386 'à¥': '7', 29387 '८': '8', 29388 '९': '9', 29389 '०': '0', 29390 }, 29391 monthsParse = [ 29392 /^à¤à¤¨/i, 29393 /^फ़र|फर/i, 29394 /^मारà¥à¤/i, 29395 /^ठपà¥à¤°à¥/i, 29396 /^मà¤/i, 29397 /^à¤à¥à¤¨/i, 29398 /^à¤à¥à¤²/i, 29399 /^ठà¤/i, 29400 /^सितà¤|सित/i, 29401 /^ठà¤à¥à¤à¥/i, 29402 /^नव|नवà¤/i, 29403 /^दिसà¤|दिस/i, 29404 ], 29405 shortMonthsParse = [ 29406 /^à¤à¤¨/i, 29407 /^फ़र/i, 29408 /^मारà¥à¤/i, 29409 /^ठपà¥à¤°à¥/i, 29410 /^मà¤/i, 29411 /^à¤à¥à¤¨/i, 29412 /^à¤à¥à¤²/i, 29413 /^ठà¤/i, 29414 /^सित/i, 29415 /^ठà¤à¥à¤à¥/i, 29416 /^नव/i, 29417 /^दिस/i, 29418 ]; 29419 29420 var hi = moment.defineLocale('hi', { 29421 months: { 29422 format: 'à¤à¤¨à¤µà¤°à¥_फ़रवरà¥_मारà¥à¤_ठपà¥à¤°à¥à¤²_मà¤_à¤à¥à¤¨_à¤à¥à¤²à¤¾à¤_ठà¤à¤¸à¥à¤¤_सितमà¥à¤¬à¤°_ठà¤à¥à¤à¥à¤¬à¤°_नवमà¥à¤¬à¤°_दिसमà¥à¤¬à¤°'.split( 29423 '_' 29424 ), 29425 standalone: 'à¤à¤¨à¤µà¤°à¥_फरवरà¥_मारà¥à¤_ठपà¥à¤°à¥à¤²_मà¤_à¤à¥à¤¨_à¤à¥à¤²à¤¾à¤_ठà¤à¤¸à¥à¤¤_सितà¤à¤¬à¤°_ठà¤à¥à¤à¥à¤¬à¤°_नवà¤à¤¬à¤°_दिसà¤à¤¬à¤°'.split( 29426 '_' 29427 ), 29428 }, 29429 monthsShort: 'à¤à¤¨._फ़र._मारà¥à¤_ठपà¥à¤°à¥._मà¤_à¤à¥à¤¨_à¤à¥à¤²._ठà¤._सित._ठà¤à¥à¤à¥._नव._दिस.'.split( 29430 '_' 29431 ), 29432 weekdays: 'रविवार_सà¥à¤®à¤µà¤¾à¤°_मà¤à¤à¤²à¤µà¤¾à¤°_बà¥à¤§à¤µà¤¾à¤°_à¤à¥à¤°à¥à¤µà¤¾à¤°_शà¥à¤à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'), 29433 weekdaysShort: 'रवि_सà¥à¤®_मà¤à¤à¤²_बà¥à¤§_à¤à¥à¤°à¥_शà¥à¤à¥à¤°_शनि'.split('_'), 29434 weekdaysMin: 'र_सà¥_मà¤_बà¥_à¤à¥_शà¥_श'.split('_'), 29435 longDateFormat: { 29436 LT: 'A h:mm बà¤à¥', 29437 LTS: 'A h:mm:ss बà¤à¥', 29438 L: 'DD/MM/YYYY', 29439 LL: 'D MMMM YYYY', 29440 LLL: 'D MMMM YYYY, A h:mm बà¤à¥', 29441 LLLL: 'dddd, D MMMM YYYY, A h:mm बà¤à¥', 29442 }, 29443 29444 monthsParse: monthsParse, 29445 longMonthsParse: monthsParse, 29446 shortMonthsParse: shortMonthsParse, 29447 29448 monthsRegex: /^(à¤à¤¨à¤µà¤°à¥|à¤à¤¨\.?|फ़रवरà¥|फरवरà¥|फ़र\.?|मारà¥à¤?|ठपà¥à¤°à¥à¤²|ठपà¥à¤°à¥\.?|मà¤?|à¤à¥à¤¨?|à¤à¥à¤²à¤¾à¤|à¤à¥à¤²\.?|ठà¤à¤¸à¥à¤¤|ठà¤\.?|सितमà¥à¤¬à¤°|सितà¤à¤¬à¤°|सित\.?|ठà¤à¥à¤à¥à¤¬à¤°|ठà¤à¥à¤à¥\.?|नवमà¥à¤¬à¤°|नवà¤à¤¬à¤°|नव\.?|दिसमà¥à¤¬à¤°|दिसà¤à¤¬à¤°|दिस\.?)/i, 29449 29450 monthsShortRegex: /^(à¤à¤¨à¤µà¤°à¥|à¤à¤¨\.?|फ़रवरà¥|फरवरà¥|फ़र\.?|मारà¥à¤?|ठपà¥à¤°à¥à¤²|ठपà¥à¤°à¥\.?|मà¤?|à¤à¥à¤¨?|à¤à¥à¤²à¤¾à¤|à¤à¥à¤²\.?|ठà¤à¤¸à¥à¤¤|ठà¤\.?|सितमà¥à¤¬à¤°|सितà¤à¤¬à¤°|सित\.?|ठà¤à¥à¤à¥à¤¬à¤°|ठà¤à¥à¤à¥\.?|नवमà¥à¤¬à¤°|नवà¤à¤¬à¤°|नव\.?|दिसमà¥à¤¬à¤°|दिसà¤à¤¬à¤°|दिस\.?)/i, 29451 29452 monthsStrictRegex: /^(à¤à¤¨à¤µà¤°à¥?|फ़रवरà¥|फरवरà¥?|मारà¥à¤?|ठपà¥à¤°à¥à¤²?|मà¤?|à¤à¥à¤¨?|à¤à¥à¤²à¤¾à¤?|ठà¤à¤¸à¥à¤¤?|सितमà¥à¤¬à¤°|सितà¤à¤¬à¤°|सित?\.?|ठà¤à¥à¤à¥à¤¬à¤°|à¤
vendor: 15,535 bytes, lines 29452-29896
29452à¤à¥à¤à¥\.?|नवमà¥à¤¬à¤°|नवà¤à¤¬à¤°?|दिसमà¥à¤¬à¤°|दिसà¤à¤¬à¤°?)/i, 29453 29454 monthsShortStrictRegex: /^(à¤à¤¨\.?|फ़र\.?|मारà¥à¤?|ठपà¥à¤°à¥\.?|मà¤?|à¤à¥à¤¨?|à¤à¥à¤²\.?|ठà¤\.?|सित\.?|ठà¤à¥à¤à¥\.?|नव\.?|दिस\.?)/i, 29455 29456 calendar: { 29457 sameDay: '[à¤à¤] LT', 29458 nextDay: '[à¤à¤²] LT', 29459 nextWeek: 'dddd, LT', 29460 lastDay: '[à¤à¤²] LT', 29461 lastWeek: '[पिà¤à¤²à¥] dddd, LT', 29462 sameElse: 'L', 29463 }, 29464 relativeTime: { 29465 future: '%s मà¥à¤', 29466 past: '%s पहलà¥', 29467 s: 'à¤à¥à¤ हॠà¤à¥à¤·à¤£', 29468 ss: '%d सà¥à¤à¤à¤¡', 29469 m: 'à¤à¤ मिनà¤', 29470 mm: '%d मिनà¤', 29471 h: 'à¤à¤ à¤à¤à¤à¤¾', 29472 hh: '%d à¤à¤à¤à¥', 29473 d: 'à¤à¤ दिन', 29474 dd: '%d दिन', 29475 M: 'à¤à¤ महà¥à¤¨à¥', 29476 MM: '%d महà¥à¤¨à¥', 29477 y: 'à¤à¤ वरà¥à¤·', 29478 yy: '%d वरà¥à¤·', 29479 }, 29480 preparse: function (string) { 29481 return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) { 29482 return numberMap[match]; 29483 }); 29484 }, 29485 postformat: function (string) { 29486 return string.replace(/\d/g, function (match) { 29487 return symbolMap[match]; 29488 }); 29489 }, 29490 // Hindi notation for meridiems are quite fuzzy in practice. While there exists 29491 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. 29492 meridiemParse: /रात|सà¥à¤¬à¤¹|दà¥à¤ªà¤¹à¤°|शाम/, 29493 meridiemHour: function (hour, meridiem) { 29494 if (hour === 12) { 29495 hour = 0; 29496 } 29497 if (meridiem === 'रात') { 29498 return hour < 4 ? hour : hour + 12; 29499 } else if (meridiem === 'सà¥à¤¬à¤¹') { 29500 return hour; 29501 } else if (meridiem === 'दà¥à¤ªà¤¹à¤°') { 29502 return hour >= 10 ? hour : hour + 12; 29503 } else if (meridiem === 'शाम') { 29504 return hour + 12; 29505 } 29506 }, 29507 meridiem: function (hour, minute, isLower) { 29508 if (hour < 4) { 29509 return 'रात'; 29510 } else if (hour < 10) { 29511 return 'सà¥à¤¬à¤¹'; 29512 } else if (hour < 17) { 29513 return 'दà¥à¤ªà¤¹à¤°'; 29514 } else if (hour < 20) { 29515 return 'शाम'; 29516 } else { 29517 return 'रात'; 29518 } 29519 }, 29520 week: { 29521 dow: 0, // Sunday is the first day of the week. 29522 doy: 6, // The week that contains Jan 6th is the first week of the year. 29523 }, 29524 }); 29525 29526 return hi; 29527 29528}))); 29529 29530 29531/***/ }), 29532/* 62 */ 29533/***/ (function(module, exports, __webpack_require__) { 29534 29535//! moment.js locale configuration 29536//! locale : Croatian [hr] 29537//! author : Bojan MarkoviÄ : https://github.com/bmarkovic 29538 29539;(function (global, factory) { 29540 true ? factory(__webpack_require__(0)) : 29541 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 29542 factory(global.moment) 29543}(this, (function (moment) { 'use strict'; 29544 29545 //! moment.js locale configuration 29546 29547 function translate(number, withoutSuffix, key) { 29548 var result = number + ' '; 29549 switch (key) { 29550 case 'ss': 29551 if (number === 1) { 29552 result += 'sekunda'; 29553 } else if (number === 2 || number === 3 || number === 4) { 29554 result += 'sekunde'; 29555 } else { 29556 result += 'sekundi'; 29557 } 29558 return result; 29559 case 'm': 29560 return withoutSuffix ? 'jedna minuta' : 'jedne minute'; 29561 case 'mm': 29562 if (number === 1) { 29563 result += 'minuta'; 29564 } else if (number === 2 || number === 3 || number === 4) { 29565 result += 'minute'; 29566 } else { 29567 result += 'minuta'; 29568 } 29569 return result; 29570 case 'h': 29571 return withoutSuffix ? 'jedan sat' : 'jednog sata'; 29572 case 'hh': 29573 if (number === 1) { 29574 result += 'sat'; 29575 } else if (number === 2 || number === 3 || number === 4) { 29576 result += 'sata'; 29577 } else { 29578 result += 'sati'; 29579 } 29580 return result; 29581 case 'dd': 29582 if (number === 1) { 29583 result += 'dan'; 29584 } else { 29585 result += 'dana'; 29586 } 29587 return result; 29588 case 'MM': 29589 if (number === 1) { 29590 result += 'mjesec'; 29591 } else if (number === 2 || number === 3 || number === 4) { 29592 result += 'mjeseca'; 29593 } else { 29594 result += 'mjeseci'; 29595 } 29596 return result; 29597 case 'yy': 29598 if (number === 1) { 29599 result += 'godina'; 29600 } else if (number === 2 || number === 3 || number === 4) { 29601 result += 'godine'; 29602 } else { 29603 result += 'godina'; 29604 } 29605 return result; 29606 } 29607 } 29608 29609 var hr = moment.defineLocale('hr', { 29610 months: { 29611 format: 'sijeÄnja_veljaÄe_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( 29612 '_' 29613 ), 29614 standalone: 'sijeÄanj_veljaÄa_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( 29615 '_' 29616 ), 29617 }, 29618 monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( 29619 '_' 29620 ), 29621 monthsParseExact: true, 29622 weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split( 29623 '_' 29624 ), 29625 weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'), 29626 weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'), 29627 weekdaysParseExact: true, 29628 longDateFormat: { 29629 LT: 'H:mm', 29630 LTS: 'H:mm:ss', 29631 L: 'DD.MM.YYYY', 29632 LL: 'Do MMMM YYYY', 29633 LLL: 'Do MMMM YYYY H:mm', 29634 LLLL: 'dddd, Do MMMM YYYY H:mm', 29635 }, 29636 calendar: { 29637 sameDay: '[danas u] LT', 29638 nextDay: '[sutra u] LT', 29639 nextWeek: function () { 29640 switch (this.day()) { 29641 case 0: 29642 return '[u] [nedjelju] [u] LT'; 29643 case 3: 29644 return '[u] [srijedu] [u] LT'; 29645 case 6: 29646 return '[u] [subotu] [u] LT'; 29647 case 1: 29648 case 2: 29649 case 4: 29650 case 5: 29651 return '[u] dddd [u] LT'; 29652 } 29653 }, 29654 lastDay: '[juÄer u] LT', 29655 lastWeek: function () { 29656 switch (this.day()) { 29657 case 0: 29658 return '[proÅ¡lu] [nedjelju] [u] LT'; 29659 case 3: 29660 return '[proÅ¡lu] [srijedu] [u] LT'; 29661 case 6: 29662 return '[proÅ¡le] [subote] [u] LT'; 29663 case 1: 29664 case 2: 29665 case 4: 29666 case 5: 29667 return '[proÅ¡li] dddd [u] LT'; 29668 } 29669 }, 29670 sameElse: 'L', 29671 }, 29672 relativeTime: { 29673 future: 'za %s', 29674 past: 'prije %s', 29675 s: 'par sekundi', 29676 ss: translate, 29677 m: translate, 29678 mm: translate, 29679 h: translate, 29680 hh: translate, 29681 d: 'dan', 29682 dd: translate, 29683 M: 'mjesec', 29684 MM: translate, 29685 y: 'godinu', 29686 yy: translate, 29687 }, 29688 dayOfMonthOrdinalParse: /\d{1,2}\./, 29689 ordinal: '%d.', 29690 week: { 29691 dow: 1, // Monday is the first day of the week. 29692 doy: 7, // The week that contains Jan 7th is the first week of the year. 29693 }, 29694 }); 29695 29696 return hr; 29697 29698}))); 29699 29700 29701/***/ }), 29702/* 63 */ 29703/***/ (function(module, exports, __webpack_require__) { 29704 29705//! moment.js locale configuration 29706//! locale : Hungarian [hu] 29707//! author : Adam Brunner : https://github.com/adambrunner 29708//! author : Peter Viszt : https://github.com/passatgt 29709 29710;(function (global, factory) { 29711 true ? factory(__webpack_require__(0)) : 29712 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 29713 factory(global.moment) 29714}(this, (function (moment) { 'use strict'; 29715 29716 //! moment.js locale configuration 29717 29718 var weekEndings = 'vasárnap hétfÅn kedden szerdán csütörtökön pénteken szombaton'.split( 29719 ' ' 29720 ); 29721 function translate(number, withoutSuffix, key, isFuture) { 29722 var num = number; 29723 switch (key) { 29724 case 's': 29725 return isFuture || withoutSuffix 29726 ? 'néhány másodperc' 29727 : 'néhány másodperce'; 29728 case 'ss': 29729 return num + (isFuture || withoutSuffix) 29730 ? ' másodperc' 29731 : ' másodperce'; 29732 case 'm': 29733 return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); 29734 case 'mm': 29735 return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); 29736 case 'h': 29737 return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); 29738 case 'hh': 29739 return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); 29740 case 'd': 29741 return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); 29742 case 'dd': 29743 return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); 29744 case 'M': 29745 return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); 29746 case 'MM': 29747 return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); 29748 case 'y': 29749 return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); 29750 case 'yy': 29751 return num + (isFuture || withoutSuffix ? ' év' : ' éve'); 29752 } 29753 return ''; 29754 } 29755 function week(isFuture) { 29756 return ( 29757 (isFuture ? '' : '[múlt] ') + 29758 '[' + 29759 weekEndings[this.day()] + 29760 '] LT[-kor]' 29761 ); 29762 } 29763 29764 var hu = moment.defineLocale('hu', { 29765 months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split( 29766 '_' 29767 ), 29768 monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split( 29769 '_' 29770 ), 29771 monthsParseExact: true, 29772 weekdays: 'vasárnap_hétfÅ_kedd_szerda_csütörtök_péntek_szombat'.split('_'), 29773 weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), 29774 weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), 29775 longDateFormat: { 29776 LT: 'H:mm', 29777 LTS: 'H:mm:ss', 29778 L: 'YYYY.MM.DD.', 29779 LL: 'YYYY. MMMM D.', 29780 LLL: 'YYYY. MMMM D. H:mm', 29781 LLLL: 'YYYY. MMMM D., dddd H:mm', 29782 }, 29783 meridiemParse: /de|du/i, 29784 isPM: function (input) { 29785 return input.charAt(1).toLowerCase() === 'u'; 29786 }, 29787 meridiem: function (hours, minutes, isLower) { 29788 if (hours < 12) { 29789 return isLower === true ? 'de' : 'DE'; 29790 } else { 29791 return isLower === true ? 'du' : 'DU'; 29792 } 29793 }, 29794 calendar: { 29795 sameDay: '[ma] LT[-kor]', 29796 nextDay: '[holnap] LT[-kor]', 29797 nextWeek: function () { 29798 return week.call(this, true); 29799 }, 29800 lastDay: '[tegnap] LT[-kor]', 29801 lastWeek: function () { 29802 return week.call(this, false); 29803 }, 29804 sameElse: 'L', 29805 }, 29806 relativeTime: { 29807 future: '%s múlva', 29808 past: '%s', 29809 s: translate, 29810 ss: translate, 29811 m: translate, 29812 mm: translate, 29813 h: translate, 29814 hh: translate, 29815 d: translate, 29816 dd: translate, 29817 M: translate, 29818 MM: translate, 29819 y: translate, 29820 yy: translate, 29821 }, 29822 dayOfMonthOrdinalParse: /\d{1,2}\./, 29823 ordinal: '%d.', 29824 week: { 29825 dow: 1, // Monday is the first day of the week. 29826 doy: 4, // The week that contains Jan 4th is the first week of the year. 29827 }, 29828 }); 29829 29830 return hu; 29831 29832}))); 29833 29834 29835/***/ }), 29836/* 64 */ 29837/***/ (function(module, exports, __webpack_require__) { 29838 29839//! moment.js locale configuration 29840//! locale : Armenian [hy-am] 29841//! author : Armendarabyan : https://github.com/armendarabyan 29842 29843;(function (global, factory) { 29844 true ? factory(__webpack_require__(0)) : 29845 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 29846 factory(global.moment) 29847}(this, (function (moment) { 'use strict'; 29848 29849 //! moment.js locale configuration 29850 29851 var hyAm = moment.defineLocale('hy-am', { 29852 months: { 29853 format: 'Õ°Õ¸ÖÕ¶Õ¾Õ¡ÖÕ«_ÖÕ¥Õ¿ÖÕ¾Õ¡ÖÕ«_Õ´Õ¡ÖÕ¿Õ«_Õ¡ÕºÖÕ«Õ¬Õ«_Õ´Õ¡ÕµÕ«Õ½Õ«_Õ°Õ¸ÖÕ¶Õ«Õ½Õ«_Õ°Õ¸ÖÕ¬Õ«Õ½Õ«_Ö Õ£Õ¸Õ½Õ¿Õ¸Õ½Õ«_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥ÖÕ«_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥ÖÕ«_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥ÖÕ«_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥ÖÕ«'.split( 29854 '_' 29855 ), 29856 standalone: 'Õ°Õ¸ÖÕ¶Õ¾Õ¡Ö_ÖÕ¥Õ¿ÖÕ¾Õ¡Ö_Õ´Õ¡ÖÕ¿_Õ¡ÕºÖÕ«Õ¬_Õ´Õ¡ÕµÕ«Õ½_Õ°Õ¸ÖÕ¶Õ«Õ½_Õ°Õ¸ÖÕ¬Õ«Õ½_Ö Õ£Õ¸Õ½Õ¿Õ¸Õ½_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö'.split( 29857 '_' 29858 ), 29859 }, 29860 monthsShort: 'Õ°Õ¶Õ¾_ÖÕ¿Ö_Õ´ÖÕ¿_Õ¡ÕºÖ_Õ´ÕµÕ½_Õ°Õ¶Õ½_Õ°Õ¬Õ½_Ö Õ£Õ½_Õ½ÕºÕ¿_Õ°Õ¯Õ¿_Õ¶Õ´Õ¢_Õ¤Õ¯Õ¿'.split('_'), 29861 weekdays: 'Õ¯Õ«ÖÕ¡Õ¯Õ«_Õ¥ÖÕ¯Õ¸ÖÕ·Õ¡Õ¢Õ©Õ«_Õ¥ÖÕ¥ÖÕ·Õ¡Õ¢Õ©Õ«_Õ¹Õ¸ÖÕ¥ÖÕ·Õ¡Õ¢Õ©Õ«_Õ°Õ«Õ¶Õ£Õ·Õ¡Õ¢Õ©Õ«_Õ¸ÖÖÕ¢Õ¡Õ©_Õ·Õ¡Õ¢Õ¡Õ©'.split( 29862 '_' 29863 ), 29864 weekdaysShort: 'Õ¯ÖÕ¯_Õ¥ÖÕ¯_Õ¥ÖÖ_Õ¹ÖÖ_Õ°Õ¶Õ£_Õ¸ÖÖÕ¢_Õ·Õ¢Õ©'.split('_'), 29865 weekdaysMin: 'Õ¯ÖÕ¯_Õ¥ÖÕ¯_Õ¥ÖÖ_Õ¹ÖÖ_Õ°Õ¶Õ£_Õ¸ÖÖÕ¢_Õ·Õ¢Õ©'.split('_'), 29866 longDateFormat: { 29867 LT: 'HH:mm', 29868 LTS: 'HH:mm:ss', 29869 L: 'DD.MM.YYYY', 29870 LL: 'D MMMM YYYY Õ©.', 29871 LLL: 'D MMMM YYYY Õ©., HH:mm', 29872 LLLL: 'dddd, D MMMM YYYY Õ©., HH:mm', 29873 }, 29874 calendar: { 29875 sameDay: '[Õ¡ÕµÕ½Ö Ö] LT', 29876 nextDay: '[Õ¾Õ¡Õ²Õ¨] LT', 29877 lastDay: '[Õ¥ÖÕ¥Õ¯] LT', 29878 nextWeek: function () { 29879 return 'dddd [Ö ÖÕ¨ ÕªÕ¡Õ´Õ¨] LT'; 29880 }, 29881 lastWeek: function () { 29882 return '[Õ¡Õ¶ÖÕ¡Õ®] dddd [Ö ÖÕ¨ ÕªÕ¡Õ´Õ¨] LT'; 29883 }, 29884 sameElse: 'L', 29885 }, 29886 relativeTime: { 29887 future: '%s Õ°Õ¥Õ¿Õ¸', 29888 past: '%s Õ¡Õ¼Õ¡Õ»', 29889 s: 'Õ´Õ« ÖÕ¡Õ¶Õ« Õ¾Õ¡ÕµÖÕ¯ÕµÕ¡Õ¶', 29890 ss: '%d Õ¾Õ¡ÕµÖÕ¯ÕµÕ¡Õ¶', 29891 m: 'ÖÕ¸ÕºÕ¥', 29892 mm: '%d ÖÕ¸ÕºÕ¥', 29893 h: 'ÕªÕ¡Õ´', 29894 hh: '%d ÕªÕ¡Õ´', 29895 d: 'Ö Ö', 29896 dd: '%d Ö Ö',
29897 M: 'Õ¡Õ´Õ«Õ½', 29898 MM: '%d Õ¡Õ´Õ«Õ½', 29899 y: 'Õ¿Õ¡ÖÕ«', 29900 yy: '%d Õ¿Õ¡ÖÕ«', 29901 }, 29902 meridiemParse: /Õ£Õ«Õ·Õ¥ÖÕ¾Õ¡|Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡|ÖÕ¥ÖÕ¥Õ¯Õ¾Õ¡|Õ¥ÖÕ¥Õ¯Õ¸ÕµÕ¡Õ¶/, 29903 isPM: function (input) { 29904 return /^(ÖÕ¥ÖÕ¥Õ¯Õ¾Õ¡|Õ¥ÖÕ¥Õ¯Õ¸ÕµÕ¡Õ¶)$/.test(input); 29905 }, 29906 meridiem: function (hour) { 29907 if (hour < 4) { 29908 return 'Õ£Õ«Õ·Õ¥ÖÕ¾Õ¡'; 29909 } else if (hour < 12) { 29910 return 'Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡'; 29911 } else if (hour < 17) { 29912 return 'ÖÕ¥ÖÕ¥Õ¯Õ¾Õ¡'; 29913 } else { 29914 return 'Õ¥ÖÕ¥Õ¯Õ¸ÕµÕ¡Õ¶'; 29915 } 29916 }, 29917 dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(Õ«Õ¶|ÖÕ¤)/, 29918 ordinal: function (number, period) { 29919 switch (period) { 29920 case 'DDD': 29921 case 'w': 29922 case 'W': 29923 case 'DDDo': 29924 if (number === 1) { 29925 return number + '-Õ«Õ¶'; 29926 } 29927 return number + '-ÖÕ¤'; 29928 default: 29929 return number; 29930 } 29931 }, 29932 week: { 29933 dow: 1, // Monday is the first day of the week. 29934 doy: 7, // The week that contains Jan 7th is the first week of the year. 29935 }, 29936 }); 29937 29938 return hyAm; 29939 29940}))); 29941 29942 29943/***/ }), 29944/* 65 */ 29945/***/ (function(module, exports, __webpack_require__) { 29946 29947//! moment.js locale configuration 29948//! locale : Indonesian [id] 29949//! author : Mohammad Satrio Utomo : https://github.com/tyok 29950//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan 29951 29952;(function (global, factory) { 29953 true ? factory(__webpack_require__(0)) : 29954 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 29955 factory(global.moment) 29956}(this, (function (moment) { 'use strict'; 29957 29958 //! moment.js locale configuration 29959 29960 var id = moment.defineLocale('id', { 29961 months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( 29962 '_' 29963 ), 29964 monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), 29965 weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), 29966 weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), 29967 weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), 29968 longDateFormat: { 29969 LT: 'HH.mm', 29970 LTS: 'HH.mm.ss', 29971 L: 'DD/MM/YYYY', 29972 LL: 'D MMMM YYYY', 29973 LLL: 'D MMMM YYYY [pukul] HH.mm', 29974 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', 29975 }, 29976 meridiemParse: /pagi|siang|sore|malam/, 29977 meridiemHour: function (hour, meridiem) { 29978 if (hour === 12) { 29979 hour = 0; 29980 } 29981 if (meridiem === 'pagi') { 29982 return hour; 29983 } else if (meridiem === 'siang') { 29984 return hour >= 11 ? hour : hour + 12; 29985 } else if (meridiem === 'sore' || meridiem === 'malam') { 29986 return hour + 12; 29987 } 29988 }, 29989 meridiem: function (hours, minutes, isLower) { 29990 if (hours < 11) { 29991 return 'pagi'; 29992 } else if (hours < 15) { 29993 return 'siang'; 29994 } else if (hours < 19) { 29995 return 'sore'; 29996 } else { 29997 return 'malam'; 29998 } 29999 }, 30000 calendar: { 30001 sameDay: '[Hari ini pukul] LT', 30002 nextDay: '[Besok pukul] LT', 30003 nextWeek: 'dddd [pukul] LT', 30004 lastDay: '[Kemarin pukul] LT', 30005 lastWeek: 'dddd [lalu pukul] LT', 30006 sameElse: 'L', 30007 }, 30008 relativeTime: { 30009 future: 'dalam %s', 30010 past: '%s yang lalu', 30011 s: 'beberapa detik', 30012 ss: '%d detik', 30013 m: 'semenit', 30014 mm: '%d menit', 30015 h: 'sejam', 30016 hh: '%d jam', 30017 d: 'sehari', 30018 dd: '%d hari', 30019 M: 'sebulan', 30020 MM: '%d bulan', 30021 y: 'setahun', 30022 yy: '%d tahun', 30023 }, 30024 week: { 30025 dow: 0, // Sunday is the first day of the week. 30026 doy: 6, // The week that contains Jan 6th is the first week of the year. 30027 }, 30028 }); 30029 30030 return id; 30031 30032}))); 30033 30034 30035/***/ }), 30036/* 66 */ 30037/***/ (function(module, exports, __webpack_require__) { 30038 30039//! moment.js locale configuration 30040//! locale : Icelandic [is] 30041//! author : Hinrik Ãrn Sigurðsson : https://github.com/hinrik 30042 30043;(function (global, factory) { 30044 true ? factory(__webpack_require__(0)) : 30045 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 30046 factory(global.moment) 30047}(this, (function (moment) { 'use strict'; 30048 30049 //! moment.js locale configuration 30050 30051 function plural(n) { 30052 if (n % 100 === 11) { 30053 return true; 30054 } else if (n % 10 === 1) { 30055 return false;
vendor: 4,823 bytes, lines 30056-30195
30056 } 30057 return true; 30058 } 30059 function translate(number, withoutSuffix, key, isFuture) { 30060 var result = number + ' '; 30061 switch (key) { 30062 case 's': 30063 return withoutSuffix || isFuture 30064 ? 'nokkrar sekúndur' 30065 : 'nokkrum sekúndum'; 30066 case 'ss': 30067 if (plural(number)) { 30068 return ( 30069 result + 30070 (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum') 30071 ); 30072 } 30073 return result + 'sekúnda'; 30074 case 'm': 30075 return withoutSuffix ? 'mÃnúta' : 'mÃnútu'; 30076 case 'mm': 30077 if (plural(number)) { 30078 return ( 30079 result + (withoutSuffix || isFuture ? 'mÃnútur' : 'mÃnútum') 30080 ); 30081 } else if (withoutSuffix) { 30082 return result + 'mÃnúta'; 30083 } 30084 return result + 'mÃnútu'; 30085 case 'hh': 30086 if (plural(number)) { 30087 return ( 30088 result + 30089 (withoutSuffix || isFuture 30090 ? 'klukkustundir' 30091 : 'klukkustundum') 30092 ); 30093 } 30094 return result + 'klukkustund'; 30095 case 'd': 30096 if (withoutSuffix) { 30097 return 'dagur'; 30098 } 30099 return isFuture ? 'dag' : 'degi'; 30100 case 'dd': 30101 if (plural(number)) { 30102 if (withoutSuffix) { 30103 return result + 'dagar'; 30104 } 30105 return result + (isFuture ? 'daga' : 'dögum'); 30106 } else if (withoutSuffix) { 30107 return result + 'dagur'; 30108 } 30109 return result + (isFuture ? 'dag' : 'degi'); 30110 case 'M': 30111 if (withoutSuffix) { 30112 return 'mánuður'; 30113 } 30114 return isFuture ? 'mánuð' : 'mánuði'; 30115 case 'MM': 30116 if (plural(number)) { 30117 if (withoutSuffix) { 30118 return result + 'mánuðir'; 30119 } 30120 return result + (isFuture ? 'mánuði' : 'mánuðum'); 30121 } else if (withoutSuffix) { 30122 return result + 'mánuður'; 30123 } 30124 return result + (isFuture ? 'mánuð' : 'mánuði'); 30125 case 'y': 30126 return withoutSuffix || isFuture ? 'ár' : 'ári'; 30127 case 'yy': 30128 if (plural(number)) { 30129 return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); 30130 } 30131 return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); 30132 } 30133 } 30134 30135 var is = moment.defineLocale('is', { 30136 months: 'janúar_febrúar_mars_aprÃl_maÃ_júnÃ_júlÃ_ágúst_september_október_nóvember_desember'.split( 30137 '_' 30138 ), 30139 monthsShort: 'jan_feb_mar_apr_maÃ_jún_júl_ágú_sep_okt_nóv_des'.split('_'), 30140 weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split( 30141 '_' 30142 ), 30143 weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'), 30144 weekdaysMin: 'Su_Má_Ãr_Mi_Fi_Fö_La'.split('_'), 30145 longDateFormat: { 30146 LT: 'H:mm', 30147 LTS: 'H:mm:ss', 30148 L: 'DD.MM.YYYY', 30149 LL: 'D. MMMM YYYY', 30150 LLL: 'D. MMMM YYYY [kl.] H:mm', 30151 LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', 30152 }, 30153 calendar: { 30154 sameDay: '[à dag kl.] LT', 30155 nextDay: '[á morgun kl.] LT', 30156 nextWeek: 'dddd [kl.] LT', 30157 lastDay: '[à gær kl.] LT', 30158 lastWeek: '[sÃðasta] dddd [kl.] LT', 30159 sameElse: 'L', 30160 }, 30161 relativeTime: { 30162 future: 'eftir %s', 30163 past: 'fyrir %s sÃðan', 30164 s: translate, 30165 ss: translate, 30166 m: translate, 30167 mm: translate, 30168 h: 'klukkustund', 30169 hh: translate, 30170 d: translate, 30171 dd: translate, 30172 M: translate, 30173 MM: translate, 30174 y: translate, 30175 yy: translate, 30176 }, 30177 dayOfMonthOrdinalParse: /\d{1,2}\./, 30178 ordinal: '%d.', 30179 week: { 30180 dow: 1, // Monday is the first day of the week. 30181 doy: 4, // The week that contains Jan 4th is the first week of the year. 30182 }, 30183 }); 30184 30185 return is; 30186 30187}))); 30188 30189 30190/***/ }), 30191/* 67 */ 30192/***/ (function(module, exports, __webpack_require__) { 30193 30194//! moment.js locale configuration 30195//! locale : Italian [it]
30196//! author : Lorenzo : https://github.com/aliem 30197//! author: Mattia Larentis: https://github.com/nostalgiaz 30198//! author: Marco : https://github.com/Manfre98 30199 30200;(function (global, factory) { 30201 true ? factory(__webpack_require__(0)) : 30202 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 30203 factory(global.moment) 30204}(this, (function (moment) { 'use strict'; 30205 30206 //! moment.js locale configuration 30207 30208 var it = moment.defineLocale('it', { 30209 months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( 30210 '_' 30211 ), 30212 monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), 30213 weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( 30214 '_' 30215 ), 30216 weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), 30217 weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), 30218 longDateFormat: { 30219 LT: 'HH:mm', 30220 LTS: 'HH:mm:ss', 30221 L: 'DD/MM/YYYY', 30222 LL: 'D MMMM YYYY', 30223 LLL: 'D MMMM YYYY HH:mm', 30224 LLLL: 'dddd D MMMM YYYY HH:mm', 30225 }, 30226 calendar: { 30227 sameDay: function () { 30228 return ( 30229 '[Oggi a' + 30230 (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + 30231 ']LT' 30232 ); 30233 }, 30234 nextDay: function () { 30235 return ( 30236 '[Domani a' + 30237 (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + 30238 ']LT' 30239 ); 30240 }, 30241 nextWeek: function () { 30242 return ( 30243 'dddd [a' + 30244 (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + 30245 ']LT' 30246 ); 30247 }, 30248 lastDay: function () { 30249 return ( 30250 '[Ieri a' + 30251 (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + 30252 ']LT' 30253 ); 30254 }, 30255 lastWeek: function () { 30256 switch (this.day()) { 30257 case 0: 30258 return ( 30259 '[La scorsa] dddd [a' + 30260 (this.hours() > 1 30261 ? 'lle ' 30262 : this.hours() === 0 30263 ? ' ' 30264 : "ll'") + 30265 ']LT' 30266 ); 30267 default: 30268 return ( 30269 '[Lo scorso] dddd [a' + 30270 (this.hours() > 1 30271 ? 'lle ' 30272 : this.hours() === 0 30273 ? ' ' 30274 : "ll'") + 30275 ']LT' 30276 ); 30277 } 30278 }, 30279 sameElse: 'L', 30280 }, 30281 relativeTime: { 30282 future: 'tra %s', 30283 past: '%s fa', 30284 s: 'alcuni secondi', 30285 ss: '%d secondi', 30286 m: 'un minuto', 30287 mm: '%d minuti', 30288 h: "un'ora", 30289 hh: '%d ore', 30290 d: 'un giorno', 30291 dd: '%d giorni', 30292 w: 'una settimana', 30293 ww: '%d settimane', 30294 M: 'un mese', 30295 MM: '%d mesi', 30296 y: 'un anno', 30297 yy: '%d anni', 30298 }, 30299 dayOfMonthOrdinalParse: /\d{1,2}º/, 30300 ordinal: '%dº', 30301 week: { 30302 dow: 1, // Monday is the first day of the week. 30303 doy: 4, // The week that contains Jan 4th is the first week of the year. 30304 }, 30305 }); 30306 30307 return it; 30308 30309}))); 30310 30311 30312/***/ }), 30313/* 68 */ 30314/***/ (function(module, exports, __webpack_require__) { 30315 30316//! moment.js locale configuration 30317//! locale : Italian (Switzerland) [it-ch] 30318//! author : xfh : https://github.com/xfh 30319 30320;(function (global, factory) { 30321 true ? factory(__webpack_require__(0)) : 30322 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 30323 factory(global.moment) 30324}(this, (function (moment) { 'use strict'; 30325 30326 //! moment.js locale configuration 30327 30328 var itCh = moment.defineLocale('it-ch', { 30329 months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( 30330 '_' 30331 ), 30332 monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), 30333 weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split( 30334 '_' 30335 ), 30336 weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), 30337 weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), 30338 longDateFormat: { 30339 LT: 'HH:mm', 30340 LTS: 'HH:mm:ss', 30341 L: 'DD.MM.YYYY', 30342 LL: 'D MMMM YYYY', 30343 LLL: 'D MMMM YYYY HH:mm', 30344 LLLL: 'dddd D MMMM YYYY HH:mm', 30345 }, 30346 calendar: { 30347 sameDay: '[Oggi alle] LT', 30348 nextDay: '[Domani alle] LT', 30349 nextWeek: 'dddd [alle] LT', 30350 lastDay: '[Ieri alle] LT', 30351 lastWeek: function () { 30352 switch (this.day()) { 30353 case 0: 30354 return '[la scorsa] dddd [alle] LT'; 30355 default: 30356 return '[lo scorso] dddd [alle] LT'; 30357 } 30358 }, 30359 sameElse: 'L', 30360 }, 30361 relativeTime: { 30362 future: function (s) { 30363 return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; 30364 }, 30365 past: '%s fa', 30366 s: 'alcuni secondi', 30367 ss: '%d secondi', 30368 m: 'un minuto', 30369 mm: '%d minuti', 30370 h: "un'ora", 30371 hh: '%d ore', 30372 d: 'un giorno', 30373 dd: '%d giorni', 30374 M: 'un mese', 30375 MM: '%d mesi', 30376 y: 'un anno', 30377 yy: '%d anni', 30378 }, 30379 dayOfMonthOrdinalParse: /\d{1,2}º/, 30380 ordinal: '%dº', 30381 week: { 30382 dow: 1, // Monday is the first day of the week. 30383 doy: 4, // The week that contains Jan 4th is the first week of the year. 30384 }, 30385 }); 30386 30387 return itCh; 30388 30389}))); 30390 30391 30392/***/ }), 30393/* 69 */ 30394/***/ (function(module, exports, __webpack_require__) { 30395 30396//! moment.js locale configuration
vendor: 4,468 bytes, lines 30397-30538
30397//! locale : Japanese [ja] 30398//! author : LI Long : https://github.com/baryon 30399 30400;(function (global, factory) { 30401 true ? factory(__webpack_require__(0)) : 30402 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 30403 factory(global.moment) 30404}(this, (function (moment) { 'use strict'; 30405 30406 //! moment.js locale configuration 30407 30408 var ja = moment.defineLocale('ja', { 30409 eras: [ 30410 { 30411 since: '2019-05-01', 30412 offset: 1, 30413 name: '令å', 30414 narrow: 'ã¿', 30415 abbr: 'R', 30416 }, 30417 { 30418 since: '1989-01-08', 30419 until: '2019-04-30', 30420 offset: 1, 30421 name: 'å¹³æ', 30422 narrow: 'ã»', 30423 abbr: 'H', 30424 }, 30425 { 30426 since: '1926-12-25', 30427 until: '1989-01-07', 30428 offset: 1, 30429 name: 'æå', 30430 narrow: 'ã¼', 30431 abbr: 'S', 30432 }, 30433 { 30434 since: '1912-07-30', 30435 until: '1926-12-24', 30436 offset: 1, 30437 name: '大æ£', 30438 narrow: 'ã½', 30439 abbr: 'T', 30440 }, 30441 { 30442 since: '1873-01-01', 30443 until: '1912-07-29', 30444 offset: 6, 30445 name: 'ææ²»', 30446 narrow: 'ã¾', 30447 abbr: 'M', 30448 }, 30449 { 30450 since: '0001-01-01', 30451 until: '1873-12-31', 30452 offset: 1, 30453 name: '西æ¦', 30454 narrow: 'AD', 30455 abbr: 'AD', 30456 }, 30457 { 30458 since: '0000-12-31', 30459 until: -Infinity, 30460 offset: 1, 30461 name: 'ç´å å', 30462 narrow: 'BC', 30463 abbr: 'BC', 30464 }, 30465 ], 30466 eraYearOrdinalRegex: /(å |\d+)å¹´/, 30467 eraYearOrdinalParse: function (input, match) { 30468 return match[1] === 'å ' ? 1 : parseInt(match[1] || input, 10); 30469 }, 30470 months: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split('_'), 30471 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split( 30472 '_' 30473 ), 30474 weekdays: 'æ¥ææ¥_æææ¥_ç«ææ¥_æ°´ææ¥_æ¨ææ¥_éææ¥_åææ¥'.split('_'), 30475 weekdaysShort: 'æ¥_æ_ç«_æ°´_æ¨_é_å'.split('_'), 30476 weekdaysMin: 'æ¥_æ_ç«_æ°´_æ¨_é_å'.split('_'), 30477 longDateFormat: { 30478 LT: 'HH:mm', 30479 LTS: 'HH:mm:ss', 30480 L: 'YYYY/MM/DD', 30481 LL: 'YYYYå¹´MæDæ¥', 30482 LLL: 'YYYYå¹´MæDæ¥ HH:mm', 30483 LLLL: 'YYYYå¹´MæDæ¥ dddd HH:mm', 30484 l: 'YYYY/MM/DD', 30485 ll: 'YYYYå¹´MæDæ¥', 30486 lll: 'YYYYå¹´MæDæ¥ HH:mm', 30487 llll: 'YYYYå¹´MæDæ¥(ddd) HH:mm', 30488 }, 30489 meridiemParse: /åå|åå¾/i, 30490 isPM: function (input) { 30491 return input === 'åå¾'; 30492 }, 30493 meridiem: function (hour, minute, isLower) { 30494 if (hour < 12) { 30495 return 'åå'; 30496 } else { 30497 return 'åå¾'; 30498 } 30499 }, 30500 calendar: { 30501 sameDay: '[仿¥] LT', 30502 nextDay: '[ææ¥] LT', 30503 nextWeek: function (now) { 30504 if (now.week() !== this.week()) { 30505 return '[æ¥é±]dddd LT'; 30506 } else { 30507 return 'dddd LT'; 30508 } 30509 }, 30510 lastDay: '[æ¨æ¥] LT', 30511 lastWeek: function (now) { 30512 if (this.week() !== now.week()) { 30513 return '[å é±]dddd LT'; 30514 } else { 30515 return 'dddd LT'; 30516 } 30517 }, 30518 sameElse: 'L', 30519 }, 30520 dayOfMonthOrdinalParse: /\d{1,2}æ¥/, 30521 ordinal: function (number, period) { 30522 switch (period) { 30523 case 'y': 30524 return number === 1 ? 'å å¹´' : number + 'å¹´'; 30525 case 'd': 30526 case 'D': 30527 case 'DDD': 30528 return number + 'æ¥'; 30529 default: 30530 return number; 30531 } 30532 }, 30533 relativeTime: { 30534 future: '%så¾', 30535 past: '%så', 30536 s: 'æ°ç§', 30537 ss: '%dç§', 30538 m: '1å',
30539 mm: '%då', 30540 h: '1æé', 30541 hh: '%dæé', 30542 d: '1æ¥', 30543 dd: '%dæ¥', 30544 M: '1ã¶æ', 30545 MM: '%dã¶æ', 30546 y: '1å¹´', 30547 yy: '%då¹´', 30548 }, 30549 }); 30550 30551 return ja; 30552 30553}))); 30554 30555 30556/***/ }), 30557/* 70 */ 30558/***/ (function(module, exports, __webpack_require__) { 30559 30560//! moment.js locale configuration 30561//! locale : Javanese [jv] 30562//! author : Rony Lantip : https://github.com/lantip 30563//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa 30564 30565;(function (global, factory) { 30566 true ? factory(__webpack_require__(0)) : 30567 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 30568 factory(global.moment) 30569}(this, (function (moment) { 'use strict'; 30570 30571 //! moment.js locale configuration 30572 30573 var jv = moment.defineLocale('jv', { 30574 months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( 30575 '_' 30576 ), 30577 monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), 30578 weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), 30579 weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), 30580 weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), 30581 longDateFormat: { 30582 LT: 'HH.mm', 30583 LTS: 'HH.mm.ss', 30584 L: 'DD/MM/YYYY', 30585 LL: 'D MMMM YYYY', 30586 LLL: 'D MMMM YYYY [pukul] HH.mm', 30587 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', 30588 }, 30589 meridiemParse: /enjing|siyang|sonten|ndalu/, 30590 meridiemHour: function (hour, meridiem) { 30591 if (hour === 12) { 30592 hour = 0; 30593 } 30594 if (meridiem === 'enjing') { 30595 return hour; 30596 } else if (meridiem === 'siyang') { 30597 return hour >= 11 ? hour : hour + 12; 30598 } else if (meridiem === 'sonten' || meridiem === 'ndalu') { 30599 return hour + 12; 30600 } 30601 }, 30602 meridiem: function (hours, minutes, isLower) { 30603 if (hours < 11) { 30604 return 'enjing'; 30605 } else if (hours < 15) { 30606 return 'siyang'; 30607 } else if (hours < 19) { 30608 return 'sonten'; 30609 } else { 30610 return 'ndalu'; 30611 } 30612 }, 30613 calendar: { 30614 sameDay: '[Dinten puniko pukul] LT', 30615 nextDay: '[Mbenjang pukul] LT', 30616 nextWeek: 'dddd [pukul] LT', 30617 lastDay: '[Kala wingi pukul] LT', 30618 lastWeek: 'dddd [kepengker pukul] LT', 30619 sameElse: 'L', 30620 }, 30621 relativeTime: { 30622 future: 'wonten ing %s', 30623 past: '%s ingkang kepengker', 30624 s: 'sawetawis detik', 30625 ss: '%d detik', 30626 m: 'setunggal menit', 30627 mm: '%d menit', 30628 h: 'setunggal jam', 30629 hh: '%d jam', 30630 d: 'sedinten', 30631 dd: '%d dinten', 30632 M: 'sewulan', 30633 MM: '%d wulan', 30634 y: 'setaun', 30635 yy: '%d taun', 30636 }, 30637 week: { 30638 dow: 1, // Monday is the first day of the week. 30639 doy: 7, // The week that contains Jan 7th is the first week of the year. 30640 }, 30641 }); 30642 30643 return jv; 30644 30645}))); 30646 30647 30648/***/ }), 30649/* 71 */ 30650/***/ (function(module, exports, __webpack_require__) { 30651 30652//! moment.js locale configuration 30653//! locale : Georgian [ka] 30654//! author : Irakli Janiashvili : https://github.com/IrakliJani 30655 30656;(function (global, factory) { 30657 true ? factory(__webpack_require__(0)) : 30658 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 30659 factory(global.moment) 30660}(this, (function (moment) { 'use strict'; 30661 30662 //! moment.js locale configuration 30663 30664 var ka = moment.defineLocale('ka', { 30665 months: 'áááááá á_ááááá áááá_ááá á¢á_ááá ááá_áááá¡á_ááááá¡á_ááááá¡á_ááááá¡á¢á_á¡áá¥á¢ááááá á_áá¥á¢ááááá á_ááááááá á_áááááááá á'.split( 30666 '_' 30667 ), 30668 monthsShort: 'ááá_ááá_ááá _ááá _ááá_ááá_ááá_ááá_á¡áá¥_áá¥á¢_ááá_ááá'.split('_'), 30669 weekdays: { 30670 standalone: 'áááá á_áá á¨ááááá_á¡ááá¨ááááá_ááá®á¨ááááá_á®á£áá¨ááááá_ááá áá¡áááá_á¨ááááá'.
30670split( 30671 '_' 30672 ), 30673 format: 'áááá áá¡_áá á¨ááááá¡_á¡ááá¨ááááá¡_ááá®á¨ááááá¡_á®á£áá¨ááááá¡_ááá áá¡áááá¡_á¨ááááá¡'.split( 30674 '_' 30675 ), 30676 isFormat: /(á¬ááá|á¨ááááá)/, 30677 }, 30678 weekdaysShort: 'ááá_áá á¨_á¡áá_ááá®_á®á£á_ááá _á¨áá'.split('_'), 30679 weekdaysMin: 'áá_áá _á¡á_áá_á®á£_áá_á¨á'.split('_'), 30680 longDateFormat: { 30681 LT: 'HH:mm', 30682 LTS: 'HH:mm:ss', 30683 L: 'DD/MM/YYYY', 30684 LL: 'D MMMM YYYY', 30685 LLL: 'D MMMM YYYY HH:mm', 30686 LLLL: 'dddd, D MMMM YYYY HH:mm', 30687 }, 30688 calendar: { 30689 sameDay: '[áá¦áá¡] LT[-áá]', 30690 nextDay: '[á®ááá] LT[-áá]', 30691 lastDay: '[áá£á¨áá] LT[-áá]', 30692 nextWeek: '[á¨ááááá] dddd LT[-áá]', 30693 lastWeek: '[á¬ááá] dddd LT-áá', 30694 sameElse: 'L', 30695 }, 30696 relativeTime: { 30697 future: function (s) { 30698 return s.replace(/(á¬áá|á¬á£á|á¡ááá|á¬áá|áá¦|áá)(á|á)/, function ( 30699 $0, 30700 $1, 30701 $2 30702 ) { 30703 return $2 === 'á' ? $1 + 'á¨á' : $1 + $2 + 'á¨á'; 30704 }); 30705 }, 30706 past: function (s) { 30707 if (/(á¬ááá|á¬á£áá|á¡áááá|áá¦á|ááá)/.test(s)) { 30708 return s.replace(/(á|á)$/, 'áá¡ á¬áá'); 30709 } 30710 if (/á¬ááá/.test(s)) { 30711 return s.replace(/á¬ááá$/, 'á¬ááá¡ á¬áá'); 30712 } 30713 return s; 30714 }, 30715 s: 'á áááááááá á¬ááá', 30716 ss: '%d á¬ááá', 30717 m: 'á¬á£áá', 30718 mm: '%d á¬á£áá', 30719 h: 'á¡áááá', 30720 hh: '%d á¡áááá', 30721 d: 'áá¦á', 30722 dd: '%d áá¦á', 30723 M: 'ááá', 30724 MM: '%d ááá', 30725 y: 'á¬ááá', 30726 yy: '%d á¬ááá', 30727 }, 30728 dayOfMonthOrdinalParse: /0|1-áá|áá-\d{1,2}|\d{1,2}-á/, 30729 ordinal: function (number) { 30730 if (number === 0) { 30731 return number; 30732 } 30733 if (number === 1) { 30734 return number + '-áá'; 30735 } 30736 if ( 30737 number < 20 || 30738 (number <= 100 && number % 20 === 0) || 30739 number % 100 === 0 30740 ) { 30741 return 'áá-' + number; 30742 } 30743 return number + '-á'; 30744 }, 30745 week: { 30746 dow: 1, 30747 doy: 7, 30748 }, 30749 }); 30750 30751 return ka; 30752 30753}))); 30754 30755 30756/***/ }), 30757/* 72 */ 30758/***/ (function(module, exports, __webpack_require__) { 30759 30760//! moment.js locale configuration 30761//! locale : Kazakh [kk] 30762//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan 30763 30764;(function (global, factory) { 30765 true ? factory(__webpack_require__(0)) : 30766 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 30767 factory(global.moment) 30768}(this, (function (moment) { 'use strict'; 30769 30770 //! moment.js locale configuration 30771 30772 var suffixes = { 30773 0: '-ÑÑ', 30774 1: '-ÑÑ', 30775 2: '-ÑÑ', 30776 3: '-ÑÑ', 30777 4: '-ÑÑ', 30778 5: '-ÑÑ', 30779 6: '-ÑÑ', 30780 7: '-ÑÑ', 30781 8: '-ÑÑ', 30782 9: '-ÑÑ', 30783 10: '-ÑÑ', 30784 20: '-ÑÑ', 30785 30: '-ÑÑ', 30786 40: '-ÑÑ', 30787 50: '-ÑÑ', 30788 60: '-ÑÑ', 30789 70: '-ÑÑ', 30790 80: '-ÑÑ', 30791 90: '-ÑÑ', 30792 100: '-ÑÑ', 30793 }; 30794 30795 var kk = moment.defineLocale('kk', { 30796 months: 'ÒаңÑаÑ_аÒпан_наÑÑÑз_ÑÓÑÑÑ_мамÑÑ_маÑÑÑм_ÑÑлде_ÑамÑз_ÒÑÑкүйек_Òазан_ÒаÑаÑа_желÑоÒÑан'.split( 30797 '_' 30798 ), 30799 monthsShort: 'Òаң_аÒп_наÑ_ÑÓÑ_мам_маÑ_ÑÑл_Ñам_ÒÑÑ_Òаз_ÒаÑ_жел'.split('_'), 30800 weekdays: 'жекÑенбÑ_дүйÑенбÑ_ÑейÑенбÑ_ÑÓÑÑенбÑ_бейÑенбÑ_жұма_ÑенбÑ'.split( 30801 '_' 30802 ), 30803 weekdaysShort: 'жек_дүй_Ñей_ÑÓÑ_бей_жұм_Ñен'.split('_'), 30804 weekdaysMin: 'жк_дй_Ñй_ÑÑ_бй_жм_Ñн'.split('_'), 30805 longDateFormat: { 30806 LT: 'HH:mm', 30807 LTS: 'HH:mm:ss', 30808 L: 'DD.MM.YYYY', 30809 LL: 'D MMMM YYYY', 30810 LLL: 'D MMMM YYYY HH:mm', 30811 LLLL: 'dddd, D MMMM YYYY HH:mm', 30812 }, 30813 calendar: { 30814 sameDay: '[ÐүгÑн ÑаÒаÑ] LT', 30815 nextDay: '[ÐÑÑең ÑаÒаÑ] LT', 30816 nextWeek: 'dddd [ÑаÒаÑ] LT', 30817 lastDay: '[ÐеÑе ÑаÒаÑ] LT', 30818 lastWeek: '[Ó¨Ñкен апÑанÑÒ£] dddd [ÑаÒаÑ] LT', 30819 sameElse: 'L', 30820 }, 30821 relativeTime: { 30822 future: '%s ÑÑÑнде', 30823 past: '%s бұÑÑн', 30824 s: 'бÑÑнеÑе ÑекÑнд', 30825 ss: '%d ÑекÑнд', 30826 m: 'бÑÑ Ð¼Ð¸Ð½ÑÑ', 30827 mm: '%d минÑÑ', 30828 h: 'бÑÑ ÑаÒаÑ', 30829 hh: '%d ÑаÒаÑ', 30830 d: 'бÑÑ ÐºÒ¯Ð½', 30831 dd: '%d күн', 30832 M: 'бÑÑ Ð°Ð¹', 30833 MM: '%d ай', 30834 y: 'бÑÑ Ð¶Ñл', 30835 yy: '%d жÑл', 30836 }, 30837 dayOfMonthOrdinalParse: /\d{1,2}-(ÑÑ|ÑÑ)/, 30838 ordinal: function (number) { 30839 var a = number % 10, 30840 b = number >= 100 ? 100 : null; 30841 return number + (suffixes[number] || suffixes[a] || suffixes[b]); 30842 }, 30843 week: { 30844 dow: 1, // Monday is the first day of the week. 30845 doy: 7, // The week that contains Jan 7th is the first week of the year. 30846 }, 30847 }); 30848 30849 return kk; 30850 30851}))); 30852 30853 30854/***/ }), 30855/* 73 */ 30856/***/ (function(module, exports, __webpack_require__) { 30857 30858//! moment.js locale configuration 30859//! locale : Cambodian [km] 30860//! author : Kruy Vanna : https://github.com/kruyvanna 30861 30862;(function (global, factory) { 30863 true ? factory(__webpack_require__(0)) : 30864 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 30865 factory(global.moment) 30866}(this, (function (moment) { 'use strict'; 30867 30868 //! moment.js locale configuration 30869 30870 var symbolMap = { 30871 1: 'á¡', 30872 2: 'á¢', 30873 3: 'á£', 30874 4: 'á¤', 30875 5: 'á¥', 30876 6: 'á¦', 30877 7: 'á§', 30878 8: 'á¨', 30879 9: 'á©', 30880 0: 'á ', 30881 }, 30882 numberMap = { 30883 'á¡': '1', 30884 'á¢': '2', 30885 'á£': '3', 30886 'á¤': '4', 30887 'á¥': '5', 30888 'á¦': '6', 30889 'á§': '7', 30890 'á¨': '8', 30891 'á©': '9', 30892 'á ': '0', 30893 }; 30894 30895 var km = moment.defineLocale('km', { 30896 months: 'áááá¶_áá»áááá_áá¸áá¶_áááá¶_á§ááá¶_áá·áá»áá¶_áááááá¶_áá¸á á¶_ááááá¶_áá»áá¶_áá·á ááá·áá¶_áááá¼'.split( 30897 '_' 30898 ), 30899 monthsShort: 'áááá¶_áá»áááá_áá¸áá¶_áááá¶_á§ááá¶_áá·áá»áá¶_áááááá¶_áá¸á á¶_ááááá¶_áá»áá¶_áá·á ááá·áá¶_áááá¼'.split( 30900 '_' 30901 ), 30902 weekdays: 'á¢á¶áá·ááá_á áááá_á¢áááá¶á_áá»á_áááá ááááá·á_áá»ááá_áá áá'.split('_'), 30903 weekdaysShort: 'á¢á¶_á _á¢_á_ááá_áá»_á'.split('_'), 30904 weekdaysMin: 'á¢á¶_á _á¢_á_ááá_áá»_á'.split('_'), 30905 weekdaysParseExact: true, 30906 longDateFormat: { 30907 LT: 'HH:mm', 30908 LTS: 'HH:mm:ss', 30909 L: 'DD/MM/YYYY', 30910 LL: 'D MMMM YYYY', 30911 LLL: 'D MMMM YYYY HH:mm', 30912 LLLL: 'dddd, D MMMM YYYY HH:mm', 30913 }, 30914 meridiemParse: /áááá¹á|áááá¶á /, 30915 isPM: function (input) { 30916 return input === 'áááá¶á '; 30917 }, 30918 meridiem: function (hour, minute, isLower) { 30919 if (hour < 12) {
vendor: 20,729 bytes, lines 30920-31547
30920 return 'áááá¹á'; 30921 } else { 30922 return 'áááá¶á '; 30923 } 30924 }, 30925 calendar: { 30926 sameDay: '[ááááááá áááá] LT', 30927 nextDay: '[ááá¢áá áááá] LT', 30928 nextWeek: 'dddd [áááá] LT', 30929 lastDay: '[áááá·ááá·á áááá] LT', 30930 lastWeek: 'dddd [ááááá¶á ááá»á] [áááá] LT', 30931 sameElse: 'L', 30932 }, 30933 relativeTime: { 30934 future: '%sááá', 30935 past: '%sáá»á', 30936 s: 'ááá»áááá¶ááá·áá¶áá¸', 30937 ss: '%d áá·áá¶áá¸', 30938 m: 'áá½ááá¶áá¸', 30939 mm: '%d áá¶áá¸', 30940 h: 'áá½ááááá', 30941 hh: '%d áááá', 30942 d: 'áá½ááááá', 30943 dd: '%d áááá', 30944 M: 'áá½ááá', 30945 MM: '%d áá', 30946 y: 'áá½ááááá¶á', 30947 yy: '%d áááá¶á', 30948 }, 30949 dayOfMonthOrdinalParse: /áá¸\d{1,2}/, 30950 ordinal: 'áá¸%d', 30951 preparse: function (string) { 30952 return string.replace(/[á¡á¢á£á¤á¥á¦á§á¨á©á ]/g, function (match) { 30953 return numberMap[match]; 30954 }); 30955 }, 30956 postformat: function (string) { 30957 return string.replace(/\d/g, function (match) { 30958 return symbolMap[match]; 30959 }); 30960 }, 30961 week: { 30962 dow: 1, // Monday is the first day of the week. 30963 doy: 4, // The week that contains Jan 4th is the first week of the year. 30964 }, 30965 }); 30966 30967 return km; 30968 30969}))); 30970 30971 30972/***/ }), 30973/* 74 */ 30974/***/ (function(module, exports, __webpack_require__) { 30975 30976//! moment.js locale configuration 30977//! locale : Kannada [kn] 30978//! author : Rajeev Naik : https://github.com/rajeevnaikte 30979 30980;(function (global, factory) { 30981 true ? factory(__webpack_require__(0)) : 30982 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 30983 factory(global.moment) 30984}(this, (function (moment) { 'use strict'; 30985 30986 //! moment.js locale configuration 30987 30988 var symbolMap = { 30989 1: 'à³§', 30990 2: '೨', 30991 3: '೩', 30992 4: '೪', 30993 5: '೫', 30994 6: '೬', 30995 7: 'à³', 30996 8: 'à³®', 30997 9: '೯', 30998 0: '೦', 30999 }, 31000 numberMap = { 31001 'à³§': '1', 31002 '೨': '2', 31003 '೩': '3', 31004 '೪': '4', 31005 '೫': '5', 31006 '೬': '6', 31007 'à³': '7', 31008 'à³®': '8', 31009 '೯': '9', 31010 '೦': '0', 31011 }; 31012 31013 var kn = moment.defineLocale('kn', { 31014 months: 'à²à²¨à²µà²°à²¿_ಫà³à²¬à³à²°à²µà²°à²¿_ಮಾರà³à²à³_à²à²ªà³à²°à²¿à²²à³_ಮà³à³_à²à³à²¨à³_à²à³à²²à³à³_à²à²à²¸à³à²à³_ಸà³à²ªà³à²à³à²à²¬à²°à³_ಠà²à³à²à³à³à³à²¬à²°à³_ನವà³à²à²¬à²°à³_ಡಿಸà³à²à²¬à²°à³'.split( 31015 '_' 31016 ), 31017 monthsShort: 'à²à²¨_ಫà³à²¬à³à²°_ಮಾರà³à²à³_à²à²ªà³à²°à²¿à²²à³_ಮà³à³_à²à³à²¨à³_à²à³à²²à³à³_à²à²à²¸à³à²à³_ಸà³à²ªà³à²à³à²_ಠà²à³à²à³à³à³_ನವà³à²_ಡಿಸà³à²'.split( 31018 '_' 31019 ), 31020 monthsParseExact: true, 31021 weekdays: 'à²à²¾à²¨à³à²µà²¾à²°_ಸà³à³à³à²®à²µà²¾à²°_ಮà²à²à²³à²µà²¾à²°_ಬà³à²§à²µà²¾à²°_à²à³à²°à³à²µà²¾à²°_ಶà³à²à³à²°à²µà²¾à²°_ಶನಿವಾರ'.split( 31022 '_' 31023 ), 31024 weekdaysShort: 'à²à²¾à²¨à³_ಸà³à³à³à²®_ಮà²à²à²³_ಬà³à²§_à²à³à²°à³_ಶà³à²à³à²°_ಶನಿ'.split('_'), 31025 weekdaysMin: 'à²à²¾_ಸà³à³à³_ಮà²_ಬà³_à²à³_ಶà³_ಶ'.split('_'), 31026 longDateFormat: { 31027 LT: 'A h:mm', 31028 LTS: 'A h:mm:ss', 31029 L: 'DD/MM/YYYY', 31030 LL: 'D MMMM YYYY', 31031 LLL: 'D MMMM YYYY, A h:mm', 31032 LLLL: 'dddd, D MMMM YYYY, A h:mm', 31033 }, 31034 calendar: { 31035 sameDay: '[à²à²à²¦à³] LT', 31036 nextDay: '[ನಾಳà³] LT', 31037 nextWeek: 'dddd, LT', 31038 lastDay: '[ನಿನà³à²¨à³] LT', 31039 lastWeek: '[à²à³à³à²¨à³à²¯] dddd, LT', 31040 sameElse: 'L', 31041 }, 31042 relativeTime: { 31043 future: '%s ನà²à²¤à²°', 31044 past: '%s ಹಿà²à²¦à³', 31045 s: 'à²à³à²²à²µà³ à²à³à²·à²£à²à²³à³', 31046 ss: '%d ಸà³à²à³à²à²¡à³à²à²³à³', 31047 m: 'à²à²à²¦à³ ನಿಮಿಷ', 31048 mm: '%d ನಿಮಿಷ', 31049 h: 'à²à²à²¦à³ à²à²à²à³', 31050 hh: '%d à²à²à²à³', 31051 d: 'à²à²à²¦à³ ದಿನ', 31052 dd: '%d ದಿನ', 31053 M: 'à²à²à²¦à³ ತಿà²à²à²³à³', 31054 MM: '%d ತಿà²à²à²³à³', 31055 y: 'à²à²à²¦à³ ವರà³à²·', 31056 yy: '%d ವರà³à²·', 31057 }, 31058 preparse: function (string) { 31059 return string.replace(/[೧೨೩೪೫೬à³à³®à³¯à³¦]/g, function (match) { 31060 return numberMap[match]; 31061 }); 31062 }, 31063 postformat: function (string) { 31064 return string.replace(/\d/g, function (match) { 31065 return symbolMap[match]; 31066 }); 31067 }, 31068 meridiemParse: /ರಾತà³à²°à²¿|ಬà³à²³à²¿à²à³à²à³|ಮಧà³à²¯à²¾à²¹à³à²¨|ಸà²à²à³/, 31069 meridiemHour: function (hour, meridiem) { 31070 if (hour === 12) { 31071 hour = 0; 31072 } 31073 if (meridiem === 'ರಾತà³à²°à²¿') { 31074 return hour < 4 ? hour : hour + 12; 31075 } else if (meridiem === 'ಬà³à²³à²¿à²à³à²à³') { 31076 return hour; 31077 } else if (meridiem === 'ಮಧà³à²¯à²¾à²¹à³à²¨') { 31078 return hour >= 10 ? hour : hour + 12; 31079 } else if (meridiem === 'ಸà²à²à³') { 31080 return hour + 12; 31081 } 31082 }, 31083 meridiem: function (hour, minute, isLower) { 31084 if (hour < 4) { 31085 return 'ರಾತà³à²°à²¿'; 31086 } else if (hour < 10) { 31087 return 'ಬà³à²³à²¿à²à³à²à³'; 31088 } else if (hour < 17) { 31089 return 'ಮಧà³à²¯à²¾à²¹à³à²¨'; 31090 } else if (hour < 20) { 31091 return 'ಸà²à²à³'; 31092 } else { 31093 return 'ರಾತà³à²°à²¿'; 31094 } 31095 }, 31096 dayOfMonthOrdinalParse: /\d{1,2}(ನà³à³)/, 31097 ordinal: function (number) { 31098 return number + 'ನà³à³'; 31099 }, 31100 week: { 31101 dow: 0, // Sunday is the first day of the week. 31102 doy: 6, // The week that contains Jan 6th is the first week of the year. 31103 }, 31104 }); 31105 31106 return kn; 31107 31108}))); 31109 31110 31111/***/ }), 31112/* 75 */ 31113/***/ (function(module, exports, __webpack_require__) { 31114 31115//! moment.js locale configuration 31116//! locale : Korean [ko] 31117//! author : Kyungwook, Park : https://github.com/kyungw00k 31118//! author : Jeeeyul Lee <[email protected]> 31119 31120;(function (global, factory) { 31121 true ? factory(__webpack_require__(0)) : 31122 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 31123 factory(global.moment) 31124}(this, (function (moment) { 'use strict'; 31125 31126 //! moment.js locale configuration 31127 31128 var ko = moment.defineLocale('ko', { 31129 months: '1ì_2ì_3ì_4ì_5ì_6ì_7ì_8ì_9ì_10ì_11ì_12ì'.split('_'), 31130 monthsShort: '1ì_2ì_3ì_4ì_5ì_6ì_7ì_8ì_9ì_10ì_11ì_12ì'.split( 31131 '_' 31132 ), 31133 weekdays: 'ì¼ìì¼_ììì¼_íìì¼_ììì¼_목ìì¼_ê¸ìì¼_í ìì¼'.split('_'), 31134 weekdaysShort: 'ì¼_ì_í_ì_목_ê¸_í '.split('_'), 31135 weekdaysMin: 'ì¼_ì_í_ì_목_ê¸_í '.split('_'), 31136 longDateFormat: { 31137 LT: 'A h:mm', 31138 LTS: 'A h:mm:ss', 31139 L: 'YYYY.MM.DD.', 31140 LL: 'YYYYë MMMM Dì¼', 31141 LLL: 'YYYYë MMMM Dì¼ A h:mm', 31142 LLLL: 'YYYYë MMMM Dì¼ dddd A h:mm', 31143 l: 'YYYY.MM.DD.', 31144 ll: 'YYYYë MMMM Dì¼', 31145 lll: 'YYYYë MMMM Dì¼ A h:mm', 31146 llll: 'YYYYë MMMM Dì¼ dddd A h:mm', 31147 }, 31148 calendar: { 31149 sameDay: 'ì¤ë LT', 31150 nextDay: 'ë´ì¼ LT', 31151 nextWeek: 'dddd LT', 31152 lastDay: 'ì´ì LT', 31153 lastWeek: 'ì§ë주 dddd LT', 31154 sameElse: 'L', 31155 }, 31156 relativeTime: { 31157 future: '%s í', 31158 past: '%s ì ', 31159 s: 'ëª ì´', 31160 ss: '%dì´', 31161 m: '1ë¶', 31162 mm: '%dë¶', 31163 h: 'í ìê°', 31164 hh: '%dìê°', 31165 d: 'í루', 31166 dd: '%dì¼', 31167 M: 'í ë¬', 31168 MM: '%dë¬', 31169 y: 'ì¼ ë ', 31170 yy: '%dë ', 31171 }, 31172 dayOfMonthOrdinalParse: /\d{1,2}(ì¼|ì|주)/, 31173 ordinal: function (number, period) { 31174 switch (period) { 31175 case 'd': 31176 case 'D': 31177 case 'DDD': 31178 return number + 'ì¼'; 31179 case 'M': 31180 return number + 'ì'; 31181 case 'w': 31182 case 'W': 31183 return number + '주'; 31184 default: 31185 return number; 31186 } 31187 }, 31188 meridiemParse: /ì¤ì |ì¤í/, 31189 isPM: function (token) { 31190 return token === 'ì¤í'; 31191 }, 31192 meridiem: function (hour, minute, isUpper) { 31193 return hour < 12 ? 'ì¤ì ' : 'ì¤í'; 31194 }, 31195 }); 31196 31197 return ko; 31198 31199}))); 31200 31201 31202/***/ }), 31203/* 76 */ 31204/***/ (function(module, exports, __webpack_require__) { 31205 31206//! moment.js locale configuration 31207//! locale : Kurdish [ku] 31208//! author : Shahram Mebashar : https://github.com/ShahramMebashar 31209 31210;(function (global, factory) { 31211 true ? factory(__webpack_require__(0)) : 31212 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 31213 factory(global.moment) 31214}(this, (function (moment) { 'use strict'; 31215 31216 //! moment.js locale configuration 31217 31218 var symbolMap = { 31219 1: 'Ù¡', 31220 2: 'Ù¢', 31221 3: 'Ù£', 31222 4: 'Ù¤', 31223 5: 'Ù¥', 31224 6: 'Ù¦', 31225 7: 'Ù§', 31226 8: 'Ù¨', 31227 9: 'Ù©', 31228 0: 'Ù ', 31229 }, 31230 numberMap = { 31231 'Ù¡': '1', 31232 'Ù¢': '2', 31233 'Ù£': '3', 31234 'Ù¤': '4', 31235 'Ù¥': '5', 31236 'Ù¦': '6', 31237 'Ù§': '7', 31238 'Ù¨': '8', 31239 'Ù©': '9', 31240 'Ù ': '0', 31241 }, 31242 months = [ 31243 'کاÙÙÙÛ Ø¯ÙÙÛÙ ', 31244 'Ø´ÙØ¨Ø§Øª', 31245 'ئازار', 31246 'ÙÛØ³Ø§Ù', 31247 'Ø¦Ø§ÛØ§Ø±', 31248 'ØÙزÛÛØ±Ø§Ù', 31249 'تÛÙ Ù ÙØ²', 31250 'ئاب', 31251 'ئÛÛÙÙÙÙ', 31252 'تشرÛÙÛ ÛÛÙÛÙ ', 31253 'تشرÛÙÛ Ø¯ÙÙÛÙ ', 31254 'ÙØ§ÙÙÙÛ ÛÛÚ©ÛÙ ', 31255 ]; 31256 31257 var ku = moment.defineLocale('ku', { 31258 months: months, 31259 monthsShort: months, 31260 weekdays: 'ÛÙâÙØ´ÙâÙ Ù Ùâ_دÙÙØ´ÙâÙ Ù Ùâ_Ø³ÛØ´ÙâÙ Ù Ùâ_ÚÙØ§Ø±Ø´ÙâÙ Ù Ùâ_Ù¾ÛÙØ¬Ø´ÙâÙ Ù Ùâ_ÙÙâÛÙÛ_Ø´ÙâÙ Ù Ùâ'.split( 31261 '_' 31262 ), 31263 weekdaysShort: 'ÛÙâÙØ´ÙâÙ _دÙÙØ´ÙâÙ _Ø³ÛØ´ÙâÙ _ÚÙØ§Ø±Ø´ÙâÙ _Ù¾ÛÙØ¬Ø´ÙâÙ _ÙÙâÛÙÛ_Ø´ÙâÙ Ù Ùâ'.split( 31264 '_' 31265 ), 31266 weekdaysMin: 'Û_د_س_Ú_Ù¾_Ù_Ø´'.split('_'), 31267 weekdaysParseExact: true, 31268 longDateFormat: { 31269 LT: 'HH:mm', 31270 LTS: 'HH:mm:ss', 31271 L: 'DD/MM/YYYY', 31272 LL: 'D MMMM YYYY', 31273 LLL: 'D MMMM YYYY HH:mm', 31274 LLLL: 'dddd, D MMMM YYYY HH:mm', 31275 }, 31276 meridiemParse: /ئÛÙØ§Ø±Ùâ|بÙâÛØ§ÙÛ/, 31277 isPM: function (input) { 31278 return /ئÛÙØ§Ø±Ùâ/.test(input); 31279 }, 31280 meridiem: function (hour, minute, isLower) { 31281 if (hour < 12) { 31282 return 'بÙâÛØ§ÙÛ'; 31283 } else { 31284 return 'ئÛÙØ§Ø±Ùâ'; 31285 } 31286 }, 31287 calendar: { 31288 sameDay: '[ئÙâÙ Ø±Û ÙØ§ØªÚÙ ÛØ±] LT', 31289 nextDay: '[بÙâÛØ§ÙÛ ÙØ§ØªÚÙ ÛØ±] LT', 31290 nextWeek: 'dddd [ÙØ§ØªÚÙ ÛØ±] LT', 31291 lastDay: '[دÙÛÙÛ ÙØ§ØªÚÙ ÛØ±] LT', 31292 lastWeek: 'dddd [ÙØ§ØªÚÙ ÛØ±] LT', 31293 sameElse: 'L', 31294 }, 31295 relativeTime: { 31296 future: 'ÙÙâ %s', 31297 past: '%s', 31298 s: 'ÚÙâÙØ¯ ÚØ±ÙÙâÛÙâÙ', 31299 ss: 'ÚØ±ÙÙâ %d', 31300 m: 'ÛÙâÙ Ø®ÙÙÙâÙ', 31301 mm: '%d Ø®ÙÙÙâÙ', 31302 h: 'ÛÙâÙ ÙØ§ØªÚÙ ÛØ±', 31303 hh: '%d ÙØ§ØªÚÙ ÛØ±', 31304 d: 'ÛÙâÙ ÚÛÚ', 31305 dd: '%d ÚÛÚ', 31306 M: 'ÛÙâ٠٠اÙÚ¯', 31307 MM: '%d ٠اÙÚ¯', 31308 y: 'ÛÙâ٠ساڵ', 31309 yy: '%d ساڵ', 31310 }, 31311 preparse: function (string) { 31312 return string 31313 .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { 31314 return numberMap[match]; 31315 }) 31316 .replace(/Ø/g, ','); 31317 }, 31318 postformat: function (string) { 31319 return string 31320 .replace(/\d/g, function (match) { 31321 return symbolMap[match]; 31322 }) 31323 .replace(/,/g, 'Ø'); 31324 }, 31325 week: { 31326 dow: 6, // Saturday is the first day of the week. 31327 doy: 12, // The week that contains Jan 12th is the first week of the year. 31328 }, 31329 }); 31330 31331 return ku; 31332 31333}))); 31334 31335 31336/***/ }), 31337/* 77 */ 31338/***/ (function(module, exports, __webpack_require__) { 31339 31340//! moment.js locale configuration 31341//! locale : Kyrgyz [ky] 31342//! author : Chyngyz Arystan uulu : https://github.com/chyngyz 31343 31344;(function (global, factory) { 31345 true ? factory(__webpack_require__(0)) : 31346 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 31347 factory(global.moment) 31348}(this, (function (moment) { 'use strict'; 31349 31350 //! moment.js locale configuration 31351 31352 var suffixes = { 31353 0: '-ÑÒ¯', 31354 1: '-Ñи', 31355 2: '-Ñи', 31356 3: '-ÑÒ¯', 31357 4: '-ÑÒ¯', 31358 5: '-Ñи', 31359 6: '-ÑÑ', 31360 7: '-Ñи', 31361 8: '-Ñи', 31362 9: '-ÑÑ', 31363 10: '-ÑÑ', 31364 20: '-ÑÑ', 31365 30: '-ÑÑ', 31366 40: '-ÑÑ', 31367 50: '-ÑÒ¯', 31368 60: '-ÑÑ', 31369 70: '-Ñи', 31370 80: '-Ñи', 31371 90: '-ÑÑ', 31372 100: '-ÑÒ¯', 31373 }; 31374 31375 var ky = moment.defineLocale('ky', { 31376 months: 'ÑнваÑÑ_ÑевÑалÑ_маÑÑ_апÑелÑ_май_иÑнÑ_иÑлÑ_авгÑÑÑ_ÑенÑÑбÑÑ_окÑÑбÑÑ_ноÑбÑÑ_декабÑÑ'.split( 31377 '_' 31378 ), 31379 monthsShort: 'Ñнв_Ñев_маÑÑ_апÑ_май_иÑнÑ_иÑлÑ_авг_Ñен_окÑ_ноÑ_дек'.split( 31380 '_' 31381 ), 31382 weekdays: 'ÐекÑемби_ÐүйÑөмбү_ШейÑемби_ШаÑÑемби_ÐейÑемби_ÐÑма_ÐÑемби'.split( 31383 '_' 31384 ), 31385 weekdaysShort: 'Ðек_Ðүй_Шей_ШаÑ_Ðей_ÐÑм_ÐÑе'.split('_'), 31386 weekdaysMin: 'Ðк_Ðй_Шй_ШÑ_Ðй_Ðм_ÐÑ'.split('_'), 31387 longDateFormat: { 31388 LT: 'HH:mm', 31389 LTS: 'HH:mm:ss', 31390 L: 'DD.MM.YYYY', 31391 LL: 'D MMMM YYYY', 31392 LLL: 'D MMMM YYYY HH:mm', 31393 LLLL: 'dddd, D MMMM YYYY HH:mm', 31394 }, 31395 calendar: { 31396 sameDay: '[Ðүгүн ÑааÑ] LT', 31397 nextDay: '[ÐÑÑең ÑааÑ] LT', 31398 nextWeek: 'dddd [ÑааÑ] LT', 31399 lastDay: '[ÐеÑÑÑ ÑааÑ] LT', 31400 lastWeek: '[Ó¨Ñкөн апÑанÑн] dddd [күнү] [ÑааÑ] LT', 31401 sameElse: 'L', 31402 }, 31403 relativeTime: { 31404 future: '%s иÑинде', 31405 past: '%s мÑÑÑн', 31406 s: 'биÑнеÑе ÑекÑнд', 31407 ss: '%d ÑекÑнд', 31408 m: 'Ð±Ð¸Ñ Ð¼Ò¯Ð½Ó©Ñ', 31409 mm: '%d мүнөÑ', 31410 h: 'Ð±Ð¸Ñ ÑааÑ', 31411 hh: '%d ÑааÑ', 31412 d: 'Ð±Ð¸Ñ ÐºÒ¯Ð½', 31413 dd: '%d күн', 31414 M: 'Ð±Ð¸Ñ Ð°Ð¹', 31415 MM: '%d ай', 31416 y: 'Ð±Ð¸Ñ Ð¶Ñл', 31417 yy: '%d жÑл', 31418 }, 31419 dayOfMonthOrdinalParse: /\d{1,2}-(Ñи|ÑÑ|ÑÒ¯|ÑÑ)/, 31420 ordinal: function (number) { 31421 var a = number % 10, 31422 b = number >= 100 ? 100 : null; 31423 return number + (suffixes[number] || suffixes[a] || suffixes[b]); 31424 }, 31425 week: { 31426 dow: 1, // Monday is the first day of the week. 31427 doy: 7, // The week that contains Jan 7th is the first week of the year. 31428 }, 31429 }); 31430 31431 return ky; 31432 31433}))); 31434 31435 31436/***/ }), 31437/* 78 */ 31438/***/ (function(module, exports, __webpack_require__) { 31439 31440//! moment.js locale configuration 31441//! locale : Luxembourgish [lb] 31442//! author : mweimerskirch : https://github.com/mweimerskirch 31443//! author : David Raison : https://github.com/kwisatz 31444 31445;(function (global, factory) { 31446 true ? factory(__webpack_require__(0)) : 31447 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 31448 factory(global.moment) 31449}(this, (function (moment) { 'use strict'; 31450 31451 //! moment.js locale configuration 31452 31453 function processRelativeTime(number, withoutSuffix, key, isFuture) { 31454 var format = { 31455 m: ['eng Minutt', 'enger Minutt'], 31456 h: ['eng Stonn', 'enger Stonn'], 31457 d: ['een Dag', 'engem Dag'], 31458 M: ['ee Mount', 'engem Mount'], 31459 y: ['ee Joer', 'engem Joer'], 31460 }; 31461 return withoutSuffix ? format[key][0] : format[key][1]; 31462 } 31463 function processFutureTime(string) { 31464 var number = string.substr(0, string.indexOf(' ')); 31465 if (eifelerRegelAppliesToNumber(number)) { 31466 return 'a ' + string; 31467 } 31468 return 'an ' + string; 31469 } 31470 function processPastTime(string) { 31471 var number = string.substr(0, string.indexOf(' ')); 31472 if (eifelerRegelAppliesToNumber(number)) { 31473 return 'viru ' + string; 31474 } 31475 return 'virun ' + string; 31476 } 31477 /** 31478 * Returns true if the word before the given number loses the '-n' ending. 31479 * e.g. 'an 10 Deeg' but 'a 5 Deeg' 31480 * 31481 * @param number {integer} 31482 * @returns {boolean} 31483 */ 31484 function eifelerRegelAppliesToNumber(number) { 31485 number = parseInt(number, 10); 31486 if (isNaN(number)) { 31487 return false; 31488 } 31489 if (number < 0) { 31490 // Negative Number --> always true 31491 return true; 31492 } else if (number < 10) { 31493 // Only 1 digit 31494 if (4 <= number && number <= 7) { 31495 return true; 31496 } 31497 return false; 31498 } else if (number < 100) { 31499 // 2 digits 31500 var lastDigit = number % 10, 31501 firstDigit = number / 10; 31502 if (lastDigit === 0) { 31503 return eifelerRegelAppliesToNumber(firstDigit); 31504 } 31505 return eifelerRegelAppliesToNumber(lastDigit); 31506 } else if (number < 10000) { 31507 // 3 or 4 digits --> recursively check first digit 31508 while (number >= 10) { 31509 number = number / 10; 31510 } 31511 return eifelerRegelAppliesToNumber(number); 31512 } else { 31513 // Anything larger than 4 digits: recursively check first n-3 digits 31514 number = number / 1000; 31515 return eifelerRegelAppliesToNumber(number); 31516 } 31517 } 31518 31519 var lb = moment.defineLocale('lb', { 31520 months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( 31521 '_' 31522 ), 31523 monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( 31524 '_' 31525 ), 31526 monthsParseExact: true, 31527 weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split( 31528 '_' 31529 ), 31530 weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), 31531 weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), 31532 weekdaysParseExact: true, 31533 longDateFormat: { 31534 LT: 'H:mm [Auer]', 31535 LTS: 'H:mm:ss [Auer]', 31536 L: 'DD.MM.YYYY', 31537 LL: 'D. MMMM YYYY', 31538 LLL: 'D. MMMM YYYY H:mm [Auer]', 31539 LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', 31540 }, 31541 calendar: { 31542 sameDay: '[Haut um] LT', 31543 sameElse: 'L', 31544 nextDay: '[Muer um] LT', 31545 nextWeek: 'dddd [um] LT', 31546 lastDay: '[Gëschter um] LT', 31547 lastWeek: function () {
31548 // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule 31549 switch (this.day()) { 31550 case 2: 31551 case 4: 31552 return '[Leschten] dddd [um] LT'; 31553 default: 31554 return '[Leschte] dddd [um] LT'; 31555 } 31556 }, 31557 }, 31558 relativeTime: { 31559 future: processFutureTime, 31560 past: processPastTime, 31561 s: 'e puer Sekonnen', 31562 ss: '%d Sekonnen', 31563 m: processRelativeTime, 31564 mm: '%d Minutten', 31565 h: processRelativeTime, 31566 hh: '%d Stonnen', 31567 d: processRelativeTime, 31568 dd: '%d Deeg', 31569 M: processRelativeTime, 31570 MM: '%d Méint', 31571 y: processRelativeTime, 31572 yy: '%d Joer', 31573 }, 31574 dayOfMonthOrdinalParse: /\d{1,2}\./, 31575 ordinal: '%d.', 31576 week: { 31577 dow: 1, // Monday is the first day of the week. 31578 doy: 4, // The week that contains Jan 4th is the first week of the year. 31579 }, 31580 }); 31581 31582 return lb; 31583 31584}))); 31585 31586 31587/***/ }), 31588/* 79 */ 31589/***/ (function(module, exports, __webpack_require__) { 31590 31591//! moment.js locale configuration 31592//! locale : Lao [lo] 31593//! author : Ryan Hart : https://github.com/ryanhart2 31594 31595;(function (global, factory) { 31596 true ? factory(__webpack_require__(0)) : 31597 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 31598 factory(global.moment) 31599}(this, (function (moment) { 'use strict'; 31600 31601 //! moment.js locale configuration 31602 31603 var lo = moment.defineLocale('lo', { 31604 months: 'ມັàºàºàºàº_àºàº¸àº¡àºàº²_ມີàºàº²_à»àº¡àºªàº²_àºàº¶àºàºªàº°àºàº²_ມິàºàº¸àºàº²_àºà»àº¥àº°àºàº»àº_ສິàºàº«àº²_àºàº±àºàºàº²_àºàº¸àº¥àº²_àºàº°àºàº´àº_àºàº±àºàº§àº²'.split( 31605 '_' 31606 ), 31607 monthsShort: 'ມັàºàºàºàº_àºàº¸àº¡àºàº²_ມີàºàº²_à»àº¡àºªàº²_àºàº¶àºàºªàº°àºàº²_ມິàºàº¸àºàº²_àºà»àº¥àº°àºàº»àº_ສິàºàº«àº²_àºàº±àºàºàº²_àºàº¸àº¥àº²_àºàº°àºàº´àº_àºàº±àºàº§àº²'.split( 31608 '_' 31609 ), 31610 weekdays: 'àºàº²àºàº´àº_àºàº±àº_àºàº±àºàºàº²àº_àºàº¸àº_àºàº°àº«àº±àº_ສຸàº_à»àºªàº»àº²'.split('_'), 31611 weekdaysShort: 'àºàº´àº_àºàº±àº_àºàº±àºàºàº²àº_àºàº¸àº_àºàº°àº«àº±àº_ສຸàº_à»àºªàº»àº²'.split('_'), 31612 weekdaysMin: 'àº_àº_àºàº_àº_àºàº«_ສàº_ສ'.split('_'), 31613 weekdaysParseExact: true, 31614 longDateFormat: { 31615 LT: 'HH:mm', 31616 LTS: 'HH:mm:ss', 31617 L: 'DD/MM/YYYY', 31618 LL: 'D MMMM YYYY', 31619 LLL: 'D MMMM YYYY HH:mm', 31620 LLLL: 'ວັàºdddd D MMMM YYYY HH:mm', 31621 }, 31622 meridiemParse: /àºàºàºà»àºàº»à»àº²|àºàºàºà»àº¥àº/, 31623 isPM: function (input) { 31624 return input === 'àºàºàºà»àº¥àº'; 31625 }, 31626 meridiem: function (hour, minute, isLower) { 31627 if (hour < 12) { 31628 return 'àºàºàºà»àºàº»à»àº²'; 31629 } else { 31630 return 'àºàºàºà»àº¥àº'; 31631 } 31632 }, 31633 calendar: { 31634 sameDay: '[ມືà»àºàºµà»à»àº§àº¥àº²] LT', 31635 nextDay: '[ມືà»àºàº·à»àºà»àº§àº¥àº²] LT', 31636 nextWeek: '[ວັàº]dddd[à»à»àº²à»àº§àº¥àº²] LT', 31637 lastDay: '[ມືà»àº§àº²àºàºàºµà»à»àº§àº¥àº²] LT', 31638 lastWeek: '[ວັàº]dddd[à»àº¥à»àº§àºàºµà»à»àº§àº¥àº²] LT', 31639 sameElse: 'L', 31640 }, 31641 relativeTime: { 31642 future: 'àºàºµàº %s', 31643 past: '%sàºà»àº²àºàº¡àº²', 31644 s: 'àºà»à»à»àºàº»à»àº²à»àºàº§àº´àºàº²àºàºµ', 31645 ss: '%d ວິàºàº²àºàºµ', 31646 m: '1 àºàº²àºàºµ', 31647 mm: '%d àºàº²àºàºµ', 31648 h: '1 àºàº»à»àº§à»àº¡àº', 31649 hh: '%d àºàº»à»àº§à»àº¡àº', 31650 d: '1 ມືà»', 31651 dd: '%d ມືà»', 31652 M: '1 à»àºàº·àºàº', 31653 MM: '%d à»àºàº·àºàº', 31654 y: '1 àºàºµ', 31655 yy: '%d àºàºµ', 31656 }, 31657 dayOfMonthOrdinalParse: /(àºàºµà»)\d{1,2}/, 31658 ordinal: function (number) { 31659 return 'àºàºµà»' + number; 31660 }, 31661 }); 31662 31663 return lo; 31664 31665}))); 31666 31667 31668/***/ }), 31669/* 80 */ 31670/***/ (function(module, exports, __webpack_require__) { 31671 31672//! moment.js locale configuration 31673//! locale : Lithuanian [lt] 31674//! author : Mindaugas MozÅ«ras : https://github.com/mmozuras 31675 31676;(function (global, factory) { 31677 true ? factory(__webpack_require__(0)) : 31678 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 31679 factory(global.moment) 31680}(this, (function (moment) { 'use strict'; 31681 31682 //! moment.js locale configuration 31683 31684 var units = { 31685 ss: 'sekundÄ_sekundžių_sekundes', 31686 m: 'minutÄ_minutÄs_minutÄ', 31687 mm: 'minutÄs_minuÄių_minutes', 31688 h: 'valanda_valandos_valandÄ ', 31689 hh: 'valandos_valandų_valandas',
vendor: 4,203 bytes, lines 31690-31812
31690 d: 'diena_dienos_dienÄ ', 31691 dd: 'dienos_dienų_dienas', 31692 M: 'mÄnuo_mÄnesio_mÄnesį', 31693 MM: 'mÄnesiai_mÄnesių_mÄnesius', 31694 y: 'metai_metų_metus', 31695 yy: 'metai_metų_metus', 31696 }; 31697 function translateSeconds(number, withoutSuffix, key, isFuture) { 31698 if (withoutSuffix) { 31699 return 'kelios sekundÄs'; 31700 } else { 31701 return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; 31702 } 31703 } 31704 function translateSingular(number, withoutSuffix, key, isFuture) { 31705 return withoutSuffix 31706 ? forms(key)[0] 31707 : isFuture 31708 ? forms(key)[1] 31709 : forms(key)[2]; 31710 } 31711 function special(number) { 31712 return number % 10 === 0 || (number > 10 && number < 20); 31713 } 31714 function forms(key) { 31715 return units[key].split('_'); 31716 } 31717 function translate(number, withoutSuffix, key, isFuture) { 31718 var result = number + ' '; 31719 if (number === 1) { 31720 return ( 31721 result + translateSingular(number, withoutSuffix, key[0], isFuture) 31722 ); 31723 } else if (withoutSuffix) { 31724 return result + (special(number) ? forms(key)[1] : forms(key)[0]); 31725 } else { 31726 if (isFuture) { 31727 return result + forms(key)[1]; 31728 } else { 31729 return result + (special(number) ? forms(key)[1] : forms(key)[2]); 31730 } 31731 } 31732 } 31733 var lt = moment.defineLocale('lt', { 31734 months: { 31735 format: 'sausio_vasario_kovo_balandžio_gegužÄs_birželio_liepos_rugpjÅ«Äio_rugsÄjo_spalio_lapkriÄio_gruodžio'.split( 31736 '_' 31737 ), 31738 standalone: 'sausis_vasaris_kovas_balandis_gegužÄ_birželis_liepa_rugpjÅ«tis_rugsÄjis_spalis_lapkritis_gruodis'.split( 31739 '_' 31740 ), 31741 isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, 31742 }, 31743 monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), 31744 weekdays: { 31745 format: 'sekmadienį_pirmadienį_antradienį_treÄiadienį_ketvirtadienį_penktadienį_Å¡eÅ¡tadienį'.split( 31746 '_' 31747 ), 31748 standalone: 'sekmadienis_pirmadienis_antradienis_treÄiadienis_ketvirtadienis_penktadienis_Å¡eÅ¡tadienis'.split( 31749 '_' 31750 ), 31751 isFormat: /dddd HH:mm/, 31752 }, 31753 weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Å eÅ¡'.split('_'), 31754 weekdaysMin: 'S_P_A_T_K_Pn_Å '.split('_'), 31755 weekdaysParseExact: true, 31756 longDateFormat: { 31757 LT: 'HH:mm', 31758 LTS: 'HH:mm:ss', 31759 L: 'YYYY-MM-DD', 31760 LL: 'YYYY [m.] MMMM D [d.]', 31761 LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', 31762 LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', 31763 l: 'YYYY-MM-DD', 31764 ll: 'YYYY [m.] MMMM D [d.]', 31765 lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', 31766 llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', 31767 }, 31768 calendar: { 31769 sameDay: '[Å iandien] LT', 31770 nextDay: '[Rytoj] LT', 31771 nextWeek: 'dddd LT', 31772 lastDay: '[Vakar] LT', 31773 lastWeek: '[PraÄjusį] dddd LT', 31774 sameElse: 'L', 31775 }, 31776 relativeTime: { 31777 future: 'po %s', 31778 past: 'prieÅ¡ %s', 31779 s: translateSeconds, 31780 ss: translate, 31781 m: translateSingular, 31782 mm: translate, 31783 h: translateSingular, 31784 hh: translate, 31785 d: translateSingular, 31786 dd: translate, 31787 M: translateSingular, 31788 MM: translate, 31789 y: translateSingular, 31790 yy: translate, 31791 }, 31792 dayOfMonthOrdinalParse: /\d{1,2}-oji/, 31793 ordinal: function (number) { 31794 return number + '-oji'; 31795 }, 31796 week: { 31797 dow: 1, // Monday is the first day of the week. 31798 doy: 4, // The week that contains Jan 4th is the first week of the year. 31799 }, 31800 }); 31801 31802 return lt; 31803 31804}))); 31805 31806 31807/***/ }), 31808/* 81 */ 31809/***/ (function(module, exports, __webpack_require__) { 31810 31811//! moment.js locale configuration 31812//! locale : Latvian [lv]
31813//! author : Kristaps Karlsons : https://github.com/skakri 31814//! author : JÄnis Elmeris : https://github.com/JanisE 31815 31816;(function (global, factory) { 31817 true ? factory(__webpack_require__(0)) : 31818 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 31819 factory(global.moment) 31820}(this, (function (moment) { 'use strict'; 31821 31822 //! moment.js locale configuration 31823 31824 var units = { 31825 ss: 'sekundes_sekundÄm_sekunde_sekundes'.split('_'), 31826 m: 'minÅ«tes_minÅ«tÄm_minÅ«te_minÅ«tes'.split('_'), 31827 mm: 'minÅ«tes_minÅ«tÄm_minÅ«te_minÅ«tes'.split('_'), 31828 h: 'stundas_stundÄm_stunda_stundas'.split('_'), 31829 hh: 'stundas_stundÄm_stunda_stundas'.split('_'), 31830 d: 'dienas_dienÄm_diena_dienas'.split('_'), 31831 dd: 'dienas_dienÄm_diena_dienas'.split('_'), 31832 M: 'mÄneÅ¡a_mÄneÅ¡iem_mÄnesis_mÄneÅ¡i'.split('_'), 31833 MM: 'mÄneÅ¡a_mÄneÅ¡iem_mÄnesis_mÄneÅ¡i'.split('_'), 31834 y: 'gada_gadiem_gads_gadi'.split('_'), 31835 yy: 'gada_gadiem_gads_gadi'.split('_'), 31836 }; 31837 /** 31838 * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. 31839 */ 31840 function format(forms, number, withoutSuffix) { 31841 if (withoutSuffix) { 31842 // E.g. "21 minÅ«te", "3 minÅ«tes". 31843 return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; 31844 } else { 31845 // E.g. "21 minÅ«tes" as in "pÄc 21 minÅ«tes". 31846 // E.g. "3 minÅ«tÄm" as in "pÄc 3 minÅ«tÄm". 31847 return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; 31848 } 31849 } 31850 function relativeTimeWithPlural(number, withoutSuffix, key) { 31851 return number + ' ' + format(units[key], number, withoutSuffix); 31852 } 31853 function relativeTimeWithSingular(number, withoutSuffix, key) { 31854 return format(units[key], number, withoutSuffix); 31855 } 31856 function relativeSeconds(number, withoutSuffix) { 31857 return withoutSuffix ? 'dažas sekundes' : 'dažÄm sekundÄm'; 31858 } 31859 31860 var lv = moment.defineLocale('lv', { 31861 months: 'janvÄris_februÄris_marts_aprÄ«lis_maijs_jÅ«nijs_jÅ«lijs_augusts_septembris_oktobris_novembris_decembris'.split( 31862 '_' 31863 ), 31864 monthsShort: 'jan_feb_mar_apr_mai_jÅ«n_jÅ«l_aug_sep_okt_nov_dec'.split('_'), 31865 weekdays: 'svÄtdiena_pirmdiena_otrdiena_treÅ¡diena_ceturtdiena_piektdiena_sestdiena'.split( 31866 '_' 31867 ), 31868 weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), 31869 weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), 31870 weekdaysParseExact: true, 31871 longDateFormat: { 31872 LT: 'HH:mm', 31873 LTS: 'HH:mm:ss', 31874 L: 'DD.MM.YYYY.', 31875 LL: 'YYYY. [gada] D. MMMM', 31876 LLL: 'YYYY. [gada] D. MMMM, HH:mm', 31877 LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', 31878 }, 31879 calendar: { 31880 sameDay: '[Å odien pulksten] LT', 31881 nextDay: '[RÄ«t pulksten] LT', 31882 nextWeek: 'dddd [pulksten] LT', 31883 lastDay: '[Vakar pulksten] LT', 31884 lastWeek: '[PagÄjuÅ¡Ä] dddd [pulksten] LT', 31885 sameElse: 'L', 31886 }, 31887 relativeTime: { 31888 future: 'pÄc %s', 31889 past: 'pirms %s', 31890 s: relativeSeconds, 31891 ss: relativeTimeWithPlural, 31892 m: relativeTimeWithSingular, 31893 mm: relativeTimeWithPlural, 31894 h: relativeTimeWithSingular, 31895 hh: relativeTimeWithPlural, 31896 d: relativeTimeWithSingular, 31897 dd: relativeTimeWithPlural, 31898 M: relativeTimeWithSingular, 31899 MM: relativeTimeWithPlural, 31900 y: relativeTimeWithSingular, 31901 yy: relativeTimeWithPlural, 31902 }, 31903 dayOfMonthOrdinalParse: /\d{1,2}\./, 31904 ordinal: '%d.', 31905 week: { 31906 dow: 1, // Monday is the first day of the week. 31907 doy: 4, // The week that contains Jan 4th is the first week of the year. 31908 }, 31909 }); 31910 31911 return lv; 31912 31913}))); 31914 31915 31916/***/ }), 31917/* 82 */ 31918/***/ (function(module, exports, __webpack_require__) { 31919 31920//! moment.js locale configuration 31921//! locale : Montenegrin [me] 31922//! author : Miodrag NikaÄ <[email protected]> : https://github.com/miodragnikac 31923 31924;(function (global, factory) { 31925 true ? factory(__webpack_require__(0)) : 31926 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 31927 factory(global.moment) 31928}(this, (function (moment) { 'use strict'; 31929 31930 //! moment.js locale configuration 31931 31932 var translator = { 31933 words: { 31934 //Different grammatical cases 31935 ss: ['sekund', 'sekunda', 'sekundi'], 31936 m: ['jedan minut', 'jednog minuta'], 31937 mm: ['minut', 'minuta', 'minuta'], 31938 h: ['jedan sat', 'jednog sata'], 31939 hh: ['sat', 'sata', 'sati'], 31940 dd: ['dan', 'dana', 'dana'], 31941 MM: ['mjesec', 'mjeseca', 'mjeseci'], 31942 yy: ['godina', 'godine', 'godina'], 31943 }, 31944 correctGrammaticalCase: function (number, wordKey) { 31945 return number === 1 31946 ? wordKey[0] 31947 : number >= 2 && number <= 4 31948 ? wordKey[1] 31949 : wordKey[2]; 31950 }, 31951 translate: function (number, withoutSuffix, key) { 31952 var wordKey = translator.words[key]; 31953 if (key.length === 1) { 31954 return withoutSuffix ? wordKey[0] : wordKey[1]; 31955 } else { 31956 return ( 31957 number + 31958 ' ' + 31959 translator.correctGrammaticalCase(number, wordKey) 31960 ); 31961 } 31962 }, 31963 }; 31964 31965 var me = moment.defineLocale('me', { 31966 months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( 31967 '_' 31968 ), 31969 monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split( 31970 '_' 31971 ), 31972 monthsParseExact: true, 31973 weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split( 31974 '_' 31975 ), 31976 weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'), 31977 weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'), 31978 weekdaysParseExact: true, 31979 longDateFormat: { 31980 LT: 'H:mm', 31981 LTS: 'H:mm:ss', 31982 L: 'DD.MM.YYYY', 31983 LL: 'D. MMMM YYYY', 31984 LLL: 'D. MMMM YYYY H:mm', 31985 LLLL: 'dddd, D. MMMM YYYY H:mm', 31986 }, 31987 calendar: { 31988 sameDay: '[danas u] LT', 31989 nextDay: '[sjutra u] LT', 31990 31991 nextWeek: function () { 31992 switch (this.day()) { 31993 case 0: 31994 return '[u] [nedjelju] [u] LT'; 31995 case 3: 31996 return '[u] [srijedu] [u] LT'; 31997 case 6: 31998 return '[u] [subotu] [u] LT'; 31999 case 1: 32000 case 2: 32001 case 4: 32002 case 5: 32003 return '[u] dddd [u] LT'; 32004 } 32005 }, 32006 lastDay: '[juÄe u] LT', 32007 lastWeek: function () { 32008 var lastWeekDays = [ 32009 '[proÅ¡le] [nedjelje] [u] LT', 32010 '[proÅ¡log] [ponedjeljka] [u] LT', 32011 '[proÅ¡log] [utorka] [u] LT', 32012 '[proÅ¡le] [srijede] [u] LT', 32013 '[proÅ¡log] [Äetvrtka] [u] LT', 32014 '[proÅ¡log] [petka] [u] LT', 32015 '[proÅ¡le] [subote] [u] LT', 32016 ]; 32017 return lastWeekDays[this.day()]; 32018 }, 32019 sameElse: 'L', 32020 }, 32021 relativeTime: { 32022 future: 'za %s', 32023 past: 'prije %s', 32024 s: 'nekoliko sekundi', 32025 ss: translator.translate, 32026 m: translator.translate, 32027 mm: translator.translate, 32028 h: translator.translate, 32029 hh: translator.translate, 32030 d: 'dan', 32031 dd: translator.translate, 32032 M: 'mjesec', 32033 MM: translator.translate, 32034 y: 'godinu', 32035 yy: translator.translate, 32036 }, 32037 dayOfMonthOrdinalParse: /\d{1,2}\./, 32038 ordinal: '%d.', 32039 week: { 32040 dow: 1, // Monday is the first day of the week. 32041 doy: 7, // The week that contains Jan 7th is the first week of the year. 32042 }, 32043 }); 32044 32045 return me; 32046 32047}))); 32048 32049 32050/***/ }), 32051/* 83 */ 32052/***/ (function(module, exports, __webpack_require__) { 32053 32054//! moment.js locale configuration 32055//! locale : Maori [mi] 32056//! author : John Corrigan <[email protected]> : https://github.com/johnideal 32057 32058;(function (global, factory) { 32059 true ? factory(__webpack_require__(0)) : 32060 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 32061 factory(global.moment) 32062}(this, (function (moment) { 'use strict'; 32063 32064 //! moment.js locale configuration 32065 32066 var mi = moment.defineLocale('mi', { 32067 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( 32068 '_' 32069 ), 32070 monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_HÅngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( 32071 '_' 32072 ), 32073 monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, 32074 monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, 32075 monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, 32076 monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, 32077 weekdays: 'RÄtapu_Mane_TÅ«rei_Wenerei_TÄite_Paraire_HÄtarei'.split('_'), 32078 weekdaysShort: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'), 32079 weekdaysMin: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'), 32080 longDateFormat: { 32081 LT: 'HH:mm', 32082 LTS: 'HH:mm:ss', 32083 L: 'DD/MM/YYYY', 32084 LL: 'D MMMM YYYY', 32085 LLL: 'D MMMM YYYY [i] HH:mm', 32086 LLLL: 'dddd, D MMMM YYYY [i] HH:mm', 32087 }, 32088 calendar: { 32089 sameDay: '[i teie mahana, i] LT', 32090 nextDay: '[apopo i] LT', 32091 nextWeek: 'dddd [i] LT', 32092 lastDay: '[inanahi i] LT', 32093 lastWeek: 'dddd [whakamutunga i] LT', 32094 sameElse: 'L', 32095 }, 32096 relativeTime: { 32097 future: 'i roto i %s', 32098 past: '%s i mua', 32099 s: 'te hÄkona ruarua', 32100 ss: '%d hÄkona', 32101 m: 'he meneti', 32102 mm: '%d meneti', 32103 h: 'te haora', 32104 hh: '%d haora', 32105 d: 'he ra', 32106 dd: '%d ra', 32107 M: 'he marama', 32108 MM: '%d marama', 32109 y: 'he tau', 32110 yy: '%d tau', 32111 }, 32112 dayOfMonthOrdinalParse: /\d{1,2}º/, 32113 ordinal: '%dº', 32114 week: { 32115 dow: 1, // Monday is the first day of the week. 32116 doy: 4, // The week that contains Jan 4th is the first week of the year. 32117 }, 32118 }); 32119 32120 return mi; 32121 32122}))); 32123 32124 32125/***/ }), 32126/* 84 */ 32127/***/ (function(module, exports, __webpack_require__) { 32128 32129//! moment.js locale configuration 32130//! locale : Macedonian [mk] 32131//! author : Borislav Mickov : https://github.com/B0k0 32132//! author : Sashko Todorov : https://github.com/bkyceh 32133 32134;(function (global, factory) { 32135 true ? factory(__webpack_require__(0)) : 32136 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 32137 factory(global.moment) 32138}(this, (function (moment) { 'use strict'; 32139 32140 //! moment.js locale configuration 32141 32142 var mk = moment.defineLocale('mk', { 32143 months: 'ÑанÑаÑи_ÑевÑÑаÑи_маÑÑ_апÑил_маÑ_ÑÑни_ÑÑли_авгÑÑÑ_ÑепÑемвÑи_окÑомвÑи_ноемвÑи_декемвÑи'.split( 32144 '_' 32145 ), 32146 monthsShort: 'Ñан_Ñев_маÑ_апÑ_маÑ_ÑÑн_ÑÑл_авг_Ñеп_окÑ_ное_дек'.split('_'), 32147 weekdays: 'недела_понеделник_вÑоÑник_ÑÑеда_ÑеÑвÑÑок_пеÑок_ÑабоÑа'.split( 32148 '_' 32149 ), 32150 weekdaysShort: 'нед_пон_вÑо_ÑÑе_ÑеÑ_пеÑ_Ñаб'.split('_'), 32151 weekdaysMin: 'нe_пo_вÑ_ÑÑ_Ñе_пе_Ña'.split('_'), 32152 longDateFormat: { 32153 LT: 'H:mm', 32154 LTS: 'H:mm:ss', 32155 L: 'D.MM.YYYY', 32156 LL: 'D MMMM YYYY', 32157 LLL: 'D MMMM YYYY H:mm', 32158 LLLL: 'dddd, D MMMM YYYY H:mm', 32159 }, 32160 calendar: { 32161 sameDay: '[ÐÐµÐ½ÐµÑ Ð²Ð¾] LT', 32162 nextDay: '[УÑÑе во] LT', 32163 nextWeek: '[Ðо] dddd [во] LT', 32164 lastDay: '[ÐÑеÑа во] LT', 32165 lastWeek: function () { 32166 switch (this.day()) { 32167 case 0: 32168 case 3: 32169 case 6: 32170 return '[ÐзминаÑаÑа] dddd [во] LT'; 32171 case 1: 32172 case 2: 32173 case 4: 32174 case 5: 32175 return '[ÐзминаÑиоÑ] dddd [во] LT'; 32176 } 32177 }, 32178 sameElse: 'L', 32179 }, 32180 relativeTime: { 32181 future: 'за %s', 32182 past: 'пÑед %s', 32183 s: 'Ð½ÐµÐºÐ¾Ð»ÐºÑ ÑекÑнди', 32184 ss: '%d ÑекÑнди', 32185 m: 'една минÑÑа', 32186 mm: '%d минÑÑи', 32187 h: 'еден ÑаÑ', 32188 hh: '%d ÑаÑа', 32189 d: 'еден ден', 32190 dd: '%d дена', 32191 M: 'еден меÑеÑ', 32192 MM: '%d меÑеÑи', 32193 y: 'една година', 32194 yy: '%d години', 32195 }, 32196 dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|Ñи|ви|Ñи|ми)/, 32197 ordinal: function (number) { 32198 var lastDigit = number % 10, 32199 last2Digits = number % 100; 32200 if (number === 0) { 32201 return number + '-ев'; 32202 } else if (last2Digits === 0) { 32203 return number + '-ен'; 32204 } else if (last2Digits > 10 && last2Digits < 20) { 32205 return number + '-Ñи'; 32206 } else if (lastDigit === 1) { 32207 return number + '-ви'; 32208 } else if (lastDigit === 2) { 32209 return number + '-Ñи'; 32210 } else if (lastDigit === 7 || lastDigit === 8) { 32211 return number + '-ми'; 32212 } else { 32213 return number + '-Ñи'; 32214 } 32215 }, 32216 week: { 32217 dow: 1, // Monday is the first day of the week. 32218 doy: 7, // The week that contains Jan 7th is the first week of the year. 32219 }, 32220 }); 32221 32222 return mk; 32223 32224}))); 32225 32226 32227/***/ }), 32228/* 85 */ 32229/***/ (function(module, exports, __webpack_require__) { 32230 32231//! moment.js locale configuration 32232//! locale : Malayalam [ml] 32233//! author : Floyd Pink : https://github.com/floydpink 32234 32235;(function (global, factory) { 32236 true ? factory(__webpack_require__(0)) : 32237 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 32238 factory(global.moment) 32239}(this, (function (moment) { 'use strict'; 32240 32241 //! moment.js locale configuration 32242 32243 var ml = moment.defineLocale('ml', { 32244 months: 'à´à´¨àµà´µà´°à´¿_à´«àµà´¬àµà´°àµà´µà´°à´¿_മാർà´àµà´à
32244µ_à´à´ªàµà´°à´¿àµ½_à´®àµà´¯àµ_à´àµàµº_à´àµà´²àµ_à´à´à´¸àµà´±àµà´±àµ_à´¸àµà´ªàµà´±àµà´±à´à´¬àµ¼_à´à´àµà´àµà´¬àµ¼_നവà´à´¬àµ¼_à´¡à´¿à´¸à´à´¬àµ¼'.split( 32245 '_' 32246 ), 32247 monthsShort: 'à´à´¨àµ._à´«àµà´¬àµà´°àµ._മാർ._à´à´ªàµà´°à´¿._à´®àµà´¯àµ_à´àµàµº_à´àµà´²àµ._à´à´._à´¸àµà´ªàµà´±àµà´±._à´à´àµà´àµ._നവà´._à´¡à´¿à´¸à´.'.split( 32248 '_' 32249 ), 32250 monthsParseExact: true, 32251 weekdays: 'à´à´¾à´¯à´±à´¾à´´àµà´_തിà´àµà´à´³à´¾à´´àµà´_à´àµà´µàµà´µà´¾à´´àµà´_à´¬àµà´§à´¨à´¾à´´àµà´_à´µàµà´¯à´¾à´´à´¾à´´àµà´_à´µàµà´³àµà´³à´¿à´¯à´¾à´´àµà´_ശനിയാഴàµà´'.split( 32252 '_' 32253 ), 32254 weekdaysShort: 'à´à´¾à´¯àµ¼_തിà´àµà´àµ¾_à´àµà´µàµà´µ_à´¬àµà´§àµ»_à´µàµà´¯à´¾à´´à´_à´µàµà´³àµà´³à´¿_ശനി'.split('_'), 32255 weekdaysMin: 'à´à´¾_തി_à´àµ_à´¬àµ_à´µàµà´¯à´¾_à´µàµ_à´¶'.split('_'), 32256 longDateFormat: { 32257 LT: 'A h:mm -à´¨àµ', 32258 LTS: 'A h:mm:ss -à´¨àµ', 32259 L: 'DD/MM/YYYY', 32260 LL: 'D MMMM YYYY', 32261 LLL: 'D MMMM YYYY, A h:mm -à´¨àµ', 32262 LLLL: 'dddd, D MMMM YYYY, A h:mm -à´¨àµ', 32263 }, 32264 calendar: { 32265 sameDay: '[à´à´¨àµà´¨àµ] LT', 32266 nextDay: '[നാളàµ] LT', 32267 nextWeek: 'dddd, LT', 32268 lastDay: '[à´à´¨àµà´¨à´²àµ] LT', 32269 lastWeek: '[à´à´´à´¿à´àµà´] dddd, LT', 32270 sameElse: 'L', 32271 }, 32272 relativeTime: { 32273 future: '%s à´à´´à´¿à´àµà´àµ', 32274 past: '%s à´®àµàµ»à´ªàµ', 32275 s: 'ഠൽപ നിമിഷà´àµà´àµ¾', 32276 ss: '%d à´¸àµà´àµà´àµ»à´¡àµ', 32277 m: 'à´à´°àµ മിനിറàµà´±àµ', 32278 mm: '%d മിനിറàµà´±àµ', 32279 h: 'à´à´°àµ മണിà´àµà´àµàµ¼', 32280 hh: '%d മണിà´àµà´àµàµ¼', 32281 d: 'à´à´°àµ ദിവസà´', 32282 dd: '%d ദിവസà´', 32283 M: 'à´à´°àµ മാസà´', 32284 MM: '%d മാസà´', 32285 y: 'à´à´°àµ വർഷà´', 32286 yy: '%d വർഷà´', 32287 }, 32288 meridiemParse: /രാതàµà´°à´¿|രാവിലàµ|à´à´àµà´ à´à´´à´¿à´àµà´àµ|à´µàµà´àµà´¨àµà´¨àµà´°à´|രാതàµà´°à´¿/i, 32289 meridiemHour: function (hour, meridiem) { 32290 if (hour === 12) { 32291 hour = 0; 32292 } 32293 if ( 32294 (meridiem === 'രാതàµà´°à´¿' && hour >= 4) || 32295 meridiem === 'à´à´àµà´ à´à´´à´¿à´àµà´àµ' || 32296 meridiem === 'à´µàµà´àµà´¨àµà´¨àµà´°à´' 32297 ) { 32298 return hour + 12; 32299 } else { 32300 return hour; 32301 } 32302 }, 32303 meridiem: function (hour, minute, isLower) { 32304 if (hour < 4) { 32305 return 'രാതàµà´°à´¿'; 32306 } else if (hour < 12) { 32307 return 'രാവിലàµ'; 32308 } else if (hour < 17) { 32309 return 'à´à´àµà´ à´à´´à´¿à´àµà´àµ'; 32310 } else if (hour < 20) { 32311 return 'à´µàµà´àµà´¨àµà´¨àµà´°à´'; 32312 } else { 32313 return 'രാതàµà´°à´¿'; 32314 } 32315 }, 32316 }); 32317 32318 return ml; 32319 32320}))); 32321 32322 32323/***/ }), 32324/* 86 */ 32325/***/ (function(module, exports, __webpack_require__) { 32326 32327//! moment.js locale configuration 32328//! locale : Mongolian [mn] 32329//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7 32330 32331;(function (global, factory) { 32332 true ? factory(__webpack_require__(0)) : 32333 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 32334 factory(global.moment) 32335}(this, (function (moment) { 'use strict'; 32336 32337 //! moment.js locale configuration 32338 32339 function translate(number, withoutSuffix, key, isFuture) { 32340 switch (key) { 32341 case 's': 32342 return withoutSuffix ? 'Ñ ÑÐ´Ñ Ñн ÑекÑнд' : 'Ñ ÑÐ´Ñ Ñн ÑекÑндÑн'; 32343 case 'ss': 32344 return number + (withoutSuffix ? ' ÑекÑнд' : ' ÑекÑндÑн'); 32345 case 'm': 32346 case 'mm': 32347 return number + (withoutSuffix ? ' минÑÑ' : ' минÑÑÑн'); 32348 case 'h': 32349 case 'hh': 32350 return number + (withoutSuffix ? ' Ñаг' : ' Ñагийн'); 32351 case 'd': 32352 case 'dd': 32353 return number + (withoutSuffix ? ' өдөÑ' : ' өдÑийн'); 32354 case 'M': 32355 case 'MM': 32356 return number + (withoutSuffix ? ' ÑаÑ' : ' ÑаÑÑн'); 32357 case 'y': 32358 case 'yy': 32359 return number + (withoutSuffix ? ' жил' : ' жилийн'); 32360 default: 32361 return number; 32362 } 32363 } 32364 32365 var mn = moment.defineLocale('mn', { 32366 months: 'ÐÑгдүгÑÑÑ ÑаÑ_ХоÑÑдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑÑавдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÓ©ÑөвдүгÑÑÑ ÑаÑ_ТавдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑÑгадÑÐ³Ð°Ð°Ñ ÑаÑ_ÐолдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐаймдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑдүгÑÑÑ ÑаÑ_ÐÑавдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑван нÑгдүгÑÑÑ ÑаÑ_ÐÑван Ñ Ð¾ÑÑдÑÐ³Ð°Ð°Ñ ÑаÑ'.split( 32367 '_' 32368 ), 32369 monthsShort: '1 ÑаÑ_2 ÑаÑ_3 ÑаÑ_4 ÑаÑ_5 ÑаÑ_6 ÑаÑ_7 ÑаÑ_8 ÑаÑ_9 ÑаÑ_10 ÑаÑ_11 ÑаÑ_12 ÑаÑ'.split( 32370 '_' 32371 ), 32372 monthsParseExact: true, 32373 weekdays: 'ÐÑм_Ðаваа_ÐÑгмаÑ_ÐÑ Ð°Ð³Ð²Ð°_ÐÒ¯ÑÑв_ÐааÑан_ÐÑмба'.split('_'), 32374 weekdaysShort: 'ÐÑм_Ðав_ÐÑг_ÐÑ Ð°_ÐÒ¯Ñ_Ðаа_ÐÑм'.split('_'), 32375 weekdaysMin: 'ÐÑ_Ðа_ÐÑ_ÐÑ _ÐÒ¯_Ðа_ÐÑ'.split('_'), 32376 weekdaysParseExact: true, 32377 longDateFormat: { 32378 LT: 'HH:mm', 32379 LTS: 'HH:mm:ss', 32380 L: 'YYYY-MM-DD', 32381 LL: 'YYYY Ð¾Ð½Ñ MMMMÑн D', 32382 LLL: 'YYYY Ð¾Ð½Ñ MMMMÑн D HH:mm', 32383 LLLL: 'dddd, YYYY Ð¾Ð½Ñ MMMMÑн D HH:mm', 32384 }, 32385 meridiemParse: /Ò®Ó¨|ҮХ/i, 32386 isPM: function (input) { 32387 return input === 'ҮХ'; 32388 }, 32389 meridiem: function (hour, minute, isLower) { 32390 if (hour < 12) { 32391 return 'Ò®Ó¨'; 32392 } else { 32393 return 'ҮХ'; 32394 } 32395 }, 32396 calendar: { 32397 sameDay: '[ӨнөөдөÑ] LT',
32398 nextDay: '[ÐаÑгааÑ] LT', 32399 nextWeek: '[ÐÑÑÑ ] dddd LT', 32400 lastDay: '[Ó¨ÑигдөÑ] LT', 32401 lastWeek: '[ӨнгөÑÑөн] dddd LT', 32402 sameElse: 'L', 32403 }, 32404 relativeTime: { 32405 future: '%s даÑаа', 32406 past: '%s өмнө', 32407 s: translate, 32408 ss: translate, 32409 m: translate, 32410 mm: translate, 32411 h: translate, 32412 hh: translate, 32413 d: translate, 32414 dd: translate, 32415 M: translate, 32416 MM: translate, 32417 y: translate, 32418 yy: translate, 32419 }, 32420 dayOfMonthOrdinalParse: /\d{1,2} өдөÑ/, 32421 ordinal: function (number, period) { 32422 switch (period) { 32423 case 'd': 32424 case 'D': 32425 case 'DDD': 32426 return number + ' өдөÑ'; 32427 default: 32428 return number; 32429 } 32430 }, 32431 }); 32432 32433 return mn; 32434 32435}))); 32436 32437 32438/***/ }), 32439/* 87 */ 32440/***/ (function(module, exports, __webpack_require__) { 32441 32442//! moment.js locale configuration 32443//! locale : Marathi [mr] 32444//! author : Harshad Kale : https://github.com/kalehv 32445//! author : Vivek Athalye : https://github.com/vnathalye 32446 32447;(function (global, factory) { 32448 true ? factory(__webpack_require__(0)) : 32449 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 32450 factory(global.moment) 32451}(this, (function (moment) { 'use strict'; 32452 32453 //! moment.js locale configuration 32454 32455 var symbolMap = { 32456 1: '१', 32457 2: '२', 32458 3: '३', 32459 4: '४', 32460 5: '५', 32461 6: '६', 32462 7: 'à¥', 32463 8: '८', 32464 9: '९', 32465 0: '०', 32466 }, 32467 numberMap = { 32468 '१': '1', 32469 '२': '2', 32470 '३': '3', 32471 '४': '4', 32472 '५': '5', 32473 '६': '6', 32474 'à¥': '7', 32475 '८': '8', 32476 '९': '9', 32477 '०': '0', 32478 }; 32479 32480 function relativeTimeMr(number, withoutSuffix, string, isFuture) { 32481 var output = ''; 32482 if (withoutSuffix) { 32483 switch (string) { 32484 case 's': 32485 output = 'à¤à¤¾à¤¹à¥ सà¥à¤à¤à¤¦'; 32486 break; 32487 case 'ss': 32488 output = '%d सà¥à¤à¤à¤¦'; 32489 break; 32490 case 'm': 32491 output = 'à¤à¤ मिनिà¤'; 32492 break; 32493 case 'mm': 32494 output = '%d मिनिà¤à¥'; 32495 break; 32496 case 'h': 32497 output = 'à¤à¤ तास'; 32498 break; 32499 case 'hh': 32500 output = '%d तास'; 32501 break; 32502 case 'd': 32503 output = 'à¤à¤ दिवस'; 32504 break; 32505 case 'dd': 32506 output = '%d दिवस'; 32507 break; 32508 case 'M': 32509 output = 'à¤à¤ महिना'; 32510 break; 32511 case 'MM': 32512 output = '%d महिनà¥'; 32513 break; 32514 case 'y': 32515 output = 'à¤à¤ वरà¥à¤·'; 32516 break; 32517 case 'yy': 32518 output = '%d वरà¥à¤·à¥'; 32519 break; 32520 } 32521 } else { 32522 switch (string) { 32523 case 's': 32524 output = 'à¤à¤¾à¤¹à¥ सà¥à¤à¤à¤¦à¤¾à¤'; 32525 break; 32526 case 'ss': 32527 output = '%d सà¥à¤à¤à¤¦à¤¾à¤'; 32528 break; 32529 case 'm': 32530 output = 'à¤à¤à¤¾ मिनिà¤à¤¾'; 32531 break; 32532 case 'mm': 32533 output = '%d मिनिà¤à¤¾à¤'; 32534 break; 32535 case 'h': 32536 output = 'à¤à¤à¤¾ तासा'; 32537 break; 32538 case 'hh': 32539 output = '%d तासाà¤'; 32540 break; 32541 case 'd': 32542 output = 'à¤à¤à¤¾ दिवसा'; 32543 break; 32544 case 'dd': 32545 output = '%d दिवसाà¤'; 32546 break; 32547 case 'M': 32548 output = 'à¤à¤à¤¾ महिनà¥à¤¯à¤¾'; 32549 break; 32550 case 'MM': 32551 output = '%d महिनà¥à¤¯à¤¾à¤'; 32552 break; 32553 case 'y': 32554 output = 'à¤à¤à¤¾ वरà¥à¤·à¤¾'; 32555 break; 32556 case 'yy': 32557 output = '%d वरà¥à¤·à¤¾à¤'; 32558 break; 32559 } 32560 } 32561 return output.replace(/%d/i, number); 32562 } 32563 32564 var mr = moment.defineLocale('mr', { 32565 months: 'à¤à¤¾à¤¨à¥à¤µà¤¾à¤°à¥_फà¥à¤¬à¥à¤°à¥à¤µà¤¾à¤°à¥_मारà¥à¤_à¤à¤ªà¥à¤°à¤¿à¤²_मà¥_à¤à¥à¤¨_à¤à¥à¤²à¥_à¤à¤à¤¸à¥à¤_सपà¥à¤à¥à¤à¤¬à¤°_à¤à¤à¥à¤à¥à¤¬à¤°_नà¥à¤µà¥à¤¹à¥à¤à¤¬à¤°_डिसà¥à¤à¤¬à¤°'.split( 32566 '_' 32567 ), 32568 monthsShort: 'à¤à¤¾à¤¨à¥._फà¥à¤¬à¥à¤°à¥._मारà¥à¤._à¤à¤ªà¥à¤°à¤¿._मà¥._à¤à¥à¤¨._à¤à¥à¤²à¥._à¤à¤._सपà¥à¤à¥à¤._à¤à¤à¥à¤à¥._नà¥à¤µà¥à¤¹à¥à¤._डिसà¥à¤.'.split( 32569 '_' 32570 ), 32571 monthsParseExact: true, 32572 weekdays: 'रविवार_सà¥à¤®à¤µà¤¾à¤°_मà¤à¤à¤³à¤µà¤¾à¤°_बà¥à¤§à¤µà¤¾à¤°_à¤à¥à¤°à¥à¤µà¤¾à¤°_शà¥à¤à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'), 32573 weekdaysShort: 'रवि_सà¥à¤®_मà¤à¤à¤³_बà¥à¤§_à¤à¥à¤°à¥_शà¥à¤à¥à¤°_शनि'.split('_'), 32574 weekdaysMin: 'र_सà¥_मà¤_बà¥_à¤à¥_शà¥_श'.split('_'), 32575 longDateFormat: { 32576 LT: 'A h:mm वाà¤à¤¤à¤¾', 32577 LTS: 'A h:mm:ss वाà¤à¤¤à¤¾', 32578 L: 'DD/MM/YYYY', 32579 LL: 'D MMMM YYYY', 32580 LLL: 'D MMMM YYYY, A h:mm वाà¤à¤¤à¤¾', 32581 LLLL: 'dddd, D MMMM YYYY, A h:mm वाà¤à¤¤à¤¾', 32582 }, 32583 calendar: { 32584 sameDay: '[à¤à¤] LT', 32585 nextDay: '[à¤à¤¦à¥à¤¯à¤¾] LT', 32586 nextWeek: 'dddd, LT', 32587 lastDay: '[à¤à¤¾à¤²] LT', 32588 lastWeek: '[माà¤à¥à¤²] dddd, LT', 32589 sameElse: 'L', 32590 }, 32591 relativeTime: { 32592 future: '%sमधà¥à¤¯à¥', 32593 past: '%sपà¥à¤°à¥à¤µà¥', 32594 s: relativeTimeMr, 32595 ss: relativeTimeMr, 32596 m: relativeTimeMr, 32597 mm: relativeTimeMr, 32598 h: relativeTimeMr, 32599 hh: relativeTimeMr, 32600 d: relativeTimeMr, 32601 dd: relativeTimeMr, 32602 M: relativeTimeMr, 32603 MM: relativeTimeMr, 32604 y: relativeTimeMr, 32605 yy: relativeTimeMr, 32606 }, 32607 preparse: function (string) { 32608 return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) { 32609 return numberMap[match]; 32610 }); 32611 }, 32612 postformat: function (string) { 32613 return string.replace(/\d/g, function (match) { 32614 return symbolMap[match]; 32615 }); 32616 }, 32617 meridiemParse: /पहाà¤à¥|सà¤à¤¾à¤³à¥|दà¥à¤ªà¤¾à¤°à¥|सायà¤à¤à¤¾à¤³à¥|रातà¥à¤°à¥/, 32618 meridiemHour: function (hour, meridiem) { 32619 if (hour === 12) { 32620 hour = 0; 32621 } 32622 if (meridiem === 'पहाà¤à¥' || meridiem === 'सà¤à¤¾à¤³à¥') { 32623 return hour; 32624 } else if ( 32625 meridiem === 'दà¥à¤ªà¤¾à¤°à¥' || 32626 meridiem === 'सायà¤à¤à¤¾à¤³à¥' ||
32627 meridiem === 'रातà¥à¤°à¥' 32628 ) { 32629 return hour >= 12 ? hour : hour + 12; 32630 } 32631 }, 32632 meridiem: function (hour, minute, isLower) { 32633 if (hour >= 0 && hour < 6) { 32634 return 'पहाà¤à¥'; 32635 } else if (hour < 12) { 32636 return 'सà¤à¤¾à¤³à¥'; 32637 } else if (hour < 17) { 32638 return 'दà¥à¤ªà¤¾à¤°à¥'; 32639 } else if (hour < 20) { 32640 return 'सायà¤à¤à¤¾à¤³à¥'; 32641 } else { 32642 return 'रातà¥à¤°à¥'; 32643 } 32644 }, 32645 week: { 32646 dow: 0, // Sunday is the first day of the week. 32647 doy: 6, // The week that contains Jan 6th is the first week of the year. 32648 }, 32649 }); 32650 32651 return mr; 32652 32653}))); 32654 32655 32656/***/ }), 32657/* 88 */ 32658/***/ (function(module, exports, __webpack_require__) { 32659 32660//! moment.js locale configuration 32661//! locale : Malay [ms] 32662//! author : Weldan Jamili : https://github.com/weldan 32663 32664;(function (global, factory) { 32665 true ? factory(__webpack_require__(0)) : 32666 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 32667 factory(global.moment) 32668}(this, (function (moment) { 'use strict'; 32669 32670 //! moment.js locale configuration 32671 32672 var ms = moment.defineLocale('ms', { 32673 months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( 32674 '_' 32675 ), 32676 monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), 32677 weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), 32678 weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), 32679 weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), 32680 longDateFormat: { 32681 LT: 'HH.mm', 32682 LTS: 'HH.mm.ss', 32683 L: 'DD/MM/YYYY', 32684 LL: 'D MMMM YYYY', 32685 LLL: 'D MMMM YYYY [pukul] HH.mm', 32686 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', 32687 }, 32688 meridiemParse: /pagi|tengahari|petang|malam/, 32689 meridiemHour: function (hour, meridiem) { 32690 if (hour === 12) { 32691 hour = 0; 32692 } 32693 if (meridiem === 'pagi') { 32694 return hour; 32695 } else if (meridiem === 'tengahari') { 32696 return hour >= 11 ? hour : hour + 12; 32697 } else if (meridiem === 'petang' || meridiem === 'malam') { 32698 return hour + 12; 32699 } 32700 }, 32701 meridiem: function (hours, minutes, isLower) { 32702 if (hours < 11) { 32703 return 'pagi'; 32704 } else if (hours < 15) { 32705 return 'tengahari'; 32706 } else if (hours < 19) { 32707 return 'petang'; 32708 } else { 32709 return 'malam'; 32710 } 32711 }, 32712 calendar: { 32713 sameDay: '[Hari ini pukul] LT', 32714 nextDay: '[Esok pukul] LT', 32715 nextWeek: 'dddd [pukul] LT', 32716 lastDay: '[Kelmarin pukul] LT', 32717 lastWeek: 'dddd [lepas pukul] LT', 32718 sameElse: 'L', 32719 }, 32720 relativeTime: { 32721 future: 'dalam %s', 32722 past: '%s yang lepas', 32723 s: 'beberapa saat', 32724 ss: '%d saat', 32725 m: 'seminit', 32726 mm: '%d minit', 32727 h: 'sejam', 32728 hh: '%d jam', 32729 d: 'sehari', 32730 dd: '%d hari', 32731 M: 'sebulan', 32732 MM: '%d bulan', 32733 y: 'setahun', 32734 yy: '%d tahun', 32735 }, 32736 week: { 32737 dow: 1, // Monday is the first day of the week. 32738 doy: 7, // The week that contains Jan 7th is the first week of the year. 32739 }, 32740 }); 32741 32742 return ms; 32743 32744}))); 32745 32746 32747/***/ }), 32748/* 89 */ 32749/***/ (function(module, exports, __webpack_require__) { 32750 32751//! moment.js locale configuration 32752//! locale : Malay [ms-my] 32753//! note : DEPRECATED, the correct one is [ms] 32754//! author : Weldan Jamili : https://github.com/weldan 32755 32756;(function (global, factory) { 32757 true ? factory(__webpack_require__(0)) : 32758 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 32759 factory(global.moment) 32760}(this, (function (moment) { 'use strict'; 32761 32762 //! moment.js locale configuration 32763 32764 var msMy = moment.defineLocale('ms-my', { 32765 months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( 32766 '_' 32767 ), 32768 monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), 32769 weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), 32770 weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), 32771 weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), 32772 longDateFormat: { 32773 LT: 'HH.mm', 32774 LTS: 'HH.mm.ss', 32775 L: 'DD/MM/YYYY', 32776 LL: 'D MMMM YYYY', 32777 LLL: 'D MMMM YYYY [pukul] HH.mm', 32778 LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', 32779 }, 32780 meridiemParse: /pagi|tengahari|petang|malam/, 32781 meridiemHour: function (hour, meridiem) { 32782 if (hour === 12) { 32783 hour = 0; 32784 } 32785 if (meridiem === 'pagi') { 32786 return hour; 32787 } else if (meridiem === 'tengahari') { 32788 return hour >= 11 ? hour : hour + 12; 32789 } else if (meridiem === 'petang' || meridiem === 'malam') { 32790 return hour + 12; 32791 } 32792 }, 32793 meridiem: function (hours, minutes, isLower) { 32794 if (hours < 11) { 32795 return 'pagi'; 32796 } else if (hours < 15) { 32797 return 'tengahari'; 32798 } else if (hours < 19) { 32799 return 'petang'; 32800 } else { 32801 return 'malam'; 32802 } 32803 }, 32804 calendar: { 32805 sameDay: '[Hari ini pukul] LT', 32806 nextDay: '[Esok pukul] LT', 32807 nextWeek: 'dddd [pukul] LT', 32808 lastDay: '[Kelmarin pukul] LT', 32809 lastWeek: 'dddd [lepas pukul] LT', 32810 sameElse: 'L', 32811 }, 32812 relativeTime: { 32813 future: 'dalam %s', 32814 past: '%s yang lepas', 32815 s: 'beberapa saat', 32816 ss: '%d saat', 32817 m: 'seminit', 32818 mm: '%d minit', 32819 h: 'sejam', 32820 hh: '%d jam', 32821 d: 'sehari', 32822 dd: '%d hari', 32823 M: 'sebulan', 32824 MM: '%d bulan', 32825 y: 'setahun', 32826 yy: '%d tahun', 32827 }, 32828 week: { 32829 dow: 1, // Monday is the first day of the week. 32830 doy: 7, // The week that contains Jan 7th is the first week of the year. 32831 }, 32832 }); 32833 32834 return msMy; 32835 32836}))); 32837 32838 32839/***/ }), 32840/* 90 */ 32841/***/ (function(module, exports, __webpack_require__) { 32842 32843//! moment.js locale configuration 32844//! locale : Maltese (Malta) [mt] 32845//! author : Alessandro Maruccia : https://github.com/alesma 32846 32847;(function (global, factory) { 32848 true ? factory(__webpack_require__(0)) : 32849 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 32850 factory(global.moment) 32851}(this, (function (moment) { 'use strict'; 32852 32853 //! moment.js locale configuration 32854 32855 var mt = moment.defineLocale('mt', { 32856 months: 'Jannar_Frar_Marzu_April_Mejju_Ä unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_DiÄembru'.split( 32857 '_' 32858 ), 32859 monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ä un_Lul_Aww_Set_Ott_Nov_DiÄ'.split('_'), 32860 weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ä imgħa_Is-Sibt'.split( 32861 '_' 32862 ), 32863 weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ä im_Sib'.split('_'), 32864 weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ä i_Si'.split('_'), 32865 longDateFormat: { 32866 LT: 'HH:mm', 32867 LTS: 'HH:mm:ss', 32868 L: 'DD/MM/YYYY', 32869 LL: 'D MMMM YYYY', 32870 LLL: 'D MMMM YYYY HH:mm', 32871 LLLL: 'dddd, D MMMM YYYY HH:mm', 32872 }, 32873 calendar: { 32874 sameDay: '[Illum fil-]LT', 32875 nextDay: '[Għada fil-]LT', 32876 nextWeek: 'dddd [fil-]LT', 32877 lastDay: '[Il-bieraħ fil-]LT', 32878 lastWeek: 'dddd [li għadda] [fil-]LT', 32879 sameElse: 'L', 32880 }, 32881 relativeTime: { 32882 future: 'fâ %s', 32883 past: '%s ilu', 32884 s: 'ftit sekondi', 32885 ss: '%d sekondi', 32886 m: 'minuta', 32887 mm: '%d minuti', 32888 h: 'siegħa', 32889 hh: '%d siegħat',
32890 d: 'Ä¡urnata', 32891 dd: '%d Ä¡ranet', 32892 M: 'xahar', 32893 MM: '%d xhur', 32894 y: 'sena', 32895 yy: '%d sni', 32896 }, 32897 dayOfMonthOrdinalParse: /\d{1,2}º/, 32898 ordinal: '%dº', 32899 week: { 32900 dow: 1, // Monday is the first day of the week. 32901 doy: 4, // The week that contains Jan 4th is the first week of the year. 32902 }, 32903 }); 32904 32905 return mt; 32906 32907}))); 32908 32909 32910/***/ }), 32911/* 91 */ 32912/***/ (function(module, exports, __webpack_require__) { 32913 32914//! moment.js locale configuration 32915//! locale : Burmese [my] 32916//! author : Squar team, mysquar.com 32917//! author : David Rossellat : https://github.com/gholadr 32918//! author : Tin Aung Lin : https://github.com/thanyawzinmin 32919 32920;(function (global, factory) { 32921 true ? factory(__webpack_require__(0)) : 32922 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 32923 factory(global.moment) 32924}(this, (function (moment) { 'use strict'; 32925 32926 //! moment.js locale configuration 32927 32928 var symbolMap = { 32929 1: 'á', 32930 2: 'á', 32931 3: 'á', 32932 4: 'á', 32933 5: 'á ', 32934 6: 'á', 32935 7: 'á', 32936 8: 'á', 32937 9: 'á', 32938 0: 'á', 32939 }, 32940 numberMap = { 32941 'á': '1', 32942 'á': '2', 32943 'á': '3', 32944 'á': '4', 32945 'á ': '5', 32946 'á': '6', 32947 'á': '7', 32948 'á': '8', 32949 'á': '9', 32950 'á': '0', 32951 }; 32952 32953 var my = moment.defineLocale('my', { 32954 months: 'áááºááá«áá®_áá±áá±á¬áºáá«áá®_áááº_á§áá¼á®_áá±_áá½ááº_áá°ááá¯ááº_áá¼áá¯ááº_á ááºáááºáá¬_á¡á±á¬ááºááá¯áá¬_ááá¯áááºáá¬_áá®áááºáá¬'.split( 32955 '_' 32956 ), 32957 monthsShort: 'áááº_áá±_áááº_áá¼á®_áá±_áá½ááº_ááá¯ááº_áá¼_á ááº_á¡á±á¬ááº_ááá¯_áá®'.split('_'), 32958 weekdays: 'ááááºá¹ááá½á±_ááááºá¹áá¬_á¡ááºá¹áá«_áá¯áá¹ááá°á¸_áá¼á¬áááá±á¸_áá±á¬áá¼á¬_á áá±'.split( 32959 '_' 32960 ), 32961 weekdaysShort: 'áá½á±_áá¬_áá«_áá°á¸_áá¼á¬_áá±á¬_áá±'.split('_'), 32962 weekdaysMin: 'áá½á±_áá¬_áá«_áá°á¸_áá¼á¬_áá±á¬_áá±'.split('_'), 32963 32964 longDateFormat: { 32965 LT: 'HH:mm', 32966 LTS: 'HH:mm:ss', 32967 L: 'DD/MM/YYYY', 32968 LL: 'D MMMM YYYY', 32969 LLL: 'D MMMM YYYY HH:mm', 32970 LLLL: 'dddd D MMMM YYYY HH:mm', 32971 }, 32972 calendar: { 32973 sameDay: '[ááá±.] LT [áá¾á¬]', 32974 nextDay: '[ááááºáá¼ááº] LT [áá¾á¬]', 32975 nextWeek: 'dddd LT [áá¾á¬]', 32976 lastDay: '[ááá±.á] LT [áá¾á¬]', 32977 lastWeek: '[áá¼á®á¸áá²á·áá±á¬] dddd LT [áá¾á¬]', 32978 sameElse: 'L', 32979 }, 32980 relativeTime: { 32981 future: 'áá¬áááºá· %s áá¾á¬', 32982 past: 'áá½ááºáá²á·áá±á¬ %s á', 32983 s: 'á áá¹áááº.á¡áááºá¸áááº', 32984 ss: '%d á áá¹ááá·áº', 32985 m: 'áá áºáááá áº', 32986 mm: '%d áááá áº', 32987 h: 'áá áºáá¬áá®', 32988 hh: '%d áá¬áá®', 32989 d: 'áá áºáááº', 32990 dd: '%d áááº', 32991 M: 'áá áºá', 32992 MM: '%d á', 32993 y: 'áá áºáá¾á áº', 32994 yy: '%d áá¾á áº', 32995 }, 32996 preparse: function (string) { 32997 return string.replace(/[ááááá ááááá]/g, function (match) { 32998 return numberMap[match]; 32999 }); 33000 }, 33001 postformat: function (string) { 33002 return string.replace(/\d/g, function (match) { 33003 return symbolMap[match]; 33004 }); 33005 }, 33006 week: { 33007 dow: 1, // Monday is the first day of the week. 33008 doy: 4, // The week that contains Jan 4th is the first week of the year. 33009 }, 33010 }); 33011 33012 return my; 33013 33014}))); 33015 33016 33017/***/ }), 33018/* 92 */ 33019/***/ (function(module, exports, __webpack_require__) { 33020 33021//! moment.js locale configuration 33022//! locale : Norwegian BokmÃ¥l [nb] 33023//! authors : Espen Hovlandsdal : https://github.com/rexxars 33024//! Sigurd Gartmann : https://github.com/sigurdga 33025//! Stephen Ramthun : https://github.com/stephenramthun 33026 33027;(function (global, factory) { 33028 true ? factory(__webpack_require__(0)) : 33029 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 33030 factory(global.moment) 33031}(this, (function (moment) { 'use strict'; 33032 33033 //! moment.js locale configuration 33034 33035 var nb = moment.defineLocale('nb', { 33036 months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( 33037 '_' 33038 ), 33039 monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split( 33040 '_' 33041 ), 33042 monthsParseExact: true, 33043 weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), 33044 weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'), 33045 weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'), 33046 weekdaysParseExact: true, 33047 longDateFormat: { 33048 LT: 'HH:mm', 33049 LTS: 'HH:mm:ss', 33050 L: 'DD.MM.YYYY', 33051 LL: 'D. MMMM YYYY', 33052 LLL: 'D. MMMM YYYY [kl.] HH:mm', 33053 LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', 33054 }, 33055 calendar: { 33056 sameDay: '[i dag kl.] LT', 33057 nextDay: '[i morgen kl.] LT', 33058 nextWeek: 'dddd [kl.] LT', 33059 lastDay: '[i gÃ¥r kl.] LT', 33060 lastWeek: '[forrige] dddd [kl.] LT', 33061 sameElse: 'L', 33062 }, 33063 relativeTime: { 33064 future: 'om %s', 33065 past: '%s siden', 33066 s: 'noen sekunder', 33067 ss: '%d sekunder', 33068 m: 'ett minutt', 33069 mm: '%d minutter', 33070 h: 'en time', 33071 hh: '%d timer', 33072 d: 'en dag', 33073 dd: '%d dager', 33074 w: 'en uke', 33075 ww: '%d uker', 33076 M: 'en mÃ¥ned', 33077 MM: '%d mÃ¥neder', 33078 y: 'ett Ã¥r', 33079 yy: '%d Ã¥r', 33080 }, 33081 dayOfMonthOrdinalParse: /\d{1,2}\./, 33082 ordinal: '%d.', 33083 week: { 33084 dow: 1, // Monday is the first day of the week. 33085 doy: 4, // The week that contains Jan 4th is the first week of the year. 33086 }, 33087 }); 33088 33089 return nb; 33090 33091}))); 33092 33093 33094/***/ }), 33095/* 93 */ 33096/***/ (function(module, exports, __webpack_require__) { 33097 33098//! moment.js locale configuration 33099//! locale : Nepalese [ne] 33100//! author : suvash : https://github.com/suvash 33101 33102;(function (global, factory) { 33103 true ? factory(__webpack_require__(0)) : 33104 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 33105 factory(global.moment) 33106}(this, (function (moment) { 'use strict'; 33107 33108 //! moment.js locale configuration 33109 33110 var symbolMap = { 33111 1: '१', 33112 2: '२', 33113 3: '३', 33114 4: '४', 33115 5: '५', 33116 6: '६', 33117 7: 'à¥', 33118 8: '८', 33119 9: '९', 33120 0: '०', 33121 }, 33122 numberMap = { 33123 '१': '1', 33124 '२': '2', 33125 '३': '3', 33126 '४': '4', 33127 '५': '5', 33128 '६': '6', 33129 'à¥': '7', 33130 '८': '8', 33131 '९': '9', 33132 '०': '0', 33133 }; 33134 33135 var ne = moment.defineLocale('ne', { 33136 months: 'à¤à¤¨à¤µà¤°à¥_फà¥à¤¬à¥à¤°à¥à¤µà¤°à¥_मारà¥à¤_ठपà¥à¤°à¤¿à¤²_मà¤_à¤à¥à¤¨_à¤à¥à¤²à¤¾à¤_ठà¤à¤·à¥à¤_सà¥à¤ªà¥à¤à¥à¤®à¥à¤¬à¤°_ठà¤à¥à¤à¥à¤¬à¤°_नà¥à¤à¥à¤®à¥à¤¬à¤°_डिसà¥à¤®à¥à¤¬à¤°'.split( 33137 '_' 33138 ), 33139 monthsShort: 'à¤à¤¨._फà¥à¤¬à¥à¤°à¥._मारà¥à¤_ठपà¥à¤°à¤¿._मà¤_à¤à¥à¤¨_à¤à¥à¤²à¤¾à¤._ठà¤._सà¥à¤ªà¥à¤._ठà¤à¥à¤à¥._नà¥à¤à¥._डिसà¥.'.split( 33140 '_' 33141 ), 33142 monthsParseExact: true, 33143 weekdays: 'à¤à¤à¤¤à¤¬à¤¾à¤°_सà¥à¤®à¤¬à¤¾à¤°_मà¤à¥à¤à¤²à¤¬à¤¾à¤°_बà¥à¤§à¤¬à¤¾à¤°_बिहिबार_शà¥à¤à¥à¤°à¤¬à¤¾à¤°_शनिबार'.split( 33144 '_' 33145 ), 33146 weekdaysShort: 'à¤à¤à¤¤._सà¥à¤®._मà¤à¥à¤à¤²._बà¥à¤§._बिहि._शà¥à¤à¥à¤°._शनि.'.split('_'), 33147 weekdaysMin: 'à¤._सà¥._मà¤._बà¥._बि._शà¥._श.'.split('_'), 33148 weekdaysParseExact: true, 33149 longDateFormat: { 33150 LT: 'Aà¤à¥ h:mm बà¤à¥', 33151 LTS: 'Aà¤à¥ h:mm:ss बà¤à¥', 33152 L: 'DD/MM/YYYY', 33153 LL: 'D MMMM YYYY', 33154 LLL: 'D MMMM YYYY, Aà¤à¥ h:mm बà¤à¥', 33155 LLLL: 'dddd, D MMMM YYYY, Aà¤à¥ h:mm बà¤à¥', 33156 }, 33157 preparse: function (string) { 33158 return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) { 33159 return numberMap[match]; 33160 }); 33161 }, 33162 postformat: function (string) { 33163 return string.replace(/\d/g, function (match) { 33164 return symbolMap[match]; 33165 }); 33166 },
33167 meridiemParse: /राति|बिहान|दिà¤à¤à¤¸à¥|साà¤à¤/, 33168 meridiemHour: function (hour, meridiem) { 33169 if (hour === 12) { 33170 hour = 0; 33171 } 33172 if (meridiem === 'राति') { 33173 return hour < 4 ? hour : hour + 12; 33174 } else if (meridiem === 'बिहान') { 33175 return hour; 33176 } else if (meridiem === 'दिà¤à¤à¤¸à¥') { 33177 return hour >= 10 ? hour : hour + 12; 33178 } else if (meridiem === 'साà¤à¤') { 33179 return hour + 12; 33180 } 33181 }, 33182 meridiem: function (hour, minute, isLower) { 33183 if (hour < 3) { 33184 return 'राति'; 33185 } else if (hour < 12) { 33186 return 'बिहान'; 33187 } else if (hour < 16) { 33188 return 'दिà¤à¤à¤¸à¥'; 33189 } else if (hour < 20) { 33190 return 'साà¤à¤'; 33191 } else { 33192 return 'राति'; 33193 } 33194 }, 33195 calendar: { 33196 sameDay: '[à¤à¤] LT', 33197 nextDay: '[à¤à¥à¤²à¤¿] LT', 33198 nextWeek: '[à¤à¤à¤à¤¦à¥] dddd[,] LT', 33199 lastDay: '[हिà¤à¥] LT', 33200 lastWeek: '[à¤à¤à¤à¥] dddd[,] LT', 33201 sameElse: 'L', 33202 }, 33203 relativeTime: { 33204 future: '%sमा', 33205 past: '%s ठà¤à¤¾à¤¡à¤¿', 33206 s: 'à¤à¥à¤¹à¥ à¤à¥à¤·à¤£', 33207 ss: '%d सà¥à¤à¥à¤£à¥à¤¡', 33208 m: 'à¤à¤ मिनà¥à¤', 33209 mm: '%d मिनà¥à¤', 33210 h: 'à¤à¤ à¤à¤£à¥à¤à¤¾', 33211 hh: '%d à¤à¤£à¥à¤à¤¾', 33212 d: 'à¤à¤ दिन', 33213 dd: '%d दिन', 33214 M: 'à¤à¤ महिना', 33215 MM: '%d महिना', 33216 y: 'à¤à¤ बरà¥à¤·', 33217 yy: '%d बरà¥à¤·', 33218 }, 33219 week: { 33220 dow: 0, // Sunday is the first day of the week. 33221 doy: 6, // The week that contains Jan 6th is the first week of the year. 33222 }, 33223 }); 33224 33225 return ne; 33226 33227}))); 33228 33229 33230/***/ }), 33231/* 94 */ 33232/***/ (function(module, exports, __webpack_require__) { 33233 33234//! moment.js locale configuration 33235//! locale : Dutch [nl] 33236//! author : Joris Röling : https://github.com/jorisroling 33237//! author : Jacob Middag : https://github.com/middagj 33238 33239;(function (global, factory) { 33240 true ? factory(__webpack_require__(0)) : 33241 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 33242 factory(global.moment) 33243}(this, (function (moment) { 'use strict'; 33244 33245 //! moment.js locale configuration 33246 33247 var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split( 33248 '_' 33249 ), 33250 monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split( 33251 '_' 33252 ), 33253 monthsParse = [ 33254 /^jan/i, 33255 /^feb/i, 33256 /^maart|mrt.?$/i, 33257 /^apr/i, 33258 /^mei$/i, 33259 /^jun[i.]?$/i, 33260 /^jul[i.]?$/i, 33261 /^aug/i, 33262 /^sep/i, 33263 /^okt/i, 33264 /^nov/i, 33265 /^dec/i, 33266 ], 33267 monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; 33268 33269 var nl = moment.defineLocale('nl', { 33270 months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( 33271 '_' 33272 ), 33273 monthsShort: function (m, format) { 33274 if (!m) { 33275 return monthsShortWithDots; 33276 } else if (/-MMM-/.test(format)) { 33277 return monthsShortWithoutDots[m.month()]; 33278 } else { 33279 return monthsShortWithDots[m.month()]; 33280 } 33281 }, 33282 33283 monthsRegex: monthsRegex, 33284 monthsShortRegex: monthsRegex, 33285 monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, 33286 monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
vendor: 5,180 bytes, lines 33287-33446
33287 33288 monthsParse: monthsParse, 33289 longMonthsParse: monthsParse, 33290 shortMonthsParse: monthsParse, 33291 33292 weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split( 33293 '_' 33294 ), 33295 weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), 33296 weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), 33297 weekdaysParseExact: true, 33298 longDateFormat: { 33299 LT: 'HH:mm', 33300 LTS: 'HH:mm:ss', 33301 L: 'DD-MM-YYYY', 33302 LL: 'D MMMM YYYY', 33303 LLL: 'D MMMM YYYY HH:mm', 33304 LLLL: 'dddd D MMMM YYYY HH:mm', 33305 }, 33306 calendar: { 33307 sameDay: '[vandaag om] LT', 33308 nextDay: '[morgen om] LT', 33309 nextWeek: 'dddd [om] LT', 33310 lastDay: '[gisteren om] LT', 33311 lastWeek: '[afgelopen] dddd [om] LT', 33312 sameElse: 'L', 33313 }, 33314 relativeTime: { 33315 future: 'over %s', 33316 past: '%s geleden', 33317 s: 'een paar seconden', 33318 ss: '%d seconden', 33319 m: 'één minuut', 33320 mm: '%d minuten', 33321 h: 'één uur', 33322 hh: '%d uur', 33323 d: 'één dag', 33324 dd: '%d dagen', 33325 w: 'één week', 33326 ww: '%d weken', 33327 M: 'één maand', 33328 MM: '%d maanden', 33329 y: 'één jaar', 33330 yy: '%d jaar', 33331 }, 33332 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, 33333 ordinal: function (number) { 33334 return ( 33335 number + 33336 (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') 33337 ); 33338 }, 33339 week: { 33340 dow: 1, // Monday is the first day of the week. 33341 doy: 4, // The week that contains Jan 4th is the first week of the year. 33342 }, 33343 }); 33344 33345 return nl; 33346 33347}))); 33348 33349 33350/***/ }), 33351/* 95 */ 33352/***/ (function(module, exports, __webpack_require__) { 33353 33354//! moment.js locale configuration 33355//! locale : Dutch (Belgium) [nl-be] 33356//! author : Joris Röling : https://github.com/jorisroling 33357//! author : Jacob Middag : https://github.com/middagj 33358 33359;(function (global, factory) { 33360 true ? factory(__webpack_require__(0)) : 33361 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 33362 factory(global.moment) 33363}(this, (function (moment) { 'use strict'; 33364 33365 //! moment.js locale configuration 33366 33367 var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split( 33368 '_' 33369 ), 33370 monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split( 33371 '_' 33372 ), 33373 monthsParse = [ 33374 /^jan/i, 33375 /^feb/i, 33376 /^maart|mrt.?$/i, 33377 /^apr/i, 33378 /^mei$/i, 33379 /^jun[i.]?$/i, 33380 /^jul[i.]?$/i, 33381 /^aug/i, 33382 /^sep/i, 33383 /^okt/i, 33384 /^nov/i, 33385 /^dec/i, 33386 ], 33387 monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; 33388 33389 var nlBe = moment.defineLocale('nl-be', { 33390 months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( 33391 '_' 33392 ), 33393 monthsShort: function (m, format) { 33394 if (!m) { 33395 return monthsShortWithDots; 33396 } else if (/-MMM-/.test(format)) { 33397 return monthsShortWithoutDots[m.month()]; 33398 } else { 33399 return monthsShortWithDots[m.month()]; 33400 } 33401 }, 33402 33403 monthsRegex: monthsRegex, 33404 monthsShortRegex: monthsRegex, 33405 monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, 33406 monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, 33407 33408 monthsParse: monthsParse, 33409 longMonthsParse: monthsParse, 33410 shortMonthsParse: monthsParse, 33411 33412 weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split( 33413 '_' 33414 ), 33415 weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), 33416 weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), 33417 weekdaysParseExact: true, 33418 longDateFormat: { 33419 LT: 'HH:mm', 33420 LTS: 'HH:mm:ss', 33421 L: 'DD/MM/YYYY', 33422 LL: 'D MMMM YYYY', 33423 LLL: 'D MMMM YYYY HH:mm', 33424 LLLL: 'dddd D MMMM YYYY HH:mm', 33425 }, 33426 calendar: { 33427 sameDay: '[vandaag om] LT', 33428 nextDay: '[morgen om] LT', 33429 nextWeek: 'dddd [om] LT', 33430 lastDay: '[gisteren om] LT', 33431 lastWeek: '[afgelopen] dddd [om] LT', 33432 sameElse: 'L', 33433 }, 33434 relativeTime: { 33435 future: 'over %s', 33436 past: '%s geleden', 33437 s: 'een paar seconden', 33438 ss: '%d seconden', 33439 m: 'één minuut', 33440 mm: '%d minuten', 33441 h: 'één uur', 33442 hh: '%d uur', 33443 d: 'één dag', 33444 dd: '%d dagen', 33445 M: 'één maand', 33446 MM: '%d maanden',
33447 y: 'één jaar', 33448 yy: '%d jaar', 33449 }, 33450 dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, 33451 ordinal: function (number) { 33452 return ( 33453 number + 33454 (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') 33455 ); 33456 }, 33457 week: { 33458 dow: 1, // Monday is the first day of the week. 33459 doy: 4, // The week that contains Jan 4th is the first week of the year. 33460 }, 33461 }); 33462 33463 return nlBe; 33464 33465}))); 33466 33467 33468/***/ }), 33469/* 96 */ 33470/***/ (function(module, exports, __webpack_require__) { 33471 33472//! moment.js locale configuration 33473//! locale : Nynorsk [nn] 33474//! authors : https://github.com/mechuwind 33475//! Stephen Ramthun : https://github.com/stephenramthun 33476 33477;(function (global, factory) { 33478 true ? factory(__webpack_require__(0)) : 33479 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 33480 factory(global.moment) 33481}(this, (function (moment) { 'use strict'; 33482 33483 //! moment.js locale configuration 33484 33485 var nn = moment.defineLocale('nn', { 33486 months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( 33487 '_' 33488 ), 33489 monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split( 33490 '_' 33491 ), 33492 monthsParseExact: true, 33493 weekdays: 'sundag_mÃ¥ndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), 33494 weekdaysShort: 'su._mÃ¥._ty._on._to._fr._lau.'.split('_'), 33495 weekdaysMin: 'su_mÃ¥_ty_on_to_fr_la'.split('_'), 33496 weekdaysParseExact: true, 33497 longDateFormat: { 33498 LT: 'HH:mm', 33499 LTS: 'HH:mm:ss', 33500 L: 'DD.MM.YYYY', 33501 LL: 'D. MMMM YYYY', 33502 LLL: 'D. MMMM YYYY [kl.] H:mm', 33503 LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', 33504 }, 33505 calendar: { 33506 sameDay: '[I dag klokka] LT', 33507 nextDay: '[I morgon klokka] LT', 33508 nextWeek: 'dddd [klokka] LT', 33509 lastDay: '[I gÃ¥r klokka] LT', 33510 lastWeek: '[FøregÃ¥ande] dddd [klokka] LT', 33511 sameElse: 'L', 33512 }, 33513 relativeTime: { 33514 future: 'om %s', 33515 past: '%s sidan', 33516 s: 'nokre sekund', 33517 ss: '%d sekund', 33518 m: 'eit minutt', 33519 mm: '%d minutt', 33520 h: 'ein time', 33521 hh: '%d timar', 33522 d: 'ein dag', 33523 dd: '%d dagar', 33524 w: 'ei veke', 33525 ww: '%d veker', 33526 M: 'ein mÃ¥nad', 33527 MM: '%d mÃ¥nader', 33528 y: 'eit Ã¥r', 33529 yy: '%d Ã¥r', 33530 }, 33531 dayOfMonthOrdinalParse: /\d{1,2}\./, 33532 ordinal: '%d.', 33533 week: { 33534 dow: 1, // Monday is the first day of the week. 33535 doy: 4, // The week that contains Jan 4th is the first week of the year. 33536 }, 33537 }); 33538 33539 return nn; 33540 33541}))); 33542 33543 33544/***/ }), 33545/* 97 */ 33546/***/ (function(module, exports, __webpack_require__) { 33547 33548//! moment.js locale configuration 33549//! locale : Occitan, lengadocian dialecte [oc-lnc] 33550//! author : Quentin PAGÃS : https://github.com/Quenty31 33551 33552;(function (global, factory) { 33553 true ? factory(__webpack_require__(0)) : 33554 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 33555 factory(global.moment) 33556}(this, (function (moment) { 'use strict'; 33557 33558 //! moment.js locale configuration 33559 33560 var ocLnc = moment.defineLocale('oc-lnc', { 33561 months: { 33562 standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split( 33563 '_' 33564 ), 33565 format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split( 33566 '_' 33567 ), 33568 isFormat: /D[oD]?(\s)+MMMM/, 33569 }, 33570 monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( 33571 '_' 33572 ), 33573 monthsParseExact: true, 33574 weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split( 33575 '_' 33576 ), 33577 weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), 33578 weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), 33579 weekdaysParseExact: true, 33580 longDateFormat: { 33581 LT: 'H:mm', 33582 LTS: 'H:mm:ss', 33583 L: 'DD/MM/YYYY', 33584 LL: 'D MMMM [de] YYYY', 33585 ll: 'D MMM YYYY', 33586 LLL: 'D MMMM [de] YYYY [a] H:mm', 33587 lll: 'D MMM YYYY, H:mm', 33588 LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', 33589 llll: 'ddd D MMM YYYY, H:mm', 33590 }, 33591 calendar: { 33592 sameDay: '[uèi a] LT', 33593 nextDay: '[deman a] LT', 33594 nextWeek: 'dddd [a] LT', 33595 lastDay: '[ièr a] LT', 33596 lastWeek: 'dddd [passat a] LT', 33597 sameElse: 'L', 33598 }, 33599 relativeTime: { 33600 future: "d'aquà %s", 33601 past: 'fa %s', 33602 s: 'unas segondas', 33603 ss: '%d segondas', 33604 m: 'una minuta', 33605 mm: '%d minutas', 33606 h: 'una ora', 33607 hh: '%d oras', 33608 d: 'un jorn', 33609 dd: '%d jorns', 33610 M: 'un mes', 33611 MM: '%d meses', 33612 y: 'un an', 33613 yy: '%d ans', 33614 }, 33615 dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, 33616 ordinal: function (number, period) { 33617 var output = 33618 number === 1 33619 ? 'r' 33620 : number === 2 33621 ? 'n' 33622 : number === 3 33623 ? 'r' 33624 : number === 4 33625 ? 't' 33626 : 'è'; 33627 if (period === 'w' || period === 'W') { 33628 output = 'a'; 33629 } 33630 return number + output; 33631 }, 33632 week: { 33633 dow: 1, // Monday is the first day of the week. 33634 doy: 4, 33635 }, 33636 }); 33637 33638 return ocLnc; 33639 33640}))); 33641 33642 33643/***/ }), 33644/* 98 */ 33645/***/ (function(module, exports, __webpack_require__) { 33646 33647//! moment.js locale configuration 33648//! locale : Punjabi (India) [pa-in] 33649//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit 33650 33651;(function (global, factory) { 33652 true ? factory(__webpack_require__(0)) : 33653 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 33654 factory(global.moment) 33655}(this, (function (moment) { 'use strict'; 33656 33657 //! moment.js locale configuration 33658 33659 var symbolMap = { 33660 1: 'à©§', 33661 2: '੨', 33662 3: 'à©©', 33663 4: '੪', 33664 5: 'à©«', 33665 6: '੬', 33666 7: 'à©', 33667 8: 'à©®', 33668 9: '੯', 33669 0: '੦', 33670 }, 33671 numberMap = { 33672 'à©§': '1', 33673 '੨': '2', 33674 'à©©': '3', 33675 '੪': '4', 33676 'à©«': '5', 33677 '੬': '6', 33678 'à©': '7', 33679 'à©®': '8', 33680 '੯': '9', 33681 '੦': '0', 33682 }; 33683 33684 var paIn = moment.defineLocale('pa-in', { 33685 // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. 33686 months: 'à¨à¨¨à¨µà¨°à©_ਫ਼ਰਵਰà©_ਮਾਰà¨_ਠਪà©à¨°à©à¨²_ਮà¨_à¨à©à¨¨_à¨à©à¨²à¨¾à¨_ਠà¨à¨¸à¨¤_ਸਤੰਬਰ_ਠà¨à¨¤à©à¨¬à¨°_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( 33687 '_' 33688 ), 33689 monthsShort: 'à¨à¨¨à¨µà¨°à©_ਫ਼ਰਵਰà©_ਮਾਰà¨_ਠਪà©à¨°à©à¨²_ਮà¨_à¨à©à¨¨_à¨à©à¨²à¨¾à¨_ਠà¨à¨¸à¨¤_ਸਤੰਬਰ_ਠà¨à¨¤à©à¨¬à¨°_ਨਵੰਬਰ_ਦਸੰਬਰ'.split( 33690 '_' 33691 ), 33692 weekdays: 'à¨à¨¤à¨µà¨¾à¨°_ਸà©à¨®à¨µà¨¾à¨°_ਮੰà¨à¨²à¨µà¨¾à¨°_ਬà©à¨§à¨µà¨¾à¨°_ਵà©à¨°à¨µà¨¾à¨°_ਸ਼à©à©±à¨à¨°à¨µà¨¾à¨°_ਸ਼ਨà©à¨à¨°à¨µà¨¾à¨°'.split( 33693 '_' 33694 ), 33695 weekdaysShort: 'à¨à¨¤_ਸà©à¨®_ਮੰà¨à¨²_ਬà©à¨§_ਵà©à¨°_ਸ਼à©à¨à¨°_ਸ਼ਨà©'.split('_'), 33696 weekdaysMin: 'à¨à¨¤_ਸà©à¨®_ਮੰà¨à¨²_ਬà©à¨§_ਵà©à¨°_ਸ਼à©à¨à¨°_ਸ਼ਨà©'.split('_'), 33697 longDateFormat: { 33698 LT: 'A h:mm ਵà¨à©', 33699 LTS: 'A h:mm:ss ਵà¨à©', 33700 L: 'DD/MM/YYYY', 33701 LL: 'D MMMM YYYY', 33702 LLL: 'D MMMM YYYY, A h:mm ਵà¨à©', 33703 LLLL: 'dddd, D MMMM YYYY, A h:mm ਵà¨à©', 33704 }, 33705 calendar: { 33706 sameDay: '[ਠà¨] LT', 33707 nextDay: '[à¨à¨²] LT', 33708 nextWeek: '[ਠà¨à¨²à¨¾] dddd, LT', 33709 lastDay: '[à¨à¨²] LT', 33710 lastWeek: '[ਪਿà¨à¨²à©] dddd, LT', 33711 sameElse: 'L', 33712 }, 33713 relativeTime: { 33714 future: '%s ਵਿੱà¨', 33715 past: '%s ਪਿà¨à¨²à©', 33716 s: 'à¨à©à¨ ਸà¨à¨¿à©°à¨', 33717 ss: '%d ਸà¨à¨¿à©°à¨', 33718 m: 'à¨à¨ ਮਿੰà¨', 33719 mm: '%d ਮਿੰà¨', 33720 h: 'à¨à©±à¨ à¨à©°à¨à¨¾', 33721 hh: '%d à¨à©°à¨à©', 33722 d: 'à¨à©±à¨ ਦਿਨ', 33723 dd: '%d ਦਿਨ', 33724 M: 'à¨à©±à¨ ਮਹà©à¨¨à¨¾', 33725 MM: '%d ਮਹà©à¨¨à©', 33726 y: 'à¨à©±à¨ ਸਾਲ', 33727 yy: '%d ਸਾਲ', 33728 }, 33729 preparse: function (string) { 33730 return string.replace(/[੧੨੩੪੫੬à©à©®à©¯à©¦]/g, function (match) { 33731 return numberMap[match]; 33732 }); 33733 }, 33734 postformat: function (string) { 33735 return string.replace(/\d/g, function (match) { 33736 return symbolMap[match]; 33737 }); 33738 }, 33739 // Punjabi notation for meridiems are quite fuzzy in practice. While there exists 33740 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. 33741 meridiemParse: /ਰਾਤ|ਸਵà©à¨°|ਦà©à¨ªà¨¹à¨¿à¨°|ਸ਼ਾਮ/, 33742 meridiemHour: function (hour, meridiem) { 33743 if (hour === 12) { 33744 hour = 0; 33745 } 33746 if (meridiem === 'ਰਾਤ') { 33747 return hour < 4 ? hour : hour + 12; 33748 } else if (meridiem === 'ਸਵà©à¨°') { 33749 return hour; 33750 } else if (meridiem === 'ਦà©à¨ªà¨¹à¨¿à¨°') { 33751 return hour >= 10 ? hour : hour + 12; 33752 } else if (meridiem === 'ਸ਼ਾਮ') { 33753 return hour + 12; 33754 } 33755 }, 33756 meridiem: function (hour, minute, isLower) { 33757 if (hour < 4) { 33758 return 'ਰਾਤ'; 33759 } else if (hour < 10) { 33760 return 'ਸਵà©à¨°'; 33761 } else if (hour < 17) { 33762 return 'ਦà©à¨ªà¨¹à¨¿à¨°'; 33763 } else if (hour < 20) { 33764 return 'ਸ਼ਾਮ'; 33765 } else { 33766 return 'ਰਾਤ'; 33767 } 33768 }, 33769 week: { 33770 dow: 0, // Sunday is the first day of the week. 33771 doy: 6, // The week that contains Jan 6th is the first week of the year. 33772 }, 33773 }); 33774 33775 return paIn; 33776 33777}))); 33778 33779 33780/***/ }), 33781/* 99 */ 33782/***/ (function(module, exports, __webpack_require__) { 33783 33784//! moment.js locale configuration 33785//! locale : Polish [pl] 33786//! author : Rafal Hirsz : https://github.com/evoL 33787 33788;(function (global, factory) { 33789 true ? factory(__webpack_require__(0)) : 33790 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 33791 factory(global.moment) 33792}(this, (function (moment) { 'use strict'; 33793 33794 //! moment.js locale configuration 33795
vendor: 27,360 bytes, lines 33796-34584
33796 var monthsNominative = 'styczeÅ_luty_marzec_kwiecieÅ_maj_czerwiec_lipiec_sierpieÅ_wrzesieÅ_październik_listopad_grudzieÅ'.split( 33797 '_' 33798 ), 33799 monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrzeÅnia_października_listopada_grudnia'.split( 33800 '_' 33801 ), 33802 monthsParse = [ 33803 /^sty/i, 33804 /^lut/i, 33805 /^mar/i, 33806 /^kwi/i, 33807 /^maj/i, 33808 /^cze/i, 33809 /^lip/i, 33810 /^sie/i, 33811 /^wrz/i, 33812 /^paź/i, 33813 /^lis/i, 33814 /^gru/i, 33815 ]; 33816 function plural(n) { 33817 return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; 33818 } 33819 function translate(number, withoutSuffix, key) { 33820 var result = number + ' '; 33821 switch (key) { 33822 case 'ss': 33823 return result + (plural(number) ? 'sekundy' : 'sekund'); 33824 case 'm': 33825 return withoutSuffix ? 'minuta' : 'minutÄ'; 33826 case 'mm': 33827 return result + (plural(number) ? 'minuty' : 'minut'); 33828 case 'h': 33829 return withoutSuffix ? 'godzina' : 'godzinÄ'; 33830 case 'hh': 33831 return result + (plural(number) ? 'godziny' : 'godzin'); 33832 case 'ww': 33833 return result + (plural(number) ? 'tygodnie' : 'tygodni'); 33834 case 'MM': 33835 return result + (plural(number) ? 'miesiÄ ce' : 'miesiÄcy'); 33836 case 'yy': 33837 return result + (plural(number) ? 'lata' : 'lat'); 33838 } 33839 } 33840 33841 var pl = moment.defineLocale('pl', { 33842 months: function (momentToFormat, format) { 33843 if (!momentToFormat) { 33844 return monthsNominative; 33845 } else if (/D MMMM/.test(format)) { 33846 return monthsSubjective[momentToFormat.month()]; 33847 } else { 33848 return monthsNominative[momentToFormat.month()]; 33849 } 33850 }, 33851 monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), 33852 monthsParse: monthsParse, 33853 longMonthsParse: monthsParse, 33854 shortMonthsParse: monthsParse, 33855 weekdays: 'niedziela_poniedziaÅek_wtorek_Åroda_czwartek_piÄ tek_sobota'.split( 33856 '_' 33857 ), 33858 weekdaysShort: 'ndz_pon_wt_År_czw_pt_sob'.split('_'), 33859 weekdaysMin: 'Nd_Pn_Wt_År_Cz_Pt_So'.split('_'), 33860 longDateFormat: { 33861 LT: 'HH:mm', 33862 LTS: 'HH:mm:ss', 33863 L: 'DD.MM.YYYY', 33864 LL: 'D MMMM YYYY', 33865 LLL: 'D MMMM YYYY HH:mm', 33866 LLLL: 'dddd, D MMMM YYYY HH:mm', 33867 }, 33868 calendar: { 33869 sameDay: '[DziÅ o] LT', 33870 nextDay: '[Jutro o] LT', 33871 nextWeek: function () { 33872 switch (this.day()) { 33873 case 0: 33874 return '[W niedzielÄ o] LT'; 33875 33876 case 2: 33877 return '[We wtorek o] LT'; 33878 33879 case 3: 33880 return '[W ÅrodÄ o] LT'; 33881 33882 case 6: 33883 return '[W sobotÄ o] LT'; 33884 33885 default: 33886 return '[W] dddd [o] LT'; 33887 } 33888 }, 33889 lastDay: '[Wczoraj o] LT', 33890 lastWeek: function () { 33891 switch (this.day()) { 33892 case 0: 33893 return '[W zeszÅÄ niedzielÄ o] LT'; 33894 case 3: 33895 return '[W zeszÅÄ ÅrodÄ o] LT'; 33896 case 6: 33897 return '[W zeszÅÄ sobotÄ o] LT'; 33898 default: 33899 return '[W zeszÅy] dddd [o] LT'; 33900 } 33901 }, 33902 sameElse: 'L', 33903 }, 33904 relativeTime: { 33905 future: 'za %s', 33906 past: '%s temu', 33907 s: 'kilka sekund', 33908 ss: translate, 33909 m: translate, 33910 mm: translate, 33911 h: translate, 33912 hh: translate, 33913 d: '1 dzieÅ', 33914 dd: '%d dni', 33915 w: 'tydzieÅ', 33916 ww: translate, 33917 M: 'miesiÄ c', 33918 MM: translate, 33919 y: 'rok', 33920 yy: translate, 33921 }, 33922 dayOfMonthOrdinalParse: /\d{1,2}\./, 33923 ordinal: '%d.', 33924 week: { 33925 dow: 1, // Monday is the first day of the week. 33926 doy: 4, // The week that contains Jan 4th is the first week of the year. 33927 }, 33928 }); 33929 33930 return pl; 33931 33932}))); 33933 33934 33935/***/ }), 33936/* 100 */ 33937/***/ (function(module, exports, __webpack_require__) { 33938 33939//! moment.js locale configuration 33940//! locale : Portuguese [pt] 33941//! author : Jefferson : https://github.com/jalex79 33942 33943;(function (global, factory) { 33944 true ? factory(__webpack_require__(0)) : 33945 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 33946 factory(global.moment) 33947}(this, (function (moment) { 'use strict'; 33948 33949 //! moment.js locale configuration 33950 33951 var pt = moment.defineLocale('pt', { 33952 months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( 33953 '_' 33954 ), 33955 monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), 33956 weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split( 33957 '_' 33958 ), 33959 weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), 33960 weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), 33961 weekdaysParseExact: true, 33962 longDateFormat: { 33963 LT: 'HH:mm', 33964 LTS: 'HH:mm:ss', 33965 L: 'DD/MM/YYYY', 33966 LL: 'D [de] MMMM [de] YYYY', 33967 LLL: 'D [de] MMMM [de] YYYY HH:mm', 33968 LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', 33969 }, 33970 calendar: { 33971 sameDay: '[Hoje à s] LT', 33972 nextDay: '[Amanhã à s] LT', 33973 nextWeek: 'dddd [à s] LT', 33974 lastDay: '[Ontem à s] LT', 33975 lastWeek: function () { 33976 return this.day() === 0 || this.day() === 6 33977 ? '[Ãltimo] dddd [à s] LT' // Saturday + Sunday 33978 : '[Ãltima] dddd [à s] LT'; // Monday - Friday 33979 }, 33980 sameElse: 'L', 33981 }, 33982 relativeTime: { 33983 future: 'em %s', 33984 past: 'há %s', 33985 s: 'segundos', 33986 ss: '%d segundos', 33987 m: 'um minuto', 33988 mm: '%d minutos', 33989 h: 'uma hora', 33990 hh: '%d horas', 33991 d: 'um dia', 33992 dd: '%d dias', 33993 w: 'uma semana', 33994 ww: '%d semanas', 33995 M: 'um mês', 33996 MM: '%d meses', 33997 y: 'um ano', 33998 yy: '%d anos', 33999 }, 34000 dayOfMonthOrdinalParse: /\d{1,2}º/, 34001 ordinal: '%dº', 34002 week: { 34003 dow: 1, // Monday is the first day of the week. 34004 doy: 4, // The week that contains Jan 4th is the first week of the year. 34005 }, 34006 }); 34007 34008 return pt; 34009 34010}))); 34011 34012 34013/***/ }), 34014/* 101 */ 34015/***/ (function(module, exports, __webpack_require__) { 34016 34017//! moment.js locale configuration 34018//! locale : Portuguese (Brazil) [pt-br] 34019//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira 34020 34021;(function (global, factory) { 34022 true ? factory(__webpack_require__(0)) : 34023 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 34024 factory(global.moment) 34025}(this, (function (moment) { 'use strict'; 34026 34027 //! moment.js locale configuration 34028 34029 var ptBr = moment.defineLocale('pt-br', { 34030 months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( 34031 '_' 34032 ), 34033 monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), 34034 weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split( 34035 '_' 34036 ), 34037 weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'), 34038 weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'), 34039 weekdaysParseExact: true, 34040 longDateFormat: { 34041 LT: 'HH:mm', 34042 LTS: 'HH:mm:ss', 34043 L: 'DD/MM/YYYY', 34044 LL: 'D [de] MMMM [de] YYYY', 34045 LLL: 'D [de] MMMM [de] YYYY [à s] HH:mm', 34046 LLLL: 'dddd, D [de] MMMM [de] YYYY [à s] HH:mm', 34047 }, 34048 calendar: { 34049 sameDay: '[Hoje à s] LT', 34050 nextDay: '[Amanhã à s] LT', 34051 nextWeek: 'dddd [à s] LT', 34052 lastDay: '[Ontem à s] LT', 34053 lastWeek: function () { 34054 return this.day() === 0 || this.day() === 6 34055 ? '[Ãltimo] dddd [à s] LT' // Saturday + Sunday 34056 : '[Ãltima] dddd [à s] LT'; // Monday - Friday 34057 }, 34058 sameElse: 'L', 34059 }, 34060 relativeTime: { 34061 future: 'em %s', 34062 past: 'há %s', 34063 s: 'poucos segundos', 34064 ss: '%d segundos', 34065 m: 'um minuto', 34066 mm: '%d minutos', 34067 h: 'uma hora', 34068 hh: '%d horas', 34069 d: 'um dia', 34070 dd: '%d dias', 34071 M: 'um mês', 34072 MM: '%d meses', 34073 y: 'um ano', 34074 yy: '%d anos', 34075 }, 34076 dayOfMonthOrdinalParse: /\d{1,2}º/, 34077 ordinal: '%dº', 34078 invalidDate: 'Data inválida', 34079 }); 34080 34081 return ptBr; 34082 34083}))); 34084 34085 34086/***/ }), 34087/* 102 */ 34088/***/ (function(module, exports, __webpack_require__) { 34089 34090//! moment.js locale configuration 34091//! locale : Romanian [ro] 34092//! author : Vlad Gurdiga : https://github.com/gurdiga 34093//! author : Valentin Agachi : https://github.com/avaly 34094//! author : Emanuel Cepoi : https://github.com/cepem 34095 34096;(function (global, factory) { 34097 true ? factory(__webpack_require__(0)) : 34098 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 34099 factory(global.moment) 34100}(this, (function (moment) { 'use strict'; 34101 34102 //! moment.js locale configuration 34103 34104 function relativeTimeWithPlural(number, withoutSuffix, key) { 34105 var format = { 34106 ss: 'secunde', 34107 mm: 'minute', 34108 hh: 'ore', 34109 dd: 'zile', 34110 ww: 'sÄptÄmâni', 34111 MM: 'luni', 34112 yy: 'ani', 34113 }, 34114 separator = ' '; 34115 if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { 34116 separator = ' de '; 34117 } 34118 return number + separator + format[key]; 34119 } 34120 34121 var ro = moment.defineLocale('ro', { 34122 months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( 34123 '_' 34124 ), 34125 monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( 34126 '_' 34127 ), 34128 monthsParseExact: true, 34129 weekdays: 'duminicÄ_luni_marÈi_miercuri_joi_vineri_sâmbÄtÄ'.split('_'), 34130 weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), 34131 weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), 34132 longDateFormat: { 34133 LT: 'H:mm', 34134 LTS: 'H:mm:ss', 34135 L: 'DD.MM.YYYY', 34136 LL: 'D MMMM YYYY', 34137 LLL: 'D MMMM YYYY H:mm', 34138 LLLL: 'dddd, D MMMM YYYY H:mm', 34139 }, 34140 calendar: { 34141 sameDay: '[azi la] LT', 34142 nextDay: '[mâine la] LT', 34143 nextWeek: 'dddd [la] LT', 34144 lastDay: '[ieri la] LT', 34145 lastWeek: '[fosta] dddd [la] LT', 34146 sameElse: 'L', 34147 }, 34148 relativeTime: { 34149 future: 'peste %s', 34150 past: '%s în urmÄ', 34151 s: 'câteva secunde', 34152 ss: relativeTimeWithPlural, 34153 m: 'un minut', 34154 mm: relativeTimeWithPlural, 34155 h: 'o orÄ', 34156 hh: relativeTimeWithPlural, 34157 d: 'o zi', 34158 dd: relativeTimeWithPlural, 34159 w: 'o sÄptÄmânÄ', 34160 ww: relativeTimeWithPlural, 34161 M: 'o lunÄ', 34162 MM: relativeTimeWithPlural, 34163 y: 'un an', 34164 yy: relativeTimeWithPlural, 34165 }, 34166 week: { 34167 dow: 1, // Monday is the first day of the week. 34168 doy: 7, // The week that contains Jan 7th is the first week of the year. 34169 }, 34170 }); 34171 34172 return ro; 34173 34174}))); 34175 34176 34177/***/ }), 34178/* 103 */ 34179/***/ (function(module, exports, __webpack_require__) { 34180 34181//! moment.js locale configuration 34182//! locale : Russian [ru] 34183//! author : Viktorminator : https://github.com/Viktorminator 34184//! author : Menelion Elensúle : https://github.com/Oire 34185//! author : ÐоÑенбеÑг ÐаÑк : https://github.com/socketpair 34186 34187;(function (global, factory) { 34188 true ? factory(__webpack_require__(0)) : 34189 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 34190 factory(global.moment) 34191}(this, (function (moment) { 'use strict'; 34192 34193 //! moment.js locale configuration 34194 34195 function plural(word, num) { 34196 var forms = word.split('_'); 34197 return num % 10 === 1 && num % 100 !== 11 34198 ? forms[0] 34199 : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) 34200 ? forms[1] 34201 : forms[2]; 34202 } 34203 function relativeTimeWithPlural(number, withoutSuffix, key) { 34204 var format = { 34205 ss: withoutSuffix ? 'ÑекÑнда_ÑекÑндÑ_ÑекÑнд' : 'ÑекÑндÑ_ÑекÑндÑ_ÑекÑнд', 34206 mm: withoutSuffix ? 'минÑÑа_минÑÑÑ_минÑÑ' : 'минÑÑÑ_минÑÑÑ_минÑÑ', 34207 hh: 'ÑаÑ_ÑаÑа_ÑаÑов', 34208 dd: 'денÑ_днÑ_дней', 34209 ww: 'неделÑ_недели_неделÑ', 34210 MM: 'меÑÑÑ_меÑÑÑа_меÑÑÑев', 34211 yy: 'год_года_леÑ', 34212 }; 34213 if (key === 'm') { 34214 return withoutSuffix ? 'минÑÑа' : 'минÑÑÑ'; 34215 } else { 34216 return number + ' ' + plural(format[key], +number); 34217 } 34218 } 34219 var monthsParse = [ 34220 /^Ñнв/i, 34221 /^Ñев/i, 34222 /^маÑ/i, 34223 /^апÑ/i, 34224 /^ма[йÑ]/i, 34225 /^иÑн/i, 34226 /^иÑл/i, 34227 /^авг/i, 34228 /^Ñен/i, 34229 /^окÑ/i, 34230 /^ноÑ/i, 34231 /^дек/i, 34232 ]; 34233 34234 // http://new.gramota.ru/spravka/rules/139-prop : § 103 34235 // СокÑаÑÐµÐ½Ð¸Ñ Ð¼ÐµÑÑÑев: http://new.gramota.ru/spravka/buro/search-answer?s=242637 34236 // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 34237 var ru = moment.defineLocale('ru', { 34238 months: { 34239 format: 'ÑнваÑÑ_ÑевÑалÑ_маÑÑа_апÑелÑ_маÑ_иÑнÑ_иÑлÑ_авгÑÑÑа_ÑенÑÑбÑÑ_окÑÑбÑÑ_ноÑбÑÑ_декабÑÑ'.split( 34240 '_' 34241 ), 34242 standalone: 'ÑнваÑÑ_ÑевÑалÑ_маÑÑ_апÑелÑ_май_иÑнÑ_иÑлÑ_авгÑÑÑ_ÑенÑÑбÑÑ_окÑÑбÑÑ_ноÑбÑÑ_декабÑÑ'.split( 34243 '_' 34244 ), 34245 }, 34246 monthsShort: { 34247 // по CLDR именно "иÑл." и "иÑн.", но какой ÑмÑÑл менÑÑÑ Ð±ÑÐºÐ²Ñ Ð½Ð° ÑоÑкÑ? 34248 format: 'Ñнв._ÑевÑ._маÑ._апÑ._маÑ_иÑнÑ_иÑлÑ_авг._ÑенÑ._окÑ._ноÑб._дек.'.split( 34249 '_' 34250 ), 34251 standalone: 'Ñнв._ÑевÑ._маÑÑ_апÑ._май_иÑнÑ_иÑлÑ_авг._ÑенÑ._окÑ._ноÑб._дек.'.split( 34252 '_' 34253 ), 34254 }, 34255 weekdays: { 34256 standalone: 'воÑкÑеÑенÑе_понеделÑник_вÑоÑник_ÑÑеда_ÑеÑвеÑг_пÑÑниÑа_ÑÑббоÑа'.split( 34257 '_' 34258 ), 34259 format: 'воÑкÑеÑенÑе_понеделÑник_вÑоÑник_ÑÑедÑ_ÑеÑвеÑг_пÑÑниÑÑ_ÑÑббоÑÑ'.split( 34260 '_' 34261 ), 34262 isFormat: /\[ ?[Ðв] ?(?:пÑоÑлÑÑ|ÑледÑÑÑÑÑ|ÑÑÑ)? ?] ?dddd/, 34263 }, 34264 weekdaysShort: 'вÑ_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 34265 weekdaysMin: 'вÑ_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 34266 monthsParse: monthsParse, 34267 longMonthsParse: monthsParse, 34268 shortMonthsParse: monthsParse, 34269 34270 // полнÑе Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸, по ÑÑи бÑквÑ, Ð´Ð»Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ , по 4 бÑквÑ, ÑокÑаÑÐµÐ½Ð¸Ñ Ñ ÑоÑкой и без ÑоÑки 34271 monthsRegex: /^(ÑнваÑ[ÑÑ]|Ñнв\.?|ÑевÑал[ÑÑ]|ÑевÑ?\.?|маÑÑа?|маÑ\.?|апÑел[ÑÑ]|апÑ\.?|ма[йÑ]|иÑн[ÑÑ]|иÑн\.?|иÑл[ÑÑ]|иÑл\.?|авгÑÑÑа?|авг\.?|ÑенÑÑбÑ[ÑÑ]|ÑенÑ?\.?|окÑÑбÑ[ÑÑ]|окÑ\.?|ноÑбÑ[ÑÑ]|ноÑб?\.?|декабÑ[ÑÑ]|дек\.?)/i, 34272 34273 // ÐºÐ¾Ð¿Ð¸Ñ Ð¿ÑедÑдÑÑего 34274 monthsShortRegex: /^(ÑнваÑ[ÑÑ]|Ñнв\.?|ÑевÑал[ÑÑ]|ÑевÑ?\.?|маÑÑа?|маÑ\.?|апÑел[ÑÑ]|апÑ\.?|ма[йÑ]|иÑн[ÑÑ]|иÑн\.?|иÑл[ÑÑ]|иÑл\.?|авгÑÑÑа?|авг\.?|ÑенÑÑбÑ[ÑÑ]|ÑенÑ?\.?|окÑÑбÑ[ÑÑ]|окÑ\.?|ноÑбÑ[ÑÑ]|ноÑб?\.?|декабÑ[ÑÑ]|дек\.?)/i, 34275 34276 // полнÑе Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸ 34277 monthsStrictRegex: /^(ÑнваÑ[ÑÑ]|ÑевÑал[ÑÑ]|маÑÑа?|апÑел[ÑÑ]|ма[Ñй]|иÑн[ÑÑ]|иÑл[ÑÑ]|авгÑÑÑа?|ÑенÑÑбÑ[ÑÑ]|окÑÑбÑ[ÑÑ]|ноÑбÑ[ÑÑ]|декабÑ[ÑÑ])/i, 34278 34279 // ÐÑÑажение, коÑоÑое ÑооÑвеÑÑÑвÑÐµÑ ÑолÑко ÑокÑаÑÑннÑм ÑоÑмам 34280 monthsShortStrictRegex: /^(Ñнв\.|ÑевÑ?\.|маÑ[Ñ.]|апÑ\.|ма[Ñй]|иÑн[ÑÑ.]|иÑл[ÑÑ.]|авг\.|ÑенÑ?\.|окÑ\.|ноÑб?\.|дек\.)/i, 34281 longDateFormat: { 34282 LT: 'H:mm', 34283 LTS: 'H:mm:ss', 34284 L: 'DD.MM.YYYY', 34285 LL: 'D MMMM YYYY г.', 34286 LLL: 'D MMMM YYYY г., H:mm', 34287 LLLL: 'dddd, D MMMM YYYY г., H:mm', 34288 }, 34289 calendar: { 34290 sameDay: '[СегоднÑ, в] LT', 34291 nextDay: '[ÐавÑÑа, в] LT', 34292 lastDay: '[ÐÑеÑа, в] LT', 34293 nextWeek: function (now) { 34294 if (now.week() !== this.week()) { 34295 switch (this.day()) { 34296 case 0: 34297 return '[Ð ÑледÑÑÑее] dddd, [в] LT'; 34298 case 1: 34299 case 2: 34300 case 4: 34301 return '[Ð ÑледÑÑÑий] dddd, [в] LT'; 34302 case 3: 34303 case 5: 34304 case 6: 34305 return '[Ð ÑледÑÑÑÑÑ] dddd, [в] LT'; 34306 } 34307 } else { 34308 if (this.day() === 2) { 34309 return '[Ðо] dddd, [в] LT'; 34310 } else { 34311 return '[Ð] dddd, [в] LT'; 34312 } 34313 } 34314 }, 34315 lastWeek: function (now) { 34316 if (now.week() !== this.week()) { 34317 switch (this.day()) { 34318 case 0: 34319 return '[РпÑоÑлое] dddd, [в] LT'; 34320 case 1: 34321 case 2: 34322 case 4: 34323 return '[РпÑоÑлÑй] dddd, [в] LT'; 34324 case 3: 34325 case 5: 34326 case 6: 34327 return '[РпÑоÑлÑÑ] dddd, [в] LT'; 34328 } 34329 } else { 34330 if (this.day() === 2) { 34331 return '[Ðо] dddd, [в] LT'; 34332 } else { 34333 return '[Ð] dddd, [в] LT'; 34334 } 34335 } 34336 }, 34337 sameElse: 'L', 34338 }, 34339 relativeTime: { 34340 future: 'ÑеÑез %s', 34341 past: '%s назад', 34342 s: 'неÑколÑко ÑекÑнд', 34343 ss: relativeTimeWithPlural, 34344 m: relativeTimeWithPlural, 34345 mm: relativeTimeWithPlural, 34346 h: 'ÑаÑ', 34347 hh: relativeTimeWithPlural, 34348 d: 'денÑ', 34349 dd: relativeTimeWithPlural, 34350 w: 'неделÑ', 34351 ww: relativeTimeWithPlural, 34352 M: 'меÑÑÑ', 34353 MM: relativeTimeWithPlural, 34354 y: 'год', 34355 yy: relativeTimeWithPlural, 34356 }, 34357 meridiemParse: /ноÑи|ÑÑÑа|днÑ|веÑеÑа/i, 34358 isPM: function (input) { 34359 return /^(днÑ|веÑеÑа)$/.test(input); 34360 }, 34361 meridiem: function (hour, minute, isLower) { 34362 if (hour < 4) { 34363 return 'ноÑи'; 34364 } else if (hour < 12) { 34365 return 'ÑÑÑа'; 34366 } else if (hour < 17) { 34367 return 'днÑ'; 34368 } else { 34369 return 'веÑеÑа'; 34370 } 34371 }, 34372 dayOfMonthOrdinalParse: /\d{1,2}-(й|го|Ñ)/, 34373 ordinal: function (number, period) { 34374 switch (period) { 34375 case 'M': 34376 case 'd': 34377 case 'DDD': 34378 return number + '-й'; 34379 case 'D': 34380 return number + '-го'; 34381 case 'w': 34382 case 'W': 34383 return number + '-Ñ'; 34384 default: 34385 return number; 34386 } 34387 }, 34388 week: { 34389 dow: 1, // Monday is the first day of the week. 34390 doy: 4, // The week that contains Jan 4th is the first week of the year. 34391 }, 34392 }); 34393 34394 return ru; 34395 34396}))); 34397 34398 34399/***/ }), 34400/* 104 */ 34401/***/ (function(module, exports, __webpack_require__) { 34402 34403//! moment.js locale configuration 34404//! locale : Sindhi [sd] 34405//! author : Narain Sagar : https://github.com/narainsagar 34406 34407;(function (global, factory) { 34408 true ? factory(__webpack_require__(0)) : 34409 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 34410 factory(global.moment) 34411}(this, (function (moment) { 'use strict'; 34412 34413 //! moment.js locale configuration 34414 34415 var months = [ 34416 'جÙÙØ±Ù', 34417 'ÙÙØ¨Ø±ÙرÙ', 34418 '٠ارÚ', 34419 'اپرÙÙ', 34420 '٠ئÙ', 34421 'جÙÙ', 34422 'جÙÙØ§Ø¡Ù', 34423 'آگسٽ', 34424 'سÙپٽ٠بر', 34425 'Ø¢ÚªÙ½ÙØ¨Ø±', 34426 'ÙÙ٠بر', 34427 'ÚØ³Ù بر', 34428 ], 34429 days = ['Ø¢ÚØ±', 'سÙ٠ر', 'اڱارÙ', 'اربع', 'Ø®Ù ÙØ³', 'ج٠ع', 'ÚÙÚØ±']; 34430 34431 var sd = moment.defineLocale('sd', { 34432 months: months, 34433 monthsShort: months, 34434 weekdays: days, 34435 weekdaysShort: days, 34436 weekdaysMin: days, 34437 longDateFormat: { 34438 LT: 'HH:mm', 34439 LTS: 'HH:mm:ss', 34440 L: 'DD/MM/YYYY', 34441 LL: 'D MMMM YYYY', 34442 LLL: 'D MMMM YYYY HH:mm', 34443 LLLL: 'ddddØ D MMMM YYYY HH:mm', 34444 }, 34445 meridiemParse: /صبØ|شا٠/, 34446 isPM: function (input) { 34447 return 'شا٠' === input; 34448 }, 34449 meridiem: function (hour, minute, isLower) { 34450 if (hour < 12) { 34451 return 'صبØ'; 34452 } 34453 return 'شا٠'; 34454 }, 34455 calendar: { 34456 sameDay: '[اÚ] LT', 34457 nextDay: '[Ø³ÚØ§Ú»Ù] LT', 34458 nextWeek: 'dddd [اڳÙÙ ÙÙØªÙ تÙ] LT', 34459 lastDay: '[ڪاÙÙÙ] LT', 34460 lastWeek: '[گزرÙÙ ÙÙØªÙ] dddd [تÙ] LT', 34461 sameElse: 'L', 34462 }, 34463 relativeTime: { 34464 future: '%s Ù¾ÙØ¡', 34465 past: '%s اڳ', 34466 s: 'ÚÙØ¯ سÙÚªÙÚ', 34467 ss: '%d سÙÚªÙÚ', 34468 m: 'ÙÚª Ù ÙÙ½', 34469 mm: '%d Ù ÙÙ½', 34470 h: 'ÙÚª ÚªÙØ§Úª', 34471 hh: '%d ÚªÙØ§Úª', 34472 d: 'ÙÚª ÚÙÙÙÙ', 34473 dd: '%d ÚÙÙÙÙ', 34474 M: 'ÙÚª Ù ÙÙÙÙ', 34475 MM: '%d Ù ÙÙÙØ§', 34476 y: 'ÙÚª ساÙ', 34477 yy: '%d ساÙ', 34478 }, 34479 preparse: function (string) { 34480 return string.replace(/Ø/g, ','); 34481 }, 34482 postformat: function (string) { 34483 return string.replace(/,/g, 'Ø'); 34484 }, 34485 week: { 34486 dow: 1, // Monday is the first day of the week. 34487 doy: 4, // The week that contains Jan 4th is the first week of the year. 34488 }, 34489 }); 34490 34491 return sd; 34492 34493}))); 34494 34495 34496/***/ }), 34497/* 105 */ 34498/***/ (function(module, exports, __webpack_require__) { 34499 34500//! moment.js locale configuration 34501//! locale : Northern Sami [se] 34502//! authors : BÃ¥rd Rolstad Henriksen : https://github.com/karamell 34503 34504;(function (global, factory) { 34505 true ? factory(__webpack_require__(0)) : 34506 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 34507 factory(global.moment) 34508}(this, (function (moment) { 'use strict'; 34509 34510 //! moment.js locale configuration 34511 34512 var se = moment.defineLocale('se', { 34513 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( 34514 '_' 34515 ), 34516 monthsShort: 'oÄÄj_guov_njuk_cuo_mies_geas_suoi_borg_ÄakÄ_golg_skáb_juov'.split( 34517 '_' 34518 ), 34519 weekdays: 'sotnabeaivi_vuossárga_maÅÅebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split( 34520 '_' 34521 ), 34522 weekdaysShort: 'sotn_vuos_maÅ_gask_duor_bear_láv'.split('_'), 34523 weekdaysMin: 's_v_m_g_d_b_L'.split('_'), 34524 longDateFormat: { 34525 LT: 'HH:mm', 34526 LTS: 'HH:mm:ss', 34527 L: 'DD.MM.YYYY', 34528 LL: 'MMMM D. [b.] YYYY', 34529 LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', 34530 LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', 34531 }, 34532 calendar: { 34533 sameDay: '[otne ti] LT', 34534 nextDay: '[ihttin ti] LT', 34535 nextWeek: 'dddd [ti] LT', 34536 lastDay: '[ikte ti] LT', 34537 lastWeek: '[ovddit] dddd [ti] LT', 34538 sameElse: 'L', 34539 }, 34540 relativeTime: { 34541 future: '%s geažes', 34542 past: 'maÅit %s', 34543 s: 'moadde sekunddat', 34544 ss: '%d sekunddat', 34545 m: 'okta minuhta', 34546 mm: '%d minuhtat', 34547 h: 'okta diimmu', 34548 hh: '%d diimmut', 34549 d: 'okta beaivi', 34550 dd: '%d beaivvit', 34551 M: 'okta mánnu', 34552 MM: '%d mánut', 34553 y: 'okta jahki', 34554 yy: '%d jagit', 34555 }, 34556 dayOfMonthOrdinalParse: /\d{1,2}\./, 34557 ordinal: '%d.', 34558 week: { 34559 dow: 1, // Monday is the first day of the week. 34560 doy: 4, // The week that contains Jan 4th is the first week of the year. 34561 }, 34562 }); 34563 34564 return se; 34565 34566}))); 34567 34568 34569/***/ }), 34570/* 106 */ 34571/***/ (function(module, exports, __webpack_require__) { 34572 34573//! moment.js locale configuration 34574//! locale : Sinhalese [si] 34575//! author : Sampath Sitinamaluwa : https://github.com/sampathsris 34576 34577;(function (global, factory) { 34578 true ? factory(__webpack_require__(0)) : 34579 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 34580 factory(global.moment) 34581}(this, (function (moment) { 'use strict'; 34582 34583 //! moment.js locale configuration 34584
vendor: 16,384 bytes, lines 34585-35013
34585 /*jshint -W100*/ 34586 var si = moment.defineLocale('si', { 34587 months: 'ජනà·à·à¶»à·_à¶´à·à¶¶à¶»à·à·à¶»à·_මà·à¶»à·à¶à·_à¶ à¶´à·âà¶»à·à¶½à·_මà·à¶ºà·_à¶¢à·à¶±à·_à¶¢à·à¶½à·_à¶ à¶à·à·à·à¶à·_à·à·à¶´à·à¶à·à¶¸à·à¶¶à¶»à·_à¶à¶à·à¶à·à¶¶à¶»à·_à¶±à·à·à·à¶¸à·à¶¶à¶»à·_දà·à·à·à¶¸à·à¶¶à¶»à·'.split( 34588 '_' 34589 ), 34590 monthsShort: 'ජන_à¶´à·à¶¶_මà·à¶»à·_à¶ à¶´à·_මà·à¶ºà·_à¶¢à·à¶±à·_à¶¢à·à¶½à·_à¶ à¶à·_à·à·à¶´à·_à¶à¶à·_à¶±à·à·à·_දà·à·à·'.split( 34591 '_' 34592 ), 34593 weekdays: 'à¶à¶»à·à¶¯à·_à·à¶³à·à¶¯à·_à¶ à¶à·à¶»à·à·à·à¶¯à·_බදà·à¶¯à·_à¶¶à·âà¶»à·à·à·à¶´à¶à·à¶±à·à¶¯à·_à·à·à¶à·à¶»à·à¶¯à·_à·à·à¶±à·à·à¶»à·à¶¯à·'.split( 34594 '_' 34595 ), 34596 weekdaysShort: 'à¶à¶»à·_à·à¶³à·_à¶ à¶_බදà·_à¶¶à·âà¶»à·_à·à·à¶à·_à·à·à¶±'.split('_'), 34597 weekdaysMin: 'à¶_à·_à¶ _à¶¶_à¶¶à·âà¶»_à·à·_à·à·'.split('_'), 34598 weekdaysParseExact: true, 34599 longDateFormat: { 34600 LT: 'a h:mm', 34601 LTS: 'a h:mm:ss', 34602 L: 'YYYY/MM/DD', 34603 LL: 'YYYY MMMM D', 34604 LLL: 'YYYY MMMM D, a h:mm', 34605 LLLL: 'YYYY MMMM D [à·à·à¶±à·] dddd, a h:mm:ss', 34606 }, 34607 calendar: { 34608 sameDay: '[චද] LT[à¶§]', 34609 nextDay: '[à·à·à¶§] LT[à¶§]', 34610 nextWeek: 'dddd LT[à¶§]', 34611 lastDay: '[à¶à¶ºà·] LT[à¶§]', 34612 lastWeek: '[à¶´à·à·à¶à·à¶º] dddd LT[à¶§]', 34613 sameElse: 'L', 34614 }, 34615 relativeTime: { 34616 future: '%sà¶à·à¶±à·', 34617 past: '%sà¶à¶§ à¶´à·à¶»', 34618 s: 'à¶à¶à·à¶´à¶» à¶à·à·à·à¶´à¶º', 34619 ss: 'à¶à¶à·à¶´à¶» %d', 34620 m: 'මà·à¶±à·à¶à·à¶à·à·', 34621 mm: 'මà·à¶±à·à¶à·à¶à· %d', 34622 h: 'à¶´à·à¶º', 34623 hh: 'à¶´à·à¶º %d', 34624 d: 'දà·à¶±à¶º', 34625 dd: 'දà·à¶± %d', 34626 M: 'මà·à·à¶º', 34627 MM: 'මà·à· %d', 34628 y: 'à·à·à¶»', 34629 yy: 'à·à·à¶» %d', 34630 }, 34631 dayOfMonthOrdinalParse: /\d{1,2} à·à·à¶±à·/, 34632 ordinal: function (number) { 34633 return number + ' à·à·à¶±à·'; 34634 }, 34635 meridiemParse: /à¶´à·à¶» à·à¶»à·|à¶´à·à· à·à¶»à·|à¶´à·.à·|à¶´.à·./, 34636 isPM: function (input) { 34637 return input === 'à¶´.à·.' || input === 'à¶´à·à· à·à¶»à·'; 34638 }, 34639 meridiem: function (hours, minutes, isLower) { 34640 if (hours > 11) { 34641 return isLower ? 'à¶´.à·.' : 'à¶´à·à· à·à¶»à·'; 34642 } else { 34643 return isLower ? 'à¶´à·.à·.' : 'à¶´à·à¶» à·à¶»à·'; 34644 } 34645 }, 34646 }); 34647 34648 return si; 34649 34650}))); 34651 34652 34653/***/ }), 34654/* 107 */ 34655/***/ (function(module, exports, __webpack_require__) { 34656 34657//! moment.js locale configuration 34658//! locale : Slovak [sk] 34659//! author : Martin Minka : https://github.com/k2s 34660//! based on work of petrbela : https://github.com/petrbela 34661 34662;(function (global, factory) { 34663 true ? factory(__webpack_require__(0)) : 34664 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 34665 factory(global.moment) 34666}(this, (function (moment) { 'use strict'; 34667 34668 //! moment.js locale configuration 34669 34670 var months = 'január_február_marec_aprÃl_máj_jún_júl_august_september_október_november_december'.split( 34671 '_' 34672 ), 34673 monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); 34674 function plural(n) { 34675 return n > 1 && n < 5; 34676 } 34677 function translate(number, withoutSuffix, key, isFuture) { 34678 var result = number + ' '; 34679 switch (key) { 34680 case 's': // a few seconds / in a few seconds / a few seconds ago 34681 return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami'; 34682 case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago 34683 if (withoutSuffix || isFuture) { 34684 return result + (plural(number) ? 'sekundy' : 'sekúnd'); 34685 } else { 34686 return result + 'sekundami'; 34687 } 34688 case 'm': // a minute / in a minute / a minute ago 34689 return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou'; 34690 case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago 34691 if (withoutSuffix || isFuture) { 34692 return result + (plural(number) ? 'minúty' : 'minút'); 34693 } else { 34694 return result + 'minútami'; 34695 } 34696 case 'h': // an hour / in an hour / an hour ago 34697 return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; 34698 case 'hh': // 9 hours / in 9 hours / 9 hours ago 34699 if (withoutSuffix || isFuture) { 34700 return result + (plural(number) ? 'hodiny' : 'hodÃn'); 34701 } else { 34702 return result + 'hodinami'; 34703 } 34704 case 'd': // a day / in a day / a day ago 34705 return withoutSuffix || isFuture ? 'deÅ' : 'dÅom'; 34706 case 'dd': // 9 days / in 9 days / 9 days ago 34707 if (withoutSuffix || isFuture) { 34708 return result + (plural(number) ? 'dni' : 'dnÃ'); 34709 } else { 34710 return result + 'dÅami'; 34711 } 34712 case 'M': // a month / in a month / a month ago 34713 return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; 34714 case 'MM': // 9 months / in 9 months / 9 months ago 34715 if (withoutSuffix || isFuture) { 34716 return result + (plural(number) ? 'mesiace' : 'mesiacov'); 34717 } else { 34718 return result + 'mesiacmi'; 34719 } 34720 case 'y': // a year / in a year / a year ago 34721 return withoutSuffix || isFuture ? 'rok' : 'rokom'; 34722 case 'yy': // 9 years / in 9 years / 9 years ago 34723 if (withoutSuffix || isFuture) { 34724 return result + (plural(number) ? 'roky' : 'rokov'); 34725 } else { 34726 return result + 'rokmi'; 34727 } 34728 } 34729 } 34730 34731 var sk = moment.defineLocale('sk', { 34732 months: months, 34733 monthsShort: monthsShort, 34734 weekdays: 'nedeľa_pondelok_utorok_streda_Å¡tvrtok_piatok_sobota'.split('_'), 34735 weekdaysShort: 'ne_po_ut_st_Å¡t_pi_so'.split('_'), 34736 weekdaysMin: 'ne_po_ut_st_Å¡t_pi_so'.split('_'), 34737 longDateFormat: { 34738 LT: 'H:mm', 34739 LTS: 'H:mm:ss', 34740 L: 'DD.MM.YYYY', 34741 LL: 'D. MMMM YYYY', 34742 LLL: 'D. MMMM YYYY H:mm', 34743 LLLL: 'dddd D. MMMM YYYY H:mm', 34744 }, 34745 calendar: { 34746 sameDay: '[dnes o] LT', 34747 nextDay: '[zajtra o] LT', 34748 nextWeek: function () { 34749 switch (this.day()) { 34750 case 0: 34751 return '[v nedeľu o] LT'; 34752 case 1: 34753 case 2: 34754 return '[v] dddd [o] LT'; 34755 case 3: 34756 return '[v stredu o] LT'; 34757 case 4: 34758 return '[vo Å¡tvrtok o] LT'; 34759 case 5: 34760 return '[v piatok o] LT'; 34761 case 6: 34762 return '[v sobotu o] LT'; 34763 } 34764 }, 34765 lastDay: '[vÄera o] LT', 34766 lastWeek: function () { 34767 switch (this.day()) { 34768 case 0: 34769 return '[minulú nedeľu o] LT'; 34770 case 1: 34771 case 2: 34772 return '[minulý] dddd [o] LT'; 34773 case 3: 34774 return '[minulú stredu o] LT'; 34775 case 4: 34776 case 5: 34777 return '[minulý] dddd [o] LT'; 34778 case 6: 34779 return '[minulú sobotu o] LT'; 34780 } 34781 }, 34782 sameElse: 'L', 34783 }, 34784 relativeTime: { 34785 future: 'za %s', 34786 past: 'pred %s', 34787 s: translate, 34788 ss: translate, 34789 m: translate, 34790 mm: translate, 34791 h: translate, 34792 hh: translate, 34793 d: translate, 34794 dd: translate, 34795 M: translate, 34796 MM: translate, 34797 y: translate, 34798 yy: translate, 34799 }, 34800 dayOfMonthOrdinalParse: /\d{1,2}\./, 34801 ordinal: '%d.', 34802 week: { 34803 dow: 1, // Monday is the first day of the week. 34804 doy: 4, // The week that contains Jan 4th is the first week of the year. 34805 }, 34806 }); 34807 34808 return sk; 34809 34810}))); 34811 34812 34813/***/ }), 34814/* 108 */ 34815/***/ (function(module, exports, __webpack_require__) { 34816 34817//! moment.js locale configuration 34818//! locale : Slovenian [sl] 34819//! author : Robert SedovÅ¡ek : https://github.com/sedovsek 34820 34821;(function (global, factory) { 34822 true ? factory(__webpack_require__(0)) : 34823 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 34824 factory(global.moment) 34825}(this, (function (moment) { 'use strict'; 34826 34827 //! moment.js locale configuration 34828 34829 function processRelativeTime(number, withoutSuffix, key, isFuture) { 34830 var result = number + ' '; 34831 switch (key) { 34832 case 's': 34833 return withoutSuffix || isFuture 34834 ? 'nekaj sekund' 34835 : 'nekaj sekundami'; 34836 case 'ss': 34837 if (number === 1) { 34838 result += withoutSuffix ? 'sekundo' : 'sekundi'; 34839 } else if (number === 2) { 34840 result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; 34841 } else if (number < 5) { 34842 result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; 34843 } else { 34844 result += 'sekund'; 34845 } 34846 return result; 34847 case 'm': 34848 return withoutSuffix ? 'ena minuta' : 'eno minuto'; 34849 case 'mm': 34850 if (number === 1) { 34851 result += withoutSuffix ? 'minuta' : 'minuto'; 34852 } else if (number === 2) { 34853 result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; 34854 } else if (number < 5) { 34855 result += withoutSuffix || isFuture ? 'minute' : 'minutami'; 34856 } else { 34857 result += withoutSuffix || isFuture ? 'minut' : 'minutami'; 34858 } 34859 return result; 34860 case 'h': 34861 return withoutSuffix ? 'ena ura' : 'eno uro'; 34862 case 'hh': 34863 if (number === 1) { 34864 result += withoutSuffix ? 'ura' : 'uro'; 34865 } else if (number === 2) { 34866 result += withoutSuffix || isFuture ? 'uri' : 'urama'; 34867 } else if (number < 5) { 34868 result += withoutSuffix || isFuture ? 'ure' : 'urami'; 34869 } else { 34870 result += withoutSuffix || isFuture ? 'ur' : 'urami'; 34871 } 34872 return result; 34873 case 'd': 34874 return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; 34875 case 'dd': 34876 if (number === 1) { 34877 result += withoutSuffix || isFuture ? 'dan' : 'dnem'; 34878 } else if (number === 2) { 34879 result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; 34880 } else { 34881 result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; 34882 } 34883 return result; 34884 case 'M': 34885 return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; 34886 case 'MM': 34887 if (number === 1) { 34888 result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; 34889 } else if (number === 2) { 34890 result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; 34891 } else if (number < 5) { 34892 result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; 34893 } else { 34894 result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; 34895 } 34896 return result; 34897 case 'y': 34898 return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; 34899 case 'yy': 34900 if (number === 1) { 34901 result += withoutSuffix || isFuture ? 'leto' : 'letom'; 34902 } else if (number === 2) { 34903 result += withoutSuffix || isFuture ? 'leti' : 'letoma'; 34904 } else if (number < 5) { 34905 result += withoutSuffix || isFuture ? 'leta' : 'leti'; 34906 } else { 34907 result += withoutSuffix || isFuture ? 'let' : 'leti'; 34908 } 34909 return result; 34910 } 34911 } 34912 34913 var sl = moment.defineLocale('sl', { 34914 months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( 34915 '_' 34916 ), 34917 monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( 34918 '_' 34919 ), 34920 monthsParseExact: true, 34921 weekdays: 'nedelja_ponedeljek_torek_sreda_Äetrtek_petek_sobota'.split('_'), 34922 weekdaysShort: 'ned._pon._tor._sre._Äet._pet._sob.'.split('_'), 34923 weekdaysMin: 'ne_po_to_sr_Äe_pe_so'.split('_'), 34924 weekdaysParseExact: true, 34925 longDateFormat: { 34926 LT: 'H:mm', 34927 LTS: 'H:mm:ss', 34928 L: 'DD. MM. YYYY', 34929 LL: 'D. MMMM YYYY', 34930 LLL: 'D. MMMM YYYY H:mm', 34931 LLLL: 'dddd, D. MMMM YYYY H:mm', 34932 }, 34933 calendar: { 34934 sameDay: '[danes ob] LT', 34935 nextDay: '[jutri ob] LT', 34936 34937 nextWeek: function () { 34938 switch (this.day()) { 34939 case 0: 34940 return '[v] [nedeljo] [ob] LT'; 34941 case 3: 34942 return '[v] [sredo] [ob] LT'; 34943 case 6: 34944 return '[v] [soboto] [ob] LT'; 34945 case 1: 34946 case 2: 34947 case 4: 34948 case 5: 34949 return '[v] dddd [ob] LT'; 34950 } 34951 }, 34952 lastDay: '[vÄeraj ob] LT', 34953 lastWeek: function () { 34954 switch (this.day()) { 34955 case 0: 34956 return '[prejÅ¡njo] [nedeljo] [ob] LT'; 34957 case 3: 34958 return '[prejÅ¡njo] [sredo] [ob] LT'; 34959 case 6: 34960 return '[prejÅ¡njo] [soboto] [ob] LT'; 34961 case 1: 34962 case 2: 34963 case 4: 34964 case 5: 34965 return '[prejÅ¡nji] dddd [ob] LT'; 34966 } 34967 }, 34968 sameElse: 'L', 34969 }, 34970 relativeTime: { 34971 future: 'Äez %s', 34972 past: 'pred %s', 34973 s: processRelativeTime, 34974 ss: processRelativeTime, 34975 m: processRelativeTime, 34976 mm: processRelativeTime, 34977 h: processRelativeTime, 34978 hh: processRelativeTime, 34979 d: processRelativeTime, 34980 dd: processRelativeTime, 34981 M: processRelativeTime, 34982 MM: processRelativeTime, 34983 y: processRelativeTime, 34984 yy: processRelativeTime, 34985 }, 34986 dayOfMonthOrdinalParse: /\d{1,2}\./, 34987 ordinal: '%d.', 34988 week: { 34989 dow: 1, // Monday is the first day of the week. 34990 doy: 7, // The week that contains Jan 7th is the first week of the year. 34991 }, 34992 }); 34993 34994 return sl; 34995 34996}))); 34997 34998 34999/***/ }), 35000/* 109 */ 35001/***/ (function(module, exports, __webpack_require__) { 35002 35003//! moment.js locale configuration 35004//! locale : Albanian [sq] 35005//! author : Flakërim Ismani : https://github.com/flakerimi 35006//! author : Menelion Elensúle : https://github.com/Oire 35007//! author : Oerd Cukalla : https://github.com/oerd 35008 35009;(function (global, factory) { 35010 true ? factory(__webpack_require__(0)) : 35011 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 35012 factory(global.moment) 35013}(this, (funct
35013ion (moment) { 'use strict'; 35014 35015 //! moment.js locale configuration 35016 35017 var sq = moment.defineLocale('sq', { 35018 months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split( 35019 '_' 35020 ), 35021 monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), 35022 weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split( 35023 '_' 35024 ), 35025 weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), 35026 weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'), 35027 weekdaysParseExact: true, 35028 meridiemParse: /PD|MD/, 35029 isPM: function (input) { 35030 return input.charAt(0) === 'M'; 35031 }, 35032 meridiem: function (hours, minutes, isLower) { 35033 return hours < 12 ? 'PD' : 'MD'; 35034 }, 35035 longDateFormat: { 35036 LT: 'HH:mm', 35037 LTS: 'HH:mm:ss', 35038 L: 'DD/MM/YYYY', 35039 LL: 'D MMMM YYYY', 35040 LLL: 'D MMMM YYYY HH:mm', 35041 LLLL: 'dddd, D MMMM YYYY HH:mm', 35042 }, 35043 calendar: { 35044 sameDay: '[Sot në] LT', 35045 nextDay: '[Nesër në] LT', 35046 nextWeek: 'dddd [në] LT', 35047 lastDay: '[Dje në] LT', 35048 lastWeek: 'dddd [e kaluar në] LT', 35049 sameElse: 'L', 35050 }, 35051 relativeTime: { 35052 future: 'në %s', 35053 past: '%s më parë', 35054 s: 'disa sekonda', 35055 ss: '%d sekonda', 35056 m: 'një minutë', 35057 mm: '%d minuta', 35058 h: 'një orë', 35059 hh: '%d orë', 35060 d: 'një ditë', 35061 dd: '%d ditë', 35062 M: 'një muaj', 35063 MM: '%d muaj', 35064 y: 'një vit', 35065 yy: '%d vite', 35066 }, 35067 dayOfMonthOrdinalParse: /\d{1,2}\./, 35068 ordinal: '%d.', 35069 week: { 35070 dow: 1, // Monday is the first day of the week. 35071 doy: 4, // The week that contains Jan 4th is the first week of the year. 35072 }, 35073 }); 35074 35075 return sq; 35076 35077}))); 35078 35079 35080/***/ }), 35081/* 110 */ 35082/***/ (function(module, exports, __webpack_require__) { 35083 35084//! moment.js locale configuration 35085//! locale : Serbian [sr] 35086//! author : Milan JanaÄkoviÄ<[email protected]> : https://github.com/milan-j 35087//! author : Stefan CrnjakoviÄ <[email protected]> : https://github.com/crnjakovic 35088 35089;(function (global, factory) { 35090 true ? factory(__webpack_require__(0)) : 35091 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 35092 factory(global.moment) 35093}(this, (function (moment) { 'use strict'; 35094 35095 //! moment.js locale configuration 35096 35097 var translator = { 35098 words: { 35099 //Different grammatical cases 35100 ss: ['sekunda', 'sekunde', 'sekundi'], 35101 m: ['jedan minut', 'jedne minute'], 35102 mm: ['minut', 'minute', 'minuta'], 35103 h: ['jedan sat', 'jednog sata'], 35104 hh: ['sat', 'sata', 'sati'], 35105 dd: ['dan', 'dana', 'dana'], 35106 MM: ['mesec', 'meseca', 'meseci'], 35107 yy: ['godina', 'godine', 'godina'], 35108 }, 35109 correctGrammaticalCase: function (number, wordKey) { 35110 return number === 1 35111 ? wordKey[0] 35112 : number >= 2 && number <= 4 35113 ? wordKey[1] 35114 : wordKey[2]; 35115 }, 35116 translate: function (number, withoutSuffix, key) { 35117 var wordKey = translator.words[key]; 35118 if (key.length === 1) { 35119 return withoutSuffix ? wordKey[0] : wordKey[1]; 35120 } else { 35121 return ( 35122 number + 35123 ' ' + 35124 translator.correctGrammaticalCase(number, wordKey) 35125 ); 35126 } 35127 }, 35128 }; 35129 35130 var sr = moment.defineLocale('sr', { 35131 months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( 35132 '_' 35133 ), 35134 monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split( 35135 '_' 35136 ), 35137 monthsParseExact: true, 35138 weekdays: 'nedelja_ponedeljak_utorak_sreda_Äetvrtak_petak_subota'.split( 35139 '_' 35140 ), 35141 weekdaysShort: 'ned._pon._uto._sre._Äet._pet._sub.'.split('_'), 35142 weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'), 35143 weekdaysParseExact: true, 35144 longDateFormat: { 35145 LT: 'H:mm', 35146 LTS: 'H:mm:ss', 35147 L: 'D. M. YYYY.', 35148 LL: 'D. MMMM YYYY.', 35149 LLL: 'D. MMMM YYYY. H:mm', 35150 LLLL: 'dddd, D. MMMM YYYY. H:mm', 35151 }, 35152 calendar: { 35153 sameDay: '[danas u] LT', 35154 nextDay: '[sutra u] LT', 35155 nextWeek: function () { 35156 switch (this.day()) { 35157 case 0: 35158 return '[u] [nedelju] [u] LT'; 35159 case 3: 35160 return '[u] [sredu] [u] LT'; 35161 case 6: 35162 return '[u] [subotu] [u] LT'; 35163 case 1: 35164 case 2: 35165 case 4: 35166 case 5: 35167 return '[u] dddd [u] LT'; 35168 } 35169 }, 35170 lastDay: '[juÄe u] LT', 35171 lastWeek: function () { 35172 var lastWeekDays = [ 35173 '[proÅ¡le] [nedelje] [u] LT', 35174 '[proÅ¡log] [ponedeljka] [u] LT', 35175 '[proÅ¡log] [utorka] [u] LT', 35176 '[proÅ¡le] [srede] [u] LT', 35177 '[proÅ¡log] [Äetvrtka] [u] LT', 35178 '[proÅ¡log] [petka] [u] LT', 35179 '[proÅ¡le] [subote] [u] LT', 35180 ]; 35181 return lastWeekDays[this.day()]; 35182 }, 35183 sameElse: 'L', 35184 }, 35185 relativeTime: { 35186 future: 'za %s', 35187 past: 'pre %s', 35188 s: 'nekoliko sekundi', 35189 ss: translator.translate, 35190 m: translator.translate, 35191 mm: translator.translate, 35192 h: translator.translate, 35193 hh: translator.translate, 35194 d: 'dan', 35195 dd: translator.translate, 35196 M: 'mesec', 35197 MM: translator.translate, 35198 y: 'godinu', 35199 yy: translator.translate, 35200 }, 35201 dayOfMonthOrdinalParse: /\d{1,2}\./, 35202 ordinal: '%d.', 35203 week: { 35204 dow: 1, // Monday is the first day of the week. 35205 doy: 7, // The week that contains Jan 7th is the first week of the year. 35206 }, 35207 }); 35208 35209 return sr; 35210 35211}))); 35212 35213 35214/***/ }), 35215/* 111 */ 35216/***/ (function(module, exports, __webpack_require__) { 35217 35218//! moment.js locale configuration 35219//! locale : Serbian Cyrillic [sr-cyrl] 35220//! author : Milan JanaÄkoviÄ<[email protected]> : https://github.com/milan-j 35221//! author : Stefan CrnjakoviÄ <[email protected]> : https://github.com/crnjakovic 35222 35223;(function (global, factory) { 35224 true ? factory(__webpack_require__(0)) : 35225 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 35226 factory(global.moment) 35227}(this, (function (moment) { 'use strict'; 35228 35229 //! moment.js locale configuration 35230 35231 var translator = { 35232 words: { 35233 //Different grammatical cases 35234 ss: ['ÑекÑнда', 'ÑекÑнде', 'ÑекÑнди'], 35235 m: ['Ñедан минÑÑ', 'Ñедне минÑÑе'], 35236 mm: ['минÑÑ', 'минÑÑе', 'минÑÑа'], 35237 h: ['Ñедан ÑаÑ', 'Ñедног ÑаÑа'], 35238 hh: ['ÑаÑ', 'ÑаÑа', 'ÑаÑи'], 35239 dd: ['дан', 'дана', 'дана'], 35240 MM: ['меÑеÑ', 'меÑеÑа', 'меÑеÑи'], 35241 yy: ['година', 'године', 'година'], 35242 }, 35243 correctGrammaticalCase: function (number, wordKey) { 35244 return number === 1 35245 ? wordKey[0] 35246 : number >= 2 && number <= 4 35247 ? wordKey[1] 35248 : wordKey[2]; 35249 }, 35250 translate: function (number, withoutSuffix, key) { 35251 var wordKey = translator.words[key]; 35252 if (key.length === 1) { 35253 return withoutSuffix ? wordKey[0] : wordKey[1]; 35254 } else { 35255 return ( 35256 number + 35257 ' ' + 35258 translator.correctGrammaticalCase(number, wordKey) 35259 ); 35260 } 35261 }, 35262 }; 35263 35264 var srCyrl = moment.defineLocale('sr-cyrl', { 35265 months: 'ÑанÑаÑ_ÑебÑÑаÑ_маÑÑ_апÑил_маÑ_ÑÑн_ÑÑл_авгÑÑÑ_ÑепÑембаÑ_ок
35265ÑобаÑ_новембаÑ_деÑембаÑ'.split( 35266 '_' 35267 ), 35268 monthsShort: 'Ñан._Ñеб._маÑ._апÑ._маÑ_ÑÑн_ÑÑл_авг._Ñеп._окÑ._нов._деÑ.'.split( 35269 '_' 35270 ), 35271 monthsParseExact: true, 35272 weekdays: 'недеÑа_понедеÑак_ÑÑоÑак_ÑÑеда_ÑеÑвÑÑак_пеÑак_ÑÑбоÑа'.split('_'), 35273 weekdaysShort: 'нед._пон._ÑÑо._ÑÑе._ÑеÑ._пеÑ._ÑÑб.'.split('_'), 35274 weekdaysMin: 'не_по_ÑÑ_ÑÑ_Ñе_пе_ÑÑ'.split('_'), 35275 weekdaysParseExact: true, 35276 longDateFormat: { 35277 LT: 'H:mm', 35278 LTS: 'H:mm:ss', 35279 L: 'D. M. YYYY.', 35280 LL: 'D. MMMM YYYY.', 35281 LLL: 'D. MMMM YYYY. H:mm', 35282 LLLL: 'dddd, D. MMMM YYYY. H:mm', 35283 }, 35284 calendar: { 35285 sameDay: '[Ð´Ð°Ð½Ð°Ñ Ñ] LT', 35286 nextDay: '[ÑÑÑÑа Ñ] LT', 35287 nextWeek: function () { 35288 switch (this.day()) { 35289 case 0: 35290 return '[Ñ] [недеÑÑ] [Ñ] LT'; 35291 case 3: 35292 return '[Ñ] [ÑÑедÑ] [Ñ] LT'; 35293 case 6: 35294 return '[Ñ] [ÑÑбоÑÑ] [Ñ] LT'; 35295 case 1: 35296 case 2: 35297 case 4: 35298 case 5: 35299 return '[Ñ] dddd [Ñ] LT'; 35300 } 35301 }, 35302 lastDay: '[ÑÑÑе Ñ] LT', 35303 lastWeek: function () { 35304 var lastWeekDays = [ 35305 '[пÑоÑле] [недеÑе] [Ñ] LT', 35306 '[пÑоÑлог] [понедеÑка] [Ñ] LT', 35307 '[пÑоÑлог] [ÑÑоÑка] [Ñ] LT', 35308 '[пÑоÑле] [ÑÑеде] [Ñ] LT', 35309 '[пÑоÑлог] [ÑеÑвÑÑка] [Ñ] LT', 35310 '[пÑоÑлог] [пеÑка] [Ñ] LT', 35311 '[пÑоÑле] [ÑÑбоÑе] [Ñ] LT', 35312 ]; 35313 return lastWeekDays[this.day()]; 35314 }, 35315 sameElse: 'L', 35316 }, 35317 relativeTime: { 35318 future: 'за %s', 35319 past: 'пÑе %s', 35320 s: 'неколико ÑекÑнди', 35321 ss: translator.translate, 35322 m: translator.translate, 35323 mm: translator.translate, 35324 h: translator.translate, 35325 hh: translator.translate, 35326 d: 'дан', 35327 dd: translator.translate, 35328 M: 'меÑеÑ', 35329 MM: translator.translate, 35330 y: 'годинÑ', 35331 yy: translator.translate, 35332 }, 35333 dayOfMonthOrdinalParse: /\d{1,2}\./, 35334 ordinal: '%d.', 35335 week: { 35336 dow: 1, // Monday is the first day of the week. 35337 doy: 7, // The week that contains Jan 1st is the first week of the year. 35338 }, 35339 }); 35340 35341 return srCyrl; 35342 35343}))); 35344 35345 35346/***/ }), 35347/* 112 */ 35348/***/ (function(module, exports, __webpack_require__) { 35349 35350//! moment.js locale configuration 35351//! locale : siSwati [ss] 35352//! author : Nicolai Davies<[email protected]> : https://github.com/nicolaidavies 35353 35354;(function (global, factory) { 35355 true ? factory(__webpack_require__(0)) : 35356 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 35357 factory(global.moment) 35358}(this, (function (moment) { 'use strict'; 35359 35360 //! moment.js locale configuration 35361 35362 var ss = moment.defineLocale('ss', { 35363 months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( 35364 '_' 35365 ), 35366 monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), 35367 weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( 35368 '_' 35369 ), 35370 weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), 35371 weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), 35372 weekdaysParseExact: true, 35373 longDateFormat: { 35374 LT: 'h:mm A', 35375 LTS: 'h:mm:ss A', 35376 L: 'DD/MM/YYYY', 35377 LL: 'D MMMM YYYY', 35378 LLL: 'D MMMM YYYY h:mm A', 35379 LLLL: 'dddd, D MMMM YYYY h:mm A', 35380 }, 35381 calendar: {
35382 sameDay: '[Namuhla nga] LT', 35383 nextDay: '[Kusasa nga] LT', 35384 nextWeek: 'dddd [nga] LT', 35385 lastDay: '[Itolo nga] LT', 35386 lastWeek: 'dddd [leliphelile] [nga] LT', 35387 sameElse: 'L', 35388 }, 35389 relativeTime: { 35390 future: 'nga %s', 35391 past: 'wenteka nga %s', 35392 s: 'emizuzwana lomcane', 35393 ss: '%d mzuzwana', 35394 m: 'umzuzu', 35395 mm: '%d emizuzu', 35396 h: 'lihora', 35397 hh: '%d emahora', 35398 d: 'lilanga', 35399 dd: '%d emalanga', 35400 M: 'inyanga', 35401 MM: '%d tinyanga', 35402 y: 'umnyaka', 35403 yy: '%d iminyaka', 35404 }, 35405 meridiemParse: /ekuseni|emini|entsambama|ebusuku/, 35406 meridiem: function (hours, minutes, isLower) { 35407 if (hours < 11) { 35408 return 'ekuseni'; 35409 } else if (hours < 15) { 35410 return 'emini'; 35411 } else if (hours < 19) { 35412 return 'entsambama'; 35413 } else { 35414 return 'ebusuku'; 35415 } 35416 }, 35417 meridiemHour: function (hour, meridiem) { 35418 if (hour === 12) { 35419 hour = 0; 35420 } 35421 if (meridiem === 'ekuseni') { 35422 return hour; 35423 } else if (meridiem === 'emini') { 35424 return hour >= 11 ? hour : hour + 12; 35425 } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { 35426 if (hour === 0) { 35427 return 0; 35428 } 35429 return hour + 12; 35430 } 35431 }, 35432 dayOfMonthOrdinalParse: /\d{1,2}/, 35433 ordinal: '%d', 35434 week: { 35435 dow: 1, // Monday is the first day of the week. 35436 doy: 4, // The week that contains Jan 4th is the first week of the year. 35437 }, 35438 }); 35439 35440 return ss; 35441 35442}))); 35443 35444 35445/***/ }), 35446/* 113 */ 35447/***/ (function(module, exports, __webpack_require__) { 35448 35449//! moment.js locale configuration 35450//! locale : Swedish [sv] 35451//! author : Jens Alm : https://github.com/ulmus 35452 35453;(function (global, factory) { 35454 true ? factory(__webpack_require__(0)) : 35455 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 35456 factory(global.moment) 35457}(this, (function (moment) { 'use strict'; 35458 35459 //! moment.js locale configuration 35460 35461 var sv = moment.defineLocale('sv', { 35462 months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( 35463 '_' 35464 ), 35465 monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), 35466 weekdays: 'söndag_mÃ¥ndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), 35467 weekdaysShort: 'sön_mÃ¥n_tis_ons_tor_fre_lör'.split('_'), 35468 weekdaysMin: 'sö_mÃ¥_ti_on_to_fr_lö'.split('_'), 35469 longDateFormat: { 35470 LT: 'HH:mm', 35471 LTS: 'HH:mm:ss', 35472 L: 'YYYY-MM-DD', 35473 LL: 'D MMMM YYYY', 35474 LLL: 'D MMMM YYYY [kl.] HH:mm', 35475 LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', 35476 lll: 'D MMM YYYY HH:mm', 35477 llll: 'ddd D MMM YYYY HH:mm', 35478 }, 35479 calendar: { 35480 sameDay: '[Idag] LT', 35481 nextDay: '[Imorgon] LT', 35482 lastDay: '[IgÃ¥r] LT', 35483 nextWeek: '[PÃ¥] dddd LT', 35484 lastWeek: '[I] dddd[s] LT', 35485 sameElse: 'L', 35486 }, 35487 relativeTime: { 35488 future: 'om %s', 35489 past: 'för %s sedan', 35490 s: 'nÃ¥gra sekunder', 35491 ss: '%d sekunder', 35492 m: 'en minut', 35493 mm: '%d minuter', 35494 h: 'en timme', 35495 hh: '%d timmar', 35496 d: 'en dag', 35497 dd: '%d dagar', 35498 M: 'en mÃ¥nad', 35499 MM: '%d mÃ¥nader', 35500 y: 'ett Ã¥r', 35501 yy: '%d Ã¥r', 35502 }, 35503 dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, 35504 ordinal: function (number) { 35505 var b = number % 10, 35506 output = 35507 ~~((number % 100) / 10) === 1 35508 ? ':e' 35509 : b === 1 35510 ? ':a' 35511 : b === 2 35512 ? ':a' 35513 : b === 3 35514 ? ':e' 35515 : ':e'; 35516 return number + output; 35517 }, 35518 week: { 35519 dow: 1, // Monday is the first day of the week. 35520 doy: 4, // The week that contains Jan 4th is the first week of the year. 35521 }, 35522 }); 35523 35524 return sv; 35525 35526}))); 35527 35528 35529/***/ }), 35530/* 114 */ 35531/***/ (function(module, exports, __webpack_require__) { 35532 35533//! moment.js locale configuration 35534//! locale : Swahili [sw] 35535//! author : Fahad Kassim : https://github.com/fadsel 35536 35537;(function (global, factory) { 35538 true ? factory(__webpack_require__(0)) : 35539 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 35540 factory(global.moment) 35541}(this, (function (moment) { 'use strict'; 35542 35543 //! moment.js locale configuration 35544 35545 var sw = moment.defineLocale('sw', { 35546 months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( 35547 '_' 35548 ), 35549 monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), 35550 weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( 35551 '_' 35552 ), 35553 weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), 35554 weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), 35555 weekdaysParseExact: true, 35556 longDateFormat: { 35557 LT: 'hh:mm A', 35558 LTS: 'HH:mm:ss', 35559 L: 'DD.MM.YYYY', 35560 LL: 'D MMMM YYYY', 35561 LLL: 'D MMMM YYYY HH:mm', 35562 LLLL: 'dddd, D MMMM YYYY HH:mm', 35563 }, 35564 calendar: { 35565 sameDay: '[leo saa] LT', 35566 nextDay: '[kesho saa] LT', 35567 nextWeek: '[wiki ijayo] dddd [saat] LT', 35568 lastDay: '[jana] LT', 35569 lastWeek: '[wiki iliyopita] dddd [saat] LT', 35570 sameElse: 'L', 35571 }, 35572 relativeTime: { 35573 future: '%s baadaye', 35574 past: 'tokea %s', 35575 s: 'hivi punde', 35576 ss: 'sekunde %d', 35577 m: 'dakika moja', 35578 mm: 'dakika %d', 35579 h: 'saa limoja', 35580 hh: 'masaa %d', 35581 d: 'siku moja', 35582 dd: 'siku %d', 35583 M: 'mwezi mmoja', 35584 MM: 'miezi %d', 35585 y: 'mwaka mmoja', 35586 yy: 'miaka %d', 35587 }, 35588 week: { 35589 dow: 1, // Monday is the first day of the week. 35590 doy: 7, // The week that contains Jan 7th is the first week of the year. 35591 }, 35592 }); 35593 35594 return sw; 35595 35596}))); 35597 35598 35599/***/ }), 35600/* 115 */ 35601/***/ (function(module, exports, __webpack_require__) { 35602 35603//! moment.js locale configuration 35604//! locale : Tamil [ta] 35605//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 35606 35607;(function (global, factory) { 35608 true ? factory(__webpack_require__(0)) : 35609 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 35610 factory(global.moment) 35611}(this, (function (moment) { 'use strict'; 35612 35613 //! moment.js locale configuration 35614 35615 var symbolMap = { 35616 1: '௧', 35617 2: '௨', 35618 3: '௩', 35619 4: '௪', 35620 5: '௫', 35621 6: '௬', 35622 7: 'à¯', 35623 8: '௮', 35624 9: '௯', 35625 0: '௦', 35626 }, 35627 numberMap = { 35628 '௧': '1', 35629 '௨': '2', 35630 '௩': '3', 35631 '௪': '4', 35632 '௫': '5', 35633 '௬': '6', 35634 'à¯': '7', 35635 '௮': '8', 35636 '௯': '9', 35637 '௦': '0', 35638 }; 35639 35640 var ta = moment.defineLocale('ta', { 35641 months: 'à®à®©à®µà®°à®¿_பிபà¯à®°à®µà®°à®¿_மாரà¯à®à¯_à®à®ªà¯à®°à®²à¯_à®®à¯_à®à¯à®©à¯_à®à¯à®²à¯_à®à®à®¸à¯à®à¯_à®à¯à®ªà¯à®à¯à®®à¯à®ª
35641à®°à¯_à® à®à¯à®à¯à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_à®à®¿à®à®®à¯à®ªà®°à¯'.split( 35642 '_' 35643 ), 35644 monthsShort: 'à®à®©à®µà®°à®¿_பிபà¯à®°à®µà®°à®¿_மாரà¯à®à¯_à®à®ªà¯à®°à®²à¯_à®®à¯_à®à¯à®©à¯_à®à¯à®²à¯_à®à®à®¸à¯à®à¯_à®à¯à®ªà¯à®à¯à®®à¯à®ªà®°à¯_à® à®à¯à®à¯à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_à®à®¿à®à®®à¯à®ªà®°à¯'.split( 35645 '_' 35646 ), 35647 weekdays: 'à®à®¾à®¯à®¿à®±à¯à®±à¯à®à¯à®à®¿à®´à®®à¯_திà®à¯à®à®à¯à®à®¿à®´à®®à¯_à®à¯à®µà¯à®µà®¾à®¯à¯à®à®¿à®´à®®à¯_பà¯à®¤à®©à¯à®à®¿à®´à®®à¯_வியாழà®à¯à®à®¿à®´à®®à¯_வà¯à®³à¯à®³à®¿à®à¯à®à®¿à®´à®®à¯_à®à®©à®¿à®à¯à®à®¿à®´à®®à¯'.split( 35648 '_' 35649 ), 35650 weekdaysShort: 'à®à®¾à®¯à®¿à®±à¯_திà®à¯à®à®³à¯_à®à¯à®µà¯à®µà®¾à®¯à¯_பà¯à®¤à®©à¯_வியாழனà¯_வà¯à®³à¯à®³à®¿_à®à®©à®¿'.split( 35651 '_' 35652 ), 35653 weekdaysMin: 'à®à®¾_தி_à®à¯_பà¯_வி_வà¯_à®'.split('_'), 35654 longDateFormat: { 35655 LT: 'HH:mm', 35656 LTS: 'HH:mm:ss', 35657 L: 'DD/MM/YYYY', 35658 LL: 'D MMMM YYYY', 35659 LLL: 'D MMMM YYYY, HH:mm', 35660 LLLL: 'dddd, D MMMM YYYY, HH:mm', 35661 }, 35662 calendar: { 35663 sameDay: '[à®à®©à¯à®±à¯] LT', 35664 nextDay: '[நாளà¯] LT', 35665 nextWeek: 'dddd, LT', 35666 lastDay: '[நà¯à®±à¯à®±à¯] LT', 35667 lastWeek: '[à®à®à®¨à¯à®¤ வாரமà¯] dddd, LT', 35668 sameElse: 'L', 35669 }, 35670 relativeTime: { 35671 future: '%s à®à®²à¯', 35672 past: '%s à®®à¯à®©à¯', 35673 s: 'à®à®°à¯ à®à®¿à®² விநாà®à®¿à®à®³à¯', 35674 ss: '%d விநாà®à®¿à®à®³à¯', 35675 m: 'à®à®°à¯ நிமிà®à®®à¯', 35676 mm: '%d நிமிà®à®à¯à®à®³à¯', 35677 h: 'à®à®°à¯ மணி நà¯à®°à®®à¯', 35678 hh: '%d மணி நà¯à®°à®®à¯', 35679 d: 'à®à®°à¯ நாளà¯', 35680 dd: '%d நாà®à¯à®à®³à¯', 35681 M: 'à®à®°à¯ மாதமà¯', 35682 MM: '%d மாதà®à¯à®à®³à¯', 35683 y: 'à®à®°à¯ வரà¯à®à®®à¯', 35684 yy: '%d à®à®£à¯à®à¯à®à®³à¯', 35685 }, 35686 dayOfMonthOrdinalParse: /\d{1,2}வதà¯/, 35687 ordinal: function (number) { 35688 return number + 'வதà¯'; 35689 }, 35690 preparse: function (string) { 35691 return string.replace(/[௧௨௩௪௫௬à¯à¯®à¯¯à¯¦]/g, function (match) { 35692 return numberMap[match]; 35693 }); 35694 }, 35695 postformat: function (string) { 35696 return string.replace(/\d/g, function (match) { 35697 return symbolMap[match]; 35698 }); 35699 }, 35700 // refer http://ta.wikipedia.org/s/1er1 35701 meridiemParse: /யாமமà¯|வà¯à®à®±à¯|à®à®¾à®²à¯|நணà¯à®ªà®à®²à¯|à®à®±à¯à®ªà®¾à®à¯|மாலà¯/, 35702 meridiem: function (hour, minute, isLower) { 35703 if (hour < 2) { 35704 return ' யாமமà¯'; 35705 } else if (hour < 6) { 35706 return ' வà¯à®à®±à¯'; // வà¯à®à®±à¯ 35707 } else if (hour < 10) { 35708 return ' à®à®¾à®²à¯'; // à®à®¾à®²à¯ 35709 } else if (hour < 14) { 35710 return ' நணà¯à®ªà®à®²à¯'; // நணà¯à®ªà®à®²à¯ 35711 } else if (hour < 18) { 35712 return ' à®à®±à¯à®ªà®¾à®à¯'; // à®à®±à¯à®ªà®¾à®à¯ 35713 } else if (hour < 22) { 35714 return ' மாலà¯'; // மால௠35715 } else { 35716 return ' யாமமà¯'; 35717 } 35718 }, 35719 meridiemHour: function (hour, meridiem) { 35720 if (hour === 12) { 35721 hour = 0; 35722 } 35723 if (meridiem === 'யாமமà¯') { 35724 return hour < 2 ? hour : hour + 12; 35725 } else if (meridiem === 'வà¯à®à®±à¯' || meridiem === 'à®à®¾à®²à¯') { 35726 return hour; 35727 } else if (meridiem === 'நணà¯à®ªà®à®²à¯') { 35728 return hour >= 10 ? hour : hour + 12; 35729 } else { 35730 return hour + 12; 35731 } 35732 }, 35733 week: { 35734 dow: 0, // Sunday is the first day of the week. 35735 doy: 6, // The week that contains Jan 6th is the first week of the year. 35736 }, 35737 }); 35738 35739 return ta; 35740 35741}))); 35742 35743 35744/***/ }), 35745/* 116 */ 35746/***/ (function(module, exports, __webpack_require__) { 35747 35748//! moment.js locale configuration 35749//! locale : Telugu [te] 35750//! author : Krishna Chaitanya Thota : https://github.com/kcthota 35751 35752;(function (global, factory) { 35753 true ? factory(__webpack_require__(0)) : 35754 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 35755 factory(global.moment) 35756}(this, (function (moment) { 'use strict'; 35757 35758 //! moment.js locale configuration 35759 35760 var te = moment.defineLocale('te', { 35761 months: 'à°à°¨à°µà°°à°¿_à°«à°¿à°¬à±à°°à°µà°°à°¿_మారà±à°à°¿_à°à°ªà±à°°à°¿à°²à±_à°®à±_à°à±à°¨à±_à°à±à°²à±_à°à°à°¸à±à°à±_à°¸à±à°ªà±à°à±à°à°¬à°°à±_à° à°à±à°à±à°¬à°°à±_నవà°à°¬à°°à±_à°¡à°¿à°¸à±à°à°¬à°°à±'.split( 35762 '_' 35763 ), 35764 monthsShort: 'à°à°¨._à°«à°¿à°¬à±à°°._మారà±à°à°¿_à°à°ªà±à°°à°¿._à°®à±_à°à±à°¨à±_à°à±à°²à±_à°à°._à°¸à±à°ªà±._à° à°à±à°à±._నవ._à°¡à°¿à°¸à±.'.split( 35765 '_' 35766 ), 35767 monthsParseExact: true, 35768 weekdays: 'à°à°¦à°¿à°µà°¾à°°à°_à°¸à±à°®à°µà°¾à°°à°_à°®à°à°à°³à°µà°¾à°°à°_à°¬à±à°§à°µà°¾à°°à°_à°à±à°°à±à°µà°¾à°°à°_à°¶à±à°à±à°°à°µà°¾à°°à°_శనివారà°'.split( 35769 '_' 35770 ), 35771 weekdaysShort: 'à°à°¦à°¿_à°¸à±à°®_à°®à°à°à°³_à°¬à±à°§_à°à±à°°à±_à°¶à±à°à±à°°_శని'.split('_'), 35772 weekdaysMin: 'à°_à°¸à±_à°®à°_à°¬à±_à°à±_à°¶à±_à°¶'.split('_'), 35773 longDateFormat: { 35774 LT: 'A h:mm', 35775 LTS: 'A h:mm:ss', 35776 L: 'DD/MM/YYYY', 35777 LL: 'D MMMM YYYY', 35778 LLL: 'D MMMM YYYY, A h:mm', 35779 LLLL: 'dddd, D MMMM YYYY, A h:mm', 35780 }, 35781 calendar: { 35782 sameDay: '[à°¨à±à°¡à±] LT', 35783 nextDay: '[à°°à±à°ªà±] LT', 35784 nextWeek: 'dddd, LT', 35785 lastDay: '[నినà±à°¨] LT', 35786 lastWeek: '[à°à°¤] dddd, LT', 35787 sameElse: 'L', 35788 }, 35789 relativeTime: { 35790 future: '%s à°²à±', 35791 past: '%s à°à±à°°à°¿à°¤à°', 35792 s: 'à°à±à°¨à±à°¨à°¿ à°à±à°·à°£à°¾à°²à±', 35793 ss: '%d à°¸à±à°à°¨à±à°²à±', 35794 m: 'à°à° నిమిషà°', 35795 mm: '%d నిమిషాలà±', 35796 h: 'à°à° à°à°à°', 35797 hh: '%d à°à°à°à°²à±', 35798 d: 'à°à° à°°à±à°à±', 35799 dd: '%d à°°à±à°à±à°²à±', 35800 M: 'à°à° à°¨à±à°²', 35801 MM: '%d à°¨à±à°²à°²à±', 35802 y: 'à°à° à°¸à°à°µà°¤à±à°¸à°°à°', 35803 yy: '%d à°¸à°à°µà°¤à±à°¸à°°à°¾à°²à±', 35804 }, 35805 dayOfMonthOrdinalParse: /\d{1,2}à°µ/,
35806 ordinal: '%dà°µ', 35807 meridiemParse: /రాతà±à°°à°¿|à°à°¦à°¯à°|మధà±à°¯à°¾à°¹à±à°¨à°|సాయà°à°¤à±à°°à°/, 35808 meridiemHour: function (hour, meridiem) { 35809 if (hour === 12) { 35810 hour = 0; 35811 } 35812 if (meridiem === 'రాతà±à°°à°¿') { 35813 return hour < 4 ? hour : hour + 12; 35814 } else if (meridiem === 'à°à°¦à°¯à°') { 35815 return hour; 35816 } else if (meridiem === 'మధà±à°¯à°¾à°¹à±à°¨à°') { 35817 return hour >= 10 ? hour : hour + 12; 35818 } else if (meridiem === 'సాయà°à°¤à±à°°à°') { 35819 return hour + 12; 35820 } 35821 }, 35822 meridiem: function (hour, minute, isLower) { 35823 if (hour < 4) { 35824 return 'రాతà±à°°à°¿'; 35825 } else if (hour < 10) { 35826 return 'à°à°¦à°¯à°'; 35827 } else if (hour < 17) { 35828 return 'మధà±à°¯à°¾à°¹à±à°¨à°'; 35829 } else if (hour < 20) { 35830 return 'సాయà°à°¤à±à°°à°'; 35831 } else { 35832 return 'రాతà±à°°à°¿'; 35833 } 35834 }, 35835 week: { 35836 dow: 0, // Sunday is the first day of the week. 35837 doy: 6, // The week that contains Jan 6th is the first week of the year. 35838 }, 35839 }); 35840 35841 return te; 35842 35843}))); 35844 35845 35846/***/ }), 35847/* 117 */ 35848/***/ (function(module, exports, __webpack_require__) { 35849 35850//! moment.js locale configuration 35851//! locale : Tetun Dili (East Timor) [tet] 35852//! author : Joshua Brooks : https://github.com/joshbrooks 35853//! author : Onorio De J. Afonso : https://github.com/marobo 35854//! author : Sonia Simoes : https://github.com/soniasimoes 35855 35856;(function (global, factory) { 35857 true ? factory(__webpack_require__(0)) : 35858 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 35859 factory(global.moment) 35860}(this, (function (moment) { 'use strict'; 35861 35862 //! moment.js locale configuration 35863 35864 var tet = moment.defineLocale('tet', { 35865 months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( 35866 '_' 35867 ), 35868 monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), 35869 weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), 35870 weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), 35871 weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), 35872 longDateFormat: { 35873 LT: 'HH:mm', 35874 LTS: 'HH:mm:ss', 35875 L: 'DD/MM/YYYY', 35876 LL: 'D MMMM YYYY', 35877 LLL: 'D MMMM YYYY HH:mm', 35878 LLLL: 'dddd, D MMMM YYYY HH:mm', 35879 }, 35880 calendar: { 35881 sameDay: '[Ohin iha] LT', 35882 nextDay: '[Aban iha] LT', 35883 nextWeek: 'dddd [iha] LT', 35884 lastDay: '[Horiseik iha] LT', 35885 lastWeek: 'dddd [semana kotuk] [iha] LT', 35886 sameElse: 'L', 35887 }, 35888 relativeTime: { 35889 future: 'iha %s', 35890 past: '%s liuba', 35891 s: 'segundu balun', 35892 ss: 'segundu %d', 35893 m: 'minutu ida', 35894 mm: 'minutu %d', 35895 h: 'oras ida', 35896 hh: 'oras %d', 35897 d: 'loron ida', 35898 dd: 'loron %d', 35899 M: 'fulan ida', 35900 MM: 'fulan %d', 35901 y: 'tinan ida', 35902 yy: 'tinan %d', 35903 }, 35904 dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, 35905 ordinal: function (number) { 35906 var b = number % 10, 35907 output = 35908 ~~((number % 100) / 10) === 1 35909 ? 'th' 35910 : b === 1 35911 ? 'st' 35912 : b === 2 35913 ? 'nd' 35914 : b === 3 35915 ? 'rd' 35916 : 'th'; 35917 return number + output; 35918 }, 35919 week: { 35920 dow: 1, // Monday is the first day of the week. 35921 doy: 4, // The week that contains Jan 4th is the first week of the year. 35922 }, 35923 }); 35924 35925 return tet; 35926 35927}))); 35928 35929 35930/***/ }), 35931/* 118 */ 35932/***/ (function(module, exports, __webpack_require__) { 35933 35934//! moment.js locale configuration 35935//! locale : Tajik [tg] 35936//! author : Orif N. Jr. : https://github.com/orif-jr 35937 35938;(function (global, factory) { 35939 true ? factory(__webpack_require__(0)) : 35940 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 35941 factory(global.moment) 35942}(this, (function (moment) { 'use strict'; 35943 35944 //! moment.js locale configuration 35945 35946 var suffixes = { 35947 0: '-Ñм', 35948 1: '-Ñм', 35949 2: '-Ñм', 35950 3: '-Ñм', 35951 4: '-Ñм', 35952 5: '-Ñм', 35953 6: '-Ñм', 35954 7: '-Ñм', 35955 8: '-Ñм', 35956 9: '-Ñм', 35957 10: '-Ñм', 35958 12: '-Ñм', 35959 13: '-Ñм', 35960 20: '-Ñм', 35961 30: '-Ñм', 35962 40: '-Ñм', 35963 50: '-Ñм', 35964 60: '-Ñм', 35965 70: '-Ñм', 35966 80: '-Ñм', 35967 90: '-Ñм', 35968 100: '-Ñм', 35969 }; 35970 35971 var tg = moment.defineLocale('tg', { 35972 months: { 35973 format: 'ÑнваÑи_ÑевÑали_маÑÑи_апÑели_майи_иÑни_иÑли_авгÑÑÑи_ÑенÑÑбÑи_окÑÑбÑи_ноÑбÑи_декабÑи'.split( 35974 '_' 35975 ), 35976 standalone: 'ÑнваÑ_ÑевÑал_маÑÑ_апÑел_май_иÑн_иÑл_авгÑÑÑ_ÑенÑÑбÑ_окÑÑбÑ_ноÑбÑ_декабÑ'.split( 35977 '_' 35978 ), 35979 }, 35980 monthsShort: 'Ñнв_Ñев_маÑ_апÑ_май_иÑн_иÑл_авг_Ñен_окÑ_ноÑ_дек'.split('_'), 35981 weekdays: 'ÑкÑанбе_дÑÑанбе_ÑеÑанбе_ÑоÑÑанбе_панҷÑанбе_Ò·ÑмÑа_Ñанбе'.split( 35982 '_' 35983 ), 35984 weekdaysShort: 'ÑÑб_дÑб_ÑÑб_ÑÑб_пÑб_Ò·Ñм_Ñнб'.split('_'), 35985 weekdaysMin: 'ÑÑ_дÑ_ÑÑ_ÑÑ_пÑ_ҷм_Ñб'.split('_'), 35986 longDateFormat: { 35987 LT: 'HH:mm', 35988 LTS: 'HH:mm:ss', 35989 L: 'DD.MM.YYYY', 35990 LL: 'D MMMM YYYY', 35991 LLL: 'D MMMM YYYY HH:mm', 35992 LLLL: 'dddd, D MMMM YYYY HH:mm', 35993 }, 35994 calendar: { 35995 sameDay: '[ÐмÑӯз ÑоаÑи] LT', 35996 nextDay: '[ФаÑдо ÑоаÑи] LT', 35997 lastDay: '[ÐиÑӯз ÑоаÑи] LT', 35998 nextWeek: 'dddd[и] [ҳаÑÑаи оÑнда ÑоаÑи] LT', 35999 lastWeek: 'dddd[и] [ҳаÑÑаи гÑзаÑÑа ÑоаÑи] LT', 36000 sameElse: 'L', 36001 }, 36002 relativeTime: { 36003 future: 'баÑди %s', 36004 past: '%s пеÑ', 36005 s: 'ÑкÑанд ÑониÑ', 36006 m: 'Ñк даÒиÒа', 36007 mm: '%d даÒиÒа', 36008 h: 'Ñк ÑоаÑ', 36009 hh: '%d ÑоаÑ', 36010 d: 'Ñк Ñӯз', 36011 dd: '%d Ñӯз', 36012 M: 'Ñк моҳ', 36013 MM: '%d моҳ', 36014 y: 'Ñк Ñол', 36015 yy: '%d Ñол', 36016 }, 36017 meridiemParse: /Ñаб|ÑÑбҳ|Ñӯз|бегоҳ/, 36018 meridiemHour: function (hour, meridiem) { 36019 if (hour === 12) { 36020 hour = 0; 36021 } 36022 if (meridiem === 'Ñаб') { 36023 return hour < 4 ? hour : hour + 12; 36024 } else if (meridiem === 'ÑÑбҳ') { 36025 return hour; 36026 } else if (meridiem === 'Ñӯз') { 36027 return hour >= 11 ? hour : hour + 12; 36028 } else if (meridiem === 'бегоҳ') { 36029 return hour + 12; 36030 } 36031 }, 36032 meridiem: function (hour, minute, isLower) { 36033 if (hour < 4) { 36034 return 'Ñаб'; 36035 } else if (hour < 11) { 36036 return 'ÑÑбҳ'; 36037 } else if (hour < 16) { 36038 return 'Ñӯз'; 36039 } else if (hour < 19) { 36040 return 'бегоҳ'; 36041 } else { 36042 return 'Ñаб'; 36043 } 36044 }, 36045 dayOfMonthOrdinalParse: /\d{1,2}-(Ñм|Ñм)/, 36046 ordinal: function (number) { 36047 var a = number % 10, 36048 b = number >= 100 ? 100 : null; 36049 return number + (suffixes[number] || suffixes[a] || suffixes[b]); 36050 }, 36051 week: { 36052 dow: 1, // Monday is the first day of the week. 36053 doy: 7, // The week that contains Jan 1th is the first week of the year. 36054 }, 36055 }); 36056 36057 return tg; 36058 36059}))); 36060 36061 36062/***/ }), 36063/* 119 */ 36064/***/ (function(module, exports, __webpack_require__) { 36065 36066//! moment.js locale configuration 36067//! locale : Thai [th] 36068//! author : Kridsada Thanabulpong : https://github.com/sirn 36069 36070;(function (global, factory) { 36071 true ? factory(__webpack_require__(0)) : 36072 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 36073 factory(global.moment) 36074}(this, (function (moment) { 'use strict'; 36075 36076 //! moment.js locale configuration 36077 36078 var th = moment.defineLocale('th', { 36079 months: 'มà¸à¸£à¸²à¸à¸¡_à¸à¸¸à¸¡à¸ าà¸à¸±à¸à¸à¹_มีà¸à¸²à¸à¸¡_à¹à¸¡à¸©à¸²à¸¢à¸_à¸à¸¤à¸©à¸ าà¸à¸¡_มิà¸à¸¸à¸à¸²à¸¢à¸_à¸à¸£à¸à¸à¸²à¸à¸¡_สิà¸à¸«à¸²à¸à¸¡_à¸à¸±à¸à¸¢à¸²à¸¢à¸_à¸à¸¸à¸¥à¸²à¸à¸¡_à¸à¸¤à¸¨à¸à¸´à¸à¸²à¸¢à¸_à¸à¸±à¸à¸§à¸²à¸à¸¡'.split( 36080 '_' 36081 ), 36082 monthsShort: 'ม.à¸._à¸.à¸._มี.à¸._à¹à¸¡.ย._à¸.à¸._มิ.ย._à¸.à¸._ส.à¸._à¸.ย._à¸.à¸._à¸.ย._à¸.à¸.'.split( 36083 '_' 36084 ), 36085 monthsParseExact: true, 36086 weekdays: 'à¸à¸²à¸à¸´à¸à¸¢à¹_à¸à¸±à¸à¸à¸£à¹_à¸à¸±à¸à¸à¸²à¸£_à¸à¸¸à¸_à¸à¸¤à¸«à¸±à¸ªà¸à¸à¸µ_ศุà¸à¸£à¹_à¹à¸ªà¸²à¸£à¹'.
vendor: 7,079 bytes, lines 36086-36301
36086split('_'), 36087 weekdaysShort: 'à¸à¸²à¸à¸´à¸à¸¢à¹_à¸à¸±à¸à¸à¸£à¹_à¸à¸±à¸à¸à¸²à¸£_à¸à¸¸à¸_à¸à¸¤à¸«à¸±à¸ª_ศุà¸à¸£à¹_à¹à¸ªà¸²à¸£à¹'.split('_'), // yes, three characters difference 36088 weekdaysMin: 'à¸à¸²._à¸._à¸._à¸._à¸à¸¤._ศ._ส.'.split('_'), 36089 weekdaysParseExact: true, 36090 longDateFormat: { 36091 LT: 'H:mm', 36092 LTS: 'H:mm:ss', 36093 L: 'DD/MM/YYYY', 36094 LL: 'D MMMM YYYY', 36095 LLL: 'D MMMM YYYY à¹à¸§à¸¥à¸² H:mm', 36096 LLLL: 'วัà¸ddddà¸à¸µà¹ D MMMM YYYY à¹à¸§à¸¥à¸² H:mm', 36097 }, 36098 meridiemParse: /à¸à¹à¸à¸à¹à¸à¸µà¹à¸¢à¸|หลัà¸à¹à¸à¸µà¹à¸¢à¸/, 36099 isPM: function (input) { 36100 return input === 'หลัà¸à¹à¸à¸µà¹à¸¢à¸'; 36101 }, 36102 meridiem: function (hour, minute, isLower) { 36103 if (hour < 12) { 36104 return 'à¸à¹à¸à¸à¹à¸à¸µà¹à¸¢à¸'; 36105 } else { 36106 return 'หลัà¸à¹à¸à¸µà¹à¸¢à¸'; 36107 } 36108 }, 36109 calendar: { 36110 sameDay: '[วัà¸à¸à¸µà¹ à¹à¸§à¸¥à¸²] LT', 36111 nextDay: '[à¸à¸£à¸¸à¹à¸à¸à¸µà¹ à¹à¸§à¸¥à¸²] LT', 36112 nextWeek: 'dddd[หà¸à¹à¸² à¹à¸§à¸¥à¸²] LT', 36113 lastDay: '[à¹à¸¡à¸·à¹à¸à¸§à¸²à¸à¸à¸µà¹ à¹à¸§à¸¥à¸²] LT', 36114 lastWeek: '[วัà¸]dddd[à¸à¸µà¹à¹à¸¥à¹à¸§ à¹à¸§à¸¥à¸²] LT', 36115 sameElse: 'L', 36116 }, 36117 relativeTime: { 36118 future: 'à¸à¸µà¸ %s', 36119 past: '%sà¸à¸µà¹à¹à¸¥à¹à¸§', 36120 s: 'à¹à¸¡à¹à¸à¸µà¹à¸§à¸´à¸à¸²à¸à¸µ', 36121 ss: '%d วิà¸à¸²à¸à¸µ', 36122 m: '1 à¸à¸²à¸à¸µ', 36123 mm: '%d à¸à¸²à¸à¸µ', 36124 h: '1 à¸à¸±à¹à¸§à¹à¸¡à¸', 36125 hh: '%d à¸à¸±à¹à¸§à¹à¸¡à¸', 36126 d: '1 วัà¸', 36127 dd: '%d วัà¸', 36128 w: '1 สัà¸à¸à¸²à¸«à¹', 36129 ww: '%d สัà¸à¸à¸²à¸«à¹', 36130 M: '1 à¹à¸à¸·à¸à¸', 36131 MM: '%d à¹à¸à¸·à¸à¸', 36132 y: '1 à¸à¸µ', 36133 yy: '%d à¸à¸µ', 36134 }, 36135 }); 36136 36137 return th; 36138 36139}))); 36140 36141 36142/***/ }), 36143/* 120 */ 36144/***/ (function(module, exports, __webpack_require__) { 36145 36146//! moment.js locale configuration 36147//! locale : Turkmen [tk] 36148//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy 36149 36150;(function (global, factory) { 36151 true ? factory(__webpack_require__(0)) : 36152 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 36153 factory(global.moment) 36154}(this, (function (moment) { 'use strict'; 36155 36156 //! moment.js locale configuration 36157 36158 var suffixes = { 36159 1: "'inji", 36160 5: "'inji", 36161 8: "'inji", 36162 70: "'inji", 36163 80: "'inji", 36164 2: "'nji", 36165 7: "'nji", 36166 20: "'nji", 36167 50: "'nji", 36168 3: "'ünji", 36169 4: "'ünji", 36170 100: "'ünji", 36171 6: "'njy", 36172 9: "'unjy", 36173 10: "'unjy", 36174 30: "'unjy", 36175 60: "'ynjy", 36176 90: "'ynjy", 36177 }; 36178 36179 var tk = moment.defineLocale('tk', { 36180 months: 'Ãanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split( 36181 '_' 36182 ), 36183 monthsShort: 'Ãan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'), 36184 weekdays: 'ÃekÅenbe_DuÅenbe_SiÅenbe_ÃarÅenbe_PenÅenbe_Anna_Åenbe'.split( 36185 '_' 36186 ), 36187 weekdaysShort: 'Ãek_DuÅ_SiÅ_Ãar_Pen_Ann_Åen'.split('_'), 36188 weekdaysMin: 'Ãk_DÅ_SÅ_Ãr_Pn_An_Ån'.split('_'), 36189 longDateFormat: { 36190 LT: 'HH:mm', 36191 LTS: 'HH:mm:ss', 36192 L: 'DD.MM.YYYY', 36193 LL: 'D MMMM YYYY', 36194 LLL: 'D MMMM YYYY HH:mm', 36195 LLLL: 'dddd, D MMMM YYYY HH:mm', 36196 }, 36197 calendar: { 36198 sameDay: '[bugün sagat] LT', 36199 nextDay: '[ertir sagat] LT', 36200 nextWeek: '[indiki] dddd [sagat] LT', 36201 lastDay: '[düýn] LT', 36202 lastWeek: '[geçen] dddd [sagat] LT', 36203 sameElse: 'L', 36204 }, 36205 relativeTime: { 36206 future: '%s soÅ', 36207 past: '%s öÅ', 36208 s: 'birnäçe sekunt', 36209 m: 'bir minut', 36210 mm: '%d minut', 36211 h: 'bir sagat', 36212 hh: '%d sagat', 36213 d: 'bir gün', 36214 dd: '%d gün', 36215 M: 'bir aý', 36216 MM: '%d aý', 36217 y: 'bir ýyl', 36218 yy: '%d ýyl', 36219 }, 36220 ordinal: function (number, period) { 36221 switch (period) { 36222 case 'd': 36223 case 'D': 36224 case 'Do': 36225 case 'DD': 36226 return number; 36227 default: 36228 if (number === 0) { 36229 // special case for zero 36230 return number + "'unjy"; 36231 } 36232 var a = number % 10, 36233 b = (number % 100) - a, 36234 c = number >= 100 ? 100 : null; 36235 return number + (suffixes[a] || suffixes[b] || suffixes[c]); 36236 } 36237 }, 36238 week: { 36239 dow: 1, // Monday is the first day of the week. 36240 doy: 7, // The week that contains Jan 7th is the first week of the year. 36241 }, 36242 }); 36243 36244 return tk; 36245 36246}))); 36247 36248 36249/***/ }), 36250/* 121 */ 36251/***/ (function(module, exports, __webpack_require__) { 36252 36253//! moment.js locale configuration 36254//! locale : Tagalog (Philippines) [tl-ph] 36255//! author : Dan Hagman : https://github.com/hagmandan 36256 36257;(function (global, factory) { 36258 true ? factory(__webpack_require__(0)) : 36259 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 36260 factory(global.moment) 36261}(this, (function (moment) { 'use strict'; 36262 36263 //! moment.js locale configuration 36264 36265 var tlPh = moment.defineLocale('tl-ph', { 36266 months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( 36267 '_' 36268 ), 36269 monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), 36270 weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( 36271 '_' 36272 ), 36273 weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), 36274 weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), 36275 longDateFormat: { 36276 LT: 'HH:mm', 36277 LTS: 'HH:mm:ss', 36278 L: 'MM/D/YYYY', 36279 LL: 'MMMM D, YYYY', 36280 LLL: 'MMMM D, YYYY HH:mm', 36281 LLLL: 'dddd, MMMM DD, YYYY HH:mm', 36282 }, 36283 calendar: { 36284 sameDay: 'LT [ngayong araw]', 36285 nextDay: '[Bukas ng] LT', 36286 nextWeek: 'LT [sa susunod na] dddd', 36287 lastDay: 'LT [kahapon]', 36288 lastWeek: 'LT [noong nakaraang] dddd', 36289 sameElse: 'L', 36290 }, 36291 relativeTime: { 36292 future: 'sa loob ng %s', 36293 past: '%s ang nakalipas', 36294 s: 'ilang segundo', 36295 ss: '%d segundo', 36296 m: 'isang minuto', 36297 mm: '%d minuto', 36298 h: 'isang oras', 36299 hh: '%d oras', 36300 d: 'isang araw', 36301 dd: '%d araw',
36302 M: 'isang buwan', 36303 MM: '%d buwan', 36304 y: 'isang taon', 36305 yy: '%d taon', 36306 }, 36307 dayOfMonthOrdinalParse: /\d{1,2}/, 36308 ordinal: function (number) { 36309 return number; 36310 }, 36311 week: { 36312 dow: 1, // Monday is the first day of the week. 36313 doy: 4, // The week that contains Jan 4th is the first week of the year. 36314 }, 36315 }); 36316 36317 return tlPh; 36318 36319}))); 36320 36321 36322/***/ }), 36323/* 122 */ 36324/***/ (function(module, exports, __webpack_require__) { 36325 36326//! moment.js locale configuration 36327//! locale : Klingon [tlh] 36328//! author : Dominika Kruk : https://github.com/amaranthrose 36329 36330;(function (global, factory) { 36331 true ? factory(__webpack_require__(0)) : 36332 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 36333 factory(global.moment) 36334}(this, (function (moment) { 'use strict'; 36335 36336 //! moment.js locale configuration 36337 36338 var numbersNouns = 'pagh_waâ_chaâ_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); 36339 36340 function translateFuture(output) { 36341 var time = output; 36342 time = 36343 output.indexOf('jaj') !== -1 36344 ? time.slice(0, -3) + 'leS' 36345 : output.indexOf('jar') !== -1 36346 ? time.slice(0, -3) + 'waQ' 36347 : output.indexOf('DIS') !== -1 36348 ? time.slice(0, -3) + 'nem' 36349 : time + ' pIq'; 36350 return time; 36351 } 36352 36353 function translatePast(output) { 36354 var time = output; 36355 time = 36356 output.indexOf('jaj') !== -1 36357 ? time.slice(0, -3) + 'Huâ' 36358 : output.indexOf('jar') !== -1 36359 ? time.slice(0, -3) + 'wen' 36360 : output.indexOf('DIS') !== -1 36361 ? time.slice(0, -3) + 'ben' 36362 : time + ' ret'; 36363 return time; 36364 } 36365 36366 function translate(number, withoutSuffix, string, isFuture) { 36367 var numberNoun = numberAsNoun(number); 36368 switch (string) { 36369 case 'ss': 36370 return numberNoun + ' lup'; 36371 case 'mm': 36372 return numberNoun + ' tup'; 36373 case 'hh': 36374 return numberNoun + ' rep'; 36375 case 'dd': 36376 return numberNoun + ' jaj'; 36377 case 'MM': 36378 return numberNoun + ' jar'; 36379 case 'yy': 36380 return numberNoun + ' DIS'; 36381 } 36382 } 36383 36384 function numberAsNoun(number) { 36385 var hundred = Math.floor((number % 1000) / 100), 36386 ten = Math.floor((number % 100) / 10), 36387 one = number % 10, 36388 word = ''; 36389 if (hundred > 0) { 36390 word += numbersNouns[hundred] + 'vatlh'; 36391 } 36392 if (ten > 0) { 36393 word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; 36394 } 36395 if (one > 0) { 36396 word += (word !== '' ? ' ' : '') + numbersNouns[one]; 36397 } 36398 return word === '' ? 'pagh' : word; 36399 } 36400 36401 var tlh = moment.defineLocale('tlh', { 36402 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( 36403 '_' 36404 ), 36405 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( 36406 '_' 36407 ), 36408 monthsParseExact: true, 36409 weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( 36410 '_' 36411 ), 36412 weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( 36413 '_' 36414 ), 36415 weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( 36416 '_' 36417 ), 36418 longDateFormat: { 36419 LT: 'HH:mm', 36420 LTS: 'HH:mm:ss', 36421 L: 'DD.MM.YYYY', 36422 LL: 'D MMMM YYYY', 36423 LLL: 'D MMMM YYYY HH:mm', 36424 LLLL: 'dddd, D MMMM YYYY HH:mm', 36425 }, 36426 calendar: { 36427 sameDay: '[DaHjaj] LT', 36428 nextDay: '[waâleS] LT', 36429 nextWeek: 'LLL', 36430 lastDay: '[waâHuâ] LT', 36431 lastWeek: 'LLL', 36432 sameElse: 'L', 36433 }, 36434 relativeTime: { 36435 future: translateFuture, 36436 past: translatePast, 36437 s: 'puS lup', 36438 ss: translate, 36439 m: 'waâ tup', 36440 mm: translate, 36441 h: 'waâ rep', 36442 hh: translate, 36443 d: 'waâ jaj', 36444 dd: translate, 36445 M: 'waâ jar', 36446 MM: translate, 36447 y: 'waâ DIS', 36448 yy: translate, 36449 }, 36450 dayOfMonthOrdinalParse: /\d{1,2}\./, 36451 ordinal: '%d.', 36452 week: { 36453 dow: 1, // Monday is the first day of the week. 36454 doy: 4, // The week that contains Jan 4th is the first week of the year. 36455 }, 36456 }); 36457 36458 return tlh; 36459 36460}))); 36461 36462 36463/***/ }), 36464/* 123 */ 36465/***/ (function(module, exports, __webpack_require__) { 36466 36467//! moment.js locale configuration 36468//! locale : Turkish [tr] 36469//! authors : Erhan Gundogan : https://github.com/erhangundogan, 36470//! Burak YiÄit Kaya: https://github.com/BYK 36471 36472;(function (global, factory) { 36473 true ? factory(__webpack_require__(0)) : 36474 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 36475 factory(global.moment) 36476}(this, (function (moment) { 'use strict'; 36477 36478 //! moment.js locale configuration 36479 36480 var suffixes = { 36481 1: "'inci", 36482 5: "'inci", 36483 8: "'inci", 36484 70: "'inci", 36485 80: "'inci", 36486 2: "'nci", 36487 7: "'nci", 36488 20: "'nci", 36489 50: "'nci", 36490 3: "'üncü", 36491 4: "'üncü", 36492 100: "'üncü", 36493 6: "'ncı", 36494 9: "'uncu", 36495 10: "'uncu", 36496 30: "'uncu", 36497 60: "'ıncı", 36498 90: "'ıncı", 36499 }; 36500 36501 var tr = moment.defineLocale('tr', { 36502 months: 'Ocak_Åubat_Mart_Nisan_Mayıs_Haziran_Temmuz_AÄustos_Eylül_Ekim_Kasım_Aralık'.split( 36503 '_' 36504 ), 36505 monthsShort: 'Oca_Åub_Mar_Nis_May_Haz_Tem_AÄu_Eyl_Eki_Kas_Ara'.split('_'), 36506 weekdays: 'Pazar_Pazartesi_Salı_ÃarÅamba_PerÅembe_Cuma_Cumartesi'.split( 36507 '_' 36508 ), 36509 weekdaysShort: 'Paz_Pts_Sal_Ãar_Per_Cum_Cts'.split('_'), 36510 weekdaysMin: 'Pz_Pt_Sa_Ãa_Pe_Cu_Ct'.split('_'), 36511 meridiem: function (hours, minutes, isLower) { 36512 if (hours < 12) { 36513 return isLower ? 'öö' : 'ÃÃ'; 36514 } else { 36515 return isLower ? 'ös' : 'ÃS'; 36516 } 36517 }, 36518 meridiemParse: /öö|ÃÃ|ös|ÃS/, 36519 isPM: function (input) { 36520 return input === 'ös' || input === 'ÃS'; 36521 }, 36522 longDateFormat: { 36523 LT: 'HH:mm', 36524 LTS: 'HH:mm:ss', 36525 L: 'DD.MM.YYYY', 36526 LL: 'D MMMM YYYY', 36527 LLL: 'D MMMM YYYY HH:mm', 36528 LLLL: 'dddd, D MMMM YYYY HH:mm', 36529 }, 36530 calendar: { 36531 sameDay: '[bugün saat] LT', 36532 nextDay: '[yarın saat] LT', 36533 nextWeek: '[gelecek] dddd [saat] LT', 36534 lastDay: '[dün] LT', 36535 lastWeek: '[geçen] dddd [saat] LT', 36536 sameElse: 'L', 36537 }, 36538 relativeTime: { 36539 future: '%s sonra', 36540 past: '%s önce', 36541 s: 'birkaç saniye', 36542 ss: '%d saniye', 36543 m: 'bir dakika', 36544 mm: '%d dakika', 36545 h: 'bir saat', 36546 hh: '%d saat', 36547 d: 'bir gün', 36548 dd: '%d gün', 36549 w: 'bir hafta', 36550 ww: '%d hafta', 36551 M: 'bir ay', 36552 MM: '%d ay', 36553 y: 'bir yıl', 36554 yy: '%d yıl', 36555 }, 36556 ordinal: function (number, period) { 36557 switch (period) { 36558 case 'd': 36559 case 'D': 36560 case 'Do': 36561 case 'DD': 36562 return number; 36563 default: 36564 if (number === 0) { 36565 // special case for zero 36566 return number + "'ıncı"; 36567 } 36568 var a = number % 10, 36569 b = (number % 100) - a, 36570 c = number >= 100 ? 100 : null; 36571 return number + (suffixes[a] || suffixes[b] || suffixes[c]); 36572 } 36573 }, 36574 week: { 36575 dow: 1, // Monday is the first day of the week. 36576 doy: 7, // The week that contains Jan 7th is the first week of the year. 36577 }, 36578 }); 36579 36580 return tr; 36581 36582}))); 36583 36584 36585/***/ }), 36586/* 124 */ 36587/***/ (function(module, exports, __webpack_require__) { 36588 36589//! moment.js locale configuration 36590//! locale : Talossan [tzl] 36591//! author : Robin van der Vliet : https://github.com/robin0van0der0v 36592//! author : Iustì Canun 36593 36594;(function (global, factory) { 36595 true ? factory(__webpack_require__(0)) : 36596 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 36597 factory(global.moment) 36598}(this, (function (moment) { 'use strict'; 36599 36600 //! moment.js locale configuration 36601 36602 // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. 36603 // This is currently too difficult (maybe even impossible) to add. 36604 var tzl = moment.defineLocale('tzl', { 36605 months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split( 36606 '_' 36607 ), 36608 monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), 36609 weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), 36610 weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), 36611 weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), 36612 longDateFormat: { 36613 LT: 'HH.mm', 36614 LTS: 'HH.mm.ss', 36615 L: 'DD.MM.YYYY', 36616 LL: 'D. MMMM [dallas] YYYY', 36617 LLL: 'D. MMMM [dallas] YYYY HH.mm', 36618 LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', 36619 }, 36620 meridiemParse: /d\'o|d\'a/i, 36621 isPM: function (input) { 36622 return "d'o" === input.toLowerCase(); 36623 }, 36624 meridiem: function (hours, minutes, isLower) { 36625 if (hours > 11) { 36626 return isLower ? "d'o" : "D'O"; 36627 } else { 36628 return isLower ? "d'a" : "D'A"; 36629 } 36630 }, 36631 calendar: {
36632 sameDay: '[oxhi à ] LT', 36633 nextDay: '[demà à ] LT', 36634 nextWeek: 'dddd [à ] LT', 36635 lastDay: '[ieiri à ] LT', 36636 lastWeek: '[sür el] dddd [lasteu à ] LT', 36637 sameElse: 'L', 36638 }, 36639 relativeTime: { 36640 future: 'osprei %s', 36641 past: 'ja%s', 36642 s: processRelativeTime, 36643 ss: processRelativeTime, 36644 m: processRelativeTime, 36645 mm: processRelativeTime, 36646 h: processRelativeTime, 36647 hh: processRelativeTime, 36648 d: processRelativeTime, 36649 dd: processRelativeTime, 36650 M: processRelativeTime, 36651 MM: processRelativeTime, 36652 y: processRelativeTime, 36653 yy: processRelativeTime, 36654 }, 36655 dayOfMonthOrdinalParse: /\d{1,2}\./, 36656 ordinal: '%d.', 36657 week: { 36658 dow: 1, // Monday is the first day of the week. 36659 doy: 4, // The week that contains Jan 4th is the first week of the year. 36660 }, 36661 }); 36662 36663 function processRelativeTime(number, withoutSuffix, key, isFuture) { 36664 var format = { 36665 s: ['viensas secunds', "'iensas secunds"], 36666 ss: [number + ' secunds', '' + number + ' secunds'], 36667 m: ["'n mÃut", "'iens mÃut"], 36668 mm: [number + ' mÃuts', '' + number + ' mÃuts'], 36669 h: ["'n þora", "'iensa þora"], 36670 hh: [number + ' þoras', '' + number + ' þoras'], 36671 d: ["'n ziua", "'iensa ziua"], 36672 dd: [number + ' ziuas', '' + number + ' ziuas'], 36673 M: ["'n mes", "'iens mes"], 36674 MM: [number + ' mesen', '' + number + ' mesen'], 36675 y: ["'n ar", "'iens ar"], 36676 yy: [number + ' ars', '' + number + ' ars'], 36677 }; 36678 return isFuture 36679 ? format[key][0] 36680 : withoutSuffix 36681 ? format[key][0] 36682 : format[key][1]; 36683 } 36684 36685 return tzl; 36686 36687}))); 36688 36689 36690/***/ }), 36691/* 125 */ 36692/***/ (function(module, exports, __webpack_require__) { 36693 36694//! moment.js locale configuration 36695//! locale : Central Atlas Tamazight [tzm] 36696//! author : Abdel Said : https://github.com/abdelsaid 36697 36698;(function (global, factory) { 36699 true ? factory(__webpack_require__(0)) : 36700 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 36701 factory(global.moment) 36702}(this, (function (moment) { 'use strict'; 36703 36704 //! moment.js locale configuration 36705 36706 var tzm = moment.defineLocale('tzm', { 36707 months: 'âµâµâµâ´°âµ¢âµ_â´±âµâ´°âµ¢âµ_âµâ´°âµâµ_âµâ´±âµâµâµ_âµâ´°âµ¢âµ¢âµ_âµ¢âµâµâµ¢âµ_âµ¢âµâµâµ¢âµâµ£_âµâµâµâµ_âµâµâµâ´°âµâ´±âµâµ_â´½âµâµâ´±âµ_âµâµâµ¡â´°âµâ´±âµâµ_â´·âµâµâµâ´±âµâµ'.split( 36708 '_' 36709 ), 36710 monthsShort: 'âµâµâµâ´°âµ¢âµ_â´±âµâ´°âµ¢âµ_âµâ´°âµâµ_âµâ´±âµâµâµ_âµâ´°âµ¢âµ¢âµ_âµ¢âµâµâµ¢âµ_âµ¢âµâµâµ¢âµâµ£_âµâµâµâµ_âµâµâµâ´°âµâ´±âµâµ_â´½âµâµâ´±âµ_âµâµâµ¡â´°âµâ´±âµâµ_â´·âµâµâµâ´±âµâµ'.split( 36711 '_' 36712 ), 36713 weekdays: 'â´°âµâ´°âµâ´°âµ_â´°âµ¢âµâ´°âµ_â´°âµâµâµâ´°âµ_â´°â´½âµâ´°âµ_ⴰⴽⵡⴰâµ_â´°âµâµâµâµ¡â´°âµ_â´°âµâµâ´¹âµ¢â´°âµ'.split('_'), 36714 weekdaysShort: 'â´°âµâ´°âµâ´°âµ_â´°âµ¢âµâ´°âµ_â´°âµâµâµâ´°âµ_â´°â´½âµâ´°âµ_ⴰⴽⵡⴰâµ_â´°âµâµâµâµ¡â´°âµ_â´°âµâµâ´¹âµ¢â´°âµ'.split('_'), 36715 weekdaysMin: 'â´°âµâ´°âµâ´°âµ_â´°âµ¢âµâ´°âµ_â´°âµâµâµâ´°âµ_â´°â´½âµâ´°âµ_ⴰⴽⵡⴰâµ_â´°âµâµâµâµ¡â´°âµ_â´°âµâµâ´¹âµ¢â´°âµ'.split('_'), 36716 longDateFormat: { 36717 LT: 'HH:mm', 36718 LTS: 'HH:mm:ss', 36719 L: 'DD/MM/YYYY', 36720 LL: 'D MMMM YYYY', 36721 LLL: 'D MMMM YYYY HH:mm', 36722 LLLL: 'dddd D MMMM YYYY HH:mm', 36723 }, 36724 calendar: { 36725 sameDay: '[â´°âµâ´·âµ â´´] LT', 36726 nextDay: '[â´°âµâ´½â´° â´´] LT', 36727 nextWeek: 'dddd [â´´] LT', 36728 lastDay: '[â´°âµâ´°âµâµ â´´] LT', 36729 lastWeek: 'dddd [â´´] LT', 36730 sameElse: 'L', 36731 }, 36732 relativeTime: { 36733 future: 'ⴷⴰⴷⵠⵠⵢⴰⵠ%s', 36734 past: 'ⵢⴰⵠ%s', 36735 s: 'âµâµâµâ´½', 36736 ss: '%d âµâµâµâ´½', 36737 m: 'âµâµâµâµâ´º', 36738 mm: '%d âµâµâµâµâ´º', 36739 h: 'âµâ´°âµâ´°',
36740 hh: '%d âµâ´°âµâµâ´°âµâµâµ', 36741 d: 'â´°âµâµ', 36742 dd: '%d oâµâµâ´°âµ', 36743 M: 'â´°âµ¢oâµâµ', 36744 MM: '%d âµâµ¢âµ¢âµâµâµ', 36745 y: 'â´°âµâ´³â´°âµ', 36746 yy: '%d âµâµâ´³â´°âµâµ', 36747 }, 36748 week: { 36749 dow: 6, // Saturday is the first day of the week. 36750 doy: 12, // The week that contains Jan 12th is the first week of the year. 36751 }, 36752 }); 36753 36754 return tzm; 36755 36756}))); 36757 36758 36759/***/ }), 36760/* 126 */ 36761/***/ (function(module, exports, __webpack_require__) { 36762 36763//! moment.js locale configuration 36764//! locale : Central Atlas Tamazight Latin [tzm-latn] 36765//! author : Abdel Said : https://github.com/abdelsaid 36766 36767;(function (global, factory) { 36768 true ? factory(__webpack_require__(0)) : 36769 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 36770 factory(global.moment) 36771}(this, (function (moment) { 'use strict'; 36772 36773 //! moment.js locale configuration 36774 36775 var tzmLatn = moment.defineLocale('tzm-latn', { 36776 months: 'innayr_brˤayrˤ_marˤsˤ_ibr
36776ir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( 36777 '_' 36778 ), 36779 monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split( 36780 '_' 36781 ), 36782 weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'), 36783 weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'), 36784 weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'), 36785 longDateFormat: { 36786 LT: 'HH:mm', 36787 LTS: 'HH:mm:ss', 36788 L: 'DD/MM/YYYY', 36789 LL: 'D MMMM YYYY', 36790 LLL: 'D MMMM YYYY HH:mm', 36791 LLLL: 'dddd D MMMM YYYY HH:mm', 36792 }, 36793 calendar: { 36794 sameDay: '[asdkh g] LT', 36795 nextDay: '[aska g] LT', 36796 nextWeek: 'dddd [g] LT', 36797 lastDay: '[assant g] LT', 36798 lastWeek: 'dddd [g] LT', 36799 sameElse: 'L', 36800 }, 36801 relativeTime: { 36802 future: 'dadkh s yan %s', 36803 past: 'yan %s', 36804 s: 'imik', 36805 ss: '%d imik', 36806 m: 'minuá¸', 36807 mm: '%d minuá¸', 36808 h: 'saÉa', 36809 hh: '%d tassaÉin', 36810 d: 'ass', 36811 dd: '%d ossan', 36812 M: 'ayowr', 36813 MM: '%d iyyirn', 36814 y: 'asgas', 36815 yy: '%d isgasn', 36816 }, 36817 week: { 36818 dow: 6, // Saturday is the first day of the week. 36819 doy: 12, // The week that contains Jan 12th is the first week of the year. 36820 }, 36821 }); 36822 36823 return tzmLatn; 36824 36825}))); 36826 36827 36828/***/ }), 36829/* 127 */ 36830/***/ (function(module, exports, __webpack_require__) { 36831 36832//! moment.js locale configuration 36833//! locale : Uyghur (China) [ug-cn] 36834//! author: boyaq : https://github.com/boyaq 36835 36836;(function (global, factory) { 36837 true ? factory(__webpack_require__(0)) : 36838 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 36839 factory(global.moment) 36840}(this, (function (moment) { 'use strict'; 36841 36842 //! moment.js locale configuration 36843 36844 var ugCn = moment.defineLocale('ug-cn', { 36845 months: 'ÙØ§ÙÛØ§Ø±_ÙÛÛØ±Ø§Ù_٠ارت_ئاپرÛÙ_٠اÙ_ئÙÙÛÙ_ئÙÙÛÙ_Ø¦Ø§ÛØºÛست_سÛÙØªÛØ¨ÙØ±_ئÛÙØªÛØ¨ÙØ±_ÙÙÙØ§Ø¨Ùر_دÛÙØ§Ø¨Ùر'.split( 36846 '_' 36847 ), 36848 monthsShort: 'ÙØ§ÙÛØ§Ø±_ÙÛÛØ±Ø§Ù_٠ارت_ئاپرÛÙ_٠اÙ_ئÙÙÛÙ_ئÙÙÛÙ_Ø¦Ø§ÛØºÛست_سÛÙØªÛØ¨ÙØ±_ئÛÙØªÛØ¨ÙØ±_ÙÙÙØ§Ø¨Ùر_دÛÙØ§Ø¨Ùر'.split( 36849 '_' 36850 ), 36851 weekdays: 'ÙÛÙØ´ÛÙØ¨Û_Ø¯ÛØ´ÛÙØ¨Û_سÛÙØ´ÛÙØ¨Û_ÚØ§Ø±Ø´ÛÙØ¨Û_Ù¾ÛÙØ´ÛÙØ¨Û_جÛÙ Û_Ø´ÛÙØ¨Û'.split( 36852 '_' 36853 ), 36854 weekdaysShort: 'ÙÛ_دÛ_سÛ_ÚØ§_Ù¾Û_جÛ_Ø´Û'.split('_'), 36855 weekdaysMin: 'ÙÛ_دÛ_سÛ_ÚØ§_Ù¾Û_جÛ_Ø´Û'.split('_'), 36856 longDateFormat: { 36857 LT: 'HH:mm', 36858 LTS: 'HH:mm:ss', 36859 L: 'YYYY-MM-DD', 36860 LL: 'YYYY-ÙÙÙÙM-ئاÙÙÙÚD-ÙÛÙÙ', 36861 LLL: 'YYYY-ÙÙÙÙM-ئاÙÙÙÚD-ÙÛÙÙØ HH:mm', 36862 LLLL: 'ddddØ YYYY-ÙÙÙÙM-ئاÙÙÙÚD-ÙÛÙÙØ HH:mm', 36863 }, 36864 meridiemParse: /ÙÛØ±ÙÙ ÙÛÚÛ|سÛÚ¾ÛØ±|ÚÛØ´ØªÙÙ Ø¨ÛØ±ÛÙ|ÚÛØ´|ÚÛØ´ØªÙÙ ÙÛÙÙÙ|ÙÛÚ/, 36865 meridiemHour: function (hour, meridiem) { 36866 if (hour === 12) { 36867 hour = 0; 36868 } 36869 if ( 36870 meridiem === 'ÙÛØ±ÙÙ ÙÛÚÛ' || 36871 meridiem === 'سÛÚ¾ÛØ±' || 36872 meridiem === 'ÚÛØ´ØªÙÙ Ø¨ÛØ±ÛÙ' 36873 ) { 36874 return hour; 36875 } else if (meridiem === 'ÚÛØ´ØªÙÙ ÙÛÙÙÙ' || meridiem === 'ÙÛÚ') { 36876 return hour + 12; 36877 } else { 36878 return hour >= 11 ? hour : hour + 12; 36879 } 36880 }, 36881 meridiem: function (hour, minute, isLower) { 36882 var hm = hour * 100 + minute; 36883 if (hm < 600) { 36884 return 'ÙÛØ±ÙÙ ÙÛÚÛ'; 36885 } else if (hm < 900) { 36886 return 'سÛÚ¾ÛØ±'; 36887 } else if (hm < 1130) {
vendor: 14,247 bytes, lines 36888-37302
36888 return 'ÚÛØ´ØªÙÙ Ø¨ÛØ±ÛÙ'; 36889 } else if (hm < 1230) { 36890 return 'ÚÛØ´'; 36891 } else if (hm < 1800) { 36892 return 'ÚÛØ´ØªÙÙ ÙÛÙÙÙ'; 36893 } else { 36894 return 'ÙÛÚ'; 36895 } 36896 }, 36897 calendar: { 36898 sameDay: '[بÛÚ¯ÛÙ Ø³Ø§Ø¦ÛØª] LT', 36899 nextDay: '[Ø¦ÛØªÛ Ø³Ø§Ø¦ÛØª] LT', 36900 nextWeek: '[ÙÛÙÛØ±ÙÙ] dddd [Ø³Ø§Ø¦ÛØª] LT', 36901 lastDay: '[تÛÙÛÚ¯ÛÙ] LT', 36902 lastWeek: '[Ø¦Ø§ÙØ¯ÙÙÙÙ] dddd [Ø³Ø§Ø¦ÛØª] LT', 36903 sameElse: 'L', 36904 }, 36905 relativeTime: { 36906 future: '%s ÙÛÙÙÙ', 36907 past: '%s Ø¨ÛØ±ÛÙ', 36908 s: 'ÙÛÚÚÛ Ø³ÛÙÙÙØª', 36909 ss: '%d سÛÙÙÙØª', 36910 m: 'Ø¨ÙØ± Ù ÙÙÛØª', 36911 mm: '%d Ù ÙÙÛØª', 36912 h: 'Ø¨ÙØ± Ø³Ø§Ø¦ÛØª', 36913 hh: '%d Ø³Ø§Ø¦ÛØª', 36914 d: 'Ø¨ÙØ± ÙÛÙ', 36915 dd: '%d ÙÛÙ', 36916 M: 'Ø¨ÙØ± ئاÙ', 36917 MM: '%d ئاÙ', 36918 y: 'Ø¨ÙØ± ÙÙÙ', 36919 yy: '%d ÙÙÙ', 36920 }, 36921 36922 dayOfMonthOrdinalParse: /\d{1,2}(-ÙÛÙÙ|-ئاÙ|-Ú¾ÛپتÛ)/, 36923 ordinal: function (number, period) { 36924 switch (period) { 36925 case 'd': 36926 case 'D': 36927 case 'DDD': 36928 return number + '-ÙÛÙÙ'; 36929 case 'w': 36930 case 'W': 36931 return number + '-Ú¾ÛپتÛ'; 36932 default: 36933 return number; 36934 } 36935 }, 36936 preparse: function (string) { 36937 return string.replace(/Ø/g, ','); 36938 }, 36939 postformat: function (string) { 36940 return string.replace(/,/g, 'Ø'); 36941 }, 36942 week: { 36943 // GB/T 7408-1994ãæ°æ®å åäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ¥æåæ¶é´è¡¨ç¤ºæ³ãä¸ISO 8601:1988çæ 36944 dow: 1, // Monday is the first day of the week. 36945 doy: 7, // The week that contains Jan 1st is the first week of the year. 36946 }, 36947 }); 36948 36949 return ugCn; 36950 36951}))); 36952 36953 36954/***/ }), 36955/* 128 */ 36956/***/ (function(module, exports, __webpack_require__) { 36957 36958//! moment.js locale configuration 36959//! locale : Ukrainian [uk] 36960//! author : zemlanin : https://github.com/zemlanin 36961//! Author : Menelion Elensúle : https://github.com/Oire 36962 36963;(function (global, factory) { 36964 true ? factory(__webpack_require__(0)) : 36965 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 36966 factory(global.moment) 36967}(this, (function (moment) { 'use strict'; 36968 36969 //! moment.js locale configuration 36970 36971 function plural(word, num) { 36972 var forms = word.split('_'); 36973 return num % 10 === 1 && num % 100 !== 11 36974 ? forms[0] 36975 : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) 36976 ? forms[1] 36977 : forms[2]; 36978 } 36979 function relativeTimeWithPlural(number, withoutSuffix, key) { 36980 var format = { 36981 ss: withoutSuffix ? 'ÑекÑнда_ÑекÑнди_ÑекÑнд' : 'ÑекÑндÑ_ÑекÑнди_ÑекÑнд', 36982 mm: withoutSuffix ? 'Ñ Ð²Ð¸Ð»Ð¸Ð½Ð°_Ñ Ð²Ð¸Ð»Ð¸Ð½Ð¸_Ñ Ð²Ð¸Ð»Ð¸Ð½' : 'Ñ Ð²Ð¸Ð»Ð¸Ð½Ñ_Ñ Ð²Ð¸Ð»Ð¸Ð½Ð¸_Ñ Ð²Ð¸Ð»Ð¸Ð½', 36983 hh: withoutSuffix ? 'година_години_годин' : 'годинÑ_години_годин', 36984 dd: 'денÑ_днÑ_днÑв', 36985 MM: 'мÑÑÑÑÑ_мÑÑÑÑÑ_мÑÑÑÑÑв', 36986 yy: 'ÑÑк_Ñоки_ÑокÑв', 36987 }; 36988 if (key === 'm') { 36989 return withoutSuffix ? 'Ñ Ð²Ð¸Ð»Ð¸Ð½Ð°' : 'Ñ Ð²Ð¸Ð»Ð¸Ð½Ñ'; 36990 } else if (key === 'h') { 36991 return withoutSuffix ? 'година' : 'годинÑ'; 36992 } else { 36993 return number + ' ' + plural(format[key], +number); 36994 } 36995 } 36996 function weekdaysCaseReplace(m, format) { 36997 var weekdays = { 36998 nominative: 'недÑлÑ_понедÑлок_вÑвÑоÑок_ÑеÑеда_ÑеÑвеÑ_пâÑÑниÑÑ_ÑÑбоÑа'.split( 36999 '_' 37000 ), 37001 accusative: 'недÑлÑ_понедÑлок_вÑвÑоÑок_ÑеÑедÑ_ÑеÑвеÑ_пâÑÑниÑÑ_ÑÑбоÑÑ'.split( 37002 '_' 37003 ), 37004 genitive: 'недÑлÑ_понедÑлка_вÑвÑоÑка_ÑеÑеди_ÑеÑвеÑга_пâÑÑниÑÑ_ÑÑбоÑи'.split( 37005 '_' 37006 ), 37007 }, 37008 nounCase; 37009 37010 if (m === true) { 37011 return weekdays['nominative'] 37012 .slice(1, 7) 37013 .concat(weekdays['nominative'].slice(0, 1)); 37014 } 37015 if (!m) { 37016 return weekdays['nominative']; 37017 } 37018 37019 nounCase = /(\[[ÐвУÑ]\]) ?dddd/.test(format) 37020 ? 'accusative' 37021 : /\[?(?:минÑлоÑ|наÑÑÑпноÑ)? ?\] ?dddd/.test(format) 37022 ? 'genitive' 37023 : 'nominative'; 37024 return weekdays[nounCase][m.day()]; 37025 } 37026 function processHoursFunction(str) { 37027 return function () { 37028 return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; 37029 }; 37030 } 37031 37032 var uk = moment.defineLocale('uk', { 37033 months: { 37034 format: 'ÑÑÑнÑ_лÑÑого_беÑезнÑ_квÑÑнÑ_ÑÑавнÑ_ÑеÑвнÑ_липнÑ_ÑеÑпнÑ_веÑеÑнÑ_жовÑнÑ_лиÑÑопада_гÑÑднÑ'.split( 37035 '_' 37036 ), 37037 standalone: 'ÑÑÑенÑ_лÑÑий_беÑезенÑ_квÑÑенÑ_ÑÑавенÑ_ÑеÑвенÑ_липенÑ_ÑеÑпенÑ_веÑеÑенÑ_жовÑенÑ_лиÑÑопад_гÑÑденÑ'.split( 37038 '_' 37039 ), 37040 }, 37041 monthsShort: 'ÑÑÑ_лÑÑ_беÑ_квÑÑ_ÑÑав_ÑеÑв_лип_ÑеÑп_веÑ_жовÑ_лиÑÑ_гÑÑд'.split( 37042 '_' 37043 ), 37044 weekdays: weekdaysCaseReplace, 37045 weekdaysShort: 'нд_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 37046 weekdaysMin: 'нд_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'), 37047 longDateFormat: { 37048 LT: 'HH:mm', 37049 LTS: 'HH:mm:ss', 37050 L: 'DD.MM.YYYY', 37051 LL: 'D MMMM YYYY Ñ.', 37052 LLL: 'D MMMM YYYY Ñ., HH:mm', 37053 LLLL: 'dddd, D MMMM YYYY Ñ., HH:mm', 37054 }, 37055 calendar: { 37056 sameDay: processHoursFunction('[СÑÐ¾Ð³Ð¾Ð´Ð½Ñ '), 37057 nextDay: processHoursFunction('[ÐавÑÑа '), 37058 lastDay: processHoursFunction('[ÐÑоÑа '), 37059 nextWeek: processHoursFunction('[У] dddd ['), 37060 lastWeek: function () { 37061 switch (this.day()) { 37062 case 0: 37063 case 3: 37064 case 5: 37065 case 6: 37066 return processHoursFunction('[ÐинÑлоÑ] dddd [').call(this); 37067 case 1: 37068 case 2: 37069 case 4: 37070 return processHoursFunction('[ÐинÑлого] dddd [').call(this); 37071 } 37072 }, 37073 sameElse: 'L', 37074 }, 37075 relativeTime: { 37076 future: 'за %s', 37077 past: '%s ÑомÑ', 37078 s: 'декÑлÑка ÑекÑнд', 37079 ss: relativeTimeWithPlural, 37080 m: relativeTimeWithPlural, 37081 mm: relativeTimeWithPlural, 37082 h: 'годинÑ', 37083 hh: relativeTimeWithPlural, 37084 d: 'денÑ', 37085 dd: relativeTimeWithPlural, 37086 M: 'мÑÑÑÑÑ', 37087 MM: relativeTimeWithPlural, 37088 y: 'ÑÑк', 37089 yy: relativeTimeWithPlural, 37090 }, 37091 // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason 37092 meridiemParse: /ноÑÑ|ÑанкÑ|днÑ|веÑоÑа/, 37093 isPM: function (input) { 37094 return /^(днÑ|веÑоÑа)$/.test(input); 37095 }, 37096 meridiem: function (hour, minute, isLower) { 37097 if (hour < 4) { 37098 return 'ноÑÑ'; 37099 } else if (hour < 12) { 37100 return 'ÑанкÑ'; 37101 } else if (hour < 17) { 37102 return 'днÑ'; 37103 } else { 37104 return 'веÑоÑа'; 37105 } 37106 }, 37107 dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, 37108 ordinal: function (number, period) { 37109 switch (period) { 37110 case 'M': 37111 case 'd': 37112 case 'DDD': 37113 case 'w': 37114 case 'W': 37115 return number + '-й'; 37116 case 'D': 37117 return number + '-го'; 37118 default: 37119 return number; 37120 } 37121 }, 37122 week: { 37123 dow: 1, // Monday is the first day of the week. 37124 doy: 7, // The week that contains Jan 7th is the first week of the year. 37125 }, 37126 }); 37127 37128 return uk; 37129 37130}))); 37131 37132 37133/***/ }), 37134/* 129 */ 37135/***/ (function(module, exports, __webpack_require__) { 37136 37137//! moment.js locale configuration 37138//! locale : Urdu [ur] 37139//! author : Sawood Alam : https://github.com/ibnesayeed 37140//! author : Zack : https://github.com/ZackVision 37141 37142;(function (global, factory) { 37143 true ? factory(__webpack_require__(0)) : 37144 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 37145 factory(global.moment) 37146}(this, (function (moment) { 'use strict'; 37147 37148 //! moment.js locale configuration 37149 37150 var months = [ 37151 'جÙÙØ±Û', 37152 'ÙØ±ÙرÛ', 37153 '٠ارÚ', 37154 'اپرÛÙ', 37155 '٠ئÛ', 37156 'جÙÙ', 37157 'جÙÙØ§Ø¦Û', 37158 'اگست', 37159 'ست٠بر', 37160 'Ø§Ú©ØªÙØ¨Ø±', 37161 'ÙÙ٠بر', 37162 'دس٠بر', 37163 ], 37164 days = ['Ø§ØªÙØ§Ø±', 'Ù¾ÛØ±', 'Ù ÙÚ¯Ù', 'بدھ', 'ج٠عرات', 'ج٠عÛ', 'ÛÙØªÛ']; 37165 37166 var ur = moment.defineLocale('ur', { 37167 months: months, 37168 monthsShort: months, 37169 weekdays: days, 37170 weekdaysShort: days, 37171 weekdaysMin: days, 37172 longDateFormat: { 37173 LT: 'HH:mm', 37174 LTS: 'HH:mm:ss', 37175 L: 'DD/MM/YYYY', 37176 LL: 'D MMMM YYYY', 37177 LLL: 'D MMMM YYYY HH:mm', 37178 LLLL: 'ddddØ D MMMM YYYY HH:mm', 37179 }, 37180 meridiemParse: /صبØ|شا٠/, 37181 isPM: function (input) { 37182 return 'شا٠' === input; 37183 }, 37184 meridiem: function (hour, minute, isLower) { 37185 if (hour < 12) { 37186 return 'صبØ'; 37187 } 37188 return 'شا٠'; 37189 }, 37190 calendar: { 37191 sameDay: '[آج بÙÙØª] LT', 37192 nextDay: '[ک٠بÙÙØª] LT', 37193 nextWeek: 'dddd [بÙÙØª] LT', 37194 lastDay: '[Ú¯Ø°Ø´ØªÛ Ø±ÙØ² بÙÙØª] LT', 37195 lastWeek: '[گذشتÛ] dddd [بÙÙØª] LT', 37196 sameElse: 'L', 37197 }, 37198 relativeTime: { 37199 future: '%s بعد', 37200 past: '%s ÙØ¨Ù', 37201 s: 'ÚÙØ¯ سÛÚ©ÙÚ', 37202 ss: '%d سÛÚ©ÙÚ', 37203 m: 'اÛÚ© Ù ÙÙ¹', 37204 mm: '%d Ù ÙÙ¹', 37205 h: 'اÛÚ© Ú¯Ú¾ÙÙ¹Û', 37206 hh: '%d Ú¯Ú¾ÙÙ¹Û', 37207 d: 'اÛÚ© دÙ', 37208 dd: '%d دÙ', 37209 M: 'اÛÚ© ٠اÛ', 37210 MM: '%d ٠اÛ', 37211 y: 'اÛÚ© ساÙ', 37212 yy: '%d ساÙ', 37213 }, 37214 preparse: function (string) { 37215 return string.replace(/Ø/g, ','); 37216 }, 37217 postformat: function (string) { 37218 return string.replace(/,/g, 'Ø'); 37219 }, 37220 week: { 37221 dow: 1, // Monday is the first day of the week. 37222 doy: 4, // The week that contains Jan 4th is the first week of the year. 37223 }, 37224 }); 37225 37226 return ur; 37227 37228}))); 37229 37230 37231/***/ }), 37232/* 130 */ 37233/***/ (function(module, exports, __webpack_require__) { 37234 37235//! moment.js locale configuration 37236//! locale : Uzbek [uz] 37237//! author : Sardor Muminov : https://github.com/muminoff 37238 37239;(function (global, factory) { 37240 true ? factory(__webpack_require__(0)) : 37241 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 37242 factory(global.moment) 37243}(this, (function (moment) { 'use strict'; 37244 37245 //! moment.js locale configuration 37246 37247 var uz = moment.defineLocale('uz', { 37248 months: 'ÑнваÑ_ÑевÑал_маÑÑ_апÑел_май_иÑн_иÑл_авгÑÑÑ_ÑенÑÑбÑ_окÑÑбÑ_ноÑбÑ_декабÑ'.split( 37249 '_' 37250 ), 37251 monthsShort: 'Ñнв_Ñев_маÑ_апÑ_май_иÑн_иÑл_авг_Ñен_окÑ_ноÑ_дек'.split('_'), 37252 weekdays: 'ЯкÑанба_ÐÑÑанба_СеÑанба_ЧоÑÑанба_ÐайÑанба_ÐÑма_Шанба'.split('_'), 37253 weekdaysShort: 'ЯкÑ_ÐÑÑ_СеÑ_ЧоÑ_Ðай_ÐÑм_Шан'.split('_'), 37254 weekdaysMin: 'Як_ÐÑ_Се_Чо_Ðа_ÐÑ_Ша'.split('_'), 37255 longDateFormat: { 37256 LT: 'HH:mm', 37257 LTS: 'HH:mm:ss', 37258 L: 'DD/MM/YYYY', 37259 LL: 'D MMMM YYYY', 37260 LLL: 'D MMMM YYYY HH:mm', 37261 LLLL: 'D MMMM YYYY, dddd HH:mm', 37262 }, 37263 calendar: { 37264 sameDay: '[ÐÑгÑн ÑоаÑ] LT [да]', 37265 nextDay: '[ÐÑÑага] LT [да]', 37266 nextWeek: 'dddd [кÑни ÑоаÑ] LT [да]', 37267 lastDay: '[ÐеÑа ÑоаÑ] LT [да]', 37268 lastWeek: '[УÑган] dddd [кÑни ÑоаÑ] LT [да]', 37269 sameElse: 'L', 37270 }, 37271 relativeTime: { 37272 future: 'Якин %s иÑида', 37273 past: 'ÐÐ¸Ñ Ð½ÐµÑа %s олдин', 37274 s: 'ÑÑÑÑаÑ', 37275 ss: '%d ÑÑÑÑаÑ', 37276 m: 'Ð±Ð¸Ñ Ð´Ð°ÐºÐ¸ÐºÐ°', 37277 mm: '%d дакика', 37278 h: 'Ð±Ð¸Ñ ÑоаÑ', 37279 hh: '%d ÑоаÑ', 37280 d: 'Ð±Ð¸Ñ ÐºÑн', 37281 dd: '%d кÑн', 37282 M: 'Ð±Ð¸Ñ Ð¾Ð¹', 37283 MM: '%d ой', 37284 y: 'Ð±Ð¸Ñ Ð¹Ð¸Ð»', 37285 yy: '%d йил', 37286 }, 37287 week: { 37288 dow: 1, // Monday is the first day of the week. 37289 doy: 7, // The week that contains Jan 4th is the first week of the year. 37290 }, 37291 }); 37292 37293 return uz; 37294 37295}))); 37296 37297 37298/***/ }), 37299/* 131 */ 37300/***/ (function(module, exports, __webpack_require__) { 37301 37302//! moment.js locale configuration
37303//! locale : Uzbek Latin [uz-latn] 37304//! author : Rasulbek Mirzayev : github.com/Rasulbeeek 37305 37306;(function (global, factory) { 37307 true ? factory(__webpack_require__(0)) : 37308 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 37309 factory(global.moment) 37310}(this, (function (moment) { 'use strict'; 37311 37312 //! moment.js locale configuration 37313 37314 var uzLatn = moment.defineLocale('uz-latn', { 37315 months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( 37316 '_' 37317 ), 37318 monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), 37319 weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( 37320 '_' 37321 ), 37322 weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), 37323 weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), 37324 longDateFormat: { 37325 LT: 'HH:mm', 37326 LTS: 'HH:mm:ss', 37327 L: 'DD/MM/YYYY', 37328 LL: 'D MMMM YYYY', 37329 LLL: 'D MMMM YYYY HH:mm', 37330 LLLL: 'D MMMM YYYY, dddd HH:mm', 37331 }, 37332 calendar: { 37333 sameDay: '[Bugun soat] LT [da]', 37334 nextDay: '[Ertaga] LT [da]', 37335 nextWeek: 'dddd [kuni soat] LT [da]', 37336 lastDay: '[Kecha soat] LT [da]', 37337 lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", 37338 sameElse: 'L', 37339 }, 37340 relativeTime: { 37341 future: 'Yaqin %s ichida', 37342 past: 'Bir necha %s oldin', 37343 s: 'soniya', 37344 ss: '%d soniya', 37345 m: 'bir daqiqa', 37346 mm: '%d daqiqa', 37347 h: 'bir soat', 37348 hh: '%d soat', 37349 d: 'bir kun', 37350 dd: '%d kun', 37351 M: 'bir oy', 37352 MM: '%d oy', 37353 y: 'bir yil', 37354 yy: '%d yil', 37355 }, 37356 week: { 37357 dow: 1, // Monday is the first day of the week. 37358 doy: 7, // The week that contains Jan 7th is the first week of the year. 37359 }, 37360 }); 37361 37362 return uzLatn; 37363 37364}))); 37365 37366 37367/***/ }), 37368/* 132 */ 37369/***/ (function(module, exports, __webpack_require__) { 37370 37371//! moment.js locale configuration 37372//! locale : Vietnamese [vi] 37373//! author : Bang Nguyen : https://github.com/bangnk 37374//! author : Chien Kira : https://github.com/chienkira 37375 37376;(function (global, factory) { 37377 true ? factory(__webpack_require__(0)) : 37378 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 37379 factory(global.moment) 37380}(this, (function (moment) { 'use strict'; 37381 37382 //! moment.js locale configuration 37383 37384 var vi = moment.defineLocale('vi', { 37385 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( 37386 '_' 37387 ), 37388 monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( 37389 '_' 37390 ), 37391 monthsParseExact: true, 37392 weekdays: 'chá»§ nháºt_thứ hai_thứ ba_thứ tư_thứ nÄm_thứ sáu_thứ bảy'.split( 37393 '_' 37394 ), 37395 weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), 37396 weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), 37397 weekdaysParseExact: true, 37398 meridiemParse: /sa|ch/i, 37399 isPM: function (input) { 37400 return /^ch$/i.test(input); 37401 }, 37402 meridiem: function (hours, minutes, isLower) { 37403 if (hours < 12) { 37404 return isLower ? 'sa' : 'SA'; 37405 } else { 37406 return isLower ? 'ch' : 'CH'; 37407 } 37408 }, 37409 longDateFormat: { 37410 LT: 'HH:mm', 37411 LTS: 'HH:mm:ss', 37412 L: 'DD/MM/YYYY', 37413 LL: 'D MMMM [nÄm] YYYY', 37414 LLL: 'D MMMM [nÄm] YYYY HH:mm', 37415 LLLL: 'dddd, D MMMM [nÄm] YYYY HH:mm', 37416 l: 'DD/M/YYYY', 37417 ll: 'D MMM YYYY', 37418 lll: 'D MMM YYYY HH:mm', 37419 llll: 'ddd, D MMM YYYY HH:mm', 37420 }, 37421 calendar: { 37422 sameDay: '[Hôm nay lúc] LT', 37423 nextDay: '[Ngà y mai lúc] LT', 37424 nextWeek: 'dddd [tuần tá»i lúc] LT', 37425 lastDay: '[Hôm qua lúc] LT', 37426 lastWeek: 'dddd [tuần trưá»c lúc] LT', 37427 sameElse: 'L', 37428 }, 37429 relativeTime: { 37430 future: '%s tá»i', 37431 past: '%s trưá»c', 37432 s: 'và i giây', 37433 ss: '%d giây', 37434 m: 'má»t phút', 37435 mm: '%d phút', 37436 h: 'má»t giá»', 37437 hh: '%d giá»', 37438 d: 'má»t ngà y', 37439 dd: '%d ngà y', 37440 w: 'má»t tuần', 37441 ww: '%d tuần', 37442 M: 'má»t tháng', 37443 MM: '%d tháng', 37444 y: 'má»t nÄm', 37445 yy: '%d nÄm', 37446 }, 37447 dayOfMonthOrdinalParse: /\d{1,2}/, 37448 ordinal: function (number) { 37449 return number; 37450 }, 37451 week: { 37452 dow: 1, // Monday is the first day of the week. 37453 doy: 4, // The week that contains Jan 4th is the first week of the year. 37454 }, 37455 }); 37456 37457 return vi; 37458 37459}))); 37460 37461 37462/***/ }), 37463/* 133 */ 37464/***/ (function(module, exports, __webpack_require__) { 37465 37466//! moment.js locale configuration 37467//! locale : Pseudo [x-pseudo] 37468//! author : Andrew Hood : https://github.com/andrewhood125 37469 37470;(function (global, factory) { 37471 true ? factory(__webpack_require__(0)) : 37472 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 37473 factory(global.moment) 37474}(this, (function (moment) { 'use strict'; 37475 37476 //! moment.js locale configuration 37477 37478 var xPseudo = moment.defineLocale('x-pseudo', { 37479 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( 37480 '_' 37481 ), 37482 monthsShort: 'J~áñ_~Féb_~Már_~Ãpr_~Máý_~Júñ_~Júl_~Ãúg_~Sép_~Ãct_~Ãóv_~Déc'.
37482split( 37483 '_' 37484 ), 37485 monthsParseExact: true, 37486 weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~FrÃd~áý_S~átúr~dáý'.split( 37487 '_' 37488 ), 37489 weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~FrÃ_~Sát'.split('_'), 37490 weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), 37491 weekdaysParseExact: true, 37492 longDateFormat: { 37493 LT: 'HH:mm', 37494 L: 'DD/MM/YYYY', 37495 LL: 'D MMMM YYYY', 37496 LLL: 'D MMMM YYYY HH:mm', 37497 LLLL: 'dddd, D MMMM YYYY HH:mm', 37498 }, 37499 calendar: { 37500 sameDay: '[T~ódá~ý át] LT', 37501 nextDay: '[T~ómó~rró~w át] LT', 37502 nextWeek: 'dddd [át] LT', 37503 lastDay: '[Ã~ést~érdá~ý át] LT', 37504 lastWeek: '[L~ást] dddd [át] LT', 37505 sameElse: 'L', 37506 }, 37507 relativeTime: { 37508 future: 'Ã~ñ %s', 37509 past: '%s á~gó', 37510 s: 'á ~féw ~sécó~ñds', 37511 ss: '%d s~écóñ~ds',
37512 m: 'á ~mÃñ~úté', 37513 mm: '%d m~Ãñú~tés', 37514 h: 'á~ñ hó~úr', 37515 hh: '%d h~óúrs', 37516 d: 'á ~dáý', 37517 dd: '%d d~áýs', 37518 M: 'á ~móñ~th', 37519 MM: '%d m~óñt~hs', 37520 y: 'á ~ýéár', 37521 yy: '%d ý~éárs', 37522 }, 37523 dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, 37524 ordinal: function (number) { 37525 var b = number % 10, 37526 output = 37527 ~~((number % 100) / 10) === 1 37528 ? 'th' 37529 : b === 1 37530 ? 'st' 37531 : b === 2 37532 ? 'nd' 37533 : b === 3 37534 ? 'rd' 37535 : 'th'; 37536 return number + output; 37537 }, 37538 week: { 37539 dow: 1, // Monday is the first day of the week. 37540 doy: 4, // The week that contains Jan 4th is the first week of the year. 37541 }, 37542 }); 37543 37544 return xPseudo; 37545 37546}))); 37547 37548 37549/***/ }), 37550/* 134 */ 37551/***/ (function(module, exports, __webpack_require__) { 37552 37553//! moment.js locale configuration 37554//! locale : Yoruba Nigeria [yo] 37555//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe 37556 37557;(function (global, factory) { 37558 true ? factory(__webpack_require__(0)) : 37559 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 37560 factory(global.moment) 37561}(this, (function (moment) { 'use strict'; 37562 37563 //! moment.js locale configuration 37564 37565 var yo = moment.defineLocale('yo', { 37566 months: 'SẹÌrẹÌ_EÌreÌleÌ_ẸrẹÌnaÌ_IÌgbeÌ_EÌbibi_OÌkuÌdu_Agẹmo_OÌguÌn_Owewe_á»ÌwaÌraÌ_BeÌluÌ_á»ÌpẹÌÌ'.split( 37567 '_' 37568 ), 37569 monthsShort: 'SẹÌr_EÌrl_Ẹrn_IÌgb_EÌbi_OÌkuÌ_Agẹ_OÌguÌ_Owe_á»ÌwaÌ_BeÌl_á»ÌpẹÌÌ'.split('_'), 37570 weekdays: 'AÌiÌkuÌ_AjeÌ_IÌsẹÌgun_á»já»ÌruÌ_á»já»Ìbá»_ẸtiÌ_AÌbaÌmẹÌta'.split('_'), 37571 weekdaysShort: 'AÌiÌk_AjeÌ_IÌsẹÌ_á»jr_á»jb_ẸtiÌ_AÌbaÌ'.split('_'), 37572 weekdaysMin: 'AÌiÌ_Aj_IÌs_á»r_á»b_Ẹt_AÌb'.split('_'), 37573 longDateFormat: { 37574 LT: 'h:mm A', 37575 LTS: 'h:mm:ss A', 37576 L: 'DD/MM/YYYY', 37577 LL: 'D MMMM YYYY', 37578 LLL: 'D MMMM YYYY h:mm A', 37579 LLLL: 'dddd, D MMMM YYYY h:mm A', 37580 }, 37581 calendar: { 37582 sameDay: '[OÌniÌ ni] LT', 37583 nextDay: '[á»Ìla ni] LT', 37584 nextWeek: "dddd [á»sáº¹Ì toÌn'bá»] [ni] LT", 37585 lastDay: '[AÌna ni] LT', 37586 lastWeek: 'dddd [á»sáº¹Ì toÌlá»Ì] [ni] LT', 37587 sameElse: 'L', 37588 }, 37589 relativeTime: { 37590 future: 'niÌ %s', 37591 past: '%s ká»jaÌ', 37592 s: 'iÌsẹjuÌ aayaÌ die', 37593 ss: 'aayaÌ %d', 37594 m: 'iÌsẹjuÌ kan', 37595 mm: 'iÌsẹjuÌ %d', 37596 h: 'waÌkati kan', 37597 hh: 'waÌkati %d', 37598 d: 'á»já»Ì kan', 37599 dd: 'á»já»Ì %d', 37600 M: 'osuÌ kan', 37601 MM: 'osuÌ %d', 37602 y: 'á»duÌn kan', 37603 yy: 'á»duÌn %d', 37604 }, 37605 dayOfMonthOrdinalParse: /á»já»Ì\s\d{1,2}/, 37606 ordinal: 'á»já»Ì %d', 37607 week: { 37608 dow: 1, // Monday is the first day of the week. 37609 doy: 4, // The week that contains Jan 4th is the first week of the year. 37610 }, 37611 }); 37612 37613 return yo; 37614 37615}))); 37616 37617 37618/***/ }), 37619/* 135 */ 37620/***/ (function(module, exports, __webpack_require__) { 37621 37622//! moment.js locale configuration 37623//! locale : Chinese (China) [zh-cn] 37624//! author : suupic : https://github.com/suupic 37625//! author : Zeno Zeng : https://github.com/zenozeng 37626//! author : uu109 : https://github.com/uu109 37627 37628;(function (global, factory) { 37629 true ? factory(__webpack_require__(0)) : 37630 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 37631 factory(global.moment) 37632}(this, (function (moment) { 'use strict'; 37633 37634 //! moment.js locale configuration 37635 37636 var zhCn = moment.defineLocale('zh-cn', { 37637 months: '䏿_äºæ_䏿_åæ_äºæ_å æ_䏿_å «æ_乿_åæ_å䏿_åäºæ'.split( 37638 '_' 37639 ), 37640 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split( 37641 '_' 37642 ), 37643 weekdays: 'æææ¥_ææä¸_ææäº_ææä¸_ææå_ææäº_ææå '.split('_'), 37644 weekdaysShort: '卿¥_å¨ä¸_å¨äº_å¨ä¸_å¨å_å¨äº_å¨å '.split('_'), 37645 weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å '.split('_'), 37646 longDateFormat: { 37647 LT: 'HH:mm', 37648 LTS: 'HH:mm:ss', 37649 L: 'YYYY/MM/DD', 37650 LL: 'YYYYå¹´MæDæ¥', 37651 LLL: 'YYYYå¹´MæDæ¥Ahç¹mmå', 37652 LLLL: 'YYYYå¹´MæDæ¥ddddAhç¹mmå', 37653 l: 'YYYY/M/D', 37654 ll: 'YYYYå¹´MæDæ¥', 37655 lll: 'YYYYå¹´MæDæ¥ HH:mm', 37656 llll: 'YYYYå¹´MæDæ¥dddd HH:mm', 37657 }, 37658 meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/, 37659 meridiemHour: function (hour, meridiem) { 37660 if (hour === 12) { 37661 hour = 0; 37662 } 37663 if (meridiem === '忍' || meridiem === 'æ©ä¸' || meridiem === 'ä¸å') { 37664 return hour; 37665 } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') { 37666 return hour + 12; 37667 } else { 37668 // 'ä¸å' 37669 return hour >= 11 ? hour : hour + 12; 37670 } 37671 }, 37672 meridiem: function (hour, minute, isLower) { 37673 var hm = hour * 100 + minute; 37674 if (hm < 600) { 37675 return '忍'; 37676 } else if (hm < 900) { 37677 return 'æ©ä¸'; 37678 } else if (hm < 1130) { 37679 return 'ä¸å'; 37680 } else if (hm < 1230) { 37681 return 'ä¸å'; 37682 } else if (hm < 1800) { 37683 return 'ä¸å'; 37684 } else { 37685 return 'æä¸'; 37686 } 37687 }, 37688 calendar: { 37689 sameDay: '[ä»å¤©]LT', 37690 nextDay: '[æå¤©]LT', 37691 nextWeek: function (now) { 37692 if (now.week() !== this.week()) { 37693 return '[ä¸]dddLT'; 37694 } else { 37695 return '[æ¬]dddLT'; 37696 } 37697 }, 37698 lastDay: '[æ¨å¤©]LT', 37699 lastWeek: function (now) { 37700 if (this.week() !== now.week()) { 37701 return '[ä¸]dddLT'; 37702 } else { 37703 return '[æ¬]dddLT'; 37704 } 37705 }, 37706 sameElse: 'L', 37707 }, 37708 dayOfMonthOrdinalParse: /\d{1,2}(æ¥|æ|å¨)/, 37709 ordinal: function (number, period) { 37710 switch (period) { 37711 case 'd': 37712 case 'D': 37713 case 'DDD': 37714 return number + 'æ¥'; 37715 case 'M': 37716 return number + 'æ'; 37717 case 'w': 37718 case 'W': 37719 return number + 'å¨'; 37720 default: 37721 return number; 37722 } 37723 }, 37724 relativeTime: { 37725 future: '%så', 37726 past: '%så', 37727 s: 'å ç§', 37728 ss: '%d ç§', 37729 m: '1 åé', 37730 mm: '%d åé', 37731 h: '1 å°æ¶', 37732 hh: '%d å°æ¶', 37733 d: '1 天', 37734 dd: '%d 天', 37735 w: '1 å¨', 37736 ww: '%d å¨', 37737 M: '1 个æ', 37738 MM: '%d 个æ', 37739 y: '1 å¹´', 37740 yy: '%d å¹´', 37741 }, 37742 week: { 37743 // GB/T 7408-1994ãæ°æ®å åäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ¥æåæ¶é´è¡¨ç¤ºæ³ãä¸ISO 8601:1988çæ 37744 dow: 1, // Monday is the first day of the week. 37745 doy: 4, // The week that contains Jan 4th is the first week of the year. 37746 }, 37747 }); 37748 37749 return zhCn; 37750 37751}))); 37752 37753 37754/***/ }), 37755/* 136 */ 37756/***/ (function(module, exports, __webpack_require__) { 37757 37758//! moment.js locale configuration 37759//! locale : Chinese (Hong Kong) [zh-hk] 37760//! author : Ben : https://github.com/ben-lin 37761//! author : Chris Lam : https://github.com/hehachris 37762//! author : Konstantin : https://github.com/skfd 37763//! author : Anthony : https://github.com/anthonylau 37764 37765;(function (global, factory) { 37766 true ? factory(__webpack_require__(0)) : 37767 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 37768 factory(global.moment) 37769}(this, (function (moment) { 'use strict'; 37770 37771 //! moment.js locale configuration 37772 37773 var zhHk = moment.defineLocale('zh-hk', { 37774 months: '䏿_äºæ_䏿_åæ_äºæ_å æ_䏿_å «æ_乿_åæ_å䏿_åäºæ'.split( 37775 '_' 37776 ), 37777 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split( 37778 '_' 37779 ), 37780 weekdays: 'æææ¥_ææä¸_ææäº_ææä¸_ææå_ææäº_ææå '.split('_'), 37781 weekdaysShort: '鱿¥_é±ä¸_é±äº_é±ä¸_é±å_é±äº_é±å '.split('_'), 37782 weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å '.split('_'), 37783 longDateFormat: { 37784 LT: 'HH:mm', 37785 LTS: 'HH:mm:ss', 37786 L: 'YYYY/MM/DD', 37787 LL: 'YYYYå¹´MæDæ¥', 37788 LLL: 'YYYYå¹´MæDæ¥ HH:mm', 37789 LLLL: 'YYYYå¹´MæDæ¥dddd HH:mm', 37790 l: 'YYYY/M/D', 37791 ll: 'YYYYå¹´MæDæ¥', 37792 lll: 'YYYYå¹´MæDæ¥ HH:mm', 37793 llll: 'YYYYå¹´MæDæ¥dddd HH:mm', 37794 }, 37795 meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/, 37796 meridiemHour: function (hour, meridiem) { 37797 if (hour === 12) { 37798 hour = 0; 37799 } 37800 if (meridiem === '忍' || meridiem === 'æ©ä¸' || meridiem === 'ä¸å') { 37801 return hour; 37802 } else if (meridiem === 'ä¸å') { 37803 return hour >= 11 ? hour : hour + 12; 37804 } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') { 37805 return hour + 12; 37806 } 37807 }, 37808 meridiem: function (hour, minute, isLower) { 37809 var hm = hour * 100 + minute; 37810 if (hm < 600) { 37811 return '忍'; 37812 } else if (hm < 900) { 37813 return 'æ©ä¸'; 37814 } else if (hm < 1200) { 37815 return 'ä¸å'; 37816 } else if (hm === 1200) { 37817 return 'ä¸å'; 37818 } else if (hm < 1800) { 37819 return 'ä¸å'; 37820 } else { 37821 return 'æä¸'; 37822 } 37823 }, 37824 calendar: { 37825 sameDay: '[ä»å¤©]LT', 37826 nextDay: '[æå¤©]LT', 37827 nextWeek: '[ä¸]ddddLT', 37828 lastDay: '[æ¨å¤©]LT', 37829 lastWeek: '[ä¸]ddddLT', 37830 sameElse: 'L', 37831 }, 37832 dayOfMonthOrdinalParse: /\d{1,2}(æ¥|æ|é±)/, 37833 ordinal: function (number, period) { 37834 switch (period) { 37835 case 'd': 37836 case 'D': 37837 case 'DDD': 37838 return number + 'æ¥'; 37839 case 'M': 37840 return number + 'æ'; 37841 case 'w': 37842 case 'W': 37843 return number + 'é±'; 37844 default: 37845 return number; 37846 } 37847 }, 37848 relativeTime: { 37849 future: '%så¾', 37850 past: '%så', 37851 s: 'å¹¾ç§', 37852 ss: '%d ç§', 37853 m: '1 åé', 37854 mm: '%d åé', 37855 h: '1 å°æ', 37856 hh: '%d å°æ', 37857 d: '1 天', 37858 dd: '%d 天', 37859 M: '1 åæ', 37860 MM: '%d åæ', 37861 y: '1 å¹´', 37862 yy: '%d å¹´', 37863 }, 37864 }); 37865 37866 return zhHk; 37867 37868}))); 37869 37870 37871/***/ }), 37872/* 137 */ 37873/***/ (function(module, exports, __webpack_require__) { 37874 37875//! moment.js locale configuration 37876//! locale : Chinese (Macau) [zh-mo] 37877//! author : Ben : https://github.com/ben-lin 37878//! author : Chris Lam : https://github.com/hehachris 37879//! author : Tan Yuanhong : https://github.com/le0tan 37880 37881;(function (global, factory) { 37882 true ? factory(__webpack_require__(0)) : 37883 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 37884 factory(global.moment) 37885}(this, (function (moment) { 'use strict'; 37886 37887 //! moment.js locale configuration 37888 37889 var zhMo = moment.defineLocale('zh-mo', { 37890 months: '䏿_äºæ_䏿_åæ_äºæ_å æ_䏿_å «æ_乿_åæ_å䏿_åäºæ'.split( 37891 '_' 37892 ), 37893 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split( 37894 '_' 37895 ), 37896 weekdays: 'æææ¥_ææä¸_ææäº_ææä¸_ææå_ææäº_ææå '.split('_'), 37897 weekdaysShort: '鱿¥_é±ä¸_é±äº_é±ä¸_é±å_é±äº_é±å '.split('_'), 37898 weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å '.split('_'), 37899 longDateFormat: { 37900 LT: 'HH:mm', 37901 LTS: 'HH:mm:ss', 37902 L: 'DD/MM/YYYY', 37903 LL: 'YYYYå¹´MæDæ¥', 37904 LLL: 'YYYYå¹´MæDæ¥ HH:mm', 37905 LLLL: 'YYYYå¹´MæDæ¥dddd HH:mm', 37906 l: 'D/M/YYYY', 37907 ll: 'YYYYå¹´MæDæ¥', 37908 lll: 'YYYYå¹´MæDæ¥ HH:mm', 37909 llll: 'YYYYå¹´MæDæ¥dddd HH:mm', 37910 }, 37911 meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/, 37912 meridiemHour: function (hour, meridiem) { 37913 if (hour === 12) { 37914 hour = 0; 37915 } 37916 if (meridiem === '忍' || meridiem === 'æ©ä¸' || meridiem === 'ä¸å') { 37917 return hour; 37918 } else if (meridiem === 'ä¸å') { 37919 return hour >= 11 ? hour : hour + 12; 37920 } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') { 37921 return hour + 12; 37922 } 37923 }, 37924 meridiem: function (hour, minute, isLower) { 37925 var hm = hour * 100 + minute; 37926 if (hm < 600) { 37927 return '忍'; 37928 } else if (hm < 900) { 37929 return 'æ©ä¸'; 37930 } else if (hm < 1130) { 37931 return 'ä¸å'; 37932 } else if (hm < 1230) { 37933 return 'ä¸å'; 37934 } else if (hm < 1800) { 37935 return 'ä¸å'; 37936 } else { 37937 return 'æä¸'; 37938 } 37939 }, 37940 calendar: { 37941 sameDay: '[ä»å¤©] LT', 37942 nextDay: '[æå¤©] LT', 37943 nextWeek: '[ä¸]dddd LT', 37944 lastDay: '[æ¨å¤©] LT', 37945 lastWeek: '[ä¸]dddd LT', 37946 sameElse: 'L', 37947 }, 37948 dayOfMonthOrdinalParse: /\d{1,2}(æ¥|æ|é±)/, 37949 ordinal: function (number, period) { 37950 switch (period) { 37951 case 'd': 37952 case 'D': 37953 case 'DDD': 37954 return number + 'æ¥'; 37955 case 'M': 37956 return number + 'æ'; 37957 case 'w': 37958 case 'W': 37959 return number + 'é±'; 37960 default: 37961 return number; 37962 } 37963 }, 37964 relativeTime: { 37965 future: '%så §', 37966 past: '%så', 37967 s: 'å¹¾ç§', 37968 ss: '%d ç§', 37969 m: '1 åé', 37970 mm: '%d åé', 37971 h: '1 å°æ', 37972 hh: '%d å°æ', 37973 d: '1 天', 37974 dd: '%d 天', 37975 M: '1 åæ', 37976 MM: '%d åæ', 37977 y: '1 å¹´', 37978 yy: '%d å¹´', 37979 }, 37980 }); 37981 37982 return zhMo; 37983 37984}))); 37985 37986 37987/***/ }), 37988/* 138 */ 37989/***/ (function(module, exports, __webpack_require__) { 37990 37991//! moment.js locale configuration 37992//! locale : Chinese (Taiwan) [zh-tw] 37993//! author : Ben : https://github.com/ben-lin 37994//! author : Chris Lam : https://github.com/hehachris 37995 37996;(function (global, factory) { 37997 true ? factory(__webpack_require__(0)) : 37998 typeof define === 'function' && define.amd ? define(['../moment'], factory) : 37999 factory(global.moment) 38000}(this, (function (moment) { 'use strict'; 38001 38002 //! moment.js locale configuration 38003 38004 var zhTw = moment.defineLocale('zh-tw', { 38005 months: '䏿_äºæ_䏿_åæ_äºæ_å æ_䏿_å «æ_乿_åæ_å䏿_åäºæ'.split( 38006 '_' 38007 ), 38008 monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split( 38009 '_' 38010 ), 38011 weekdays: 'æææ¥_æ
38011æä¸_ææäº_ææä¸_ææå_ææäº_ææå '.split('_'), 38012 weekdaysShort: '鱿¥_é±ä¸_é±äº_é±ä¸_é±å_é±äº_é±å '.split('_'), 38013 weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å '.split('_'), 38014 longDateFormat: { 38015 LT: 'HH:mm', 38016 LTS: 'HH:mm:ss', 38017 L: 'YYYY/MM/DD', 38018 LL: 'YYYYå¹´MæDæ¥', 38019 LLL: 'YYYYå¹´MæDæ¥ HH:mm', 38020 LLLL: 'YYYYå¹´MæDæ¥dddd HH:mm', 38021 l: 'YYYY/M/D', 38022 ll: 'YYYYå¹´MæDæ¥', 38023 lll: 'YYYYå¹´MæDæ¥ HH:mm', 38024 llll: 'YYYYå¹´MæDæ¥dddd HH:mm', 38025 }, 38026 meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/, 38027 meridiemHour: function (hour, meridiem) { 38028 if (hour === 12) { 38029 hour = 0; 38030 } 38031 if (meridiem === '忍' || meridiem === 'æ©ä¸' || meridiem === 'ä¸å') { 38032 return hour; 38033 } else if (meridiem === 'ä¸å') { 38034 return hour >= 11 ? hour : hour + 12; 38035 } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') { 38036 return hour + 12; 38037 } 38038 }, 38039 meridiem: function (hour, minute, isLower) { 38040 var hm = hour * 100 + minute; 38041 if (hm < 600) { 38042 return '忍'; 38043 } else if (hm < 900) { 38044 return 'æ©ä¸'; 38045 } else if (hm < 1130) { 38046 return 'ä¸å'; 38047 } else if (hm < 1230) { 38048 return 'ä¸å'; 38049 } else if (hm < 1800) { 38050 return 'ä¸å'; 38051 } else { 38052 return 'æä¸'; 38053 } 38054 }, 38055 calendar: { 38056 sameDay: '[ä»å¤©] LT', 38057 nextDay: '[æå¤©] LT', 38058 nextWeek: '[ä¸]dddd LT', 38059 lastDay: '[æ¨å¤©] LT', 38060 lastWeek: '[ä¸]dddd LT', 38061 sameElse: 'L', 38062 }, 38063 dayOfMonthOrdinalParse: /\d{1,2}(æ¥|æ|é±)/, 38064 ordinal: function (number, period) { 38065 switch (period) { 38066 case 'd': 38067 case 'D': 38068 case 'DDD': 38069 return number + 'æ¥'; 38070 case 'M': 38071 return number + 'æ'; 38072 case 'w': 38073 case 'W': 38074 return number + 'é±'; 38075 default: 38076 return number; 38077 } 38078 }, 38079 relativeTime: { 38080 future: '%så¾', 38081 past: '%så', 38082 s: 'å¹¾ç§', 38083 ss: '%d ç§', 38084 m: '1 åé', 38085 mm: '%d åé', 38086 h: '1 å°æ', 38087 hh: '%d å°æ', 38088 d: '1 天', 38089 dd: '%d 天', 38090 M: '1 åæ', 38091 MM: '%d åæ', 38092 y: '1 å¹´', 38093 yy: '%d å¹´', 38094 }, 38095 }); 38096 38097 return zhTw; 38098 38099}))); 38100 38101 38102/***/ }), 38103/* 139 */ 38104/***/ (function(module, exports, __webpack_require__) { 38105 38106__webpack_require__(140); 38107__webpack_require__(164); 38108module.exports = __webpack_require__(165); 38109 38110 38111/***/ }), 38112/* 140 */ 38113/***/ (function(module, __webpack_exports__, __webpack_require__) { 38114 38115"use strict"; 38116Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); 38117/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_whatwg_fetch__ = __webpack_require__(141); 38118/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__modules_BetterNav__ = __webpack_require__(142); 38119/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__modules_Carousels__ = __webpack_require__(144); 38120/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__modules_SocialMedia__ = __webpack_require__(145); 38121/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__modules_MomentResolver__ = __webpack_require__(150); 38122/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__modules_YearSelector__ = __webpack_require__(155); 38123/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__modules_Navigation__ = __webpack_require__(156); 38124/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__modules_MenuToggle__ = __webpack_require__(157); 38125/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__all_blacks_javascript_modules_ScheduledBanner__ = __webpack_require__(159); 38126 38127 38128 38129 38130 38131 38132 38133 38134 38135 38136var existingOnload = window.onload; 38137window.onload = function () { 38138 if (existingOnload) { 38139 existingOnload(); 38140 } 38141 38142 jQuery.noConflict(); 38143 __WEBPACK_IMPORTED_MODULE_1__modules_BetterNav__["a" /* default */].init(); 38144 __WEBPACK_IMPORTED_MODULE_2__modules_Carousels__["a" /* default */].init(); 38145 __WEBPACK_IMPORTED_MODULE_3__modules_SocialMedia__["a" /* default */].init(); 38146 __WEBPACK_IMPORTED_MODULE_4__modules_MomentResolver__["a" /* default */].init(); 38147 __WEBPACK_IMPORTED_MODULE_5__modules_YearSelector__["a" /* default */].init(); 38148 __WEBPACK_IMPORTED_MODULE_6__modules_Navigation__["a" /* default */].init();
vendor: 9,252 bytes, lines 38149-38494
38149 Object(__WEBPACK_IMPORTED_MODULE_7__modules_MenuToggle__["a" /* default */])(); 38150 Object(__WEBPACK_IMPORTED_MODULE_8__all_blacks_javascript_modules_ScheduledBanner__["a" /* default */])(); 38151}; 38152 38153/***/ }), 38154/* 141 */ 38155/***/ (function(module, __webpack_exports__, __webpack_require__) { 38156 38157"use strict"; 38158/* unused harmony export Headers */ 38159/* unused harmony export Request */ 38160/* unused harmony export Response */ 38161/* unused harmony export DOMException */ 38162/* unused harmony export fetch */ 38163var global = 38164 (typeof globalThis !== 'undefined' && globalThis) || 38165 (typeof self !== 'undefined' && self) || 38166 (typeof global !== 'undefined' && global) 38167 38168var support = { 38169 searchParams: 'URLSearchParams' in global, 38170 iterable: 'Symbol' in global && 'iterator' in Symbol, 38171 blob: 38172 'FileReader' in global && 38173 'Blob' in global && 38174 (function() { 38175 try { 38176 new Blob() 38177 return true 38178 } catch (e) { 38179 return false 38180 } 38181 })(), 38182 formData: 'FormData' in global, 38183 arrayBuffer: 'ArrayBuffer' in global 38184} 38185 38186function isDataView(obj) { 38187 return obj && DataView.prototype.isPrototypeOf(obj) 38188} 38189 38190if (support.arrayBuffer) { 38191 var viewClasses = [ 38192 '[object Int8Array]', 38193 '[object Uint8Array]', 38194 '[object Uint8ClampedArray]', 38195 '[object Int16Array]', 38196 '[object Uint16Array]', 38197 '[object Int32Array]', 38198 '[object Uint32Array]', 38199 '[object Float32Array]', 38200 '[object Float64Array]' 38201 ] 38202 38203 var isArrayBufferView = 38204 ArrayBuffer.isView || 38205 function(obj) { 38206 return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1 38207 } 38208} 38209 38210function normalizeName(name) { 38211 if (typeof name !== 'string') { 38212 name = String(name) 38213 } 38214 if (/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(name) || name === '') { 38215 throw new TypeError('Invalid character in header field name: "' + name + '"') 38216 } 38217 return name.toLowerCase() 38218} 38219 38220function normalizeValue(value) { 38221 if (typeof value !== 'string') { 38222 value = String(value) 38223 } 38224 return value 38225} 38226 38227// Build a destructive iterator for the value list 38228function iteratorFor(items) { 38229 var iterator = { 38230 next: function() { 38231 var value = items.shift() 38232 return {done: value === undefined, value: value} 38233 } 38234 } 38235 38236 if (support.iterable) { 38237 iterator[Symbol.iterator] = function() { 38238 return iterator 38239 } 38240 } 38241 38242 return iterator 38243} 38244 38245function Headers(headers) { 38246 this.map = {} 38247 38248 if (headers instanceof Headers) { 38249 headers.forEach(function(value, name) { 38250 this.append(name, value) 38251 }, this) 38252 } else if (Array.isArray(headers)) { 38253 headers.forEach(function(header) { 38254 this.append(header[0], header[1]) 38255 }, this) 38256 } else if (headers) { 38257 Object.getOwnPropertyNames(headers).forEach(function(name) { 38258 this.append(name, headers[name]) 38259 }, this) 38260 } 38261} 38262 38263Headers.prototype.append = function(name, value) { 38264 name = normalizeName(name) 38265 value = normalizeValue(value) 38266 var oldValue = this.map[name] 38267 this.map[name] = oldValue ? oldValue + ', ' + value : value 38268} 38269 38270Headers.prototype['delete'] = function(name) { 38271 delete this.map[normalizeName(name)] 38272} 38273 38274Headers.prototype.get = function(name) { 38275 name = normalizeName(name) 38276 return this.has(name) ? this.map[name] : null 38277} 38278 38279Headers.prototype.has = function(name) { 38280 return this.map.hasOwnProperty(normalizeName(name)) 38281} 38282 38283Headers.prototype.set = function(name, value) { 38284 this.map[normalizeName(name)] = normalizeValue(value) 38285} 38286 38287Headers.prototype.forEach = function(callback, thisArg) { 38288 for (var name in this.map) { 38289 if (this.map.hasOwnProperty(name)) { 38290 callback.call(thisArg, this.map[name], name, this) 38291 } 38292 } 38293} 38294 38295Headers.prototype.keys = function() { 38296 var items = [] 38297 this.forEach(function(value, name) { 38298 items.push(name) 38299 }) 38300 return iteratorFor(items) 38301} 38302 38303Headers.prototype.values = function() { 38304 var items = [] 38305 this.forEach(function(value) { 38306 items.push(value) 38307 }) 38308 return iteratorFor(items) 38309} 38310 38311Headers.prototype.entries = function() { 38312 var items = [] 38313 this.forEach(function(value, name) { 38314 items.push([name, value]) 38315 }) 38316 return iteratorFor(items) 38317} 38318 38319if (support.iterable) { 38320 Headers.prototype[Symbol.iterator] = Headers.prototype.entries 38321} 38322 38323function consumed(body) { 38324 if (body.bodyUsed) { 38325 return Promise.reject(new TypeError('Already read')) 38326 } 38327 body.bodyUsed = true 38328} 38329 38330function fileReaderReady(reader) { 38331 return new Promise(function(resolve, reject) { 38332 reader.onload = function() { 38333 resolve(reader.result) 38334 } 38335 reader.onerror = function() { 38336 reject(reader.error) 38337 } 38338 }) 38339} 38340 38341function readBlobAsArrayBuffer(blob) { 38342 var reader = new FileReader() 38343 var promise = fileReaderReady(reader) 38344 reader.readAsArrayBuffer(blob) 38345 return promise 38346} 38347 38348function readBlobAsText(blob) { 38349 var reader = new FileReader() 38350 var promise = fileReaderReady(reader) 38351 reader.readAsText(blob) 38352 return promise 38353} 38354 38355function readArrayBufferAsText(buf) { 38356 var view = new Uint8Array(buf) 38357 var chars = new Array(view.length) 38358 38359 for (var i = 0; i < view.length; i++) { 38360 chars[i] = String.fromCharCode(view[i]) 38361 } 38362 return chars.join('') 38363} 38364 38365function bufferClone(buf) { 38366 if (buf.slice) { 38367 return buf.slice(0) 38368 } else { 38369 var view = new Uint8Array(buf.byteLength) 38370 view.set(new Uint8Array(buf)) 38371 return view.buffer 38372 } 38373} 38374 38375function Body() { 38376 this.bodyUsed = false 38377 38378 this._initBody = function(body) { 38379 /* 38380 fetch-mock wraps the Response object in an ES6 Proxy to 38381 provide useful test harness features such as flush. However, on 38382 ES5 browsers without fetch or Proxy support pollyfills must be used; 38383 the proxy-pollyfill is unable to proxy an attribute unless it exists 38384 on the object before the Proxy is created. This change ensures 38385 Response.bodyUsed exists on the instance, while maintaining the 38386 semantic of setting Request.bodyUsed in the constructor before 38387 _initBody is called. 38388 */ 38389 this.bodyUsed = this.bodyUsed 38390 this._bodyInit = body 38391 if (!body) { 38392 this._bodyText = '' 38393 } else if (typeof body === 'string') { 38394 this._bodyText = body 38395 } else if (support.blob && Blob.prototype.isPrototypeOf(body)) { 38396 this._bodyBlob = body 38397 } else if (support.formData && FormData.prototype.isPrototypeOf(body)) { 38398 this._bodyFormData = body 38399 } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { 38400 this._bodyText = body.toString() 38401 } else if (support.arrayBuffer && support.blob && isDataView(body)) { 38402 this._bodyArrayBuffer = bufferClone(body.buffer) 38403 // IE 10-11 can't handle a DataView body. 38404 this._bodyInit = new Blob([this._bodyArrayBuffer]) 38405 } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) { 38406 this._bodyArrayBuffer = bufferClone(body) 38407 } else { 38408 this._bodyText = body = Object.prototype.toString.call(body) 38409 } 38410 38411 if (!this.headers.get('content-type')) { 38412 if (typeof body === 'string') { 38413 this.headers.set('content-type', 'text/plain;charset=UTF-8') 38414 } else if (this._bodyBlob && this._bodyBlob.type) { 38415 this.headers.set('content-type', this._bodyBlob.type) 38416 } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { 38417 this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8') 38418 } 38419 } 38420 } 38421 38422 if (support.blob) { 38423 this.blob = function() { 38424 var rejected = consumed(this) 38425 if (rejected) { 38426 return rejected 38427 } 38428 38429 if (this._bodyBlob) { 38430 return Promise.resolve(this._bodyBlob) 38431 } else if (this._bodyArrayBuffer) { 38432 return Promise.resolve(new Blob([this._bodyArrayBuffer])) 38433 } else if (this._bodyFormData) { 38434 throw new Error('could not read FormData body as blob') 38435 } else { 38436 return Promise.resolve(new Blob([this._bodyText])) 38437 } 38438 } 38439 38440 this.arrayBuffer = function() { 38441 if (this._bodyArrayBuffer) { 38442 var isConsumed = consumed(this) 38443 if (isConsumed) { 38444 return isConsumed 38445 } 38446 if (ArrayBuffer.isView(this._bodyArrayBuffer)) { 38447 return Promise.resolve( 38448 this._bodyArrayBuffer.buffer.slice( 38449 this._bodyArrayBuffer.byteOffset, 38450 this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength 38451 ) 38452 ) 38453 } else { 38454 return Promise.resolve(this._bodyArrayBuffer) 38455 } 38456 } else { 38457 return this.blob().then(readBlobAsArrayBuffer) 38458 } 38459 } 38460 } 38461 38462 this.text = function() { 38463 var rejected = consumed(this) 38464 if (rejected) { 38465 return rejected 38466 } 38467 38468 if (this._bodyBlob) { 38469 return readBlobAsText(this._bodyBlob) 38470 } else if (this._bodyArrayBuffer) { 38471 return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer)) 38472 } else if (this._bodyFormData) { 38473 throw new Error('could not read FormData body as text') 38474 } else { 38475 return Promise.resolve(this._bodyText) 38476 } 38477 } 38478 38479 if (support.formData) { 38480 this.formData = function() { 38481 return this.text().then(decode) 38482 } 38483 } 38484 38485 this.json = function() { 38486 return this.text().then(JSON.parse) 38487 } 38488 38489 return this 38490} 38491 38492// HTTP methods whose capitalization should be normalized 38493var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'] 38494
vendor: 5,104 bytes, lines 38495-38663
38495function normalizeMethod(method) { 38496 var upcased = method.toUpperCase() 38497 return methods.indexOf(upcased) > -1 ? upcased : method 38498} 38499 38500function Request(input, options) { 38501 if (!(this instanceof Request)) { 38502 throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.') 38503 } 38504 38505 options = options || {} 38506 var body = options.body 38507 38508 if (input instanceof Request) { 38509 if (input.bodyUsed) { 38510 throw new TypeError('Already read') 38511 } 38512 this.url = input.url 38513 this.credentials = input.credentials 38514 if (!options.headers) { 38515 this.headers = new Headers(input.headers) 38516 } 38517 this.method = input.method 38518 this.mode = input.mode 38519 this.signal = input.signal 38520 if (!body && input._bodyInit != null) { 38521 body = input._bodyInit 38522 input.bodyUsed = true 38523 } 38524 } else { 38525 this.url = String(input) 38526 } 38527 38528 this.credentials = options.credentials || this.credentials || 'same-origin' 38529 if (options.headers || !this.headers) { 38530 this.headers = new Headers(options.headers) 38531 } 38532 this.method = normalizeMethod(options.method || this.method || 'GET') 38533 this.mode = options.mode || this.mode || null 38534 this.signal = options.signal || this.signal 38535 this.referrer = null 38536 38537 if ((this.method === 'GET' || this.method === 'HEAD') && body) { 38538 throw new TypeError('Body not allowed for GET or HEAD requests') 38539 } 38540 this._initBody(body) 38541 38542 if (this.method === 'GET' || this.method === 'HEAD') { 38543 if (options.cache === 'no-store' || options.cache === 'no-cache') { 38544 // Search for a '_' parameter in the query string 38545 var reParamSearch = /([?&])_=[^&]*/ 38546 if (reParamSearch.test(this.url)) { 38547 // If it already exists then set the value with the current time 38548 this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime()) 38549 } else { 38550 // Otherwise add a new '_' parameter to the end with the current time 38551 var reQueryString = /\?/ 38552 this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime() 38553 } 38554 } 38555 } 38556} 38557 38558Request.prototype.clone = function() { 38559 return new Request(this, {body: this._bodyInit}) 38560} 38561 38562function decode(body) { 38563 var form = new FormData() 38564 body 38565 .trim() 38566 .split('&') 38567 .forEach(function(bytes) { 38568 if (bytes) { 38569 var split = bytes.split('=') 38570 var name = split.shift().replace(/\+/g, ' ') 38571 var value = split.join('=').replace(/\+/g, ' ') 38572 form.append(decodeURIComponent(name), decodeURIComponent(value)) 38573 } 38574 }) 38575 return form 38576} 38577 38578function parseHeaders(rawHeaders) { 38579 var headers = new Headers() 38580 // Replace instances of \r\n and \n followed by at least one space or horizontal tab with a space 38581 // https://tools.ietf.org/html/rfc7230#section-3.2 38582 var preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, ' ') 38583 // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill 38584 // https://github.com/github/fetch/issues/748 38585 // https://github.com/zloirock/core-js/issues/751 38586 preProcessedHeaders 38587 .split('\r') 38588 .map(function(header) { 38589 return header.indexOf('\n') === 0 ? header.substr(1, header.length) : header 38590 }) 38591 .forEach(function(line) { 38592 var parts = line.split(':') 38593 var key = parts.shift().trim() 38594 if (key) { 38595 var value = parts.join(':').trim() 38596 headers.append(key, value) 38597 } 38598 }) 38599 return headers 38600} 38601 38602Body.call(Request.prototype) 38603 38604function Response(bodyInit, options) { 38605 if (!(this instanceof Response)) { 38606 throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.') 38607 } 38608 if (!options) { 38609 options = {} 38610 } 38611 38612 this.type = 'default' 38613 this.status = options.status === undefined ? 200 : options.status 38614 this.ok = this.status >= 200 && this.status < 300 38615 this.statusText = options.statusText === undefined ? '' : '' + options.statusText 38616 this.headers = new Headers(options.headers) 38617 this.url = options.url || '' 38618 this._initBody(bodyInit) 38619} 38620 38621Body.call(Response.prototype) 38622 38623Response.prototype.clone = function() { 38624 return new Response(this._bodyInit, { 38625 status: this.status, 38626 statusText: this.statusText, 38627 headers: new Headers(this.headers), 38628 url: this.url 38629 }) 38630} 38631 38632Response.error = function() { 38633 var response = new Response(null, {status: 0, statusText: ''}) 38634 response.type = 'error' 38635 return response 38636} 38637 38638var redirectStatuses = [301, 302, 303, 307, 308] 38639 38640Response.redirect = function(url, status) { 38641 if (redirectStatuses.indexOf(status) === -1) { 38642 throw new RangeError('Invalid status code') 38643 } 38644 38645 return new Response(null, {status: status, headers: {location: url}}) 38646} 38647 38648var DOMException = global.DOMException 38649try { 38650 new DOMException() 38651} catch (err) { 38652 DOMException = function(message, name) { 38653 this.message = message 38654 this.name = name 38655 var error = Error(message) 38656 this.stack = error.stack 38657 } 38658 DOMException.prototype = Object.create(Error.prototype) 38659 DOMException.prototype.constructor = DOMException 38660} 38661 38662function fetch(input, init) { 38663 return new Promise(function(resolve, reject) {
38664 var request = new Request(input, init) 38665 38666 if (request.signal && request.signal.aborted) { 38667 return reject(new DOMException('Aborted', 'AbortError')) 38668 } 38669 38670 var xhr = new XMLHttpRequest() 38671 38672 function abortXhr() { 38673 xhr.abort() 38674 } 38675 38676 xhr.onload = function() { 38677 var options = { 38678 status: xhr.status, 38679 statusText: xhr.statusText, 38680 headers: parseHeaders(xhr.getAllResponseHeaders() || '') 38681 } 38682 options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL') 38683 var body = 'response' in xhr ? xhr.response : xhr.responseText 38684 setTimeout(function() { 38685 resolve(new Response(body, options)) 38686 }, 0) 38687 } 38688 38689 xhr.onerror = function() { 38690 setTimeout(function() { 38691 reject(new TypeError('Network request failed')) 38692 }, 0) 38693 } 38694 38695 xhr.ontimeout = function() { 38696 setTimeout(function() { 38697 reject(new TypeError('Network request failed')) 38698 }, 0) 38699 } 38700 38701 xhr.onabort = function() { 38702 setTimeout(function() { 38703 reject(new DOMException('Aborted', 'AbortError')) 38704 }, 0) 38705 } 38706 38707 function fixUrl(url) { 38708 try { 38709 return url === '' && global.location.href ? global.location.href : url 38710 } catch (e) { 38711 return url 38712 } 38713 } 38714 38715 xhr.open(request.method, fixUrl(request.url), true) 38716 38717 if (request.credentials === 'include') { 38718 xhr.withCredentials = true 38719 } else if (request.credentials === 'omit') { 38720 xhr.withCredentials = false 38721 } 38722 38723 if ('responseType' in xhr) { 38724 if (support.blob) { 38725 xhr.responseType = 'blob' 38726 } else if ( 38727 support.arrayBuffer && 38728 request.headers.get('Content-Type') && 38729 request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1 38730 ) { 38731 xhr.responseType = 'arraybuffer' 38732 } 38733 } 38734 38735 if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) { 38736 Object.getOwnPropertyNames(init.headers).forEach(function(name) { 38737 xhr.setRequestHeader(name, normalizeValue(init.headers[name])) 38738 }) 38739 } else { 38740 request.headers.forEach(function(value, name) { 38741 xhr.setRequestHeader(name, value) 38742 }) 38743 } 38744 38745 if (request.signal) { 38746 request.signal.addEventListener('abort', abortXhr) 38747 38748 xhr.onreadystatechange = function() { 38749 // DONE (success or failure) 38750 if (xhr.readyState === 4) { 38751 request.signal.removeEventListener('abort', abortXhr) 38752 } 38753 } 38754 } 38755 38756 xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit) 38757 }) 38758} 38759 38760fetch.polyfill = true 38761 38762if (!global.fetch) { 38763 global.fetch = fetch 38764 global.Headers = Headers 38765 global.Request = Request 38766 global.Response = Response 38767} 38768 38769 38770/***/ }), 38771/* 142 */ 38772/***/ (function(module, __webpack_exports__, __webpack_require__) { 38773 38774"use strict"; 38775/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash__ = __webpack_require__(1); 38776/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash__); 38777var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 38778 38779function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 38780 38781 38782 38783var BetterNav = function () { 38784 function BetterNav() { 38785 _classCallCheck(this, BetterNav); 38786 38787 this.key = 'groot'; 38788 this.isAdmin = this.checkIfAdmin(); 38789 } 38790 38791 _createClass(BetterNav, [{ 38792 key: 'init', 38793 value: function init() { 38794 var betterNavEl = document.getElementById('BetterNavigator'); 38795 if (!betterNavEl) { 38796 return; 38797 } 38798 38799 if (this.isAdmin) { 38800 betterNavEl.style.display = 'block'; 38801 } else { 38802 betterNavEl.parentNode.removeChild(betterNavEl); // IE doesn't support remove() native Javascript function but does support removeChild(). 38803 } 38804 } 38805 }, {
38806 key: 'checkIfAdmin', 38807 value: function checkIfAdmin() { 38808 var _this = this; 38809 38810 return !!document.cookie.split(';').filter(function (item) { 38811 return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.includes(item, _this.key + '=1'); 38812 }).length; 38813 } 38814 }]); 38815 38816 return BetterNav; 38817}(); 38818 38819/* harmony default export */ __webpack_exports__["a"] = (new BetterNav()); 38820 38821/***/ }), 38822/* 143 */ 38823/***/ (function(module, exports) { 38824 38825var g; 38826 38827// This works in non-strict mode 38828g = (function() { 38829 return this; 38830})(); 38831 38832try { 38833 // This works if eval is allowed (see CSP) 38834 g = g || Function("return this")() || (1,eval)("this"); 38835} catch(e) { 38836 // This works if the window reference is available 38837 if(typeof window === "object") 38838 g = window; 38839} 38840 38841// g can still be undefined, but nothing to do about it... 38842// We return undefined, instead of nothing here, so it's 38843// easier to handle this case. if(!global) { ...} 38844 38845module.exports = g; 38846 38847 38848/***/ }), 38849/* 144 */ 38850/***/ (function(module, __webpack_exports__, __webpack_require__) { 38851 38852"use strict"; 38853/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash__ = __webpack_require__(1); 38854/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash__); 38855/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils__ = __webpack_require__(2); 38856var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 38857 38858var _RESPONSIVE_SETTINGS; 38859 38860function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 38861 38862function _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; } 38863 38864 38865 38866 38867var SELECTOR_NORMAL = '.slider'; 38868var SELECTOR_MOBILE_ONLY = '.only-mobile-slider'; 38869var SELECTOR_NARROW = '.slider-narrow'; 38870var SCREEN_SIZES = [1199, 991, 480, 418]; 38871 38872var MOBILE_VISIBLE_PAGES = 5; 38873var EDGE_PAGE_CLASS = 'smaller'; 38874var EDGE_CLASS_ANIMATION_TIME = 150; 38875 38876function createSettings(slides, arrows) { 38877 return { 38878 slidesToShow: slides, 38879 slidesToScroll: slides, 38880 arrows: arrows 38881 }; 38882} 38883 38884var RESPONSIVE_SETTINGS = (_RESPONSIVE_SETTINGS = {}, _defineProperty(_RESPONSIVE_SETTINGS, SELECTOR_MOBILE_ONLY, ['unslick', createSettings(3, true), createSettings(2, false)]), _defineProperty(_RESPONSIVE_SETTINGS, SELECTOR_NORMAL, [createSettings(4, true), createSettings(3, true), createSettings(2, false)]), _defineProperty(_RESPONSIVE_SETTINGS, SELECTOR_NARROW, [createSettings(5, true), createSettings(4, true), createSettings(3, true), createSettings(2, false)]), _RESPONSIVE_SETTINGS); 38885 38886var Carousels = function () { 38887 function Carousels() { 38888 _classCallCheck(this, Carousels); 38889 } 38890 38891 _createClass(Carousels, [{ 38892 key: 'init', 38893 value: function init() { 38894 var elements = document.querySelectorAll(SELECTOR_NORMAL + ', ' + SELECTOR_MOBILE_ONLY); 38895 this.initCarousels(elements); 38896 this.bindResizing(); 38897 this.animateOpacityAll('.slider-fade'); 38898 38899 // Need some special treatment for fixtures carousel on homepage because of background. 38900 jQuery('.upcoming-games .slider').addClass('special-background-next'); 38901 jQuery('.upcoming-games .slick-next, .upcoming-games .slick-prev').click(function () { 38902 if (jQuery('.upcoming-games .slick-prev').is('[aria-disabled=false]')) { 38903 jQuery('.upcoming-games .slider').addClass('special-background-prev'); 38904 jQuery('.upcoming-games .slider').removeClass('special-background-next'); 38905 } else if (jQuery('.upcoming-games .slick-next').is('[aria-disabled=false]')) { 38906 jQuery('.upcoming-games .slider').addClass('special-background-next'); 38907 jQuery('.upcoming-games .slider').removeClass('special-background-prev'); 38908 } 38909 }); 38910 } 38911 38912 // slowly fade in carousels to solve FOUC 38913 38914 }, {
38915 key: 'animateOpacityAll', 38916 value: function animateOpacityAll(selector) { 38917 var links = document.querySelectorAll(selector); 38918 __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.forEach(links, function (link) { 38919 return link.classList.add('opacity-1'); 38920 }); 38921 } 38922 }, { 38923 key: 'initCarousels', 38924 value: function initCarousels(elements) { 38925 var _this = this; 38926 38927 jQuery(elements).each(function (index, element) { 38928 var responsive = _this.createBreakPoints(element); 38929 var $this = jQuery(element); 38930 38931 $this.find('.inner').slick({ 38932 mobileFirst: true, 38933 //initialSlide: getInitialSlide($this), 38934 initialSlide: 0, 38935 dots: true, 38936 infinite: false, 38937 prevArrow: '<button class="slick-prev slick-arrow" aria-label="Previous" type="button" />', 38938 nextArrow: '<button class="slick-next slick-arrow" aria-label="Next" type="button" />', 38939 arrows: false, 38940 slidesToShow: 1, 38941 slidesToScroll: 1, 38942 responsive: responsive 38943 }); 38944 38945 initPaging(element); 38946 }); 38947 } 38948 }, { 38949 key: 'createBreakPoints', 38950 value: function createBreakPoints(element) { 38951 var isMobileOnly = element.classList.contains(SELECTOR_MOBILE_ONLY.slice(1)); 38952 var isNarrow = element.classList.contains(SELECTOR_NARROW.slice(1)); 38953 38954 var key = isMobileOnly ? SELECTOR_MOBILE_ONLY : isNarrow ? SELECTOR_NARROW : SELECTOR_NORMAL; 38955 38956 return this.getSettings(key); 38957 } 38958 }, { 38959 key: 'getSettings', 38960 value: function getSettings(key) { 38961 var settings = RESPONSIVE_SETTINGS[key]; 38962 var screenSizes = SCREEN_SIZES.slice(0, settings.length); 38963 38964 return __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.map(screenSizes, function (screenSize, index) { 38965 return { 38966 breakpoint: screenSize, 38967 settings: settings[index] 38968 }; 38969 }); 38970 } 38971 }, { 38972 key: 'bindResizing', 38973 value: function bindResizing() { 38974 var _this2 = this; 38975 38976 Object(__WEBPACK_IMPORTED_MODULE_1__utils__["c" /* throttleAnimationFrame */])('resize', 'optimizedResize'); 38977 38978 window.addEventListener('optimizedResize', function () { 38979 _this2.reInitMobileCarousels(); 38980 38981 // We need to wait for the carousel to finish initialising to update the paging that's why we need the setTimeout. 38982 setTimeout(function () { 38983 var elements = document.querySelectorAll(SELECTOR_NORMAL + ', ' + SELECTOR_MOBILE_ONLY); 38984 __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.forEach(elements, initPaging); 38985 }, 500); 38986 }); 38987 } 38988 }, { 38989 key: 'reInitMobileCarousels', 38990 value: function reInitMobileCarousels() { 38991 this.reInitCarousel(SELECTOR_MOBILE_ONLY); 38992 } 38993 }, { 38994 key: 'reInitCarousel', 38995 value: function reInitCarousel(selector) { 38996 var _this3 = this; 38997 38998 var elements = document.querySelectorAll(selector); 38999 __WEBPACK_IMPORTED_MODULE_0_lodash___default.a.forEach(elements, function (element) { 39000 var carouselContainer = element.querySelector('.inner'); 39001 if (carouselContainer.classList.contains('slick-initialized')) { 39002 jQuery(carouselContainer).slick('resize'); 39003 initPaging(element); 39004 } else { 39005 _this3.initCarousels(element); 39006 } 39007 }); 39008 } 39009 }]); 39010 39011 return Carousels; 39012}(); 39013 39014/** 39015 * To avoid showing a massive amount of dots in mobile we have a maximum and "carousel" through the dots. 39016 * @param {DOM} carousel - our carousel element. 39017 */ 39018 39019 39020function initPaging(carousel) { 39021 if (!Object(__WEBPACK_IMPORTED_MODULE_1__utils__["a" /* isMobileDevice */])()) { 39022 jQuery(carousel).find('li').removeClass(EDGE_PAGE_CLASS).show(); 39023 return; 39024 } 39025 39026 var carouselInner = carousel.querySelector('.inner'); 39027 var $slick = carouselInner.slick; 39028 var pagesCount = $slick.getDotCount(); 39029 39030 // We only do something if there are more than 5 pages. 39031 if (pagesCount <= 5) { 39032 return; 39033 } 39034 39035 initialisePagesDots($slick); 39036 39037 var paging = $slick.$dots; 39038 39039 jQuery(carouselInner).off('beforeChange').on('beforeChange', function (event, slick, currentSlideIndex, nextSlideIndex) { 39040 return updatePagingDots(paging, currentSlideIndex, nextSlideIndex); 39041 }); 39042} 39043 39044function updatePagingDots(paging, currentSlideIndex, nextSlideIndex) { 39045 // We only do something if we have reached the edge. 39046 if (!paging.find('li:eq(' + nextSlideIndex + ')').hasClass(EDGE_PAGE_CLASS)) { 39047 return; 39048 } 39049 39050 var $lastVisible = paging.find('li:visible:last'); 39051 var $firstVisible = paging.find('li:visible:first'); 39052 39053 // We find out if it's going right or left. 39054 var moveMethod = currentSlideIndex < nextSlideIndex ? moveRight : moveLeft; 39055 moveMethod($firstVisible, $lastVisible); 39056} 39057 39058function initialisePagesDots($slick) { 39059 var paging = $slick.$dots; 39060 var pagesCount = $slick.getDotCount(); 39061 39062 // Figure out which pages should be visible. 39063 39064 var _getFirstAndLastVisib = getFirstAndLastVisiblePageIndex($slick.getCurrent()), 39065 firstVisiblePageIndex = _getFirstAndLastVisib.firstVisiblePageIndex, 39066 lastVisiblePageIndex = _getFirstAndLastVisib.lastVisiblePageIndex; 39067 39068 // Hide everything that's not in that range. 39069 39070 39071 paging.find('li:lt(' + firstVisiblePageIndex + '), li:gt(' + lastVisiblePageIndex + ')').hide(); 39072 39073 // Add the EDGE_PAGE_CLASS to indicate they are the last visible ones but there are more if you scroll in that direction. 39074 if (firstVisiblePageIndex > 0) { 39075 paging.find('li:eq(' + firstVisiblePageIndex + ')').addClass(EDGE_PAGE_CLASS); 39076 } 39077 if (lastVisiblePageIndex < pagesCount) { 39078 paging.find('li:eq(' + lastVisiblePageIndex + ')').addClass(EDGE_PAGE_CLASS); 39079 } 39080} 39081 39082/** 39083 * This function returns the index of the first and last element that should be visible based on MOBILE_VISIBLE_PAGES. 39084 * @param activePageIndex - The index of the currently active page. 39085 * @returns {Number, Number} - First and last index. 39086 */ 39087function getFirstAndLastVisiblePageIndex(activePageIndex) { 39088 var firstVisiblePageIndex = void 0; 39089 var lastVisiblePageIndex = void 0; 39090 if (activePageIndex < MOBILE_VISIBLE_PAGES - 1) { 39091 firstVisiblePageIndex = 0; 39092 lastVisiblePageIndex = MOBILE_VISIBLE_PAGES - 1; 39093 } else { 39094 // I think this will never happen. 39095 lastVisiblePageIndex = activePageIndex + 1; 39096 firstVisiblePageIndex = lastVisiblePageIndex - MOBILE_VISIBLE_PAGES - 1; 39097 } 39098 return { 39099 firstVisiblePageIndex: firstVisiblePageIndex, 39100 lastVisiblePageIndex: lastVisiblePageIndex 39101 }; 39102} 39103var FADE_TIME = 200; 39104function moveRight($first, $last) { 39105 var $newLast = $last.next(); 39106 if (!$newLast.is(':last-child')) { 39107 $newLast.addClass(EDGE_PAGE_CLASS); 39108 } 39109 $newLast.delay(EDGE_CLASS_ANIMATION_TIME - 1).fadeIn(FADE_TIME); 39110 $first.next().addClass(EDGE_PAGE_CLASS); 39111 39112 $first.delay(EDGE_CLASS_ANIMATION_TIME).fadeOut(FADE_TIME); 39113 $last.removeClass(EDGE_PAGE_CLASS); 39114} 39115 39116function moveLeft($first, $last) { 39117 var $newFirst = $first.prev(); 39118 if (!$newFirst.is(':first-child')) { 39119 $newFirst.addClass(EDGE_PAGE_CLASS); 39120 } 39121 $newFirst.delay(EDGE_CLASS_ANIMATION_TIME - 1).fadeIn(FADE_TIME); 39122 39123 $last.prev().addClass(EDGE_PAGE_CLASS); 39124 39125 $last.delay(EDGE_CLASS_ANIMATION_TIME).fadeOut(FADE_TIME); 39126 $first.removeClass(EDGE_PAGE_CLASS); 39127} 39128 39129// finds first slide that has been marked as initial 39130// function getInitialSlide(thisSlider) { 39131 39132// let initialSlide = 0; 39133 39134// const allSlides = thisSlider.find('.slide'); 39135// const index = _.findIndex(allSlides, game => game.classList.contains('initial-slide')); 39136 39137// if (index > 0) { 39138// initialSlide = index; 39139// } 39140 39141// return initialSlide; 39142// } 39143 39144/* harmony default export */ __webpack_exports__["a"] = (new Carousels()); 39145 39146/***/ }), 39147/* 145 */ 39148/***/ (function(module, __webpack_exports__, __webpack_require__) { 39149 39150"use strict"; 39151/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__EmailAPI__ = __webpack_require__(146); 39152/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__FacebookAPI__ = __webpack_require__(147); 39153/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__PinterestAPI__ = __webpack_require__(148); 39154/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__TwitterAPI__ = __webpack_require__(149); 39155/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash__ = __webpack_require__(1); 39156/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_lodash__); 39157var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 39158 39159function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 39160 39161 39162 39163 39164 39165 39166 39167var SocialMedia = function () { 39168 function SocialMedia() { 39169 _classCallCheck(this, SocialMedia); 39170 } 39171 39172 _createClass(SocialMedia, [{ 39173 key: 'init',
39174 value: function init() { 39175 var _this = this; 39176 39177 Object(__WEBPACK_IMPORTED_MODULE_4_lodash__["forEach"])(document.querySelectorAll('.facebook-share'), function (link) { 39178 return link.addEventListener('click', _this.onFacebookShare); 39179 }); 39180 Object(__WEBPACK_IMPORTED_MODULE_4_lodash__["forEach"])(document.querySelectorAll('.twitter-share'), function (link) { 39181 return link.addEventListener('click', _this.onTwitterShare); 39182 }); 39183 Object(__WEBPACK_IMPORTED_MODULE_4_lodash__["forEach"])(document.querySelectorAll('.pinterest-share'), function (link) { 39184 return link.addEventListener('click', _this.onPinterestShare); 39185 }); 39186 Object(__WEBPACK_IMPORTED_MODULE_4_lodash__["forEach"])(document.querySelectorAll('.email-share'), function (link) { 39187 return link.addEventListener('click', _this.onEmailShare); 39188 }); 39189 } 39190 }, { 39191 key: 'onFacebookShare', 39192 value: function onFacebookShare(event) { 39193 __WEBPACK_IMPORTED_MODULE_1__FacebookAPI__["a" /* default */].share(Object(__WEBPACK_IMPORTED_MODULE_4_lodash__["assign"])({}, event.currentTarget.dataset)); 39194 } 39195 }, { 39196 key: 'onTwitterShare', 39197 value: function onTwitterShare(event) { 39198 __WEBPACK_IMPORTED_MODULE_3__TwitterAPI__["a" /* default */].share(Object(__WEBPACK_IMPORTED_MODULE_4_lodash__["assign"])({}, event.currentTarget.dataset)); 39199 } 39200 }, { 39201 key: 'onPinterestShare', 39202 value: function onPinterestShare(event) { 39203 __WEBPACK_IMPORTED_MODULE_2__PinterestAPI__["a" /* default */].share(Object(__WEBPACK_IMPORTED_MODULE_4_lodash__["assign"])({}, event.currentTarget.dataset)); 39204 } 39205 }, { 39206 key: 'onEmailShare', 39207 value: function onEmailShare(event) { 39208 __WEBPACK_IMPORTED_MODULE_0__EmailAPI__["a" /* default */].share(Object(__WEBPACK_IMPORTED_MODULE_4_lodash__["assign"])({}, event.currentTarget.dataset)); 39209 } 39210 }]); 39211 39212 return SocialMedia; 39213}(); 39214 39215/* harmony default export */ __webpack_exports__["a"] = (new SocialMedia()); 39216 39217/***/ }), 39218/* 146 */ 39219/***/ (function(module, __webpack_exports__, __webpack_require__) { 39220 39221"use strict"; 39222/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(2); 39223/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash__ = __webpack_require__(1); 39224/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash__); 39225var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 39226 39227function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 39228 39229 39230 39231 39232var EmailAPI = function () { 39233 function EmailAPI() { 39234 _classCallCheck(this, EmailAPI); 39235 } 39236 39237 _createClass(EmailAPI, [{ 39238 key: 'share', 39239 39240 39241 /** 39242 * Triggers a link to send an email. 39243 * Expects DOM element to have data-subject and data-body. 39244 * @param {Object} userOptions 39245 */ 39246 value: function share(userOptions) { 39247 var options = Object(__WEBPACK_IMPORTED_MODULE_1_lodash__["assign"])({}, { 39248 subject: '', 39249 body: '' 39250 }, userOptions); 39251 39252 var queryParams = Object(__WEBPACK_IMPORTED_MODULE_0__utils__["b" /* serialize */])(options); 39253 var url = 'mailto:?' + queryParams; 39254 location.replace(url); 39255 } 39256 }]); 39257 39258 return EmailAPI; 39259}(); 39260 39261/* harmony default export */ __webpack_exports__["a"] = (new EmailAPI()); 39262 39263/***/ }), 39264/* 147 */ 39265/***/ (function(module, __webpack_exports__, __webpack_require__) { 39266 39267"use strict"; 39268var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 39269 39270function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 39271 39272var FacebookAPI = function () { 39273 function FacebookAPI() { 39274 _classCallCheck(this, FacebookAPI); 39275 } 39276 39277 _createClass(FacebookAPI, [{ 39278 key: 'share', 39279 39280 39281 /** 39282 * Creates popup to share something on Facebook. 39283 * Expects DOM element to have data-url (required), data-media and data-description. 39284 * @param {Object} userOptions 39285 */ 39286 value: function share(options) { 39287 var url = 'https://www.facebook.com/sharer/sharer.php?u=' + encodeURIComponent(options.url); 39288 var facebookShare = window.open(url, 'FacebookShare', 'height=350,width=558,resizable,scrollbars,status'); 39289 if (window.focus) { 39290 facebookShare.focus(); 39291 } 39292 } 39293 }]); 39294 39295 return FacebookAPI; 39296}(); 39297 39298/* harmony default export */ __webpack_exports__["a"] = (new FacebookAPI()); 39299 39300/***/ }), 39301/* 148 */ 39302/***/ (function(module, __webpack_exports__, __webpack_require__) { 39303 39304"use strict"; 39305/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(2); 39306/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash__ = __webpack_require__(1); 39307/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash__); 39308var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 39309 39310function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 39311 39312 39313 39314 39315var PinterestAPI = function () { 39316 function PinterestAPI() { 39317 _classCallCheck(this, PinterestAPI); 39318 } 39319 39320 _createClass(PinterestAPI, [{ 39321 key: 'share', 39322 39323 39324 /** 39325 * Creates popup to share something on Pinterest. 39326 * Expects DOM element to have data-url (required), data-media and data-description. 39327 * @param {Object} userOptions 39328 */ 39329 value: function share(userOptions) { 39330 var options = Object(__WEBPACK_IMPORTED_MODULE_1_lodash__["assign"])({}, { 39331 url: '', 39332 description: '', 39333 media: '' 39334 }, userOptions); 39335 39336 var queryParams = Object(__WEBPACK_IMPORTED_MODULE_0__utils__["b" /* serialize */])(options); 39337 var url = 'https://pinterest.com/pin/create/button/?' + queryParams; 39338 var pinterestShare = window.open(url, 'PinterestShare', 'height=783,width=6
3933850,resizable,scrollbars,status'); 39339 if (window.focus) { 39340 pinterestShare.focus(); 39341 } 39342 } 39343 }]); 39344 39345 return PinterestAPI; 39346}(); 39347 39348/* harmony default export */ __webpack_exports__["a"] = (new PinterestAPI()); 39349 39350/***/ }), 39351/* 149 */ 39352/***/ (function(module, __webpack_exports__, __webpack_require__) { 39353 39354"use strict"; 39355/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__(2); 39356/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash__ = __webpack_require__(1); 39357/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash__); 39358var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 39359 39360function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 39361 39362 39363 39364 39365var TwitterAPI = function () { 39366 function TwitterAPI() { 39367 _classCallCheck(this, TwitterAPI); 39368 } 39369 39370 _createClass(TwitterAPI, [{ 39371 key: 'share', 39372 39373 39374 /** 39375 * Creates popup to share something on Twitter. 39376 * Expects DOM element to have data-via, data-related, data-hasthags and data-text. 39377 * @param {Object} userOptions 39378 */ 39379 value: function share(userOptions) { 39380 var options = Object(__WEBPACK_IMPORTED_MODULE_1_lodash__["assign"])({}, { 39381 // via: 'allblacks', 39382 // related: 'twitterapi,twitter', 39383 // hashtags: 'example,demo', 39384 // text: 'Custom Text', 39385 }, userOptions); 39386 39387 var queryParams = Object(__WEBPACK_IMPORTED_MODULE_0__utils__["b" /* serialize */])(options); 39388 var url = 'https://twitter.com/share?' + queryParams; 39389 var twitterShare = window.open(url, 'TwitterShare', 'height=445,width=680,resizable,scrollbars,status'); 39390 if (window.focus) { 39391 twitterShare.focus(); 39392 } 39393 } 39394 }]); 39395 39396 return TwitterAPI; 39397}(); 39398 39399/* harmony default export */ __webpack_exports__["a"] = (new TwitterAPI()); 39400 39401/***/ }), 39402/* 150 */ 39403/***/ (function(module, __webpack_exports__, __webpack_require__) { 39404 39405"use strict"; 39406/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_moment_timezone__ = __webpack_require__(151); 39407/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_moment_timezone___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_moment_timezone__); 39408/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash__ = __webpack_require__(1); 39409/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash__); 39410var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 39411 39412function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 39413 39414 39415 39416 39417var MomentResolver = function () { 39418 function MomentResolver() { 39419 _classCallCheck(this, MomentResolver); 39420 } 39421 39422 _createClass(MomentResolver, [{ 39423 key: 'init',
39424 value: function init() { 39425 39426 __WEBPACK_IMPORTED_MODULE_0_moment_timezone___default.a.tz.add('Pacific/Auckland|NZMT NZST NZST NZDT|-bu -cu -c0 -d0|01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1GCVu Lz0 1tB0 11zu 1o0u 11zu 1o0u 11zu 1o0u 14nu 1lcu 14nu 1lcu 1lbu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1qLu WMu 1qLu 11Au 1n1bu IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|14e5'); 39427 __WEBPACK_IMPORTED_MODULE_0_moment_timezone___default.a.tz.setDefault('Pacific/Auckland'); 39428 39429 __WEBPACK_IMPORTED_MODULE_0_moment_timezone___default.a.updateLocale('ja', { 39430 longDateFormat: { 39431 LLL: 'MæDæ¥ (ddd)', 39432 LL: 'YYYYå¹´MæDæ¥', 39433 L: 'MæDæ¥' 39434 } 39435 }); 39436 39437 __WEBPACK_IMPORTED_MODULE_0_moment_timezone___default.a.updateLocale('en', { 39438 longDateFormat: { 39439 LLL: 'ddd DD MMM', 39440 LL: 'D MMMM YYYY', 39441 L: 'D MMM' 39442 } 39443 }); 39444 39445 // set locale 39446 var language = document.documentElement.lang.slice(0, document.documentElement.lang.indexOf('-')); 39447 __WEBPACK_IMPORTED_MODULE_0_moment_timezone___default.a.locale(language); 39448 39449 // time ago 39450 Object(__WEBPACK_IMPORTED_MODULE_1_lodash__["forEach"])(document.querySelectorAll('.time-ago time[moment]'), function (momentTimeAgo) { 39451 return momentTimeAgo.textContent = __WEBPACK_IMPORTED_MODULE_0_moment_timezone___default.a.tz(momentTimeAgo.getAttribute('datetime'), 'Pacific/Auckland').fromNow(); 39452 }); 39453 39454 // month 39455 Object(__WEBPACK_IMPORTED_MODULE_1_lodash__["forEach"])(document.querySelectorAll('.time-month time[moment]'), function (momentMonth) { 39456 return momentMonth.textContent = __WEBPACK_IMPORTED_MODULE_0_moment_timezone___default()(momentMonth.getAttribute('datetime')).format('MMM'); 39457 }); 39458 39459 // day 39460 Object(__WEBPACK_IMPORTED_MODULE_1_lodash__["forEach"])(document.querySelectorAll('.time-day time[moment]'), function (momentDay) { 39461 return momentDay.textContent = __WEBPACK_IMPORTED_MODULE_0_moment_timezone___default()(momentDay.getAttribute('datetime')).format('Do'); 39462 }); 39463 39464 // date 39465 Object(__WEBPACK_IMPORTED_MODULE_1_lodash__["forEach"])(document.querySelectorAll('.time-date time[moment]'), function (momentDate) { 39466 return momentDate.textContent = __WEBPACK_IMPORTED_MODULE_0_moment_timezone___default()(momentDate.getAttribute('datetime')).format('LL'); 39467 }); 39468 39469 // updated 39470 Object(__WEBPACK_IMPORTED_MODULE_1_lodash__["forEach"])(document.querySelectorAll('.time-updated time[moment]'), function (momentDate) { 39471 return momentDate.textContent = __WEBPACK_IMPORTED_MODULE_0_moment_timezone___default()(momentDate.getAttribute('datetime')).format('L'); 39472 }); 39473 39474 // time 39475 Object(__WEBPACK_IMPORTED_MODULE_1_lodash__["forEach"])(document.querySelectorAll('.time-time time[moment]'), function (momentDate) { 39476 return momentDate.textContent = __WEBPACK_IMPORTED_MODULE_0_moment_timezone___default()(momentDate.getAttribute('datetime')).format('D MMM h:mmA'); 39477 }); 39478 39479 // 3:15PM 39480 Object(__WEBPACK_IMPORTED_MODULE_1_lodash__["forEach"])(document.querySelectorAll('.only-time time[moment]'), function (momentDate) { 39481 return momentDate.textContent = __WEBPACK_IMPORTED_MODULE_0_moment_timezone___default()(momentDate.getAttribute('datetime')).locale('en').format('h:mmA'); 39482 }); 39483 39484 // Thu 18 Oct 39485 Object(__WEBPACK_IMPORTED_MODULE_1_lodash__["forEach"])(document.querySelectorAll('.ddd-DD-MMM time[moment]'), function (momentDate) { 39486 return momentDate.textContent = __WEBPACK_IMPORTED_MODULE_0_moment_timezone___default()(momentDate.getAttribute('datetime')).format('LLL'); 39487 }); 39488 } 39489 }]); 39490 39491 return MomentResolver; 39492}(); 39493 39494/* harmony default export */ __webpack_exports__["a"] = (new MomentResolver()); 39495 39496/***/ }), 39497/* 151 */ 39498/***/ (function(module, exports, __webpack_require__) { 39499 39500var moment = module.exports = __webpack_require__(152); 39501moment.tz.load(__webpack_require__(154)); 39502 39503 39504/***/ }), 39505/* 152 */ 39506/***/ (function(module, exports, __webpack_require__) { 39507 39508var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;//! moment-timezone.js 39509//! version : 0.5.33 39510//! Copyright (c) JS Foundation and other contributors 39511//! license : MIT 39512//! github.com/moment/moment-timezone 39513 39514(function (root, factory) { 39515 "use strict"; 39516 39517 /*global define*/ 39518 if (typeof module === 'object' && module.exports) { 39519 module.exports = factory(__webpack_require__(0)); // Node 39520 } else if (true) { 39521 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(0)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 39522 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 39523 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
39524 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); // AMD 39525 } else { 39526 factory(root.moment); // Browser 39527 } 39528}(this, function (moment) { 39529 "use strict"; 39530 39531 // Resolves es6 module loading issue 39532 if (moment.version === undefined && moment.default) { 39533 moment = moment.default; 39534 } 39535 39536 // Do not load moment-timezone a second time. 39537 // if (moment.tz !== undefined) { 39538 // logError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion); 39539 // return moment; 39540 // } 39541 39542 var VERSION = "0.5.3
vendor: 15,324 bytes, lines 39542-40203
395423", 39543 zones = {}, 39544 links = {}, 39545 countries = {}, 39546 names = {}, 39547 guesses = {}, 39548 cachedGuess; 39549 39550 if (!moment || typeof moment.version !== 'string') { 39551 logError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/'); 39552 } 39553 39554 var momentVersion = moment.version.split('.'), 39555 major = +momentVersion[0], 39556 minor = +momentVersion[1]; 39557 39558 // Moment.js version check 39559 if (major < 2 || (major === 2 && minor < 6)) { 39560 logError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com'); 39561 } 39562 39563 /************************************ 39564 Unpacking 39565 ************************************/ 39566 39567 function charCodeToInt(charCode) { 39568 if (charCode > 96) { 39569 return charCode - 87; 39570 } else if (charCode > 64) { 39571 return charCode - 29; 39572 } 39573 return charCode - 48; 39574 } 39575 39576 function unpackBase60(string) { 39577 var i = 0, 39578 parts = string.split('.'), 39579 whole = parts[0], 39580 fractional = parts[1] || '', 39581 multiplier = 1, 39582 num, 39583 out = 0, 39584 sign = 1; 39585 39586 // handle negative numbers 39587 if (string.charCodeAt(0) === 45) { 39588 i = 1; 39589 sign = -1; 39590 } 39591 39592 // handle digits before the decimal 39593 for (i; i < whole.length; i++) { 39594 num = charCodeToInt(whole.charCodeAt(i)); 39595 out = 60 * out + num; 39596 } 39597 39598 // handle digits after the decimal 39599 for (i = 0; i < fractional.length; i++) { 39600 multiplier = multiplier / 60; 39601 num = charCodeToInt(fractional.charCodeAt(i)); 39602 out += num * multiplier; 39603 } 39604 39605 return out * sign; 39606 } 39607 39608 function arrayToInt (array) { 39609 for (var i = 0; i < array.length; i++) { 39610 array[i] = unpackBase60(array[i]); 39611 } 39612 } 39613 39614 function intToUntil (array, length) { 39615 for (var i = 0; i < length; i++) { 39616 array[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds 39617 } 39618 39619 array[length - 1] = Infinity; 39620 } 39621 39622 function mapIndices (source, indices) { 39623 var out = [], i; 39624 39625 for (i = 0; i < indices.length; i++) { 39626 out[i] = source[indices[i]]; 39627 } 39628 39629 return out; 39630 } 39631 39632 function unpack (string) { 39633 var data = string.split('|'), 39634 offsets = data[2].split(' '), 39635 indices = data[3].split(''), 39636 untils = data[4].split(' '); 39637 39638 arrayToInt(offsets); 39639 arrayToInt(indices); 39640 arrayToInt(untils); 39641 39642 intToUntil(untils, indices.length); 39643 39644 return { 39645 name : data[0], 39646 abbrs : mapIndices(data[1].split(' '), indices), 39647 offsets : mapIndices(offsets, indices), 39648 untils : untils, 39649 population : data[5] | 0 39650 }; 39651 } 39652 39653 /************************************ 39654 Zone object 39655 ************************************/ 39656 39657 function Zone (packedString) { 39658 if (packedString) { 39659 this._set(unpack(packedString)); 39660 } 39661 } 39662 39663 Zone.prototype = { 39664 _set : function (unpacked) { 39665 this.name = unpacked.name; 39666 this.abbrs = unpacked.abbrs; 39667 this.untils = unpacked.untils; 39668 this.offsets = unpacked.offsets; 39669 this.population = unpacked.population; 39670 }, 39671 39672 _index : function (timestamp) { 39673 var target = +timestamp, 39674 untils = this.untils, 39675 i; 39676 39677 for (i = 0; i < untils.length; i++) { 39678 if (target < untils[i]) { 39679 return i; 39680 } 39681 } 39682 }, 39683 39684 countries : function () { 39685 var zone_name = this.name; 39686 return Object.keys(countries).filter(function (country_code) { 39687 return countries[country_code].zones.indexOf(zone_name) !== -1; 39688 }); 39689 }, 39690 39691 parse : function (timestamp) { 39692 var target = +timestamp, 39693 offsets = this.offsets, 39694 untils = this.untils, 39695 max = untils.length - 1, 39696 offset, offsetNext, offsetPrev, i; 39697 39698 for (i = 0; i < max; i++) { 39699 offset = offsets[i]; 39700 offsetNext = offsets[i + 1]; 39701 offsetPrev = offsets[i ? i - 1 : i]; 39702 39703 if (offset < offsetNext && tz.moveAmbiguousForward) { 39704 offset = offsetNext; 39705 } else if (offset > offsetPrev && tz.moveInvalidForward) { 39706 offset = offsetPrev; 39707 } 39708 39709 if (target < untils[i] - (offset * 60000)) { 39710 return offsets[i]; 39711 } 39712 } 39713 39714 return offsets[max]; 39715 }, 39716 39717 abbr : function (mom) { 39718 return this.abbrs[this._index(mom)]; 39719 }, 39720 39721 offset : function (mom) { 39722 logError("zone.offset has been deprecated in favor of zone.utcOffset"); 39723 return this.offsets[this._index(mom)]; 39724 }, 39725 39726 utcOffset : function (mom) { 39727 return this.offsets[this._index(mom)]; 39728 } 39729 }; 39730 39731 /************************************ 39732 Country object 39733 ************************************/ 39734 39735 function Country (country_name, zone_names) { 39736 this.name = country_name; 39737 this.zones = zone_names; 39738 } 39739 39740 /************************************ 39741 Current Timezone 39742 ************************************/ 39743 39744 function OffsetAt(at) { 39745 var timeString = at.toTimeString(); 39746 var abbr = timeString.match(/\([a-z ]+\)/i); 39747 if (abbr && abbr[0]) { 39748 // 17:56:31 GMT-0600 (CST) 39749 // 17:56:31 GMT-0600 (Central Standard Time) 39750 abbr = abbr[0].match(/[A-Z]/g); 39751 abbr = abbr ? abbr.join('') : undefined; 39752 } else { 39753 // 17:56:31 CST 39754 // 17:56:31 GMT+0800 (å°åæ¨æºæé) 39755 abbr = timeString.match(/[A-Z]{3,5}/g); 39756 abbr = abbr ? abbr[0] : undefined; 39757 } 39758 39759 if (abbr === 'GMT') { 39760 abbr = undefined; 39761 } 39762 39763 this.at = +at; 39764 this.abbr = abbr; 39765 this.offset = at.getTimezoneOffset(); 39766 } 39767 39768 function ZoneScore(zone) { 39769 this.zone = zone; 39770 this.offsetScore = 0; 39771 this.abbrScore = 0; 39772 } 39773 39774 ZoneScore.prototype.scoreOffsetAt = function (offsetAt) { 39775 this.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset); 39776 if (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) { 39777 this.abbrScore++; 39778 } 39779 }; 39780 39781 function findChange(low, high) { 39782 var mid, diff; 39783 39784 while ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) { 39785 mid = new OffsetAt(new Date(low.at + diff)); 39786 if (mid.offset === low.offset) { 39787 low = mid; 39788 } else { 39789 high = mid; 39790 } 39791 } 39792 39793 return low; 39794 } 39795 39796 function userOffsets() { 39797 var startYear = new Date().getFullYear() - 2, 39798 last = new OffsetAt(new Date(startYear, 0, 1)), 39799 offsets = [last], 39800 change, next, i; 39801 39802 for (i = 1; i < 48; i++) { 39803 next = new OffsetAt(new Date(startYear, i, 1)); 39804 if (next.offset !== last.offset) { 39805 change = findChange(last, next); 39806 offsets.push(change); 39807 offsets.push(new OffsetAt(new Date(change.at + 6e4))); 39808 } 39809 last = next; 39810 } 39811 39812 for (i = 0; i < 4; i++) { 39813 offsets.push(new OffsetAt(new Date(startYear + i, 0, 1))); 39814 offsets.push(new OffsetAt(new Date(startYear + i, 6, 1))); 39815 } 39816 39817 return offsets; 39818 } 39819 39820 function sortZoneScores (a, b) { 39821 if (a.offsetScore !== b.offsetScore) { 39822 return a.offsetScore - b.offsetScore; 39823 } 39824 if (a.abbrScore !== b.abbrScore) { 39825 return a.abbrScore - b.abbrScore; 39826 } 39827 if (a.zone.population !== b.zone.population) { 39828 return b.zone.population - a.zone.population; 39829 } 39830 return b.zone.name.localeCompare(a.zone.name); 39831 } 39832 39833 function addToGuesses (name, offsets) { 39834 var i, offset; 39835 arrayToInt(offsets); 39836 for (i = 0; i < offsets.length; i++) { 39837 offset = offsets[i]; 39838 guesses[offset] = guesses[offset] || {}; 39839 guesses[offset][name] = true; 39840 } 39841 } 39842 39843 function guessesForUserOffsets (offsets) { 39844 var offsetsLength = offsets.length, 39845 filteredGuesses = {}, 39846 out = [], 39847 i, j, guessesOffset; 39848 39849 for (i = 0; i < offsetsLength; i++) { 39850 guessesOffset = guesses[offsets[i].offset] || {}; 39851 for (j in guessesOffset) { 39852 if (guessesOffset.hasOwnProperty(j)) { 39853 filteredGuesses[j] = true; 39854 } 39855 } 39856 } 39857 39858 for (i in filteredGuesses) { 39859 if (filteredGuesses.hasOwnProperty(i)) { 39860 out.push(names[i]); 39861 } 39862 } 39863 39864 return out; 39865 } 39866 39867 function rebuildGuess () { 39868 39869 // use Intl API when available and returning valid time zone 39870 try { 39871 var intlName = Intl.DateTimeFormat().resolvedOptions().timeZone; 39872 if (intlName && intlName.length > 3) { 39873 var name = names[normalizeName(intlName)]; 39874 if (name) { 39875 return name; 39876 } 39877 logError("Moment Timezone found " + intlName + " from the Intl api, but did not have that data loaded."); 39878 } 39879 } catch (e) { 39880 // Intl unavailable, fall back to manual guessing. 39881 } 39882 39883 var offsets = userOffsets(), 39884 offsetsLength = offsets.length, 39885 guesses = guessesForUserOffsets(offsets), 39886 zoneScores = [], 39887 zoneScore, i, j; 39888 39889 for (i = 0; i < guesses.length; i++) { 39890 zoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength); 39891 for (j = 0; j < offsetsLength; j++) { 39892 zoneScore.scoreOffsetAt(offsets[j]); 39893 } 39894 zoneScores.push(zoneScore); 39895 } 39896 39897 zoneScores.sort(sortZoneScores); 39898 39899 return zoneScores.length > 0 ? zoneScores[0].zone.name : undefined; 39900 } 39901 39902 function guess (ignoreCache) { 39903 if (!cachedGuess || ignoreCache) { 39904 cachedGuess = rebuildGuess(); 39905 } 39906 return cachedGuess; 39907 } 39908 39909 /************************************ 39910 Global Methods 39911 ************************************/ 39912 39913 function normalizeName (name) { 39914 return (name || '').toLowerCase().replace(/\//g, '_'); 39915 } 39916 39917 function addZone (packed) { 39918 var i, name, split, normalized; 39919 39920 if (typeof packed === "string") { 39921 packed = [packed]; 39922 } 39923 39924 for (i = 0; i < packed.length; i++) { 39925 split = packed[i].split('|'); 39926 name = split[0]; 39927 normalized = normalizeName(name); 39928 zones[normalized] = packed[i]; 39929 names[normalized] = name; 39930 addToGuesses(normalized, split[2].split(' ')); 39931 } 39932 } 39933 39934 function getZone (name, caller) { 39935 39936 name = normalizeName(name); 39937 39938 var zone = zones[name]; 39939 var link; 39940 39941 if (zone instanceof Zone) { 39942 return zone; 39943 } 39944 39945 if (typeof zone === 'string') { 39946 zone = new Zone(zone); 39947 zones[name] = zone; 39948 return zone; 39949 } 39950 39951 // Pass getZone to prevent recursion more than 1 level deep 39952 if (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) { 39953 zone = zones[name] = new Zone(); 39954 zone._set(link); 39955 zone.name = names[name]; 39956 return zone; 39957 } 39958 39959 return null; 39960 } 39961 39962 function getNames () { 39963 var i, out = []; 39964 39965 for (i in names) { 39966 if (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) { 39967 out.push(names[i]); 39968 } 39969 } 39970 39971 return out.sort(); 39972 } 39973 39974 function getCountryNames () { 39975 return Object.keys(countries); 39976 } 39977 39978 function addLink (aliases) { 39979 var i, alias, normal0, normal1; 39980 39981 if (typeof aliases === "string") { 39982 aliases = [aliases]; 39983 } 39984 39985 for (i = 0; i < aliases.length; i++) { 39986 alias = aliases[i].split('|'); 39987 39988 normal0 = normalizeName(alias[0]); 39989 normal1 = normalizeName(alias[1]); 39990 39991 links[normal0] = normal1; 39992 names[normal0] = alias[0]; 39993 39994 links[normal1] = normal0; 39995 names[normal1] = alias[1]; 39996 } 39997 } 39998 39999 function addCountries (data) { 40000 var i, country_code, country_zones, split; 40001 if (!data || !data.length) return; 40002 for (i = 0; i < data.length; i++) { 40003 split = data[i].split('|'); 40004 country_code = split[0].toUpperCase(); 40005 country_zones = split[1].split(' '); 40006 countries[country_code] = new Country( 40007 country_code, 40008 country_zones 40009 ); 40010 } 40011 } 40012 40013 function getCountry (name) { 40014 name = name.toUpperCase(); 40015 return countries[name] || null; 40016 } 40017 40018 function zonesForCountry(country, with_offset) { 40019 country = getCountry(country); 40020 40021 if (!country) return null; 40022 40023 var zones = country.zones.sort(); 40024 40025 if (with_offset) { 40026 return zones.map(function (zone_name) { 40027 var zone = getZone(zone_name); 40028 return { 40029 name: zone_name, 40030 offset: zone.utcOffset(new Date()) 40031 }; 40032 }); 40033 } 40034 40035 return zones; 40036 } 40037 40038 function loadData (data) { 40039 addZone(data.zones); 40040 addLink(data.links); 40041 addCountries(data.countries); 40042 tz.dataVersion = data.version; 40043 } 40044 40045 function zoneExists (name) { 40046 if (!zoneExists.didShowError) { 40047 zoneExists.didShowError = true; 40048 logError("moment.tz.zoneExists('" + name + "') has been deprecated in favor of !moment.tz.zone('" + name + "')"); 40049 } 40050 return !!getZone(name); 40051 } 40052 40053 function needsOffset (m) { 40054 var isUnixTimestamp = (m._f === 'X' || m._f === 'x'); 40055 return !!(m._a && (m._tzm === undefined) && !isUnixTimestamp); 40056 } 40057 40058 function logError (message) { 40059 if (typeof console !== 'undefined' && typeof console.error === 'function') { 40060 console.error(message); 40061 } 40062 } 40063 40064 /************************************ 40065 moment.tz namespace 40066 ************************************/ 40067 40068 function tz (input) { 40069 var args = Array.prototype.slice.call(arguments, 0, -1), 40070 name = arguments[arguments.length - 1], 40071 zone = getZone(name), 40072 out = moment.utc.apply(null, args); 40073 40074 if (zone && !moment.isMoment(input) && needsOffset(out)) { 40075 out.add(zone.parse(out), 'minutes'); 40076 } 40077 40078 out.tz(name); 40079 40080 return out; 40081 } 40082 40083 tz.version = VERSION; 40084 tz.dataVersion = ''; 40085 tz._zones = zones; 40086 tz._links = links; 40087 tz._names = names; 40088 tz._countries = countries; 40089 tz.add = addZone; 40090 tz.link = addLink; 40091 tz.load = loadData; 40092 tz.zone = getZone; 40093 tz.zoneExists = zoneExists; // deprecated in 0.1.0 40094 tz.guess = guess; 40095 tz.names = getNames; 40096 tz.Zone = Zone; 40097 tz.unpack = unpack; 40098 tz.unpackBase60 = unpackBase60; 40099 tz.needsOffset = needsOffset; 40100 tz.moveInvalidForward = true; 40101 tz.moveAmbiguousForward = false; 40102 tz.countries = getCountryNames; 40103 tz.zonesForCountry = zonesForCountry; 40104 40105 /************************************ 40106 Interface with Moment.js 40107 ************************************/ 40108 40109 var fn = moment.fn; 40110 40111 moment.tz = tz; 40112 40113 moment.defaultZone = null; 40114 40115 moment.updateOffset = function (mom, keepTime) { 40116 var zone = moment.defaultZone, 40117 offset; 40118 40119 if (mom._z === undefined) { 40120 if (zone && needsOffset(mom) && !mom._isUTC) { 40121 mom._d = moment.utc(mom._a)._d; 40122 mom.utc().add(zone.parse(mom), 'minutes'); 40123 } 40124 mom._z = zone; 40125 } 40126 if (mom._z) { 40127 offset = mom._z.utcOffset(mom); 40128 if (Math.abs(offset) < 16) { 40129 offset = offset / 60; 40130 } 40131 if (mom.utcOffset !== undefined) { 40132 var z = mom._z; 40133 mom.utcOffset(-offset, keepTime); 40134 mom._z = z; 40135 } else { 40136 mom.zone(offset, keepTime); 40137 } 40138 } 40139 }; 40140 40141 fn.tz = function (name, keepTime) { 40142 if (name) { 40143 if (typeof name !== 'string') { 40144 throw new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']'); 40145 } 40146 this._z = getZone(name); 40147 if (this._z) { 40148 moment.updateOffset(this, keepTime); 40149 } else { 40150 logError("Moment Timezone has no data for " + name + ". See http://momentjs.com/timezone/docs/#/data-loading/."); 40151 } 40152 return this; 40153 } 40154 if (this._z) { return this._z.name; } 40155 }; 40156 40157 function abbrWrap (old) { 40158 return function () { 40159 if (this._z) { return this._z.abbr(this); } 40160 return old.call(this); 40161 }; 40162 } 40163 40164 function resetZoneWrap (old) { 40165 return function () { 40166 this._z = null; 40167 return old.apply(this, arguments); 40168 }; 40169 } 40170 40171 function resetZoneWrap2 (old) { 40172 return function () { 40173 if (arguments.length > 0) this._z = null; 40174 return old.apply(this, arguments); 40175 }; 40176 } 40177 40178 fn.zoneName = abbrWrap(fn.zoneName); 40179 fn.zoneAbbr = abbrWrap(fn.zoneAbbr); 40180 fn.utc = resetZoneWrap(fn.utc); 40181 fn.local = resetZoneWrap(fn.local); 40182 fn.utcOffset = resetZoneWrap2(fn.utcOffset); 40183 40184 moment.tz.setDefault = function(name) { 40185 if (major < 2 || (major === 2 && minor < 9)) { 40186 logError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.'); 40187 } 40188 moment.defaultZone = name ? getZone(name) : null; 40189 return moment; 40190 }; 40191 40192 // Cloning a moment should include the _z property. 40193 var momentProperties = moment.momentProperties; 40194 if (Object.prototype.toString.call(momentProperties) === '[object Array]') { 40195 // moment 2.8.1+ 40196 momentProperties.push('_z'); 40197 momentProperties.push('_a'); 40198 } else if (momentProperties) { 40199 // moment 2.7.0 40200 momentProperties._z = null; 40201 } 40202 40203
40203// INJECT DATA 40204 40205 return moment; 40206})); 40207 40208 40209/***/ }), 40210/* 153 */ 40211/***/ (function(module, exports, __webpack_require__) { 40212 40213var map = { 40214 "./af": 4, 40215 "./af.js": 4, 40216 "./ar": 5, 40217 "./ar-dz": 6, 40218 "./ar-dz.js": 6, 40219 "./ar-kw": 7, 40220 "./ar-kw.js": 7, 40221 "./ar-ly": 8, 40222 "./ar-ly.js": 8, 40223 "./ar-ma": 9, 40224 "./ar-ma.js": 9, 40225 "./ar-sa": 10, 40226 "./ar-sa.js": 10, 40227 "./ar-tn": 11, 40228 "./ar-tn.js": 11, 40229 "./ar.js": 5, 40230 "./az": 12, 40231 "./az.js": 12, 40232 "./be": 13, 40233 "./be.js": 13, 40234 "./bg": 14, 40235 "./bg.js": 14, 40236 "./bm": 15, 40237 "./bm.js": 15, 40238 "./bn": 16, 40239 "./bn-bd": 17, 40240 "./bn-bd.js": 17, 40241 "./bn.js": 16, 40242 "./bo": 18, 40243 "./bo.js": 18, 40244 "./br": 19, 40245 "./br.js": 19, 40246 "./bs": 20, 40247 "./bs.js": 20, 40248 "./ca": 21, 40249 "./ca.js": 21, 40250 "./cs": 22, 40251 "./cs.js": 22, 40252 "./cv": 23, 40253 "./cv.js": 23, 40254 "./cy": 24, 40255 "./cy.js": 24, 40256 "./da": 25, 40257 "./da.js": 25, 40258 "./de": 26, 40259 "./de-at": 27, 40260 "./de-at.js": 27, 40261 "./de-ch": 28, 40262 "./de-ch.js": 28, 40263 "./de.js": 26, 40264 "./dv": 29, 40265 "./dv.js": 29, 40266 "./el": 30, 40267 "./el.js": 30, 40268 "./en-au": 31, 40269 "./en-au.js": 31, 40270 "./en-ca": 32, 40271 "./en-ca.js": 32, 40272 "./en-gb": 33, 40273 "./en-gb.js": 33, 40274 "./en-ie": 34, 40275 "./en-ie.js": 34, 40276 "./en-il": 35, 40277 "./en-il.js": 35, 40278 "./en-in": 36, 40279 "./en-in.js": 36, 40280 "./en-nz": 37, 40281 "./en-nz.js": 37, 40282 "./en-sg": 38, 40283 "./en-sg.js": 38, 40284 "./eo": 39, 40285 "./eo.js": 39, 40286 "./es": 40, 40287 "./es-do": 41, 40288 "./es-do.js": 41, 40289 "./es-mx": 42, 40290 "./es-mx.js": 42, 40291 "./es-us": 43, 40292 "./es-us.js": 43, 40293 "./es.js": 40, 40294 "./et": 44, 40295 "./et.js": 44, 40296 "./eu": 45, 40297 "./eu.js": 45, 40298 "./fa": 46, 40299 "./fa.js": 46, 40300 "./fi": 47, 40301 "./fi.js": 47, 40302 "./fil": 48, 40303 "./fil.js": 48, 40304 "./fo": 49, 40305 "./fo.js": 49, 40306 "./fr": 50, 40307 "./fr-ca": 51, 40308 "./fr-ca.js": 51, 40309 "./fr-ch": 52, 40310 "./fr-ch.js": 52, 40311 "./fr.js": 50, 40312 "./fy": 53, 40313 "./fy.js": 53, 40314 "./ga": 54, 40315 "./ga.js": 54, 40316 "./gd": 55, 40317 "./gd.js": 55, 40318 "./gl": 56, 40319 "./gl.js": 56, 40320 "./gom-deva": 57, 40321 "./gom-deva.js": 57, 40322 "./gom-latn": 58, 40323 "./gom-latn.js": 58, 40324 "./gu": 59, 40325 "./gu.js": 59, 40326 "./he": 60, 40327 "./he.js": 60, 40328 "./hi": 61, 40329 "./hi.js": 61, 40330 "./hr": 62, 40331 "./hr.js": 62, 40332 "./hu": 63, 40333 "./hu.js": 63, 40334 "./hy-am": 64, 40335 "./hy-am.js": 64, 40336 "./id": 65, 40337 "./id.js": 65, 40338 "./is": 66, 40339 "./is.js": 66, 40340 "./it": 67, 40341 "./it-ch": 68, 40342 "./it-ch.js": 68, 40343 "./it.js": 67, 40344 "./ja": 69, 40345 "./ja.js": 69, 40346 "./jv": 70, 40347 "./jv.js": 70, 40348 "./ka": 71, 40349 "./ka.js": 71, 40350 "./kk": 72, 40351 "./kk.js": 72, 40352 "./km": 73, 40353 "./km.js": 73, 40354 "./kn": 74, 40355 "./kn.js": 74, 40356 "./ko": 75, 40357 "./ko.js": 75, 40358 "./ku": 76, 40359 "./ku.js": 76, 40360 "./ky": 77, 40361 "./ky.js": 77, 40362 "./lb": 78, 40363 "./lb.js": 78, 40364 "./lo": 79, 40365 "./lo.js": 79, 40366 "./lt": 80, 40367 "./lt.js": 80, 40368 "./lv": 81, 40369 "./lv.js": 81, 40370 "./me": 82, 40371 "./me.js": 82, 40372 "./mi": 83, 40373 "./mi.js": 83, 40374 "./mk": 84, 40375 "./mk.js": 84, 40376 "./ml": 85, 40377 "./ml.js": 85, 40378 "./mn": 86, 40379 "./mn.js": 86, 40380 "./mr": 87, 40381 "./mr.js": 87, 40382 "./ms": 88, 40383 "./ms-my": 89, 40384 "./ms-my.js": 89, 40385 "./ms.js": 88, 40386 "./mt": 90, 40387 "./mt.js": 90, 40388 "./my": 91, 40389 "./my.js": 91, 40390 "./nb": 92, 40391 "./nb.js": 92, 40392 "./ne": 93, 40393 "./ne.js": 93, 40394 "./nl": 94, 40395 "./nl-be": 95, 40396 "./nl-be.js": 95, 40397 "./nl.js": 94, 40398 "./nn": 96, 40399 "./nn.js": 96, 40400 "./oc-lnc": 97, 40401 "./oc-lnc.js": 97, 40402 "./pa-in": 98, 40403 "./pa-in.js": 98, 40404 "./pl": 99, 40405 "./pl.js": 99, 40406 "./pt": 100, 40407 "./pt-br": 101, 40408 "./pt-br.js": 101, 40409 "./pt.js": 100, 40410 "./ro": 102, 40411 "./ro.js": 102, 40412 "./ru": 103, 40413 "./ru.js": 103, 40414 "./sd": 104, 40415 "./sd.js": 104, 40416 "./se": 105, 40417 "./se.js": 105, 40418 "./si": 106, 40419 "./si.js": 106, 40420 "./sk": 107, 40421 "./sk.js": 107, 40422 "./sl": 108, 40423 "./sl.js": 108, 40424 "./sq": 109, 40425 "./sq.js": 109, 40426 "./sr": 110, 40427 "./sr-cyrl": 111, 40428 "./sr-cyrl.js": 111, 40429 "./sr.js": 110, 40430 "./ss": 112, 40431 "./ss.js": 112, 40432 "./sv": 113, 40433 "./sv.js": 113, 40434 "./sw": 114, 40435 "./sw.js": 114, 40436 "./ta": 115, 40437 "./ta.js": 115, 40438 "./te": 116, 40439 "./te.js": 116, 40440 "./tet": 117, 40441 "./tet.js": 117, 40442 "./tg": 118, 40443 "./tg.js": 118, 40444 "./th": 119, 40445 "./th.js": 119, 40446 "./tk": 120, 40447 "./tk.js": 120, 40448 "./tl-ph": 121, 40449 "./tl-ph.js": 121, 40450 "./tlh": 122, 40451 "./tlh.js": 122, 40452 "./tr": 123, 40453 "./tr.js": 123, 40454 "./tzl": 124, 40455 "./tzl.js": 124, 40456 "./tzm": 125, 40457 "./tzm-latn": 126, 40458 "./tzm-latn.js": 126, 40459 "./tzm.js": 125, 40460 "./ug-cn": 127, 40461 "./ug-cn.js": 127, 40462 "./uk": 128, 40463 "./uk.js": 128, 40464 "./ur": 129, 40465 "./ur.js": 129, 40466 "./uz": 130, 40467 "./uz-latn": 131, 40468 "./uz-latn.js": 131, 40469 "./uz.js": 130, 40470 "./vi": 132, 40471 "./vi.js": 132, 40472 "./x-pseudo": 133, 40473 "./x-pseudo.js": 133, 40474 "./yo": 134, 40475 "./yo.js": 134, 40476 "./zh-cn": 135, 40477 "./zh-cn.js": 135, 40478 "./zh-hk": 136, 40479 "./zh-hk.js": 136, 40480 "./zh-mo": 137, 40481 "./zh-mo.js": 137, 40482 "./zh-tw": 138, 40483 "./zh-tw.js": 138 40484}; 40485function webpackContext(req) { 40486 return __webpack_require__(webpackContextResolve(req)); 40487}; 40488function webpackContextResolve(req) { 40489 var id = map[req]; 40490 if(!(id + 1)) // check for number or string 40491 throw new Error("Cannot find module '" + req + "'."); 40492 return id; 40493}; 40494webpackContext.keys = function webpackContextKeys() { 40495 return Object.keys(map); 40496}; 40497webpackContext.resolve = webpackContextResolve; 40498module.exports = webpackContext; 40499webpackContext.id = 153; 40500 40501/***/ }), 40502/* 154 */
40503/***/ (function(module, exports) { 40504 40505module.exports = {"version":"2021a","zones":["Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5","Africa/Accra|LMT GMT +0020 +0030|.Q 0 -k -u|01212121212121212121212121212121212121212121212131313131313131|-2bRzX.8 9RbX.8 fdE 1BAk MLE 1Bck MLE 1Bck MLE 1Bck MLE 1BAk MLE 1Bck MLE 1Bck MLE 1Bck MLE 1BAk MLE 1Bck MLE 1Bck MLE 1Bck MLE 1BAk MLE 1Bck MLE 1Bck MLE 1Bck MLE 1BAk MLE 1Bck MLE 1Bck MLE 1Bck MLE Mok 1BXE M0k 1BXE fak 9vbu bjCu MLu 1Bcu MLu 1BAu MLu 1Bcu MLu 1Bcu MLu 1Bcu MLu|41e5","Africa/Nairobi|LMT +0230 EAT +0245|-2r.g -2u -30 -2J|012132|-2ua2r.g N6nV.g 3Fbu h1cu dzbJ|47e5","Africa/Algiers|PMT WET WEST CET CEST|-9.l 0 -10 -10 -20|0121212121212121343431312123431213|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 DA0 Imo0 rd0 De0 9Xz0 1fb0 1ap0 16K0 2yo0 mEp0 hwL0 jxA0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0|26e5","Africa/Lagos|LMT GMT +0030 WAT|-d.z 0 -u -10|01023|-2B40d.z 7iod.z dnXK.p dLzH.z|17e6","Africa/Bissau|LMT -01 GMT|12.k 10 0|012|-2ldX0 2xoo0|39e4","Africa/Maputo|LMT CAT|-2a.k -20|01|-2GJea.k|26e5","Africa/Cairo|EET EEST|-20 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1bIO0 vb0 1ip0 11z0 1iN0 1nz0 12p0 1pz0 10N0 1pz0 16p0 1jz0 s3d0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1WL0 rd0 1Rz0 wp0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1qL0 Xd0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1ny0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 WL0 1qN0 Rb0 1wp0 On0 1zd0 Lz0 1EN0 Fb0 c10 8n0 8Nd0 gL0 e10 mn0|15e6","Africa/Casablanca|LMT +00 +01|u.k 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2gMnt.E 130Lt.E rb0 Dd0 dVb0 b6p0 TX0 EoB0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4mn0 SyN0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e
4050500 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|32e5","Africa/Ceuta|WET WEST CET CEST|0 -10 -10 -20|010101010101010101010232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-25KN0 11z0 drd0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1y7o0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4VB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|85e3","Africa/El_Aaiun|LMT -01 +00 +01|Q.M 10 0 -10|012323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1rDz7.c 1GVA7.c 6L0 AL0 1Nd0 XX0 1Cp0 pz0 1cBB0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e
4050500 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|20e4","Africa/Johannesburg|SAST SAST SAST|-1u -20 -30|012121|-2GJdu 1Ajdu 1cL0 1cN0 1cL0|84e5","Africa/Juba|LMT CAT CAST EAT|-26.s -20 -30 -30|012121212121212121212121212121212131|-1yW26.s 1zK06.s 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 PeX0|","Africa/Khartoum|LMT CAT CAST EAT|-2a.8 -20 -30 -30|012121212121212121212121212121212131|-1yW2a.8 1zK0a.8 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 HjL0|51e5","Africa/Monrovia|MMT MMT GMT|H.8 I.u 0|012|-23Lzg.Q 28G01.m|11e5","Africa/Ndjamena|LMT WAT WAST|-10.c -10 -20|0121|-2le10.c 2J3c0.c Wn0|13e5","Africa/Sao_Tome|LMT GMT WAT|A.J 0 -10|0121|-2le00 4i6N0 2q00|","Africa/Tripoli|LMT CET CEST EET|-Q.I -10 -20 -20|012121213121212121212121213123123|-21JcQ.I 1hnBQ.I vx0 4iP0 xx0 4eN0 Bb0 7ip0 U0n0 A10 1db0 1cN0 1db0 1dd0 1db0 1eN0 1bb0 1e10 1cL0 1c10 1db0 1dd0 1db0 1cN0 1db0 1q10 fAn0 1ep0 1db0 AKq0 TA0 1o00|11e5","Africa/Tunis|PMT CET CEST|-9.l -10 -20|0121212121212121212121212121212121|-2nco9.l 18pa9.l 1qM0 DA0 3Tc0 11B0 1ze0 WM0 7z0 3d0 14L0 1cN0 1f90 1ar0 16J0 1gXB0 WM0 1rA0 11c0 nwo0 Ko0 1cM0 1cM0 1rA0 10M0 zuM0 10N0 1aN0 1qM0 WM0 1qM0 11A0 1o00|20e5","Africa/Windhoek|+0130 SAST SAST CAT WAT|-1u -20 -30 -20 -10|01213434343434343434343434343434343434343434343434343|-2GJdu 1Ajdu 1cL0 1SqL0 9Io0 16P0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|32e4","America/Adak|NST NWT NPT BST BDT AHST HST HDT|b0 a0 a0 b0 a0 a0 a0 90|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326","America/Anchorage|AST AWT APT AHST AHDT YST AKST AKDT|a0 90 90 a0 90 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T00 8wX0 iA0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4","America/Port_of_Spain|LMT AST|46.4 40|01|-2kNvR.U|43e3","America/Araguaina|LMT -03 -02|3c.M 30 20|0121212121212121212121212121212121212121212121212121|-2glwL.c HdKL.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 ny10 Lz0|14e4","America/Argentina/Buenos_Aires|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 A4p0 uL0 1qN0 WL0|","America/Argentina/Catamarca|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 7B0 8zb0 uL0|","America/Argentina/Cordoba|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0 1qN0 WL0|","America/Argentina/Jujuy|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1ze0 TX0 1ld0 WK0 1wp0 TX0 A4p0 uL0|","America/Argentina/La_Rioja|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|","America/Argentina/Mendoza|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232312121321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1u20 SL0 1vd0 Tb0 1wp0 TW0 ri10 Op0 7TX0 uL0|","America/Argentina/Rio_Gallegos|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|","America/Argentina/Salta|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0|","America/Argentina/San_Juan|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rld0 m10 8lb0 uL0|","America/Argentina/San_Luis|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121212321212|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 XX0 1q20 SL0 AN0 vDb0 m10 8lb0 8L0 jd0 1qN0 WL0 1qN0|","America/Argentina/Tucuman|CMT -04 -03 -02|4g.M 40 30 20|0121212121212121212121212121212121212121212323232313232123232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 4N0 8BX0 uL0 1qN0 WL0|","America/Argentina/Ushuaia|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rkN0 8p0 8zb0 uL0|","America/Curacao|LMT -0430 AST|4z.L 4u 40|012|-2kV7o.d 28KLS.d|15e4","America/Asuncion|AMT -04 -03|3O.E 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-1x589.k 1DKM9.k 3CL0 3Dd0 10L0 1pB0 10n0 1pB0 10n0 1pB0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1lB0 14n0 1dd0 1cL0 1fd0 WL0 1rd0 1aL0 1dB0 Xz0 1qp0 Xb0 1qN0 10L0 1rB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 WN0 1qL0 11B0 1nX0 1ip0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 TX0 1tB0 19X0 1a10 1fz0 1a10 1fz0 1cN0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0|28e5","America/Atikokan|CST CDT CWT CPT EST|60 50 50 50 50|0101234|-25TQ0 1in0 Rnb0 3je0 8x30 iw0|28e2","America/Bahia_Banderas|LMT MST CST PST MDT CDT|71 70 60 8
405050 60 50|0121212131414141414141414141414141414152525252525252525252525252525252525252525252525252525252|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nW0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|84e3","America/Bahia|LMT -03 -02|2y.4 30 20|01212121212121212121212121212121212121212121212121212121212121|-2glxp.U HdLp.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 l5B0 Rb0|27e5","America/Barbados|LMT BMT AST ADT|3W.t 3W.t 40 30|01232323232|-1Q0I1.v jsM0 1ODC1.v IL0 1ip0 17b0 1ip0 17b0 1ld0 13b0|28e4","America/Belem|LMT -03 -02|3d.U 30 20|012121212121212121212121212121|-2glwK.4 HdKK.4 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|20e5","America/Belize|LMT CST -0530 CWT CPT CDT|5Q.M 60 5u 50 50 50|012121212121212121212121212121212121212121212121213412121212121212121212121212121212121212121215151|-2kBu7.c fPA7.c Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu Rcu 7Bt0 Ni0 4nd0 Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu e9Au qn0 lxB0 mn0|57e3","America/Blanc-Sablon|AST ADT AWT APT|40 30 30 30|010230|-25TS0 1in0 UGp0 8x50 iu0|11e2","America/Boa_Vista|LMT -04 -03|42.E 40 30|0121212121212121212121212121212121|-2glvV.k HdKV.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 smp0 WL0 1tB0 2L0|62e2","America/Bogota|BMT -05 -04|4U.g 50 40|0121|-2eb73.I 38yo3.I 2en0|90e5","America/Boise|PST PDT MST MWT MPT MDT|80 70 70 60 60 60|0101023425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-261q0 1nX0 11B0 1nX0 8C10 JCL0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 Dd0 1Kn0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e4","America/Cambridge_Bay|-00 MST MWT MPT MDDT MDT CST CDT EST|0 70 60 60 50 60 60 50 50|0123141515151515151515151515151515151515151515678651515151515151515151515151515151515151515151515151515151515151515151515151|-21Jc0 RO90 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11A0 1nX0 2K0 WQ0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e2","America/Campo_Grande|LMT -04 -03|3C.s 40 30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwl.w HdLl.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|77e4","America/Cancun|LMT CST EST EDT CDT|5L.4 60 50 40 50|0123232341414141414141414141414141414141412|-1UQG
405050 2q2o0 yLB0 1lb0 14p0 1lb0 14p0 Lz0 xB0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 Dd0|63e4","America/Caracas|CMT -0430 -04|4r.E 4u 40|01212|-2kV7w.k 28KM2.k 1IwOu kqo0|29e5","America/Cayenne|LMT -04 -03|3t.k 40 30|012|-2mrwu.E 2gWou.E|58e3","America/Panama|CMT EST|5j.A 50|01|-2uduE.o|15e5","America/Chicago|CST CDT EST CWT CPT|60 50 50 50 50|01010101010101010101010101010101010102010101010103401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 1wp0 TX0 WN0 1qL0 1cN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 11B0 1Hz0 14p0 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5","America/Chihuahua|LMT MST CST CDT MDT|74.k 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|81e4","America/Costa_Rica|SJMT CST CDT|5A.d 60 50|0121212121|-1Xd6n.L 2lu0n.L Db0 1Kp0 Db0 pRB0 15b0 1kp0 mL0|12e5","America/Creston|MST PST|70 80|010|-29DR0 43B0|53e2","America/Cuiaba|LMT -04 -03|3I.k 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwf.E HdLf.E 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 4a10 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|54e4","America/Danmarkshavn|LMT -03 -02 GMT|1e.E 30 20 0|01212121212121212121212121212121213|-2a5WJ.k 2z5fJ.k 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 DC0|8","America/Dawson_Creek|PST PDT PWT PPT MST|80 70 70 70 70|0102301010101010101010101010101010101010101010101010101014|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 ML0|12e3","America/Dawson|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|010102304056565656565656565656565656565656565656565656565656565656565656565656565656565656567|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 jrA0 fNd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1z90|13e2","America/Denver|MST MDT MWT MPT|70 60 60 60|01010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 11B0 1qL0 WN0 mn0 Ord0 8x20 ix0 LCN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5","America/Detroit|LMT CST EST EWT EPT EDT|5w.b 60 50 40 40 40|0123425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2Cgir.N peqr.N 156L0 8x40 iv0 6fd0 11z0 JxX1 SMX 1cN0 1cL0 aW10 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e5","America/Edmonton|LMT MST MDT MWT MPT|7x.Q 70 60 60 60|0121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2yd4q.8 shdq.8 1in0 17d0 hz0 2dB0 1fz0 1a10 11z0 1qN0 WL0 1qN0 11z0 IGN0 8x20 ix0 3NB0 11z0 XQp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|10e5","America/Eirunepe|LMT -05 -04|4D.s 50 40|0121212121212121212121212121212121|-2glvk.w HdLk.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0 yTd0 d5X0|31e3","America/El_Salvador|LMT CST CDT|5U.M 60 50|012121|-1XiG3.c 2Fvc3.c WL0 1qN0 WL0|11e5","America/Tijuana|LMT MST PST PDT PWT PPT|7M.4 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQE0 4PX0 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOO0 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|20e5","America/Fort_Nelson|PST PDT PWT PPT MST|80 70 70 70 70|01023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010104|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|39e2","America/Fort_Wayne|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010101023010101010101010101040454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 QI10 Db0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 5Tz0 1o10 qLb0 1cL0 1cN0 1cL0 1qhd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Fortaleza|LMT -03 -02|2y 30 20|0121212121212121212121212121212121212121|-2glxq HdLq 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 5z0 2mN0 On0|34e5","America/Glace_Bay|LMT AST ADT AWT APT|3X.M 40 30 30 30|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsI0.c CwO0.c 1in0 UGp0 8x50 iu0 iq10 11z0 Jg10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3","America/Godthab|LMT -03 -02|3q.U 30 20|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5Ux.4 2z5dx.4 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e3","America/Goose_Bay|NST NDT NST NDT NWT NPT AST ADT ADDT|3u.Q 2u.Q 3u 2u 2u 2u 40 30 20|01023232323232324523232323232323232323232323232323232323232676767676767676767676767676767676767676767676867676
405057676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-25TSt.8 1in0 DXb0 2HbX.8 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 S10 g0u 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|76e2","America/Grand_Turk|KMT EST EDT AST|57.a 50 40 40|0121212121212121212121212121212121212121212121212121212121212121212121212132121212121212121212121212121212121212121|-2l1uQ.O 2HHBQ.O 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 7jA0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2","America/Guatemala|LMT CST CDT|62.4 60 50|0121212121|-24KhV.U 2efXV.U An0 mtd0 Nz0 ifB0 17b0 zDB0 11z0|13e5","America/Guayaquil|QMT -05 -04|5e 50 40|0121|-1yVSK 2uILK rz0|27e5","America/Guyana|LMT -0345 -03 -04|3Q.E 3J 30 40|0123|-2dvU7.k 2r6LQ.k Bxbf|80e4","America/Halifax|LMT AST ADT AWT APT|4e.o 40 30 30 30|0121212121212121212121212121212121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsHJ.A xzzJ.A 1db0 3I30 1in0 3HX0 IL0 1E10 ML0 1yN0 Pb0 1Bd0 Mn0 1Bd0 Rz0 1w10 Xb0 1w10 LX0 1w10 Xb0 1w10 Lz0 1C10 Jz0 1E10 OL0 1yN0 Un0 1qp0 Xb0 1qp0 11X0 1w10 Lz0 1HB0 LX0 1C10 FX0 1w10 Xb0 1qp0 Xb0 1BB0 LX0 1td0 Xb0 1qp0 Xb0 Rf0 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 6i10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4","America/Havana|HMT CST CDT|5t.A 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Meuu.o 72zu.o ML0 sld0 An0 1Nd0 Db0 1Nd0 An0 6Ep0 An0 1Nd0 An0 JDd0 Mn0 1Ap0 On0 1fd0 11X0 1qN0 WL0 1wp0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 14n0 1ld0 14L0 1kN0 15b0 1kp0 1cL0 1cN0 1fz0 1a10 1fz0 1fB0 11z0 14p0 1nX0 11B0 1nX0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 1a10 1in0 1a10 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 17c0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 11A0 6i00 Rc0 1wo0 U00 1tA0 Rc0 1wo0 U00 1wo0 U00 1zc0 U00 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5","America/Hermosillo|LMT MST CST PST MDT|7n.Q 70 60 8
405050 60|0121212131414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0|64e4","America/Indiana/Knox|CST CDT CWT CPT EST|60 50 50 50 50|0101023010101010101010101010101010101040101010101010101010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 3Cn0 8wp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 z8o0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Indiana/Marengo|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010104545454545414545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 dyN0 11z0 6fd0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1e6p0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Indiana/Petersburg|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010104010101010101010101010141014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 3Fb0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 19co0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Indiana/Tell_City|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010401054541010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 8wn0 1cN0 1cL0 1cN0 1cK0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Indiana/Vevay|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010102304545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 kPB0 Awn0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1lnd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Indiana/Vincennes|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Indiana/Winamac|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010101010454541054545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1za0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Inuvik|-00 PST PDDT MST MDT|0 80 60 70 60|0121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-FnA0 tWU0 1fA0 wPe0 2pz0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|35e2","America/Iqaluit|-00 EWT EPT EST EDDT EDT CST CDT|0 40 40 50 30 40 60 50|01234353535353535353535353535353535353535353567353535353535353535353535353535353535353535353535353535353535353535353535353|-16K00 7nX0 iv0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|67e2","America/Jamaica|KMT EST EDT|57.a 50 40|0121212121212121212121|-2l1uQ.O 2uM1Q.O 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0|94e4","America/Juneau|PST PWT PPT PDT YDT YST AKST AKDT|80 70 70 70 80 90 90 80|01203030303030303030303030403030356767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cM0 1cM0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|33e3","America/Kentucky/Louisville|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101010102301010101010101010101010101454545454545414545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 3Fd0 Nb0 LPd0 11z0 RB0 8x30 iw0 1nX1 e0X 9vd0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 xz0 gso0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Kentucky/Monticello|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 SWp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/La_Paz|CMT BST -04|4w.A 3w.A 40|012|-1x37r.o 13b0|19e5","America/Lima|LMT -05 -04|58.A 50 40|0121212121212121|-2tyGP.o 1bDzP.o zX0 1aN0 1cL0 1cN0 1cL0 1PrB0 zX0 1O10 zX0 6Gp0 zX0 98p0 zX0|11e6","America/Los_Angeles|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 5Wp1 1VaX 3dA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6","America/Maceio|LMT -03 -02|2m.Q 30 20|012121212121212121212121212121212121212121|-2glxB.8 HdLB.8 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 8Q10 WL0 1tB0 5z0 2mN0 On0|93e4","America/Managua|MMT CST EST CDT|5J.c 60 50 50|0121313121213131|-1quie.M 1yAMe.M 4mn0 9Up0 Dz0 1K10 Dz0 s3F0 1KH0 DB0 9In0 k8p0 19X0 1o30 11y0|22e5","America/Manaus|LMT -04 -03|40.4 40 30|01212121212121212121212121212121|-2glvX.U HdKX.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0|19e5","America/Martinique|FFMT AST ADT|44.k 40 30|0121|-2mPTT.E 2LPbT.E 19X0|39e4","America/Matamoros|LMT CST CDT|6E 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|45e4","America/Mazatlan|LMT MST CST PST MDT|75.E 70 60 8
405050 60|0121212131414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|44e4","America/Menominee|CST CDT CWT CPT EST|60 50 50 50 50|01010230101041010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 LCN0 1fz0 6410 9Jb0 1cM0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|85e2","America/Merida|LMT CST EST CDT|5W.s 60 50 50|0121313131313131313131313131313131313131313131313131313131313131313131313131313131313131|-1UQG0 2q2o0 2hz0 wu30 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|11e5","America/Metlakatla|PST PWT PPT PDT AKST AKDT|80 70 70 70 90 80|01203030303030303030303030303030304545450454545454545454545454545454545454545454|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1hU10 Rd0 1zb0 Op0 1zb0 Op0 1zb0 uM0 jB0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2","America/Mexico_City|LMT MST CST CDT CWT|6A.A 70 60 50 50|012121232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 gEn0 TX0 3xd0 Jb0 6zB0 SL0 e5d0 17b0 1Pff0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|20e6","America/Miquelon|LMT AST -03 -02|3I.E 40 30 20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2mKkf.k 2LTAf.k gQ10 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2","America/Moncton|EST AST ADT AWT APT|50 40 30 30 30|012121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsH0 CwN0 1in0 zAo0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1K10 Lz0 1zB0 NX0 1u10 Wn0 S20 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14n1 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 ReX 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|64e3","America/Monterrey|LMT CST CDT|6F.g 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|41e5","America/Montevideo|LMT MMT -04 -03 -0330 -0230 -02 -0130|3I.P 3I.P 40 30 3u 2u 20 1u|012343434343434343434343435353636353636375363636363636363636363636363636363636363636363|-2tRUf.9 sVc0 8jcf.9 1db0 1dcu 1cLu 1dcu 1cLu ircu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu WLu 1fAu 1cLu 1o0u 11zu NAu 3jXu zXu Dq0u 19Xu pcu jz0 cm10 19X0 6tB0 1fbu 3o0u jX0 4vB0 xz0 3Cp0 mmu 1a10 IMu Db0 4c10 uL0 1Nd0 An0 1SN0 uL0 mp0 28L0 iPB0 un0 1SN0 xz0 1zd0 Lz0 1zd0 Rb0 1zd0 On0 1wp0 Rb0 s8p0 1fB0 1ip0 11z0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 11z0|17e5","America/Toronto|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101012301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 11Wu 1nzu 1fD0 WJ0 1wr0 Nb0 1Ap0 On0 1zd0 On0 1wp0 TX0 1tB0 TX0 1tB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 4kM0 8x40 iv0 1o10 11z0 1nX0 11z0 1o10 11z0 1o10 1qL0 11D0 1nX0 11B0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e5","America/Nassau|LMT EST EWT EPT EDT|59.u 50 40 40 40|01212314141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-2kNuO.u 1drbO.u 6tX0 cp0 1hS0 pF0 J630 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|24e4","America/Ne
40505w_York|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 11B0 1qL0 1a10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6","America/Nipigon|EST EDT EWT EPT|50 40 40 40|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 Rnb0 3je0 8x40 iv0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|16e2","America/Nome|NST NWT NPT BST BDT YST AKST AKDT|b0 a0 a0 b0 a0 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cl0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|38e2","America/Noronha|LMT -02 -01|29.E 20 10|0121212121212121212121212121212121212121|-2glxO.k HdKO.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|30e2","America/North_Dakota/Beulah|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/North_Dakota/Center|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/North_Dakota/New_Salem|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","America/Ojinaga|LMT MST CST CDT MDT|6V.E 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 de
40505L0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3","America/Pangnirtung|-00 AST AWT APT ADDT ADT EDT EST CST CDT|0 40 30 30 20 30 40 50 60 50|012314151515151515151515151515151515167676767689767676767676767676767676767676767676767676767676767676767676767676767676767|-1XiM0 PnG0 8x50 iu0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1o00 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2","America/Paramaribo|LMT PMT PMT -0330 -03|3E.E 3E.Q 3E.A 3u 30|01234|-2nDUj.k Wqo0.c qanX.I 1yVXN.o|24e4","America/Phoenix|MST MDT MWT|70 60 60|01010202010|-261r0 1nX0 11B0 1nX0 SgN0 4Al1 Ap0 1db0 SWqX 1cL0|42e5","America/Port-au-Prince|PPMT EST EDT|4N 50 40|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-28RHb 2FnMb 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14q0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 i6n0 1nX0 11B0 1nX0 d430 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 3iN0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5","America/Rio_Branco|LMT -05 -04|4v.c 50 40|01212121212121212121212121212121|-2glvs.M HdLs.M 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0 d5X0|31e4","America/Porto_Velho|LMT -04 -03|4f.A 40 30|012121212121212121212121212121|-2glvI.o HdKI.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|37e4","America/Puerto_Rico|AST AWT APT|40 30 30|0120|-17lU0 7XT0 iu0|24e5","America/Punta_Arenas|SMT -05 -04 -03|4G.K 50 40 30|0102021212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 blz0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|","America/Rainy_River|CST CDT CWT CPT|60 50 50 50|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TQ0 1in0 Rnb0 3je0 8x30 iw0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|842","America/Rankin_Inlet|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313131313131313131313131313131313131313131313131313131313131313131|-vDc0 keu0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e2","America/Recife|LMT -03 -02|2j.A 30 20|0121212121212121212121212121212121212121|-2glxE.o HdLE.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|33e5","America/Regina|LMT MST MDT MWT MPT CST|6W.A 70 60 60 60 60|012121212121212121212121341212121212121212121212121215|-2AD51.o uHe1.o 1in0 s2L0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 66N0 1cL0 1cN0 19X0 1fB0 1cL0 1fB0 1cL0 1cN0 1cL0 M30 8x20 ix0 1ip0 1cL0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 3NB0 1cL0 1cN0|19e4","America/Resolute|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313431313131313131313131313131313131313131313131313131313131313131|-SnA0 GWS0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|229","America/Santarem|LMT -04 -03|3C.M 40 30|0121212121212121212121212121212|-2glwl.c HdLl.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0|21e4","America/Santiago|SMT -05 -04 -03|4G.K 50 40 30|010202121212121212321232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 9Bz0 jb0 1oN0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|62e5","America/Santo_Domingo|SDMT EST EDT -0430 AST|4E 50 40 4u 40|01213131313131414|-1ttjk 1lJMk Mn0 6sp0 Lbu 1Cou yLu 1RAu wLu 1QMu xzu 1Q0u xXu 1PAu 13jB0 e00|29e5","America/Sao_Paulo|LMT -03 -02|36.s 30 20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwR.w HdKR.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 pTd0 PX0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|20e6","America/Scoresbysund|LMT -02 -01 +00|1r.Q 20 10 0|0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2a5Ww.8 2z5ew.8 1a00 1cK0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|452","America/Sitka|PST PWT PPT PDT YST AKST AKDT|80 70 70 70 90 90 80|01203030303030303030303030303030345656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|90e2","America/St_Johns|NST NDT NST NDT NWT NPT N
40505DDT|3u.Q 2u.Q 3u 2u 2u 2u 1u|01010101010101010101010101010101010102323232323232324523232323232323232323232323232323232323232323232323232323232323232323232323232323232326232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28oit.8 14L0 1nB0 1in0 1gm0 Dz0 1JB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1fB0 19X0 1fB0 19X0 10O0 eKX.8 19X0 1iq0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4","America/Swift_Current|LMT MST MDT MWT MPT CST|7b.k 70 60 60 60 60|012134121212121212121215|-2AD4M.E uHdM.E 1in0 UGp0 8x20 ix0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 isN0 1cL0 3Cp0 1cL0 1cN0 11z0 1qN0 WL0 pMp0|16e3","America/Tegucigalpa|LMT CST CDT|5M.Q 60 50|01212121|-1WGGb.8 2ETcb.8 WL0 1qN0 WL0 GRd0 AL0|11e5","America/Thule|LMT AST ADT|4z.8 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5To.Q 31NBo.Q 1cL0 1cN0 1cL0 1fB0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|656","America/Thunder_Bay|CST EST EWT EPT EDT|60 50 40 40 40|0123141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-2q5S0 1iaN0 8x40 iv0 XNB0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4","America/Vancouver|PST PDT PWT PPT|80 70 70 70|0102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TO0 1in0 UGp0 8x10 iy0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5","America/Whitehorse|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|010102304056565656565656565656565656565656565656565656565656565656565656565656565656565656567|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 3NA0 vrd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1z90|23e3","America/Winnipeg|CST CDT CWT CPT|60 50 50 50|010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aIi0 WL0 3ND0 1in0 Jap0 Rb0 aCN0 8x30 iw0 1tB0 11z0 1ip0 11z0 1o10 11z0 1o10 11z0 1rd0 10L0 1op0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 1cL0 1cN0 11z0 6i10 WL0 6i10 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|66e4","America/Yakutat|YST YWT YPT YDT AKST AKDT|90 80 80 80 90 80|01203030303030303030303030303030304545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-17T10 8x00 iz0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cn0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|642","America/Yellowknife|-00 MST MWT MPT MDDT MDT|0 70 60 60 50 60|012314151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151|-1pdA0 hix0 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3","Antarctica/Casey|-00 +08 +11|0 -80 -b0|0121212121212|-2q00 1DjS0 T90 40P0 KL0 blz0 3m10 1o30 14k0 1kr0 12l0 1o01|10","Antarctica/Davis|-00 +07 +05|0 -70 -50|01012121|-vyo0 iXt0 alj0 1D7v0 VB0 3Wn0 KN0|70","Antarctica/DumontDUrville|-00 +10|0 -a0|0101|-U0o0 cfq0 bFm0|80","Antarctica/Macquarie|AEST AEDT -00|-a0 -b0 0|010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 1a00 4SK0 1ayy0 Lvs0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 3Co0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|1","Antarctica/Mawson|-00 +06 +05|0 -60 -50|012|-CEo0 2fyk0|60","Pacific/Auckland|NZMT NZST NZST NZDT|-bu -cu -c0 -d0|010202020202
4050502020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1GCVu Lz0 1tB0 11zu 1o0u 11zu 1o0u 11zu 1o0u 14nu 1lcu 14nu 1lcu 1lbu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1qLu WMu 1qLu 11Au 1n1bu IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|14e5","Antarctica/Palmer|-00 -03 -04 -02|0 30 40 20|0121212121213121212121212121212121212121212121212121212121212121212121212121212121|-cao0 nD0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 jsN0 14N0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|40","Antarctica/Rothera|-00 -03|0 30|01|gOo0|130","Antarctica/Syowa|-00 +03|0 -30|01|-vs00|20","Antarctica/Troll|-00 +00 +02|0 0 -20|01212121212121212121212121212121212121212121212121212121212121212121|1puo0 hd0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|40","Antarctica/Vostok|-00 +06|0 -60|01|-tjA0|25","Europe/Oslo|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2awM0 Qm0 W6o0 5pf0 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 wJc0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1qM0 WM0 zpc0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e4","Asia/Riyadh|LMT +03|-36.Q -30|01|-TvD6.Q|57e5","Asia/Almaty|LMT +05 +06 +07|-57.M -50 -60 -70|012323232323232323232321232323232323232323232323232|-1Pc57.M eUo7.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|15e5","Asia/Amman|LMT EET EEST|-2n.I -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1yW2n.I 1HiMn.I KL0 1oN0 11b0 1oN0 11b0 1pd0 1dz0 1cp0 11b0 1op0 11b0 fO10 1db0 1e10 1cL0 1cN0 1cL0 1cN0 1fz0 1pd0 10n0 1ld0 14n0 1hB0 15b0 1ip0 19X0 1cN0 1cL0 1cN0 17b0 1ld0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1So0 y00 1fc0 1dc0 1co0 1dc0 1cM0 1cM0 1cM0 1o00 11A0 1lc0 17c0 1cM0 1cM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 4bX0 Dd0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|25e5","Asia/Anadyr|LMT +12 +13 +14 +11|-bN.U -c0 -d0 -e0 -b0|01232121212121212121214121212121212121212121212121212121212141|-1PcbN.U eUnN.U 23CL0 1db0 2q10 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|13e3","Asia/Aqtau|LMT +04 +05 +06|-3l.4 -40 -50 -60|012323232323232323232123232312121212121212121212|-1Pc3l.4 eUnl.4 24PX0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|15e4","Asia/Aqtobe|LMT +04 +05 +06|-3M.E -40 -50 -60|0123232323232323232321232323232323232323232323232|-1Pc3M.E eUnM.E 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|27e4","Asia/Ashgabat|LMT +04 +05 +06|-3R.w -40 -50 -60|0123232323232323232323212|-1Pc3R.w eUnR.w 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0|41e4","Asia/Atyrau|LMT +03 +05 +06 +04|-3r.I -30 -50 -60 -40|01232323232323232323242323232323232324242424242|-1Pc3r.I eUor.I 24PW0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 2sp0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|","Asia/Baghdad|BMT +03 +04|-2V.A -30 -40|012121212121212121212121212121212121212121212121212121|-26BeV.A 2ACnV.A 11b0 1cp0 1dz0 1dd0 1db0 1cN0 1cp0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1de0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0|66e5","Asia/Qatar|LMT +04 +03|-3q.8 -40
40505-30|012|-21Jfq.8 27BXq.8|96e4","Asia/Baku|LMT +03 +04 +05|-3j.o -30 -40 -50|01232323232323232323232123232323232323232323232323232323232323232|-1Pc3j.o 1jUoj.o WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 9Je0 1o00 11z0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e5","Asia/Bangkok|BMT +07|-6G.4 -70|01|-218SG.4|15e6","Asia/Barnaul|LMT +06 +07 +08|-5z -60 -70 -80|0123232323232323232323212323232321212121212121212121212121212121212|-21S5z pCnz 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 p90 LE0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|","Asia/Beirut|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-21aq0 1on0 1410 1db0 19B0 1in0 1ip0 WL0 1lQp0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 q6N0 En0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1op0 11b0 dA10 17b0 1iN0 17b0 1iN0 17b0 1iN0 17b0 1vB0 SL0 1mp0 13z0 1iN0 17b0 1iN0 17b0 1jd0 12n0 1a10 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0|22e5","Asia/Bishkek|LMT +05 +06 +07|-4W.o -50 -60 -70|012323232323232323232321212121212121212121212121212|-1Pc4W.o eUnW.o 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2e00 1tX0 17b0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1cPu 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0|87e4","Asia/Brunei|LMT +0730 +08|-7D.E -7u -80|012|-1KITD.E gDc9.E|42e4","Asia/Kolkata|MMT IST +0630|-5l.a -5u -6u|012121|-2zOtl.a 1r2LP.a 1un0 HB0 7zX0|15e6","Asia/Chita|LMT +08 +09 +10|-7x.Q -80 -90 -a0|012323232323232323232321232323232323232323232323232323232323232312|-21Q7x.Q pAnx.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3re0|33e4","Asia/Choibalsan|LMT +07 +08 +10 +09|-7C -70 -80 -a0 -90|0123434343434343434343434343434343434343434343424242|-2APHC 2UkoC cKn0 1da0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 3Db0 h1f0 1cJ0 1cP0 1cJ0|38e3","Asia/Shanghai|CST CDT|-80 -90|01010101010101010101010101010|-23uw0 18n0 OjB0 Rz0 11d0 1wL0 A10 8HX0 1G10 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 aL0 1tU30 Rb0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6","Asia/Colombo|MMT +0530 +06 +0630|-5j.w -5u -60 -6u|01231321|-2zOtj.w 1rFbN.w 1zzu 7Apu 23dz0 11zu n3cu|22e5","Asia/Dhaka|HMT +0630 +0530 +06 +07|-5R.k -6u -5u -60 -70|0121343|-18LFR.k 1unn.k HB0 m6n0 2kxbu 1i00|16e6","Asia/Damascus|LMT EET EEST|-2p.c -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-21Jep.c Hep.c 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1xRB0 11X0 1oN0 10L0 1pB0 11b0 1oN0 10L0 1mp0 13X0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 Nb0 1AN0 Nb0 bcp0 19X0 1gp0 19X0 3ld0 1xX0 Vd0 1Bz0 Sp0 1vX0 10p0 1dz0 1cN0 1cL0 1db0 1db0 1g10 1an0 1ap0 1db0 1fd0 1db0 1cN0 1db0 1dd0 1db0 1cp0 1dz0 1c10 1dX0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 19z0 1fB0 1qL0 11B0 1on0 Wp0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0|26e5","Asia/Dili|LMT +08 +09|-8m.k -80 -90|01212|-2le8m.k 1dnXm.k 1nfA0 Xld0|19e4","Asia/Dubai|LMT +04|-3F.c -40|01|-21JfF.c|39e5","Asia/Dushanbe|LMT +05 +06 +07|-4z.c -50 -60 -70|012323232323232323232321|-1Pc4z.c eUnz.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2hB0|76e4","Asia/Famagusta|LMT EET EEST +03|-2f.M -20 -30 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212312
40505121212121212121212121212121212121212121|-1Vc2f.M 2a3cf.M 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|","Asia/Gaza|EET EEST IST IDT|-20 -30 -20 -30|010101010101010101010101010101010123232323232323232323232323232320101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2o0 MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 pBa0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 11z0 1o10 14o0 1lA1 SKX 1xd1 MKX 1AN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nA0 1210 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|18e5","Asia/Hebron|EET EEST IST IDT|-20 -30 -20 -30|01010101010101010101010101010101012323232323232323232323232323232010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2o0 MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 pBa0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 12L0 1mN0 14o0 1lc0 Tb0 1xd1 MKX bB0 cn0 1cN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nA0 1210 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|25e4","Asia/Ho_Chi_Minh|LMT PLMT +07 +08 +09|-76.E -76.u -70 -80 -90|0123423232|-2yC76.E bK00.a 1h7b6.u 5lz0 18o0 3Oq0 k5b0 aW00 BAM0|90e5","Asia/Hong_Kong|LMT HKT HKST HKWT JST|-7A.G -80 -90 -8u -90|0123412121212121212121212121212121212121212121212121212121212121212121|-2CFH0 1taO0 Hc0 xUu 9tBu 11z0 1tDu Rc0 1wo0 11A0 1cM0 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1nX0 U10 1tz0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|73e5","Asia/Hovd|LMT +06 +07 +08|-66.A -60 -70 -80|012323232323232323232323232323232323232323232323232|-2APG6.A 2Uko6.A cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|81e3","Asia/Irkutsk|IMT +07 +08 +09|-6V.5 -70 -80 -90|01232323232323232323232123232323232323232323232323232323232323232|-21zGV.5 pjXV.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4","Europe/Istanbul|IMT EET EEST +03 +04|-1U.U -20 -30 -30 -40|0121212121212121212121212121212121212121212121234312121212121212121212121212121212121212121212121212121212121212123|-2ogNU.U dzzU.U 11b0 8tB0 1on0 1410 1db0 19B0 1in0 3Rd0 Un0 1oN0 11b0 zSN0 CL0 mp0 1Vz0 1gN0 8yn0 1yp0 ML0 1kp0 17b
405050 1ip0 17b0 1fB0 19X0 1ip0 19X0 1ip0 17b0 qdB0 38L0 1jd0 Tz0 l6O0 11A0 WN0 1qL0 TB0 1tX0 U10 1tz0 11B0 1in0 17d0 z90 cne0 pb0 2Cp0 1800 14o0 1dc0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1a00 1fA0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WO0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 Xc0 1qo0 WM0 1qM0 11A0 1o00 1200 1nA0 11A0 1tA0 U00 15w0|13e6","Asia/Jakarta|BMT +0720 +0730 +09 +08 WIB|-77.c -7k -7u -90 -80 -70|01232425|-1Q0Tk luM0 mPzO 8vWu 6kpu 4PXu xhcu|31e6","Asia/Jayapura|LMT +09 +0930 WIT|-9m.M -90 -9u -90|0123|-1uu9m.M sMMm.M L4nu|26e4","Asia/Jerusalem|JMT IST IDT IDDT|-2k.E -20 -30 -40|01212121212121321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-26Bek.E SyOk.E MM0 iM0 4JA0 10o0 1pA0 10M0 1pA0 16o0 1jA0 16o0 1jA0 3LA0 Eo0 oo0 1co0 1dA0 16o0 10M0 1jc0 1tA0 14o0 1cM0 1a00 11A0 1Nc0 Ao0 1Nc0 Ao0 1Ko0 LA0 1o00 WM0 EQK0 Db0 1fB0 Rb0 bXB0 gM0 8Q00 IM0 1wo0 TX0 1HB0 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 1hB0 1dX0 1ep0 1aL0 1eN0 17X0 1nf0 11z0 1tB0 19W0 1e10 17b0 1ep0 1gL0 18N0 1fz0 1eN0 17b0 1gq0 1gn0 19d0 1dz0 1c10 17X0 1hB0 1gn0 19d0 1dz0 1c10 17X0 1kp0 1dz0 1c10 1aL0 1eN0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0|81e4","Asia/Kabul|+04 +0430|-40 -4u|01|-10Qs0|46e5","Asia/Kamchatka|LMT +11 +12 +13|-ay.A -b0 -c0 -d0|012323232323232323232321232323232323232323232323232323232323212|-1SLKy.A ivXy.A 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|18e4","Asia/Karachi|LMT +0530 +0630 +05 PKT PKST|-4s.c -5u -6u -50 -50 -60|012134545454|-2xoss.c 1qOKW.c 7zX0 eup0 LqMu 1fy00 1cL0 dK10 11b0 1610 1jX0|24e6","Asia/Urumqi|LMT +06|-5O.k -60|01|-1GgtO.k|32e5","Asia/Kathmandu|LMT +0530 +0545|-5F.g -5u -5J|012|-21JhF.g 2EGMb.g|12e5","Asia/Khandyga|LMT +08 +09 +10 +11|-92.d -80 -90 -a0 -b0|0123232323232323232323212323232323232323232323232343434343434343432|-21Q92.d pAp2.d 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 qK0 yN0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|66e2","Asia/Krasnoyarsk|LMT +06 +07 +08|-6b.q -60 -70 -80|01232323232323232323232123232323232323232323232323232323232323232|-21Hib.q prAb.q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5","Asia/Kuala_Lumpur|SMT +07 +0720 +0730 +09 +08|-6T.p -70 -7k -7u -90 -80|0123435|-2Bg6T.p 17anT.p l5XE 17bO 8Fyu 1so1u|71e5","Asia/Kuching|LMT +0730 +08 +0820 +09|-7l.k -7u -80 -8k -90|0123232323232323242|-1KITl.k gDbP.k 6ynu AnE 1O0k AnE 1NAk AnE 1NAk AnE 1NAk AnE 1O0k AnE 1NAk AnE pAk 8Fz0|13e4","Asia/Macau|LMT CST +09 +10 CDT|-7y.a -80 -90 -a0 -90|012323214141414141414141414141414141414141414141414141414141414141414141|-2CFHy.a 1uqKy.a PX0 1kn0 15B0 11b0 4Qq0 1oM0 11c0 1ko0 1u00 11A0 1cM0 11c0 1o00 11A0 1o00 11A0 1oo0 1400 1o00 11A0 1o00 U00 1tA0 U00 1wo0 Rc0 1wru U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cK0 1cO0 1cK0 1cO0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|57e4","Asia/Magadan|LMT +10 +11 +12|-a3.c -a0 -b0 -c0|012323232323232323232321232323232323232323232323232323232323232312|-1Pca3.c eUo3.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Cq0|95e3","Asia/Makassar|L
40505MT MMT +08 +09 WITA|-7V.A -7V.A -80 -90 -80|01234|-21JjV.A vfc0 myLV.A 8ML0|15e5","Asia/Manila|PST PDT JST|-80 -90 -90|010201010|-1kJI0 AL0 cK10 65X0 mXB0 vX0 VK10 1db0|24e6","Asia/Nicosia|LMT EET EEST|-2d.s -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2d.s 2a3cd.s 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|32e4","Asia/Novokuznetsk|LMT +06 +07 +08|-5M.M -60 -70 -80|012323232323232323232321232323232323232323232323232323232323212|-1PctM.M eULM.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|55e4","Asia/Novosibirsk|LMT +06 +07 +08|-5v.E -60 -70 -80|0123232323232323232323212323212121212121212121212121212121212121212|-21Qnv.E pAFv.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 ml0 Os0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 4eN0|15e5","Asia/Omsk|LMT +05 +06 +07|-4R.u -50 -60 -70|01232323232323232323232123232323232323232323232323232323232323232|-224sR.u pMLR.u 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|12e5","Asia/Oral|LMT +03 +05 +06 +04|-3p.o -30 -50 -60 -40|01232323232323232424242424242424242424242424242|-1Pc3p.o eUop.o 23CK0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 1cM0 IM0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|27e4","Asia/Pontianak|LMT PMT +0730 +09 +08 WITA WIB|-7h.k -7h.k -7u -90 -80 -80 -70|012324256|-2ua7h.k XE00 munL.k 8Rau 6kpu 4PXu xhcu Wqnu|23e4","Asia/Pyongyang|LMT KST JST KST|-8n -8u -90 -90|012313|-2um8n 97XR 1lTzu 2Onc0 6BA0|29e5","Asia/Qostanay|LMT +04 +05 +06|-4e.s -40 -50 -60|012323232323232323232123232323232323232323232323|-1Pc4e.s eUoe.s 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|","Asia/Qyzylorda|LMT +04 +05 +06|-4l.Q -40 -50 -60|01232323232323232323232323232323232323232323232|-1Pc4l.Q eUol.Q 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 3ao0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 zQl0|73e4","Asia/Rangoon|RMT +0630 +09|-6o.L -6u -90|0121|-21Jio.L SmnS.L 7j9u|48e5","Asia/Sakhalin|LMT +09 +11 +12 +10|-9u.M -90 -b0 -c0 -a0|01232323232323232323232423232323232424242424242424242424242424242|-2AGVu.M 1BoMu.M 1qFa0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 2pB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|58e4","Asia/Samarkand|LMT +04 +05 +06|-4r.R -40 -50 -60|01232323232323232323232|-1Pc4r.R eUor.R 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|36e4","Asia/Seoul|LMT KST JST KST KDT KDT|-8r.Q -8u -90 -90 -a0 -9u|012343434343151515151515134343|-2um8r.Q 97XV.Q 1m1zu 6CM0 Fz0 1kN0 14n0 1kN0 14L0 1zd0 On0 69B0 2I0u OL0 1FB0 Rb0 1qN0 TX0 1tB0 TX0 1tB0 TX0 1tB0 TX0 2ap0 12FBu 11A0 1o00 11A0|23e6","Asia/Srednekolymsk|LMT +10 +11 +12|-ae.Q -a0 -b0 -c0|01232323232323232323232123232323232323232323232323232323232323232|-1Pcae.Q eUoe.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|35e2","Asia/Taipei|CST JST CDT|-80 -90 -90|010202020202
4050502020202020202020202020202020|-1iw80 joM0 1yo0 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 10N0 1BX0 10p0 1pz0 10p0 1pz0 10p0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1BB0 ML0 1Bd0 ML0 uq10 1db0 1cN0 1db0 97B0 AL0|74e5","Asia/Tashkent|LMT +05 +06 +07|-4B.b -50 -60 -70|012323232323232323232321|-1Pc4B.b eUnB.b 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0|23e5","Asia/Tbilisi|TBMT +03 +04 +05|-2X.b -30 -40 -50|0123232323232323232323212121232323232323232323212|-1Pc2X.b 1jUnX.b WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cK0 1cL0 1cN0 1cL0 1cN0 2pz0 1cL0 1fB0 3Nz0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 An0 Os0 WM0|11e5","Asia/Tehran|LMT TMT +0330 +04 +05 +0430|-3p.I -3p.I -3u -40 -50 -4u|01234325252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2btDp.I 1d3c0 1huLT.I TXu 1pz0 sN0 vAu 1cL0 1dB0 1en0 pNB0 UL0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 64p0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0|14e6","Asia/Thimphu|LMT +0530 +06|-5W.A -5u -60|012|-Su5W.A 1BGMs.A|79e3","Asia/Tokyo|JST JDT|-90 -a0|010101010|-QJJ0 Rc0 1lc0 14o0 1zc0 Oo0 1zc0 Oo0|38e6","Asia/Tomsk|LMT +06 +07 +08|-5D.P -60 -70 -80|0123232323232323232323212323232323232323232323212121212121212121212|-21NhD.P pxzD.P 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 co0 1bB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Qp0|10e5","Asia/Ulaanbaatar|LMT +07 +08 +09|-77.w -70 -80 -90|012323232323232323232323232323232323232323232323232|-2APH7.w 2Uko7.w cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|12e5","Asia/Ust-Nera|LMT +08 +09 +12 +11 +10|-9w.S -80 -90 -c0 -b0 -a0|012343434343434343434345434343434343434343434343434343434343434345|-21Q9w.S pApw.S 23CL0 1d90 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|65e2","Asia/Vladivostok|LMT +09 +10 +11|-8L.v -90 -a0 -b0|01232323232323232323232123232323232323232323232323232323232323232|-1SJIL.v itXL.v 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4","Asia/Yakutsk|LMT +08 +09 +10|-8C.W -80 -90 -a0|01232323232323232323232123232323232323232323232323232323232323232|-21Q8C.W pAoC.W 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|28e4","Asia/Yekaterinburg|LMT PMT +04 +05 +06|-42.x -3J.5 -40 -50 -60|012343434343434343434343234343434343434343434343434343434343434343|-2ag42.x 7mQh.s qBvJ.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|14e5","Asia/Yerevan|LMT +03 +04 +05|-2W -30 -40 -50|0123232323232323232323212121212323232323232323232323232323232|-1Pc2W 1jUnW WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 4RX0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|13e5","Atlantic/Azores|HMT -02 -01 +00 WET|1S.w 20 10 0 0|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121232323232323232323232323232323234323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2ldW0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|25e4","Atlantic/Bermuda|BMT BST AST ADT|4j.i 3j.i 40 30|010102323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28p7E.G 1bb0 1i10 11X0 ru30 thbE.G 1P
40505X0 11B0 1tz0 Rd0 1zb0 Op0 1zb0 3I10 Lz0 1EN0 FX0 1HB0 FX0 1Kp0 Db0 1Kp0 Db0 1Kp0 FX0 93d0 11z0 GAp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e3","Atlantic/Canary|LMT -01 WET WEST|11.A 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UtaW.o XPAW.o 1lAK0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4","Atlantic/Cape_Verde|LMT -02 -01|1y.4 20 10|01212|-2ldW0 1eEo0 7zX0 1djf0|50e4","Atlantic/Faroe|LMT WET WEST|r.4 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2uSnw.U 2Wgow.U 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|49e3","Atlantic/Madeira|FMT -01 +00 +01 WET WEST|17.A 10 0 -10 0 -10|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2ldX0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e4","Atlantic/Reykjavik|LMT -01 +00 GMT|1s 10 0 0|012121212121212121212121212121212121212121212121212121212121212121213|-2uWmw mfaw 1Bd0 ML0 1LB0 Cn0 1LB0 3fX0 C10 HrX0 1cO0 LB0 1EL0 LA0 1C00 Oo0 1wo0 Rc0 1wo0 Rc0 1wo0 Rc0 1zc0 Oo0 1zc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0|12e4","Atlantic/South_Georgia|-02|20|0||30","Atlantic/Stanley|SMT -04 -03 -02|3P.o 40 30 20|012121212121212323212121212121212121212121212121212121212121212121212|-2kJw8.A 12bA8.A 19X0 1fB0 19X0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 Cn0 1Cc10 WL0 1qL0 U10 1tz0 2mN0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 U10 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qN0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 U10 1tz0 U10 1tz0 U10|21e2","Australia/Sydney|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|40e5","Australia/Adelaide|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293ju xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 WM0 1qM0 Rc0 1zc0 U00 1tA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|11e5","Australia/Brisbane|AEST AEDT|-a0 -b0|01010101010101010|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0|20e5","Australia/Broken_Hill|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293ju xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|18e3","Australia/Hobart|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 1a00 1qM0 Oo0 1zc0 Oo0 TAo0 yM0 1cM0 1cM0 1fA0 1a00 VfA0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|21e4","Australia/Darwin|ACST ACDT|-9u -au|010101010|-293ju xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00|12e4","Australia/Eucla|+0845 +0945|-8J -9J|0101010101010101010|-293iJ xc0 10jc0 yM0 1cM0 1cM0 1gSo0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|368","Australia/Lord_Howe|AEST +1030 +1130 +11|-a0 -au -bu -b0|0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313|raC0 1zdu Rb0 1zd0 On0 1zd0 On0 1zd0 On0 1zd0 TXu 1qMu WLu 1tAu WLu 1tAu TXu 1tAu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 11Au 1nXu 1qMu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu 11zu 1o0u WLu 1qMu 14nu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu
405051cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu|347","Australia/Lindeman|AEST AEDT|-a0 -b0|010101010101010101010|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0|10","Australia/Melbourne|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293k0 xc0 10jc0 yM0 1cM0 1cM0 1fA0 1a00 17c00 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1qM0 11A0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|39e5","Australia/Perth|AWST AWDT|-80 -90|0101010101010101010|-293i0 xc0 10jc0 yM0 1cM0 1cM0 1gSo0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|18e5","CET|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|","Pacific/Easter|EMT -07 -06 -05|7h.s 70 60 50|012121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1uSgG.w 1s4IG.w WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 2pA0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|30e2","CST6CDT|CST CDT CWT CPT|60 50 50 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","EET|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|","Europe/Dublin|DMT IST GMT BST IST|p.l -y.D 0 -10 -10|01232323232324242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242|-2ax9y.D Rc0 1fzy.D 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 g600 14o0 1wo0 17c0 1io0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","EST|EST|50|0||","EST5EDT|EST EDT EWT EPT|50 40 40 40|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 SgN0 8x40 iv0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","Etc
40505/GMT-0|GMT|0|0||","Etc/GMT-1|+01|-10|0||","Pacific/Port_Moresby|+10|-a0|0||25e4","Etc/GMT-11|+11|-b0|0||","Pacific/Tarawa|+12|-c0|0||29e3","Etc/GMT-13|+13|-d0|0||","Etc/GMT-14|+14|-e0|0||","Etc/GMT-2|+02|-20|0||","Etc/GMT-3|+03|-30|0||","Etc/GMT-4|+04|-40|0||","Etc/GMT-5|+05|-50|0||","Etc/GMT-6|+06|-60|0||","Indian/Christmas|+07|-70|0||21e2","Etc/GMT-8|+08|-80|0||","Pacific/Palau|+09|-90|0||21e3","Etc/GMT+1|-01|10|0||","Etc/GMT+10|-10|a0|0||","Etc/GMT+11|-11|b0|0||","Etc/GMT+12|-12|c0|0||","Etc/GMT+3|-03|30|0||","Etc/GMT+4|-04|40|0||","Etc/GMT+5|-05|50|0||","Etc/GMT+6|-06|60|0||","Etc/GMT+7|-07|70|0||","Etc/GMT+8|-08|80|0||","Etc/GMT+9|-09|90|0||","Etc/UTC|UTC|0|0||","Europe/Amsterdam|AMT NST +0120 +0020 CEST CET|-j.w -1j.w -1k -k -20 -10|010101010101010101010101010101010101010101012323234545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2aFcj.w 11b0 1iP0 11A0 1io0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1co0 1io0 1yo0 Pc0 1a00 1fA0 1Bc0 Mo0 1tc0 Uo0 1tA0 U00 1uo0 W00 1s00 VA0 1so0 Vc0 1sM0 UM0 1wo0 Rc0 1u00 Wo0 1rA0 W00 1s00 VA0 1sM0 UM0 1w00 fV0 BCX.w 1tA0 U00 1u00 Wo0 1sm0 601k WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|16e5","Europe/Andorra|WET CET CEST|0 -10 -20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-UBA0 1xIN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|79e3","Europe/Astrakhan|LMT +03 +04 +05|-3c.c -30 -40 -50|012323232323232323212121212121212121212121212121212121212121212|-1Pcrc.c eUMc.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|10e5","Europe/Athens|AMT EET EEST CEST CET|-1y.Q -20 -30 -20 -10|012123434121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a61x.Q CNbx.Q mn0 kU10 9b0 3Es0 Xa0 1fb0 1dd0 k3X0 Nz0 SCp0 1vc0 SO0 1cM0 1a00 1ao0 1fc0 1a10 1fG0 1cg0 1dX0 1bX0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|35e5","Europe/London|GMT BST BDST|0 -10 -20|0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|10e6","Europe/Belgrade|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19RC0 3IP0 WM0 1fA0 1cM0 1cM0 1rc0 Qo0 1vmo0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","Europe/Berlin|CET CEST CEMT|-10 -20 -30|01010101010101210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 kL0 Nc0 m10 WM0 1ao0 1cp0 dX0 jz0 Dd0 1io0 17c0 1fA0 1a00 1ehA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e5","Europe/Prague|CET CEST GMT|-10 -20 0|01010101010101010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 1qM0 11c0 mp0 xA0 mn0 17c0 1io0 17c0 1fc0 1ao0 1bNc0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|13e5","Europe/Brussels|WET CET CEST WEST|0 -10 -20 -10|0121212103030303030303030303030303030303030303030303212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ehc0 3zX0 11c0 1iO0 11A0 1o00 11A0 my0 Ic0 1qM0 Rc0 1EM0 UM0 1u00 10o0 1io0 1io0 17c0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a30 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 y00 5Wn0 WM0 1fA0 1cM0 16M0 1iM0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|21e5","Europe/Bucharest|BMT EET EEST|-1I.o -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1xApI.o 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Axc0 On0 1fA0 1a10 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|19e5","Europe/Budapest|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 1oo0 11c0 1lc0 17c0 O1V0 3Nf0 WM0 1fA0 1cM0 1cM0 1oJ0 1dd0 1020 1fX0 1cp0 1cM0 1cM0 1cM0 1fA0 1a00 bhy0 Rb0 1wr0 Rc0 1C00 LA0 1C00 LA0 SNW0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cO
vendor: 12,027 bytes, line 40505
405050 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5","Europe/Zurich|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19Lc0 11A0 1o00 11A0 1xG10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e4","Europe/Chisinau|CMT BMT EET EEST CEST CET MSK MSD|-1T -1I.o -20 -30 -20 -10 -30 -40|012323232323232323234545467676767676767676767323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-26jdT wGMa.A 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 27A0 2en0 39g0 WM0 1fA0 1cM0 V90 1t7z0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 gL0 WO0 1cM0 1cM0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11D0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|67e4","Europe/Copenhagen|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 Tz0 VuO0 60q0 WM0 1fA0 1cM0 1cM0 1cM0 S00 1HA0 Nc0 1C00 Dc0 1Nc0 Ao0 1h5A0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","Europe/Gibraltar|GMT BST BDST CET CEST|0 -10 -20 -10 -20|010101010101010101010101010101010101010101010101012121212121010121010101010101010101034343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 10Jz0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|30e3","Europe/Helsinki|HMT EET EEST|-1D.N -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1WuND.N OULD.N 1dA0 1xGq0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","Europe/Kaliningrad|CET CEST EET EEST MSK MSD +03|-10 -20 -20 -30 -30 -40 -30|01010101010101232454545454545454543232323232323232323232323232323232323232323262|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 390 7A0 1en0 12N0 1pbb0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|44e4","Europe/Kiev|KMT EET MSK CEST CET MSD EEST|-22.4 -20 -30 -20 -10 -40 -30|0123434252525252525252525256161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc22.4 eUo2.4 rnz0 2Hg0 WM0 1fA0 da0 1v4m0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 Db0 3220 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|34e5","Europe/Kirov|LMT +03 +04 +05|-3i.M -30 -40 -50|01232323232323232321212121212121212121212121212121212121212121|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|48e4","Europe/Lisbon|LMT WET WEST WEMT CET CEST|A.J 0 -10 -20 -10 -20|012121212121212121212121212121212121212121212321232123212321212121212121212121212121212121212121214121212121212121212121212121212124545454212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2le00 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 pvy0 1cM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e5","Europe/Luxembourg|LMT CET CEST WET WEST WEST WET|-o.A -10 -20 0 -10 -20 -10|0121212134343434343434343434343434343434343434343434565651212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2DG0o.A t6mo.A TB0 1nX0 Up0 1o20 11A0 rW0 CM0 1qP0 R90 1EO0 UK0 1u20 10m0 1ip0 1in0 17e0 19W0 1fB0 1db0 1cp0 1in0 17d0 1fz0 1a10 1in0 1a10 1in0 17f0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 vA0 60L0 WM0 1fA0 1cM0 17c0 1io0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4","Europe/Madrid|WET WEST WEMT CET CEST|0 -10 -20 -10 -20|010101010101010101210343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-25Td0 19B0 1cL0 1dd0 b1z0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1in0 17d0 iIn0 Hd0 1cL0 bb0 1200 2s20 14n0 5aL0 Mp0 1vz0 17d0 1in0 17d0 1in0 17d0 1in0 17d0 6hX0 11B0 XHX0 1a10 1fz0 1a10 19X0 1cN0 1fz0 1a10 1fC0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e5","Europe/Malta|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1co0 17c0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1co0 1cM0 1lA0 Xc0 1qq0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1iN0 19z0 1fB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4","Europe/Minsk|MMT EET MSK CEST CET MSD EEST +03|-1O -20 -30 -20 -10 -40 -30 -30|01234343252525252525252525261616161616161616161616161616161616161617|-1Pc1O eUnO qNX0 3gQ0 WM0 1fA0 1cM0 Al0 1tsn0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fc0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0|19e5","Europe/Monaco|PMT WET WEST WEMT CET CEST|-9.l 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121212121232323232345454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2n
405055c9.l cFX9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 2RV0 11z0 11B0 1ze0 WM0 1fA0 1cM0 1fa0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e3","Europe/Moscow|MMT MMT MST MDST MSD MSK +05 EET EEST MSK|-2u.h -2v.j -3v.j -4v.j -40 -30 -50 -20 -30 -40|012132345464575454545454545454545458754545454545454545454545454545454545454595|-2ag2u.h 2pyW.W 1bA0 11X0 GN0 1Hb0 c4v.j ik0 3DA0 dz0 15A0 c10 2q10 iM10 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|16e6","Europe/Paris|PMT WET WEST CEST CET WEMT|-9.l 0 -10 -20 -10 -20|0121212121212121212121212121212121212121212121212123434352543434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 Ik0 5M30 WM0 1fA0 1cM0 Vx0 hB0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e6","Europe/Riga|RMT LST EET MSK CEST CET MSD EEST|-1A.y -2A.y -2
405050 -30 -20 -10 -40 -30|010102345454536363636363636363727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272|-25TzA.y 11A0 1iM0 ko0 gWm0 yDXA.y 2bX0 3fE0 WM0 1fA0 1cM0 1cM0 4m0 1sLy0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1o00 11A0 1o00 11A0 1qM0 3oo0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|64e4","Europe/Rome|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1cM0 16M0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1C00 LA0 1zc0 Oo0 1C00 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1zc0 Oo0 1fC0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|39e5","Europe/Samara|LMT +03 +04 +05|-3k.k -30 -40 -50|0123232323232323232121232323232323232323232323232323232323212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2y10 14m0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|12e5","Europe/Saratov|LMT +03 +04 +05|-34.i -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 5810|","Europe/Simferopol|SMT EET MSK CEST CET MSD EEST MSK|-2g -20 -30 -20 -10 -40 -30 -40|012343432525252525252525252161616525252616161616161616161616161616161616172|-1Pc2g eUog rEn0 2qs0 WM0 1fA0 1cM0 3V0 1u0L0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 4eL0 1cL0 1cN0 1cL0 1cN0 dX0 WL0 1cN0 1cL0 1fB0 1o30 11B0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11z0 1nW0|33e4","Europe/Sofia|EET CET CEST EEST|-20 -10 -20 -30|01212103030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030|-168L0 WM0 1fA0 1cM0 1cM0 1cN0 1mKH0 1dd0 1fb0 1ap0 1fb0 1a20 1fy0 1a30 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","Europe/Stockholm|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 TB0 2yDe0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|15e5","Europe/Tallinn|TMT CET CEST EET MSK MSD EEST|-1D -10 -20 -20 -30 -40 -30|012103421212454545454545454546363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363|-26oND teD 11A0 1Ta0 4rXl KSLD 2FX0 2Jg0 WM0 1fA0 1cM0 18J0 1sTX0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o10 11A0 1qM0 5QM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e4","Europe/Tirane|LMT CET CEST|-1j.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glBj.k 14pcj.k 5LC0 WM0 4M0 1fCK0 10n0 1op0 11z0 1pd0 11z0 1qN0 WL0 1qp0 Xb0 1qp0 Xb0 1qp0 11z0 1lB0 11z0 1qN0 11z0 1iN0 16n0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4","Europe/Ulyanovsk|LMT +03 +04 +05 +02|-3d.A -30 -40 -50 -20|01232323232323232321214121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|13e5","Europe/Uzhgorod|CET CEST MSK MSD EET EEST|-10 -20 -30 -40 -20 -30|010101023232323232323232320454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-1cqL0 6i00 WM0 1fA0 1cM0 1ml0 1Cp0 1r3W0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 1Nf0 2pw0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e4","Europe/Vienna|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 3KM0 14o0 LA00 6i00 WM0 1fA0 1cM0 1cM0 1cM0 400 2qM0 1ao0 1co0 1cM0 1io0 17c0 1gHa0 19X0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|18e5","Europe/Vilnius|WMT KMT CET EET MSK CEST MSD EEST|-1o -1z.A -10 -20 -30 -20 -40 -30|012324525254646464646464646473737373737373737352537373737373737373737373737373737373737373737373737373737373737373737373|-293do 6ILM.o 1Ooz.A zz0 Mfd0 29W0 3is0 WM0 1fA0 1cM0 LV0 1tgL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11B0 1o00 11A0 1qM0 8io0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4","Europe/Volgograd|LMT +03 +04 +05|-2V.E -30 -40 -50|0123232323232323212121212121212121212121212121212121212121212121|-21IqV.E psLV.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 9Jd0 5gn0|10e5","Europe/Warsaw|WMT CET CEST EET EEST|-1o -10 -20 -20 -30|012121234312121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ctdo 1LXo 11d0 1iO0 11A0 1o00 11A0 1on0 11A0 6zy0 HWP0 5IM0 WM0 1fA0 1cM0 1dz0 1mL0 1en0 15B0 1aq0 1nA0 11A0 1io0 17c0 1fA0 1a00 iDX0 LA0 1cM0 1cM0 1C00 Oo0 1cM0 1cM0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1C00 LA0 uso0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5","Europe/Zaporozhye|+0220 EET MSK CEST CET MSD EEST|-2k -20 -30 -20 -10 -40 -30|01234342525252525252525252526161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc2k eUok rdb0 2RE0 WM0 1fA0 8m0 1v9a0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cK0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|77e4","HST|HST|a0|0||","Indian/Chagos|LMT +05 +06|-4N.E -50 -60|012|-2xosN.E 3AGLN.E|30e2","Indian/Cocos|+0630|-6u|0||596","Indian/Kerguelen|-00 +05|0 -50|01|-MG00|130","Indian/Mahe|LMT +04|-3F.M -40|01|-2xorF.M|79e3","Indian/Maldives|MMT +05|-4S -50|01|-olgS|35e4","Indian/Mauritius|LMT +04 +05|-3O -40 -50|012121|-2xorO 34unO 14L0 12kr0 11z0|15e4","Indian/Reunion|LMT +04|-3F.Q -40|01|-2mDDF.Q|84e4","Pacific/Kwajalein|+11 +10 +09 -12 +12|-b0 -a0 -90 c0 -c0|012034|-1kln0 akp0 6Up0 12ry0 Wan0|14e3","MET|MET MEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|","MST|MST|70|0||","MST7MDT|MST MDT MWT MPT|70 60 60 60|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","Pacific/Chatham|+1215 +1245 +1345|-cf -cJ -dJ|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-WqAf 1adef IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|600","Pacific/Apia|LMT -1130 -11 -10 +14 +13|bq.U bu b0 a0 -e0 -d0|01232345454545454545454545454545454545454545454545454545454|-2nDMx.4 1yW03.4 2rRbu 1ff0 1a00 CI0 AQ0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|37e3","Pacific/Bougainville|+10 +09 +11|-a0 -90 -b0|0102|-16Wy0 7CN0 2MQp0|18e4","Pacific/Chuuk|+10 +09|-a0 -90|01010|-2ewy0 axB0 RVX0 axd0|49e3","Pacific/Efate|LMT +11 +12|-bd.g -b0 -c0|012121212121212121212121|-2l9nd.g 2uNXd.g Dc0 n610 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 Lz0 1Nd0 An0|66e3","Pacific/Enderbury|-12 -11 +13|
40505c0 b0 -d0|012|nIc0 B7X0|1","Pacific/Fakaofo|-11 +13|b0 -d0|01|1Gfn0|483","Pacific/Fiji|LMT +12 +13|-bT.I -c0 -d0|0121212121212121212121212121212121212121212121212121212121212121|-2bUzT.I 3m8NT.I LA0 1EM0 IM0 nJc0 LA0 1o00 Rc0 1wo0 Ao0 1Nc0 Ao0 1Q00 xz0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 20o0 pc0 2hc0 bc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00|88e4","Pacific/Galapagos|LMT -05 -06|5W.o 50 60|01212|-1yVS1.A 2dTz1.A gNd0 rz0|25e3","Pacific/Gambier|LMT -09|8X.M 90|01|-2jof0.c|125","Pacific/Guadalcanal|LMT +11|-aD.M -b0|01|-2joyD.M|11e4","Pacific/Guam|GST +09 GDT ChST|-a0 -90 -b0 -a0|01020202020202020203|-18jK0 6pB0 AhB0 3QL0 g2p0 3p91 WOX rX0 1zd0 Rb0 1wp0 Rb0 5xd0 rX0 5sN0 zb1 1C0X On0 ULb0|17e4","Pacific/Honolulu|HST HDT HWT HPT HST|au 9u 9u 9u a0|0102304|-1thLu 8x0 lef0 8wWu iAu 46p0|37e4","Pacific/Kiritimati|-1040 -10 +14|aE a0 -e0|012|nIaE B7Xk|51e2","Pacific/Kosrae|+11 +09 +10 +12|-b0 -90 -a0 -c0|01021030|-2ewz0 axC0 HBy0 akp0 axd0 WOK0 1bdz0|66e2","Pacific/Majuro|+11 +09 +10 +12|-b0 -90 -a0 -c0|0102103|-2ewz0 axC0 HBy0 akp0 6RB0 12um0|28e3","Pacific/Marquesas|LMT -0930|9i 9u|01|-2joeG|86e2","Pacific/Pago_Pago|LMT SST|bm.M b0|01|-2nDMB.c|37e2","Pacific/Nauru|LMT +1130 +09 +12|-b7.E -bu -90 -c0|01213|-1Xdn7.E QCnB.E 7mqu 1lnbu|10e3","Pacific/Niue|-1120 -1130 -11|bk bu b0|012|-KfME 17y0a|12e2","Pacific/Norfolk|+1112 +1130 +1230 +11 +12|-bc -bu -cu -b0 -c0|012134343434343434343434343434343434343434|-Kgbc W01G Oo0 1COo0 9Jcu 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|25e4","Pacific/Noumea|LMT +11 +12|-b5.M -b0 -c0|01212121|-2l9n5.M 2EqM5.M xX0 1PB0 yn0 HeP0 Ao0|98e3","Pacific/Pitcairn|-0830 -08|8u 80|01|18Vku|56","Pacific/Pohnpei|+11 +09 +10|-b0 -90 -a0|010210|-2ewz0 axC0 HBy0 akp0 axd0|34e3","Pacific/Rarotonga|-1030 -0930 -10|au 9u a0|012121212121212121212121212|lyWu IL0 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu|13e3","Pacific/Tahiti|LMT -10|9W.g a0|01|-2joe1.I|18e4","Pacific/Tongatapu|+1220 +13 +14|-ck -d0 -e0|0121212121|-1aB0k 2n5dk 15A0 1wo0 xz0 1Q10 xz0 zWN0 s00|75e3","PST8PDT|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|","WET|WET WEST|0 -10|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|"],"links":["Africa/Abidjan|Africa/Bamako","Africa/Abidjan|Africa/Banjul","Africa/Abidjan|Africa/Conakry","Africa/Abidjan|Africa/Dakar","Africa/Abidjan|Africa/Freetown","Africa/Abidjan|Africa/Lome","Africa/Abidjan|Africa/Nouakchott","Africa/Abidjan|Africa/Ouagadougou","Africa/Abidjan|Africa/Timbuktu","Africa/Abidjan|Atlantic/St_Helena","Africa/Cairo|Egypt","Africa/Johannesburg|Africa/Maseru","Africa/Johannesburg|Africa/Mbabane","Africa/Lagos|Africa/Bangui","Africa/Lagos|Africa/Brazzaville","Africa/Lagos|Africa/Douala","Africa/Lagos|Africa/Kinshasa","Africa/Lagos|Africa/Libreville","Africa/Lagos|Africa/Luanda","Africa/Lagos|Africa/Malabo","Africa/Lagos|Africa/Niamey","Africa/Lagos|Africa/Porto-Novo","Africa/Maputo|Africa/Blantyre","Africa/Maputo|Africa/Bujumbura","Africa/Maputo|Africa/Gaborone","Africa/Maputo|Africa/Harare","Africa/Maputo|Africa/Kigal
40505i","Africa/Maputo|Africa/Lubumbashi","Africa/Maputo|Africa/Lusaka","Africa/Nairobi|Africa/Addis_Ababa","Africa/Nairobi|Africa/Asmara","Africa/Nairobi|Africa/Asmera","Africa/Nairobi|Africa/Dar_es_Salaam","Africa/Nairobi|Africa/Djibouti","Africa/Nairobi|Africa/Kampala","Africa/Nairobi|Africa/Mogadishu","Africa/Nairobi|Indian/Antananarivo","Africa/Nairobi|Indian/Comoro","Africa/Nairobi|Indian/Mayotte","Africa/Tripoli|Libya","America/Adak|America/Atka","America/Adak|US/Aleutian","America/Anchorage|US/Alaska","America/Argentina/Buenos_Aires|America/Buenos_Aires","America/Argentina/Catamarca|America/Argentina/ComodRivadavia","America/Argentina/Catamarca|America/Catamarca","America/Argentina/Cordoba|America/Cordoba","America/Argentina/Cordoba|America/Rosario","America/Argentina/Jujuy|America/Jujuy","America/Argentina/Mendoza|America/Mendoza","America/Atikokan|America/Coral_Harbour","America/Chicago|US/Central","America/Curacao|America/Aruba","America/Curacao|America/Kralendijk","America/Curacao|America/Lower_Princes","America/Denver|America/Shiprock","America/Denver|Navajo","America/Denver|US/Mountain","America/Detroit|US/Michigan","America/Edmonton|Canada/Mountain","America/Fort_Wayne|America/Indiana/Indianapolis","America/Fort_Wayne|America/Indianapolis","America/Fort_Wayne|US/East-Indiana","America/Godthab|America/Nuuk","America/Halifax|Canada/Atlantic","America/Havana|Cuba","America/Indiana/Knox|America/Knox_IN","America/Indiana/Knox|US/Indiana-Starke","America/Jamaica|Jamaica","America/Kentucky/Louisville|America/Louisville","America/Los_Angeles|US/Pacific","America/Manaus|Brazil/West","America/Mazatlan|Mexico/BajaSur","America/Mexico_City|Mexico/General","America/New_York|US/Eastern","America/Noronha|Brazil/DeNoronha","America/Panama|America/Cayman","America/Phoenix|US/Arizona","America/Port_of_Spain|America/Anguilla","America/Port_of_Spain|America/Antigua","America/Port_of_Spain|America/Dominica","America/Port_of_Spain|America/Grenada","America/Port_of_Spain|America/Guadeloupe","America/Port_of_Spain|America/Marigot","America/Port_of_Spain|America/Montserrat","America/Port_of_Spain|America/St_Barthelemy","America/Port_of_Spain|America/St_Kitts","America/Port_of_Spain|America/St_Lucia","America/Port_of_Spain|America/St_Thomas","America/Port_of_Spain|America/St_Vincent","America/Port_of_Spain|America/Tortola","America/Port_of_Spain|America/Virgin","America/Regina|Canada/Saskatchewan","America/Rio_Branco|America/Porto_Acre","America/Rio_Branco|Brazil/Acre","America/Santiago|Chile/Continental","America/Sao_Paulo|Brazil/East","America/St_Johns|Canada
40505/Newfoundland","America/Tijuana|America/Ensenada","America/Tijuana|America/Santa_Isabel","America/Tijuana|Mexico/BajaNorte","America/Toronto|America/Montreal","America/Toronto|Canada/Eastern","America/Vancouver|Canada/Pacific","America/Whitehorse|Canada/Yukon","America/Winnipeg|Canada/Central","Asia/Ashgabat|Asia/Ashkhabad","Asia/Bangkok|Asia/Phnom_Penh","Asia/Bangkok|Asia/Vientiane","Asia/Dhaka|Asia/Dacca","Asia/Dubai|Asia/Muscat","Asia/Ho_Chi_Minh|Asia/Saigon","Asia/Hong_Kong|Hongkong","Asia/Jerusalem|Asia/Tel_Aviv","Asia/Jerusalem|Israel","Asia/Kathmandu|Asia/Katmandu","Asia/Kolkata|Asia/Calcutta","Asia/Kuala_Lumpur|Asia/Singapore","Asia/Kuala_Lumpur|Singapore","Asia/Macau|Asia/Macao","Asia/Makassar|Asia/Ujung_Pandang","Asia/Nicosia|Europe/Nicosia","Asia/Qatar|Asia/Bahrain","Asia/Rangoon|Asia/Yangon","Asia/Riyadh|Asia/Aden","Asia/Riyadh|Asia/Kuwait","Asia/Seoul|ROK","Asia/Shanghai|Asia/Chongqing","Asia/Shanghai|Asia/Chungking","Asia/Shanghai|Asia/Harbin","Asia/Shanghai|PRC","Asia/Taipei|ROC","Asia/Tehran|Iran","Asia/Thimphu|Asia/Thimbu","Asia/Tokyo|Japan","Asia/Ulaanbaatar|Asia/Ulan_Bator","Asia/Urumqi|Asia/Kashgar","Atlantic/Faroe|Atlantic/Faeroe","Atlantic/Reykjavik|Iceland","Atlantic/South_Georgia|Etc/GMT+2","Australia/Adelaide|Australia/South","Australia/Brisbane|Australia/Queensland","Australia/Broken_Hill|Australia/Yancowinna","Australia/Darwin|Australia/North","Australia/Hobart|Australia/Currie","Australia/Hobart|Australia/Tasmania","Australia/Lord_Howe|Australia/LHI","Australia/Melbourne|Australia/Victoria","Australia/Perth|Australia/West","Australia/Sydney|Australia/ACT","Australia/Sydney|Australia/Canberra","Australia/Sydney|Australia/NSW","Etc/GMT-0|Etc/GMT","Etc/GMT-0|Etc/GMT+0","Etc/GMT-0|Etc/GMT0","Etc/GMT-0|Etc/Greenwich","Etc/GMT-0|GMT","Etc/GMT-0|GMT+0","Etc/GMT-0|GMT-0","Etc/GMT-0|GMT0","Etc/GMT-0|Greenwich","Etc/UTC|Etc/UCT","Etc/UTC|Etc/Universal","Etc/UTC|Etc/Zulu","Etc/UTC|UCT","Etc/UTC|UTC","Etc/UTC|Universal","Etc/UTC|Zulu","Europe/Belgrade|Europe/Ljubljana","Europe/Belgrade|Europe/Podgorica","Europe/Belgrade|Europe/Sarajevo","Europe/Belgrade|Europe/Skopje","Europe/Belgrade|Europe/Zagreb","Europe/Chisinau|Europe/Tiraspol","Europe/Dublin|Eire","Europe/Helsinki|Europe/Mariehamn","Europe/Istanbul|Asia/Istanbul","Europe/Istanbul|Turkey","Europe/Lisbon|Portugal","Europe/London|Europe/Belfast","Europe/London|Europe/Guernsey","Europe/London|Europe/Isle_of_Man","Europe/London|Europe/Jersey","Europe/London|GB","Europe/London|GB-Eire","Europe/Moscow|W-SU","Europe/Oslo|Arctic/Longyearbyen","Europe/Oslo|Atlantic/Jan_Mayen","Europe/Prague|Europe/Bratislava","Europe/Rome|Europe/San_Marino","Europe/Rome|Europe/Vatican","Europe/Warsaw|Poland","Europe/Zurich|Europe/Busingen","Europe/Zurich|Europe/Vaduz","Indian/Christmas|Etc/GMT-7","Pacific/Auckland|Antarctica/McMurdo","Pacific/Auckland|Antarctica/South_Pole","Pacific/Auckland|NZ","Pacific/Chatham|NZ-CHAT","Pacific/Chuuk|Pacific/Truk","Pacific/Chuuk|Pacific/Yap","Pacific/Easter|Chile/EasterIsland","Pacific/Guam|Pacific/Saipan","Pacific/Honolulu|Pacific/Johnston","Pacific/Honolulu|US/Hawaii","Pacific/Kwajalein|Kwajalein","Pacific/Pago_Pago|Pacific/Midway","Pacific/Pago_Pago|Pacific/Samoa","Pacific/Pago_Pago|US/Samoa","Pacific/Palau|Etc/GMT-9","Pacific/Pohnpei|Pacific/Ponape","Pacific/Port_Moresby|Etc/GMT-10","Pacific/Tarawa|Etc/GMT-12","Pacific/Tarawa|Pacific/Funafuti","Pacific/Tarawa|Pacific/Wake","Pacific/Tarawa|Pacific/Wallis"],"countries":["AD|Europe/Andorra","AE|Asia/Dubai","AF|Asia/Kabul","AG|America/Port_of_Spain America/Antigua","AI|America/Port_of_Spain America/Anguilla","AL|Europe/Tirane","AM|Asia/Yerevan","AO|Africa/Lagos Africa/Luanda","AQ|Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Mawson Antarctica/Palmer Antarctica/Rothera Antarctica/Syowa Antarctica/Troll Antarctica/Vostok Pacific/Auckland Antarctica/McMurdo","AR|America/Argentina/Buenos_Aires America/Argentina/Cordoba America/Argentina/Salta America/Argentina/Jujuy America/Argentina/Tucuman America/Argentina/Catamarca America/Argentina/La_Rioja America/Argentina/San_Juan America/Argentina/Mendoza America/Argentina/San_Luis America/Argentina/Rio_Gallegos America/Argentina/Ushuaia","AS|Pacific/Pago_Pago","AT|Europe/Vienna","AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Currie Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla","AW|America/Curacao America/Aruba","AX|Europe/Helsinki Europe/Mariehamn","AZ|Asia/Baku","BA|Europe/Belgrade Europe/Sarajevo","BB|America/Barbados","BD|Asia/Dhaka","BE|Europe/Brussels","BF|Africa/Abidjan Africa/Ouagadougou","BG|Europe/Sofia","BH|Asia/Qatar Asia/Bahrain","BI|Africa/Maputo Africa/Bujumbura","BJ|Africa/Lagos Africa/Porto-Novo","BL|America/Port_of_Spain America/St_Barthelemy","BM|Atlantic/Bermuda","BN|Asia/Brunei","BO|America/La_Paz","BQ|America/Curacao America/Kralendijk","BR|America/Noronha America/Belem America/Fortaleza America/Recife America/Araguaina America/Maceio America/Bahia America/Sao_Paulo America/Campo_Grande America/Cuiaba America/Santarem America/Porto_Velho America/Boa_Vista America/Manaus America/Eirunepe America/Rio_Branco","BS|America/Nassau","BT|Asia/Thimphu","BW|Africa/Maputo Africa/Gaborone","BY|Europe/Minsk","BZ|America/Belize","CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Blanc-Sablon America/Toronto America/Nipigon America/Thunder_Bay America/Iqaluit America/Pangnirtung America/Atikokan America/Winnipeg America/Rainy_River America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Yellowknife America/Inuvik America/Creston America/Dawson_Creek America/Fort_Nelson America/Vancouver America/Whitehorse America/Dawson","CC|Indian/Cocos","CD|Africa/Maputo Africa/Lagos Africa/Kinshasa Africa/Lubumbashi","CF|Africa/Lagos Africa/Bangui","CG|Africa/Lagos Africa/Brazzaville","CH|Europe/Zurich","CI|Africa/Abidjan","CK|Pacific/Rarotonga","CL|America/Santiago America/Punta_Arenas Pacific/Easter","CM|Africa/Lagos Africa/Douala","CN|Asia/Shanghai Asia/Urumqi","CO|America/Bogota","CR|America/Costa_Rica","CU|America/Havana","CV|Atlantic/Cape_Verde","CW|America/Curacao","CX|Indian/Christmas","CY|Asia/Nicosia Asia/Famagusta","CZ|Europe/Prague","DE|Europe/Zurich Europe/Berlin Europe/Busingen","DJ|Africa/Nairobi Africa/Djibouti","DK|Europe/Copenhagen","DM|America/Port_of_Spain America/Dominica","DO|America/Santo_Domingo","DZ|Africa/Algiers","EC|America/Guayaquil Pacific/Galapagos","EE|Europe/Tallinn","EG|Africa/Cairo","EH|Africa/El_Aaiun","ER|Africa/Nairobi Africa/Asmara","ES|Europe/Madrid Africa/Ceuta Atlantic/Canary","ET|Africa/Nairobi Africa/Addis_Ababa","FI|Europe/Helsinki","FJ|Pacific/Fiji","FK|Atlantic/Stanley","FM|Pacific/Chuuk Pacific/Pohnpei Pacific/Kosrae","FO|Atlantic/Faroe","FR|Europe/Paris","GA|Africa/Lagos Africa/Libreville","GB|Europe/London","GD|America/Port_of_Spain America/Grenada","GE|Asia/Tbilisi","GF|America/Cayenne","GG|Europe/London
40505Europe/Guernsey","GH|Africa/Accra","GI|Europe/Gibraltar","GL|America/Nuuk America/Danmarkshavn America/Scoresbysund America/Thule","GM|Africa/Abidjan Africa/Banjul","GN|Africa/Abidjan Africa/Conakry","GP|America/Port_of_Spain America/Guadeloupe","GQ|Africa/Lagos Africa/Malabo","GR|Europe/Athens","GS|Atlantic/South_Georgia","GT|America/Guatemala","GU|Pacific/Guam","GW|Africa/Bissau","GY|America/Guyana","HK|Asia/Hong_Kong","HN|America/Tegucigalpa","HR|Europe/Belgrade Europe/Zagreb","HT|America/Port-au-Prince","HU|Europe/Budapest","ID|Asia/Jakarta Asia/Pontianak Asia/Makassar Asia/Jayapura","IE|Europe/Dublin","IL|Asia/Jerusalem","IM|Europe/London Europe/Isle_of_Man","IN|Asia/Kolkata","IO|Indian/Chagos","IQ|Asia/Baghdad","IR|Asia/Tehran","IS|Atlantic/Reykjavik","IT|Europe/Rome","JE|Europe/London Europe/Jersey","JM|America/Jamaica","JO|Asia/Amman","JP|Asia/Tokyo","KE|Africa/Nairobi","KG|Asia/Bishkek","KH|Asia/Bangkok Asia/Phnom_Penh","KI|Pacific/Tarawa Pacific/Enderbury Pacific/Kiritimati","KM|Africa/Nairobi Indian/Comoro","KN|America/Port_of_Spain America/St_Kitts","KP|Asia/Pyongyang","KR|Asia/Seoul","KW|Asia/Riyadh Asia/Kuwait","KY|America/Panama America/Cayman","KZ|Asia/Almaty Asia/Qyzylorda Asia/Qostanay Asia/Aqtobe Asia/Aqtau Asia/Atyrau Asia/Oral","LA|Asia/Bangkok Asia/Vientiane","LB|Asia/Beirut","LC|America/Port_of_Spain America/St_Lucia","LI|Europe/Zurich Europe/Vaduz","LK|Asia/Colombo","LR|Africa/Monrovia","LS|Africa/Johannesburg Africa/Maseru","LT|Europe/Vilnius","LU|Europe/Luxembourg","LV|Europe/Riga","LY|Africa/Tripoli","MA|Africa/Casablanca","MC|Europe/Monaco","MD|Europe/Chisinau","ME|Europe/Belgrade Europe/Podgorica","MF|America/Port_of_Spain America/Marigot","MG|Africa/Nairobi Indian/Antananarivo","MH|Pacific/Majuro Pacific/Kwajalein","MK|Europe/Belgrade Europe/Skopje","ML|Africa/Abidjan Africa/Bamako","MM|Asia/Yangon","MN|Asia/Ulaanbaatar Asia/Hovd Asia/Choibalsan","MO|Asia/Macau","MP|Pacific/Guam Pacific/Saipan","MQ|America/Martinique","MR|Africa/Abidjan Africa/Nouakchott","MS|America/Port_of_Spain America/Montserrat","MT|Europe/Malta","MU|Indian/Mauritius","MV|Indian/Maldives","MW|Africa/Maputo Africa/Blantyre","MX|America/Mexico_City America/Cancun America/Merida America/Monterrey America/Matamoros America/Mazatlan America/Chihuahua America/Ojinaga America/Hermosillo America/Tijuana America/Bahia_Banderas","MY|Asia/Kuala_Lumpur Asia/Kuching","MZ|Africa/Maputo","NA|Africa/Windhoek","NC|Pacific/Noumea","NE|Africa/Lagos Africa/Niamey","NF|Pacific/Norfolk","NG|Africa/Lagos","NI|America/Managua","NL|Europe/Amsterdam","NO|Europe/Oslo","NP|Asia/Kathmandu","NR|Pacific/Nauru","NU|Pacific/Niue","NZ|Pacific/Auckland Pacific/Chatham","OM|Asia/Dubai Asia/Muscat","PA|America/Panama","PE|America/Lima","PF|Pacific/Tahiti Pacific/Marquesas Pacific/Gambier","PG|Pacific/Port_Moresby Pacific/Bougainville","PH|Asia/Manila","PK|Asia/Karachi","PL|Europe/Warsaw","PM|America/Miquelon","PN|Pacific/Pitcairn","PR|America/Puerto_Rico","PS|Asia/Gaza Asia/Hebron","PT|Europe/Lisbon Atlantic/Madeira Atlantic/Azores","PW|Pacific/Palau","PY|America/Asuncion","QA|Asia/Qatar","RE|Indian/Reunion","RO|Europe/Bucharest","RS|Europe/Belgrade","RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Astrakhan Europe/Volgograd Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr","RW|Africa/Maputo Africa/Kigali","SA|Asia/Riyadh","SB|Pacific/Guadalcanal","SC|Indian/Mahe","SD|Africa/Khartoum","SE|Europe/Stockholm","SG|Asia/Singapore","SH|Africa/Abidjan Atlantic/St_Helena","SI|Europe/Belgrade Europe/Ljubljana","SJ|Europe/Oslo Arctic/Longyearbyen","SK|Europe/Prague Europe/Bratislava","SL|Africa/Abidjan Africa/Freetown","SM|Europe/Rome Europe/San_Marino","SN|Africa/Abidjan Africa/Dakar","SO|Africa/Nairobi Africa/Mogadishu","SR|America/Paramaribo","SS|Africa/Juba","ST|Africa/Sao_Tome","SV|America/El_Salvador","SX|America/Curacao America/Lower_Princes","SY|Asia/Damascus","SZ|Africa/Johannesburg Africa/Mbabane","TC|America/Grand_Turk","TD|Africa/Ndjamena","TF|Indian/Reunion Indian/Kerguelen","TG|Africa/Abidjan Africa/Lome","TH|Asia/Bangkok","TJ|Asia/Dushanbe","TK|Pacific/Fakaofo","TL|Asia/Dili","TM|Asia/Ashgabat","TN|Africa/Tunis","TO|Pacific/Tongatapu","TR|Europe/Istanbul","TT|America/Port_of_Spain","TV|Pacific/Funafuti","TW|Asia/Taipei","TZ|Africa/Nairobi Africa/Dar_es_Salaam","UA|Europe/Simferopol Europe/Kiev Europe/Uzhgorod Europe/Zaporozhye","UG|Africa/Nairobi Africa/Kampala","UM|Pacific/Pago_Pago Pacific/Wake Pacific/Honolulu Pacific/Midway","US|America/Ne
40505w_York America/Detroit America/Kentucky/Louisville America/Kentucky/Monticello America/Indiana/Indianapolis America/Indiana/Vincennes America/Indiana/Winamac America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Vevay America/Chicago America/Indiana/Tell_City America/Indiana/Knox America/Menominee America/North_Dakota/Center America/North_Dakota/New_Salem America/North_Dakota/Beulah America/Denver America/Boise America/Phoenix America/Los_Angeles America/Anchorage America/Juneau America/Sitka America/Metlakatla America/Yakutat America/Nome America/Adak Pacific/Honolulu","UY|America/Montevideo","UZ|Asia/Samarkand Asia/Tashkent","VA|Europe/Rome Europe/Vatican","VC|America/Port_of_Spain America/St_Vincent","VE|America/Caracas","VG|America/Port_of_Spain America/Tortola","VI|America/Port_of_Spain America/St_Thomas","VN|Asia/Bangkok Asia/Ho_Chi_Minh","VU|Pacific/Efate","WF|Pacific/Wallis","WS|Pacific/Apia","YE|Asia/Riyadh Asia/Aden","YT|Africa/Nairobi Indian/Mayotte","ZA|Africa/Johannesburg","ZM|Africa/Maputo Africa/Lusaka","ZW|Africa/Maputo Africa/Harare"]} 40506 40507/***/ }), 40508/* 155 */ 40509/***/ (function(module, __webpack_exports__, __webpack_require__) { 40510 40511"use strict"; 40512var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 40513 40514function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 40515 40516var YearSelector = function () { 40517 function YearSelector() { 40518 _classCallCheck(this, YearSelector); 40519 } 40520 40521 _createClass(YearSelector, [{ 40522 key: 'init', 40523 40524 40525 /** 40526 * Changes URL passed from year select 40527 * Expects selector to have id #YearSelector 40528 */ 40529 40530 value: function init() { 40531 var _this = this; 40532 40533 var currentLocation = window.location.href; 40534 var selector = document.getElementById('YearSelector'); 40535 if (selector) { 40536 var prev_year = selector.value; 40537 var url = currentLocation.split('/' + prev_year)[0]; 40538 document.getElementById('YearSelector').addEventListener('change', function (event) { 40539 return _this.updateYear(event, url); 40540 }); 40541 } 40542 } 40543 }, { 40544 key: 'updateYear', 40545 value: function updateYear(event, url) { 40546 var newYear = event.target.value; 40547 if (newYear !== 'allyears') { 40548 var urlParts = url.split('?'); 40549 url = urlParts[0] + '/' + newYear; 40550 } 40551 window.location.href = url; 40552 } 40553 }]); 40554 40555 return YearSelector; 40556}(); 40557 40558/* harmony default export */ __webpack_exports__["a"] = (new YearSelector()); 40559 40560/***/ }), 40561/* 156 */ 40562/***/ (function(module, __webpack_exports__, __webpack_require__) { 40563 40564"use strict"; 40565var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 40566 40567function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 40568 40569var Navigation = function () { 40570 function Navigation() { 40571 _classCallCheck(this, Navigation); 40572 } 40573 40574 _createClass(Navigation, [{ 40575 key: 'init',
40576 value: function init() { 40577 var eventType = 'ontouchstart' in document.documentElement === true ? 'touchstart' : 'click'; 40578 var elems = document.querySelectorAll('.primary-level-item'); 40579 var hoverThreshold = 992; 40580 40581 // Mouse users 40582 // https://www.w3.org/WAI/tutorials/menus/flyout/#mouse-users 40583 elems.forEach(function (el) { 40584 var hasChildWithClass = el.querySelector('.second-level-nav__container') !== null; 40585 40586 if (!hasChildWithClass) { 40587 return; 40588 } 40589 40590 var closeAction = function closeAction(target) { 40591 target.parentNode.classList.remove('active'); 40592 target.setAttribute('aria-expanded', 'false'); 40593 40594 // Remove esc event listener 40595 if (target.escController) { 40596 target.escController.abort(); 40597 40598 // eslint-disable-next-line no-param-reassign 40599 delete target.escController; 40600 } 40601 }; 40602 40603 var escapeEvent = function escapeEvent(closeEvt, target) { 40604 if (closeEvt.key === 'Escape') { 40605 closeEvt.stopPropagation(); 40606 closeAction(target); 40607 } 40608 }; 40609 40610 var closeOtherDropdowns = function closeOtherDropdowns() { 40611 document.querySelectorAll('.primary-level-item.active [aria-expanded]').forEach(function (dropdown) { 40612 return closeAction(dropdown); 40613 }); 40614 }; 40615 40616 var openAction = function openAction(target) { 40617 closeOtherDropdowns(); 40618 target.parentNode.classList.add('active'); 40619 target.setAttribute('aria-expanded', 'true'); 40620 40621 // Allow removal of esc event listener 40622 var escController = new AbortController(); 40623 // eslint-disable-next-line no-param-reassign 40624 target.escController = escController; 40625 document.addEventListener('keydown', function (evt) { 40626 return escapeEvent(evt, target); 40627 }, { 40628 signal: escController.signal 40629 }); 40630 }; 40631 40632 // Keyboard users 40633 // https://www.w3.org/WAI/tutorials/menus/flyout/#use-button-as-toggle 40634 var childNavButton = el.querySelector('button'); 40635 if (childNavButton) { 40636 childNavButton.addEventListener(eventType, function (evt) { 40637 if (evt.target.parentNode.classList.contains('active')) { 40638 closeAction(evt.target); 40639 return; 40640 } 40641 openAction(evt.target); 40642 }); 40643 } 40644 40645 // Check screen width before adding hover event listeners 40646 if (window.innerWidth > hoverThreshold) { 40647 el.addEventListener('mouseover', function () { 40648 openAction(childNavButton); 40649 }); 40650 40651 el.addEventListener('mouseout', function () { 40652 closeAction(childNavButton); 40653 }); 40654 } 40655 40656 var primaryNavContainer = el.querySelector('.second-level-nav'); 40657 40658 primaryNavContainer.addEventListener('focusout', function (e) { 40659 if (primaryNavContainer.contains(e.relatedTarget)) { 40660 return; 40661 } 40662 // Pass in button to use same function 40663 closeAction(childNavButton); 40664 }); 40665 }); 40666 } 40667 }]); 40668 40669 return Navigation; 40670}(); 40671 40672/* harmony default export */ __webpack_exports__["a"] = (new Navigation()); 40673 40674/***/ }), 40675/* 157 */ 40676/***/ (function(module, __webpack_exports__, __webpack_require__) { 40677 40678"use strict"; 40679/* unused harmony export MenuToggle */ 40680/* harmony export (immutable) */ __webpack_exports__["a"] = init; 40681/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_throttle_debounce__ = __webpack_require__(158); 40682// import { createFocusTrap } from 'focus-trap'; 40683 40684 40685var componentSelector = '[data-menu-toggle]'; 40686 40687var toggleMenu = function toggleMenu(menu) { 40688 var setToVisible = menu.getAttribute('aria-expanded') === 'false'; 40689 menu.setAttribute('aria-expanded', setToVisible); 40690 40691 if (menu.escEventAbort && menu.escEventAbort.abort) { 40692 menu.escEventAbort.abort(); 40693 } 40694 if (menu.menuFocusTrap && menu.menuFocusTrap.deactivate) { 40695 menu.menuFocusTrap.deactivate(); 40696 } 40697}; 40698 40699// Close any open menus if the screen gets resized to the medium breakpoint 40700window.addEventListener('resize', Object(__WEBPACK_IMPORTED_MODULE_0_throttle_debounce__["a" /* throttle */])(200, function () { 40701 if (window.innerWidth >= 768) { 40702 document.querySelectorAll(componentSelector).forEach(function () { 40703 var menu = document.querySelector('[data-menu]'); 40704 40705 if (menu.escEventAbort && menu.escEventAbort.abort) { 40706 menu.escEventAbort.abort(); 40707 } 40708 if (menu.menuFocusTrap && menu.menuFocusTrap.deactivate) { 40709 menu.menuFocusTrap.deactivate(); 40710 } 40711 }); 40712 } 40713})); 40714 40715/** 40716 * Menu controls on mobile 40717 * 40718 * @param {HTMLElement} el 40719 * @returns 40720 */ 40721var MenuToggle = function MenuToggle(el) { 40722 var menuNames = el.getAttribute('aria-controls').split(' '); 40723
40724 menuNames.forEach(function (menuName) { 40725 var menu = document.querySelector('#' + menuName); 40726 40727 if (!menu) return; 40728 40729 el.addEventListener('click', function () { 40730 return toggleMenu(menu); 40731 }); 40732 }); 40733}; 40734 40735function init() { 40736 var scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document; 40737 40738 scope.querySelectorAll(componentSelector).forEach(function (el) { 40739 return MenuToggle(el); 40740 }); 40741} 40742 40743/***/ }), 40744/* 158 */ 40745/***/ (function(module, __webpack_exports__, __webpack_require__) { 40746 40747"use strict"; 40748/* unused harmony export debounce */ 40749/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return throttle; }); 40750/* eslint-disable no-undefined,no-param-reassign,no-shadow */ 40751 40752/** 40753 * Throttle execution of a function. Especially useful for rate limiting 40754 * execution of handlers on events like resize and scroll. 40755 * 40756 * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) 40757 * are most useful. 40758 * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, 40759 * as-is, to `callback` when the throttled-function is executed. 40760 * @param {object} [options] - An object to configure options. 40761 * @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds 40762 * while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed 40763 * one final time after the last throttled-function call. (After the throttled-function has not been called for 40764 * `delay` milliseconds, the internal counter is reset). 40765 * @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback 40766 * immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that 40767 * callback will never executed if both noLeading = true and noTrailing = true. 40768 * @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is 40769 * false (at end), schedule `callback` to execute after `delay` ms. 40770 * 40771 * @returns {Function} A new, throttled, function. 40772 */ 40773function throttle (delay, callback, options) { 40774 var _ref = options || {}, 40775 _ref$noTrailing = _ref.noTrailing, 40776 noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing, 40777 _ref$noLeading = _ref.noLeading, 40778 noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading, 40779 _ref$debounceMode = _ref.debounceMode, 40780 debounceMode = _ref$debounceMode === void 0 ? undefined : _ref$debounceMode; 40781 /* 40782 * After wrapper has stopped being called, this timeout ensures that 40783 * `callback` is executed at the proper times in `throttle` and `end` 40784 * debounce modes. 40785 */ 40786 40787 40788 var timeoutID; 40789 var cancelled = false; // Keep track of the last time `callback` was executed. 40790 40791 var lastExec = 0; // Function to clear existing timeout 40792 40793 function clearExistingTimeout() { 40794 if (timeoutID) { 40795 clearTimeout(timeoutID); 40796 } 40797 } // Function to cancel next exec 40798 40799 40800 function cancel(options) { 40801 var _ref2 = options || {}, 40802 _ref2$upcomingOnly = _ref2.upcomingOnly, 40803 upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly; 40804 40805 clearExistingTimeout(); 40806 cancelled = !upcomingOnly; 40807 } 40808 /* 40809 * The `wrapper` function encapsulates all of the throttling / debouncing 40810 * functionality and when executed will limit the rate at which `callback` 40811 * is executed. 40812 */ 40813 40814 40815 function wrapper() { 40816 for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) { 40817 arguments_[_key] = arguments[_key]; 40818 } 40819 40820 var self = this;
vendor: 4,328 bytes, lines 40821-40937
40821 var elapsed = Date.now() - lastExec; 40822 40823 if (cancelled) { 40824 return; 40825 } // Execute `callback` and update the `lastExec` timestamp. 40826 40827 40828 function exec() { 40829 lastExec = Date.now(); 40830 callback.apply(self, arguments_); 40831 } 40832 /* 40833 * If `debounceMode` is true (at begin) this is used to clear the flag 40834 * to allow future `callback` executions. 40835 */ 40836 40837 40838 function clear() { 40839 timeoutID = undefined; 40840 } 40841 40842 if (!noLeading && debounceMode && !timeoutID) { 40843 /* 40844 * Since `wrapper` is being called for the first time and 40845 * `debounceMode` is true (at begin), execute `callback` 40846 * and noLeading != true. 40847 */ 40848 exec(); 40849 } 40850 40851 clearExistingTimeout(); 40852 40853 if (debounceMode === undefined && elapsed > delay) { 40854 if (noLeading) { 40855 /* 40856 * In throttle mode with noLeading, if `delay` time has 40857 * been exceeded, update `lastExec` and schedule `callback` 40858 * to execute after `delay` ms. 40859 */ 40860 lastExec = Date.now(); 40861 40862 if (!noTrailing) { 40863 timeoutID = setTimeout(debounceMode ? clear : exec, delay); 40864 } 40865 } else { 40866 /* 40867 * In throttle mode without noLeading, if `delay` time has been exceeded, execute 40868 * `callback`. 40869 */ 40870 exec(); 40871 } 40872 } else if (noTrailing !== true) { 40873 /* 40874 * In trailing throttle mode, since `delay` time has not been 40875 * exceeded, schedule `callback` to execute `delay` ms after most 40876 * recent execution. 40877 * 40878 * If `debounceMode` is true (at begin), schedule `clear` to execute 40879 * after `delay` ms. 40880 * 40881 * If `debounceMode` is false (at end), schedule `callback` to 40882 * execute after `delay` ms. 40883 */ 40884 timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay); 40885 } 40886 } 40887 40888 wrapper.cancel = cancel; // Return the wrapper function. 40889 40890 return wrapper; 40891} 40892 40893/* eslint-disable no-undefined */ 40894/** 40895 * Debounce execution of a function. Debouncing, unlike throttling, 40896 * guarantees that a function is only executed a single time, either at the 40897 * very beginning of a series of calls, or at the very end. 40898 * 40899 * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful. 40900 * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is, 40901 * to `callback` when the debounced-function is executed. 40902 * @param {object} [options] - An object to configure options. 40903 * @param {boolean} [options.atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds 40904 * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call. 40905 * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset). 40906 * 40907 * @returns {Function} A new, debounced function. 40908 */ 40909 40910function debounce (delay, callback, options) { 40911 var _ref = options || {}, 40912 _ref$atBegin = _ref.atBegin, 40913 atBegin = _ref$atBegin === void 0 ? false : _ref$atBegin; 40914 40915 return throttle(delay, callback, { 40916 debounceMode: atBegin !== false 40917 }); 40918} 40919 40920 40921//# sourceMappingURL=index.js.map 40922 40923 40924/***/ }), 40925/* 159 */ 40926/***/ (function(module, __webpack_exports__, __webpack_require__) { 40927 40928"use strict"; 40929/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__ = __webpack_require__(160); 40930/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__); 40931/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_dompurify__ = __webpack_require__(163); 40932/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_dompurify___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_dompurify__); 40933 40934 40935var _this = this; 40936 40937function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { tr
40937y { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } 40938 40939 40940 40941var ScheduledBanner = function ScheduledBanner() { 40942 var holders = document.querySelectorAll('[data-scheduled-banner]'); 40943 holders.forEach(function () { 40944 var _ref = _asyncToGenerator( /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee(holder) { 40945 var url, response, html, sanitizedHTML; 40946 return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee$(_context) { 40947 while (1) { 40948 switch (_context.prev = _context.next) { 40949 case 0: 40950 url = holder.dataset.scheduledBanner; 40951 40952 if (!url) { 40953 _context.next = 12; 40954 break; 40955 } 40956 40957 _context.next = 4; 40958 return fetch(url, { 40959 headers: { 40960 'x-requested-with': 'XMLHttpRequest' 40961 } 40962 }); 40963 40964 case 4: 40965 response = _context.sent; 40966 40967 if (response.ok) { 40968 _context.next = 7; 40969 break; 40970 } 40971 40972 return _context.abrupt('return'); 40973 40974 case 7: 40975 _context.next = 9; 40976 return response.text(); 40977 40978 case 9: 40979 html = _context.sent; 40980 sanitizedHTML = __WEBPACK_IMPORTED_MODULE_1_dompurify___default.a.sanitize(html); 40981 40982 40983 if (sanitizedHTML.length > 0) { 40984 holder.innerHTML = sanitizedHTML; 40985 holder.style.maxHeight = holder.scrollHeight + 'px'; 40986 } 40987 40988 case 12: 40989 case 'end': 40990 return _context.stop(); 40991 } 40992 } 40993 }, _callee, _this); 40994 })); 40995 40996 return function (_x) { 40997 return _ref.apply(this, arguments); 40998 }; 40999 }()); 41000}; 41001 41002/* harmony default export */ __webpack_exports__["a"] = (ScheduledBanner); 41003 41004/***/ }), 41005/* 160 */ 41006/***/ (function(module, exports, __webpack_require__) { 41007 41008module.exports = __webpack_require__(161); 41009 41010 41011/***/ }), 41012/* 161 */ 41013/***/ (function(module, exports, __webpack_require__) { 41014 41015/** 41016 * Copyright (c) 2014-present, Facebook, Inc. 41017 * 41018 * This source code is licensed under the MIT license found in the 41019 * LICENSE file in the root directory of this source tree. 41020 */ 41021 41022// This method of obtaining a reference to the global object needs to be 41023// kept identical to the way it is obtained in runtime.js 41024var g = (function() { return this })() || Function("return this")(); 41025 41026// Use `getOwnPropertyNames` because not all browsers support calling 41027// `hasOwnProperty` on the global `self` object in a worker. See #183. 41028var hadRuntime = g.regeneratorRuntime && 41029 Object.getOwnPropertyNames(g).indexOf("regeneratorRuntime") >= 0; 41030 41031// Save the old regeneratorRuntime in case it needs to be restored later. 41032var oldRuntime = hadRuntime && g.regeneratorRuntime; 41033 41034// Force reevalutation of runtime.js. 41035g.regeneratorRuntime = undefined; 41036 41037module.exports = __webpack_require__(162); 41038 41039if (hadRuntime) { 41040 // Restore the original runtime. 41041 g.regeneratorRuntime = oldRuntime; 41042} else { 41043 // Remove the global property added by runtime.js. 41044 try { 41045 delete g.regeneratorRuntime; 41046 } catch(e) { 41047 g.regeneratorRuntime = undefined; 41048 } 41049} 41050 41051 41052/***/ }), 41053/* 162
vendor: 24,180 bytes, lines 41053-41786
41053 */ 41054/***/ (function(module, exports) { 41055 41056/** 41057 * Copyright (c) 2014-present, Facebook, Inc. 41058 * 41059 * This source code is licensed under the MIT license found in the 41060 * LICENSE file in the root directory of this source tree. 41061 */ 41062 41063!(function(global) { 41064 "use strict"; 41065 41066 var Op = Object.prototype; 41067 var hasOwn = Op.hasOwnProperty; 41068 var undefined; // More compressible than void 0. 41069 var $Symbol = typeof Symbol === "function" ? Symbol : {}; 41070 var iteratorSymbol = $Symbol.iterator || "@@iterator"; 41071 var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; 41072 var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; 41073 41074 var inModule = typeof module === "object"; 41075 var runtime = global.regeneratorRuntime; 41076 if (runtime) { 41077 if (inModule) { 41078 // If regeneratorRuntime is defined globally and we're in a module, 41079 // make the exports object identical to regeneratorRuntime. 41080 module.exports = runtime; 41081 } 41082 // Don't bother evaluating the rest of this file if the runtime was 41083 // already defined globally. 41084 return; 41085 } 41086 41087 // Define the runtime globally (as expected by generated code) as either 41088 // module.exports (if we're in a module) or a new, empty object. 41089 runtime = global.regeneratorRuntime = inModule ? module.exports : {}; 41090 41091 function wrap(innerFn, outerFn, self, tryLocsList) { 41092 // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. 41093 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; 41094 var generator = Object.create(protoGenerator.prototype); 41095 var context = new Context(tryLocsList || []); 41096 41097 // The ._invoke method unifies the implementations of the .next, 41098 // .throw, and .return methods. 41099 generator._invoke = makeInvokeMethod(innerFn, self, context); 41100 41101 return generator; 41102 } 41103 runtime.wrap = wrap; 41104 41105 // Try/catch helper to minimize deoptimizations. Returns a completion 41106 // record like context.tryEntries[i].completion. This interface could 41107 // have been (and was previously) designed to take a closure to be 41108 // invoked without arguments, but in all the cases we care about we 41109 // already have an existing method we want to call, so there's no need 41110 // to create a new function object. We can even get away with assuming 41111 // the method takes exactly one argument, since that happens to be true 41112 // in every case, so we don't have to touch the arguments object. The 41113 // only additional allocation required is the completion record, which 41114 // has a stable shape and so hopefully should be cheap to allocate. 41115 function tryCatch(fn, obj, arg) { 41116 try { 41117 return { type: "normal", arg: fn.call(obj, arg) }; 41118 } catch (err) { 41119 return { type: "throw", arg: err }; 41120 } 41121 } 41122 41123 var GenStateSuspendedStart = "suspendedStart"; 41124 var GenStateSuspendedYield = "suspendedYield"; 41125 var GenStateExecuting = "executing"; 41126 var GenStateCompleted = "completed"; 41127 41128 // Returning this object from the innerFn has the same effect as 41129 // breaking out of the dispatch switch statement. 41130 var ContinueSentinel = {}; 41131 41132 // Dummy constructor functions that we use as the .constructor and 41133 // .constructor.prototype properties for functions that return Generator 41134 // objects. For full spec compliance, you may wish to configure your 41135 // minifier not to mangle the names of these two functions. 41136 function Generator() {} 41137 function GeneratorFunction() {} 41138 function GeneratorFunctionPrototype() {} 41139 41140 // This is a polyfill for %IteratorPrototype% for environments that 41141 // don't natively support it. 41142 var IteratorPrototype = {}; 41143 IteratorPrototype[iteratorSymbol] = function () { 41144 return this; 41145 }; 41146 41147 var getProto = Object.getPrototypeOf; 41148 var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); 41149 if (NativeIteratorPrototype && 41150 NativeIteratorPrototype !== Op && 41151 hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { 41152 // This environment has a native %IteratorPrototype%; use it instead 41153 // of the polyfill. 41154 IteratorPrototype = NativeIteratorPrototype; 41155 } 41156 41157 var Gp = GeneratorFunctionPrototype.prototype = 41158 Generator.prototype = Object.create(IteratorPrototype); 41159 GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; 41160 GeneratorFunctionPrototype.constructor = GeneratorFunction; 41161 GeneratorFunctionPrototype[toStringTagSymbol] = 41162 GeneratorFunction.displayName = "GeneratorFunction"; 41163 41164 // Helper for defining the .next, .throw, and .return methods of the 41165 // Iterator interface in terms of a single ._invoke method. 41166 function defineIteratorMethods(prototype) { 41167 ["next", "throw", "return"].forEach(function(method) { 41168 prototype[method] = function(arg) { 41169 return this._invoke(method, arg); 41170 }; 41171 }); 41172 } 41173 41174 runtime.isGeneratorFunction = function(genFun) { 41175 var ctor = typeof genFun === "function" && genFun.constructor; 41176 return ctor 41177 ? ctor === GeneratorFunction || 41178 // For the native GeneratorFunction constructor, the best we can 41179 // do is to check its .name property. 41180 (ctor.displayName || ctor.name) === "GeneratorFunction" 41181 : false; 41182 }; 41183 41184 runtime.mark = function(genFun) { 41185 if (Object.setPrototypeOf) { 41186 Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); 41187 } else { 41188 genFun.__proto__ = GeneratorFunctionPrototype; 41189 if (!(toStringTagSymbol in genFun)) { 41190 genFun[toStringTagSymbol] = "GeneratorFunction"; 41191 } 41192 } 41193 genFun.prototype = Object.create(Gp); 41194 return genFun; 41195 }; 41196 41197 // Within the body of any async function, `await x` is transformed to 41198 // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test 41199 // `hasOwn.call(value, "__await")` to determine if the yielded value is 41200 // meant to be awaited. 41201 runtime.awrap = function(arg) { 41202 return { __await: arg }; 41203 }; 41204 41205 function AsyncIterator(generator) { 41206 function invoke(method, arg, resolve, reject) { 41207 var record = tryCatch(generator[method], generator, arg); 41208 if (record.type === "throw") { 41209 reject(record.arg); 41210 } else { 41211 var result = record.arg; 41212 var value = result.value; 41213 if (value && 41214 typeof value === "object" && 41215 hasOwn.call(value, "__await")) { 41216 return Promise.resolve(value.__await).then(function(value) { 41217 invoke("next", value, resolve, reject); 41218 }, function(err) { 41219 invoke("throw", err, resolve, reject); 41220 }); 41221 } 41222 41223 return Promise.resolve(value).then(function(unwrapped) { 41224 // When a yielded Promise is resolved, its final value becomes 41225 // the .value of the Promise<{value,done}> result for the 41226 // current iteration. If the Promise is rejected, however, the 41227 // result for this iteration will be rejected with the same 41228 // reason. Note that rejections of yielded Promises are not 41229 // thrown back into the generator function, as is the case 41230 // when an awaited Promise is rejected. This difference in 41231 // behavior between yield and await is important, because it 41232 // allows the consumer to decide what to do with the yielded 41233 // rejection (swallow it and continue, manually .throw it back 41234 // into the generator, abandon iteration, whatever). With 41235 // await, by contrast, there is no opportunity to examine the 41236 // rejection reason outside the generator function, so the 41237 // only option is to throw it from the await expression, and 41238 // let the generator function handle the exception. 41239 result.value = unwrapped; 41240 resolve(result); 41241 }, reject); 41242 } 41243 } 41244 41245 var previousPromise; 41246 41247 function enqueue(method, arg) { 41248 function callInvokeWithMethodAndArg() { 41249 return new Promise(function(resolve, reject) { 41250 invoke(method, arg, resolve, reject); 41251 }); 41252 } 41253 41254 return previousPromise = 41255 // If enqueue has been called before, then we want to wait until 41256 // all previous Promises have been resolved before calling invoke, 41257 // so that results are always delivered in the correct order. If 41258 // enqueue has not been called before, then it is important to 41259 // call invoke immediately, without waiting on a callback to fire, 41260 // so that the async generator function has the opportunity to do 41261 // any necessary setup in a predictable way. This predictability 41262 // is why the Promise constructor synchronously invokes its 41263 // executor callback, and why async functions synchronously 41264 // execute code before the first await. Since we implement simple 41265 // async functions in terms of async generators, it is especially 41266 // important to get this right, even though it requires care. 41267 previousPromise ? previousPromise.then( 41268 callInvokeWithMethodAndArg, 41269 // Avoid propagating failures to Promises returned by later 41270 // invocations of the iterator. 41271 callInvokeWithMethodAndArg 41272 ) : callInvokeWithMethodAndArg(); 41273 } 41274 41275 // Define the unified helper method that is used to implement .next, 41276 // .throw, and .return (see defineIteratorMethods). 41277 this._invoke = enqueue; 41278 } 41279 41280 defineIteratorMethods(AsyncIterator.prototype); 41281 AsyncIterator.prototype[asyncIteratorSymbol] = function () { 41282 return this; 41283 }; 41284 runtime.AsyncIterator = AsyncIterator; 41285 41286 // Note that simple async functions are implemented on top of 41287 // AsyncIterator objects; they just return a Promise for the value of 41288 // the final result produced by the iterator. 41289 runtime.async = function(innerFn, outerFn, self, tryLocsList) { 41290 var iter = new AsyncIterator( 41291 wrap(innerFn, outerFn, self, tryLocsList) 41292 ); 41293 41294 return runtime.isGeneratorFunction(outerFn) 41295 ? iter // If outerFn is a generator, return the full iterator. 41296 : iter.next().then(function(result) { 41297 return result.done ? result.value : iter.next(); 41298 }); 41299 }; 41300 41301 function makeInvokeMethod(innerFn, self, context) { 41302 var state = GenStateSuspendedStart; 41303 41304 return function invoke(method, arg) { 41305 if (state === GenStateExecuting) { 41306 throw new Error("Generator is already running"); 41307 } 41308 41309 if (state === GenStateCompleted) { 41310 if (method === "throw") { 41311 throw arg; 41312 } 41313 41314 // Be forgiving, per 25.3.3.3.3 of the spec: 41315 // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume 41316 return doneResult(); 41317 } 41318 41319 context.method = method; 41320 context.arg = arg; 41321 41322 while (true) { 41323 var delegate = context.delegate; 41324 if (delegate) { 41325 var delegateResult = maybeInvokeDelegate(delegate, context); 41326 if (delegateResult) { 41327 if (delegateResult === ContinueSentinel) continue; 41328 return delegateResult; 41329 } 41330 } 41331 41332 if (context.method === "next") { 41333 // Setting context._sent for legacy support of Babel's 41334 // function.sent implementation. 41335 context.sent = context._sent = context.arg; 41336 41337 } else if (context.method === "throw") { 41338 if (state === GenStateSuspendedStart) { 41339 state = GenStateCompleted; 41340 throw context.arg; 41341 } 41342 41343 context.dispatchException(context.arg); 41344 41345 } else if (context.method === "return") { 41346 context.abrupt("return", context.arg); 41347 } 41348 41349 state = GenStateExecuting; 41350 41351 var record = tryCatch(innerFn, self, context); 41352 if (record.type === "normal") { 41353 // If an exception is thrown from innerFn, we leave state === 41354 // GenStateExecuting and loop back for another invocation. 41355 state = context.done 41356 ? GenStateCompleted 41357 : GenStateSuspendedYield; 41358 41359 if (record.arg === ContinueSentinel) { 41360 continue; 41361 } 41362 41363 return { 41364 value: record.arg, 41365 done: context.done 41366 }; 41367 41368 } else if (record.type === "throw") { 41369 state = GenStateCompleted; 41370 // Dispatch the exception by looping back around to the 41371 // context.dispatchException(context.arg) call above. 41372 context.method = "throw"; 41373 context.arg = record.arg; 41374 } 41375 } 41376 }; 41377 } 41378 41379 // Call delegate.iterator[context.method](context.arg) and handle the 41380 // result, either by returning a { value, done } result from the 41381 // delegate iterator, or by modifying context.method and context.arg, 41382 // setting context.delegate to null, and returning the ContinueSentinel. 41383 function maybeInvokeDelegate(delegate, context) { 41384 var method = delegate.iterator[context.method]; 41385 if (method === undefined) { 41386 // A .throw or .return when the delegate iterator has no .throw 41387 // method always terminates the yield* loop. 41388 context.delegate = null; 41389 41390 if (context.method === "throw") { 41391 if (delegate.iterator.return) { 41392 // If the delegate iterator has a return method, give it a 41393 // chance to clean up. 41394 context.method = "return"; 41395 context.arg = undefined; 41396 maybeInvokeDelegate(delegate, context); 41397 41398 if (context.method === "throw") { 41399 // If maybeInvokeDelegate(context) changed context.method from 41400 // "return" to "throw", let that override the TypeError below. 41401 return ContinueSentinel; 41402 } 41403 } 41404 41405 context.method = "throw"; 41406 context.arg = new TypeError( 41407 "The iterator does not provide a 'throw' method"); 41408 } 41409 41410 return ContinueSentinel; 41411 } 41412 41413 var record = tryCatch(method, delegate.iterator, context.arg); 41414 41415 if (record.type === "throw") { 41416 context.method = "throw"; 41417 context.arg = record.arg; 41418 context.delegate = null; 41419 return ContinueSentinel; 41420 } 41421 41422 var info = record.arg; 41423 41424 if (! info) { 41425 context.method = "throw"; 41426 context.arg = new TypeError("iterator result is not an object"); 41427 context.delegate = null; 41428 return ContinueSentinel; 41429 } 41430 41431 if (info.done) { 41432 // Assign the result of the finished delegate to the temporary 41433 // variable specified by delegate.resultName (see delegateYield). 41434 context[delegate.resultName] = info.value; 41435 41436 // Resume execution at the desired location (see delegateYield). 41437 context.next = delegate.nextLoc; 41438 41439 // If context.method was "throw" but the delegate handled the 41440 // exception, let the outer generator proceed normally. If 41441 // context.method was "next", forget context.arg since it has been 41442 // "consumed" by the delegate iterator. If context.method was 41443 // "return", allow the original .return call to continue in the 41444 // outer generator. 41445 if (context.method !== "return") { 41446 context.method = "next"; 41447 context.arg = undefined; 41448 } 41449 41450 } else { 41451 // Re-yield the result returned by the delegate method. 41452 return info; 41453 } 41454 41455 // The delegate iterator is finished, so forget it and continue with 41456 // the outer generator. 41457 context.delegate = null; 41458 return ContinueSentinel; 41459 } 41460 41461 // Define Generator.prototype.{next,throw,return} in terms of the 41462 // unified ._invoke helper method. 41463 defineIteratorMethods(Gp); 41464 41465 Gp[toStringTagSymbol] = "Generator"; 41466 41467 // A Generator should always return itself as the iterator object when the 41468 // @@iterator function is called on it. Some browsers' implementations of the 41469 // iterator prototype chain incorrectly implement this, causing the Generator 41470 // object to not be returned from this call. This ensures that doesn't happen. 41471 // See https://github.com/facebook/regenerator/issues/274 for more details. 41472 Gp[iteratorSymbol] = function() { 41473 return this; 41474 }; 41475 41476 Gp.toString = function() { 41477 return "[object Generator]"; 41478 }; 41479 41480 function pushTryEntry(locs) { 41481 var entry = { tryLoc: locs[0] }; 41482 41483 if (1 in locs) { 41484 entry.catchLoc = locs[1]; 41485 } 41486 41487 if (2 in locs) { 41488 entry.finallyLoc = locs[2]; 41489 entry.afterLoc = locs[3]; 41490 } 41491 41492 this.tryEntries.push(entry); 41493 } 41494 41495 function resetTryEntry(entry) { 41496 var record = entry.completion || {}; 41497 record.type = "normal"; 41498 delete record.arg; 41499 entry.completion = record; 41500 } 41501 41502 function Context(tryLocsList) { 41503 // The root entry object (effectively a try statement without a catch 41504 // or a finally block) gives us a place to store values thrown from 41505 // locations where there is no enclosing try statement. 41506 this.tryEntries = [{ tryLoc: "root" }]; 41507 tryLocsList.forEach(pushTryEntry, this); 41508 this.reset(true); 41509 } 41510 41511 runtime.keys = function(object) { 41512 var keys = []; 41513 for (var key in object) { 41514 keys.push(key); 41515 } 41516 keys.reverse(); 41517 41518 // Rather than returning an object with a next method, we keep 41519 // things simple and return the next function itself. 41520 return function next() { 41521 while (keys.length) { 41522 var key = keys.pop(); 41523 if (key in object) { 41524 next.value = key; 41525 next.done = false; 41526 return next; 41527 } 41528 } 41529 41530 // To avoid creating an additional object, we just hang the .value 41531 // and .done properties off the next function object itself. This 41532 // also ensures that the minifier will not anonymize the function. 41533 next.done = true; 41534 return next; 41535 }; 41536 }; 41537 41538 function values(iterable) { 41539 if (iterable) { 41540 var iteratorMethod = iterable[iteratorSymbol]; 41541 if (iteratorMethod) { 41542 return iteratorMethod.call(iterable); 41543 } 41544 41545 if (typeof iterable.next === "function") { 41546 return iterable; 41547 } 41548 41549 if (!isNaN(iterable.length)) { 41550 var i = -1, next = function next() { 41551 while (++i < iterable.length) { 41552 if (hasOwn.call(iterable, i)) { 41553 next.value = iterable[i]; 41554 next.done = false; 41555 return next; 41556 } 41557 } 41558 41559 next.value = undefined; 41560 next.done = true; 41561 41562 return next; 41563 }; 41564 41565 return next.next = next; 41566 } 41567 } 41568 41569 // Return an iterator with no values. 41570 return { next: doneResult }; 41571 } 41572 runtime.values = values; 41573 41574 function doneResult() { 41575 return { value: undefined, done: true }; 41576 } 41577 41578 Context.prototype = { 41579 constructor: Context, 41580 41581 reset: function(skipTempReset) { 41582 this.prev = 0; 41583 this.next = 0; 41584 // Resetting context._sent for legacy support of Babel's 41585 // function.sent implementation. 41586 this.sent = this._sent = undefined; 41587 this.done = false; 41588 this.delegate = null; 41589 41590 this.method = "next"; 41591 this.arg = undefined; 41592 41593 this.tryEntries.forEach(resetTryEntry); 41594 41595 if (!skipTempReset) { 41596 for (var name in this) { 41597 // Not sure about the optimal order of these conditions: 41598 if (name.charAt(0) === "t" && 41599 hasOwn.call(this, name) && 41600 !isNaN(+name.slice(1))) { 41601 this[name] = undefined; 41602 } 41603 } 41604 } 41605 }, 41606 41607 stop: function() { 41608 this.done = true; 41609 41610 var rootEntry = this.tryEntries[0]; 41611 var rootRecord = rootEntry.completion; 41612 if (rootRecord.type === "throw") { 41613 throw rootRecord.arg; 41614 } 41615 41616 return this.rval; 41617 }, 41618 41619 dispatchException: function(exception) { 41620 if (this.done) { 41621 throw exception; 41622 } 41623 41624 var context = this; 41625 function handle(loc, caught) { 41626 record.type = "throw"; 41627 record.arg = exception; 41628 context.next = loc; 41629 41630 if (caught) { 41631 // If the dispatched exception was caught by a catch block, 41632 // then let that catch block handle the exception normally. 41633 context.method = "next"; 41634 context.arg = undefined; 41635 } 41636 41637 return !! caught; 41638 } 41639 41640 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 41641 var entry = this.tryEntries[i]; 41642 var record = entry.completion; 41643 41644 if (entry.tryLoc === "root") { 41645 // Exception thrown outside of any try block that could handle 41646 // it, so set the completion value of the entire function to 41647 // throw the exception. 41648 return handle("end"); 41649 } 41650 41651 if (entry.tryLoc <= this.prev) { 41652 var hasCatch = hasOwn.call(entry, "catchLoc"); 41653 var hasFinally = hasOwn.call(entry, "finallyLoc"); 41654 41655 if (hasCatch && hasFinally) { 41656 if (this.prev < entry.catchLoc) { 41657 return handle(entry.catchLoc, true); 41658 } else if (this.prev < entry.finallyLoc) { 41659 return handle(entry.finallyLoc); 41660 } 41661 41662 } else if (hasCatch) { 41663 if (this.prev < entry.catchLoc) { 41664 return handle(entry.catchLoc, true); 41665 } 41666 41667 } else if (hasFinally) { 41668 if (this.prev < entry.finallyLoc) { 41669 return handle(entry.finallyLoc); 41670 } 41671 41672 } else { 41673 throw new Error("try statement without catch or finally"); 41674 } 41675 } 41676 } 41677 }, 41678 41679 abrupt: function(type, arg) { 41680 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 41681 var entry = this.tryEntries[i]; 41682 if (entry.tryLoc <= this.prev && 41683 hasOwn.call(entry, "finallyLoc") && 41684 this.prev < entry.finallyLoc) { 41685 var finallyEntry = entry; 41686 break; 41687 } 41688 } 41689 41690 if (finallyEntry && 41691 (type === "break" || 41692 type === "continue") && 41693 finallyEntry.tryLoc <= arg && 41694 arg <= finallyEntry.finallyLoc) { 41695 // Ignore the finally entry if control is not jumping to a 41696 // location outside the try/catch block. 41697 finallyEntry = null; 41698 } 41699 41700 var record = finallyEntry ? finallyEntry.completion : {}; 41701 record.type = type; 41702 record.arg = arg; 41703 41704 if (finallyEntry) { 41705 this.method = "next"; 41706 this.next = finallyEntry.finallyLoc; 41707 return ContinueSentinel; 41708 } 41709 41710 return this.complete(record); 41711 }, 41712 41713 complete: function(record, afterLoc) { 41714 if (record.type === "throw") { 41715 throw record.arg; 41716 } 41717 41718 if (record.type === "break" || 41719 record.type === "continue") { 41720 this.next = record.arg; 41721 } else if (record.type === "return") { 41722 this.rval = this.arg = record.arg; 41723 this.method = "return"; 41724 this.next = "end"; 41725 } else if (record.type === "normal" && afterLoc) { 41726 this.next = afterLoc; 41727 } 41728 41729 return ContinueSentinel; 41730 }, 41731 41732 finish: function(finallyLoc) { 41733 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 41734 var entry = this.tryEntries[i]; 41735 if (entry.finallyLoc === finallyLoc) { 41736 this.complete(entry.completion, entry.afterLoc); 41737 resetTryEntry(entry); 41738 return ContinueSentinel; 41739 } 41740 } 41741 }, 41742 41743 "catch": function(tryLoc) { 41744 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 41745 var entry = this.tryEntries[i]; 41746 if (entry.tryLoc === tryLoc) { 41747 var record = entry.completion; 41748 if (record.type === "throw") { 41749 var thrown = record.arg; 41750 resetTryEntry(entry); 41751 } 41752 return thrown; 41753 } 41754 } 41755 41756 // The context.catch method must only be called with a location 41757 // argument that corresponds to a known catch block. 41758 throw new Error("illegal catch attempt"); 41759 }, 41760 41761 delegateYield: function(iterable, resultName, nextLoc) { 41762 this.delegate = { 41763 iterator: values(iterable), 41764 resultName: resultName, 41765 nextLoc: nextLoc 41766 }; 41767 41768 if (this.method === "next") { 41769 // Deliberately forget the last sent value so that we don't 41770 // accidentally pass it on to the delegate. 41771 this.arg = undefined; 41772 } 41773 41774 return ContinueSentinel; 41775 } 41776 }; 41777})( 41778 // In sloppy mode, unbound `this` refers to the global object, fallback to 41779 // Function constructor if we're in global strict mode. That is sadly a form 41780 // of indirect eval which violates Content Security Policy. 41781 (function() { return this })() || Function("return this")() 41782); 41783 41784 41785/***/ }), 41786/* 1
vendor: 3,475 bytes, lines 41786-41878
4178663 */ 41787/***/ (function(module, exports, __webpack_require__) { 41788 41789/*! @license DOMPurify 3.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.1/LICENSE */ 41790 41791(function (global, factory) { 41792 true ? module.exports = factory() : 41793 typeof define === 'function' && define.amd ? define(factory) : 41794 (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DOMPurify = factory()); 41795})(this, (function () { 'use strict'; 41796 41797 const { 41798 entries, 41799 setPrototypeOf, 41800 isFrozen, 41801 getPrototypeOf, 41802 getOwnPropertyDescriptor 41803 } = Object; 41804 let { 41805 freeze, 41806 seal, 41807 create 41808 } = Object; // eslint-disable-line import/no-mutable-exports 41809 let { 41810 apply, 41811 construct 41812 } = typeof Reflect !== 'undefined' && Reflect; 41813 if (!freeze) { 41814 freeze = function freeze(x) { 41815 return x; 41816 }; 41817 } 41818 if (!seal) { 41819 seal = function seal(x) { 41820 return x; 41821 }; 41822 } 41823 if (!apply) { 41824 apply = function apply(func, thisArg) { 41825 for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { 41826 args[_key - 2] = arguments[_key]; 41827 } 41828 return func.apply(thisArg, args); 41829 }; 41830 } 41831 if (!construct) { 41832 construct = function construct(Func) { 41833 for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { 41834 args[_key2 - 1] = arguments[_key2]; 41835 } 41836 return new Func(...args); 41837 }; 41838 } 41839 const arrayForEach = unapply(Array.prototype.forEach); 41840 const arrayLastIndexOf = unapply(Array.prototype.lastIndexOf); 41841 const arrayPop = unapply(Array.prototype.pop); 41842 const arrayPush = unapply(Array.prototype.push); 41843 const arraySplice = unapply(Array.prototype.splice); 41844 const stringToLowerCase = unapply(String.prototype.toLowerCase); 41845 const stringToString = unapply(String.prototype.toString); 41846 const stringMatch = unapply(String.prototype.match); 41847 const stringReplace = unapply(String.prototype.replace); 41848 const stringIndexOf = unapply(String.prototype.indexOf); 41849 const stringTrim = unapply(String.prototype.trim); 41850 const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty); 41851 const regExpTest = unapply(RegExp.prototype.test); 41852 const typeErrorCreate = unconstruct(TypeError); 41853 /** 41854 * Creates a new function that calls the given function with a specified thisArg and arguments. 41855 * 41856 * @param func - The function to be wrapped and called. 41857 * @returns A new function that calls the given function with a specified thisArg and arguments. 41858 */ 41859 function unapply(func) { 41860 return function (thisArg) { 41861 if (thisArg instanceof RegExp) { 41862 thisArg.lastIndex = 0; 41863 } 41864 for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) { 41865 args[_key3 - 1] = arguments[_key3]; 41866 } 41867 return apply(func, thisArg, args); 41868 }; 41869 } 41870 /** 41871 * Creates a new function that constructs an instance of the given constructor function with the provided arguments. 41872 * 41873 * @param func - The constructor function to be wrapped and called. 41874 * @returns A new function that constructs an instance of the given constructor function with the provided arguments. 41875 */ 41876 function unconstruct(Func) { 41877 return function () { 41878 for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
vendor: 6,361 bytes, lines 41879-41991
41879 args[_key4] = arguments[_key4]; 41880 } 41881 return construct(Func, args); 41882 }; 41883 } 41884 /** 41885 * Add properties to a lookup table 41886 * 41887 * @param set - The set to which elements will be added. 41888 * @param array - The array containing elements to be added to the set. 41889 * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set. 41890 * @returns The modified set with added elements. 41891 */ 41892 function addToSet(set, array) { 41893 let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase; 41894 if (setPrototypeOf) { 41895 // Make 'in' and truthy checks like Boolean(set.constructor) 41896 // independent of any properties defined on Object.prototype. 41897 // Prevent prototype setters from intercepting set as a this value. 41898 setPrototypeOf(set, null); 41899 } 41900 let l = array.length; 41901 while (l--) { 41902 let element = array[l]; 41903 if (typeof element === 'string') { 41904 const lcElement = transformCaseFunc(element); 41905 if (lcElement !== element) { 41906 // Config presets (e.g. tags.js, attrs.js) are immutable. 41907 if (!isFrozen(array)) { 41908 array[l] = lcElement; 41909 } 41910 element = lcElement; 41911 } 41912 } 41913 set[element] = true; 41914 } 41915 return set; 41916 } 41917 /** 41918 * Clean up an array to harden against CSPP 41919 * 41920 * @param array - The array to be cleaned. 41921 * @returns The cleaned version of the array 41922 */ 41923 function cleanArray(array) { 41924 for (let index = 0; index < array.length; index++) { 41925 const isPropertyExist = objectHasOwnProperty(array, index); 41926 if (!isPropertyExist) { 41927 array[index] = null; 41928 } 41929 } 41930 return array; 41931 } 41932 /** 41933 * Shallow clone an object 41934 * 41935 * @param object - The object to be cloned. 41936 * @returns A new object that copies the original. 41937 */ 41938 function clone(object) { 41939 const newObject = create(null); 41940 for (const [property, value] of entries(object)) { 41941 const isPropertyExist = objectHasOwnProperty(object, property); 41942 if (isPropertyExist) { 41943 if (Array.isArray(value)) { 41944 newObject[property] = cleanArray(value); 41945 } else if (value && typeof value === 'object' && value.constructor === Object) { 41946 newObject[property] = clone(value); 41947 } else { 41948 newObject[property] = value; 41949 } 41950 } 41951 } 41952 return newObject; 41953 } 41954 /** 41955 * This method automatically checks if the prop is function or getter and behaves accordingly. 41956 * 41957 * @param object - The object to look up the getter function in its prototype chain. 41958 * @param prop - The property name for which to find the getter function. 41959 * @returns The getter function found in the prototype chain or a fallback function. 41960 */ 41961 function lookupGetter(object, prop) { 41962 while (object !== null) { 41963 const desc = getOwnPropertyDescriptor(object, prop); 41964 if (desc) { 41965 if (desc.get) { 41966 return unapply(desc.get); 41967 } 41968 if (typeof desc.value === 'function') { 41969 return unapply(desc.value); 41970 } 41971 } 41972 object = getPrototypeOf(object); 41973 } 41974 function fallbackValue() { 41975 return null; 41976 } 41977 return fallbackValue; 41978 } 41979 41980 const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']); 41981 const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']); 41982 const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']); 41983 // List of SVG elements that are disallowed by default. 41984 // We still need to know them so that we can do namespace 41985 // checks properly in case one wants to add them to 41986 // allow-list. 41987 const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']); 41988 const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']); 41989 // Similarly to SVG, we want to know all MathML elements, 41990 // even those that we disallow by default. 41991 const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'n
41991one']); 41992 const text = freeze(['#text']); 41993 41994 const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']); 41995 const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']); 41996 const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'n
vendor: 4,502 bytes, lines 41996-42102
41996otation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']); 41997 const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']); 41998 41999 // eslint-disable-next-line unicorn/better-regex 42000 const MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode 42001 const ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm); 42002 const TMPLIT_EXPR = seal(/\$\{[\w\W]*/gm); // eslint-disable-line unicorn/better-regex 42003 const DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]+$/); // eslint-disable-line no-useless-escape 42004 const ARIA_ATTR = seal(/^aria-[\-\w]+$/); // eslint-disable-line no-useless-escape 42005 const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i // eslint-disable-line no-useless-escape 42006 ); 42007 const IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i); 42008 const ATTR_WHITESPACE = seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g // eslint-disable-line no-control-regex 42009 ); 42010 const DOCTYPE_NAME = seal(/^html$/i); 42011 const CUSTOM_ELEMENT = seal(/^[a-z][.\w]*(-[.\w]+)+$/i); 42012 42013 var EXPRESSIONS = /*#__PURE__*/Object.freeze({ 42014 __proto__: null, 42015 ARIA_ATTR: ARIA_ATTR, 42016 ATTR_WHITESPACE: ATTR_WHITESPACE, 42017 CUSTOM_ELEMENT: CUSTOM_ELEMENT, 42018 DATA_ATTR: DATA_ATTR, 42019 DOCTYPE_NAME: DOCTYPE_NAME, 42020 ERB_EXPR: ERB_EXPR, 42021 IS_ALLOWED_URI: IS_ALLOWED_URI, 42022 IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA, 42023 MUSTACHE_EXPR: MUSTACHE_EXPR, 42024 TMPLIT_EXPR: TMPLIT_EXPR 42025 }); 42026 42027 /* eslint-disable @typescript-eslint/indent */ 42028 // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType 42029 const NODE_TYPE = { 42030 element: 1, 42031 attribute: 2, 42032 text: 3, 42033 cdataSection: 4, 42034 entityReference: 5, 42035 // Deprecated 42036 entityNode: 6, 42037 // Deprecated 42038 progressingInstruction: 7, 42039 comment: 8, 42040 document: 9, 42041 documentType: 10, 42042 documentFragment: 11, 42043 notation: 12 // Deprecated 42044 }; 42045 const getGlobal = function getGlobal() { 42046 return typeof window === 'undefined' ? null : window; 42047 }; 42048 /** 42049 * Creates a no-op policy for internal use only. 42050 * Don't export this function outside this module! 42051 * @param trustedTypes The policy factory. 42052 * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix). 42053 * @return The policy created (or null, if Trusted Types 42054 * are not supported or creating the policy failed). 42055 */ 42056 const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) { 42057 if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') { 42058 return null; 42059 } 42060 // Allow the callers to control the unique policy name 42061 // by adding a data-tt-policy-suffix to the script element with the DOMPurify. 42062 // Policy creation with duplicate names throws in Trusted Types. 42063 let suffix = null; 42064 const ATTR_NAME = 'data-tt-policy-suffix'; 42065 if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) { 42066 suffix = purifyHostElement.getAttribute(ATTR_NAME); 42067 } 42068 const policyName = 'dompurify' + (suffix ? '#' + suffix : ''); 42069 try { 42070 return trustedTypes.createPolicy(policyName, { 42071 createHTML(html) { 42072 return html; 42073 }, 42074 createScriptURL(scriptUrl) { 42075 return scriptUrl; 42076 } 42077 }); 42078 } catch (_) { 42079 // Policy creation failed (most likely another DOMPurify script has 42080 // already run). Skip creating the policy, as this will only cause errors 42081 // if TT are enforced. 42082 console.warn('TrustedTypes policy ' + policyName + ' could not be created.'); 42083 return null; 42084 } 42085 }; 42086 const _createHooksMap = function _createHooksMap() { 42087 return { 42088 afterSanitizeAttributes: [], 42089 afterSanitizeElements: [], 42090 afterSanitizeShadowDOM: [], 42091 beforeSanitizeAttributes: [], 42092 beforeSanitizeElements: [], 42093 beforeSanitizeShadowDOM: [], 42094 uponSanitizeAttribute: [], 42095 uponSanitizeElement: [], 42096 uponSanitizeShadowNode: [] 42097 }; 42098 }; 42099 function createDOMPurify() { 42100 let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal(); 42101 const DOMPurify = root => createDOMPurify(root); 42102 DOMPurify.version = '3.3.1
vendor: 4,967 bytes, lines 42102-42233
42102'; 42103 DOMPurify.removed = []; 42104 if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) { 42105 // Not running in a browser, provide a factory function 42106 // so that you can pass your own Window 42107 DOMPurify.isSupported = false; 42108 return DOMPurify; 42109 } 42110 let { 42111 document 42112 } = window; 42113 const originalDocument = document; 42114 const currentScript = originalDocument.currentScript; 42115 const { 42116 DocumentFragment, 42117 HTMLTemplateElement, 42118 Node, 42119 Element, 42120 NodeFilter, 42121 NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap, 42122 HTMLFormElement, 42123 DOMParser, 42124 trustedTypes 42125 } = window; 42126 const ElementPrototype = Element.prototype; 42127 const cloneNode = lookupGetter(ElementPrototype, 'cloneNode'); 42128 const remove = lookupGetter(ElementPrototype, 'remove'); 42129 const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling'); 42130 const getChildNodes = lookupGetter(ElementPrototype, 'childNodes'); 42131 const getParentNode = lookupGetter(ElementPrototype, 'parentNode'); 42132 // As per issue #47, the web-components registry is inherited by a 42133 // new document created via createHTMLDocument. As per the spec 42134 // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries) 42135 // a new empty registry is used when creating a template contents owner 42136 // document, so we use that as our parent document to ensure nothing 42137 // is inherited. 42138 if (typeof HTMLTemplateElement === 'function') { 42139 const template = document.createElement('template'); 42140 if (template.content && template.content.ownerDocument) { 42141 document = template.content.ownerDocument; 42142 } 42143 } 42144 let trustedTypesPolicy; 42145 let emptyHTML = ''; 42146 const { 42147 implementation, 42148 createNodeIterator, 42149 createDocumentFragment, 42150 getElementsByTagName 42151 } = document; 42152 const { 42153 importNode 42154 } = originalDocument; 42155 let hooks = _createHooksMap(); 42156 /** 42157 * Expose whether this browser supports running the full DOMPurify. 42158 */ 42159 DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined; 42160 const { 42161 MUSTACHE_EXPR, 42162 ERB_EXPR, 42163 TMPLIT_EXPR, 42164 DATA_ATTR, 42165 ARIA_ATTR, 42166 IS_SCRIPT_OR_DATA, 42167 ATTR_WHITESPACE, 42168 CUSTOM_ELEMENT 42169 } = EXPRESSIONS; 42170 let { 42171 IS_ALLOWED_URI: IS_ALLOWED_URI$1 42172 } = EXPRESSIONS; 42173 /** 42174 * We consider the elements and attributes below to be safe. Ideally 42175 * don't add any new ones but feel free to remove unwanted ones. 42176 */ 42177 /* allowed element names */ 42178 let ALLOWED_TAGS = null; 42179 const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]); 42180 /* Allowed attribute names */ 42181 let ALLOWED_ATTR = null; 42182 const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]); 42183 /* 42184 * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements. 42185 * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements) 42186 * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list) 42187 * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`. 42188 */ 42189 let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, { 42190 tagNameCheck: { 42191 writable: true, 42192 configurable: false, 42193 enumerable: true, 42194 value: null 42195 }, 42196 attributeNameCheck: { 42197 writable: true, 42198 configurable: false, 42199 enumerable: true, 42200 value: null 42201 }, 42202 allowCustomizedBuiltInElements: { 42203 writable: true, 42204 configurable: false, 42205 enumerable: true, 42206 value: false 42207 } 42208 })); 42209 /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */ 42210 let FORBID_TAGS = null; 42211 /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */ 42212 let FORBID_ATTR = null; 42213 /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */ 42214 const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, { 42215 tagCheck: { 42216 writable: true, 42217 configurable: false, 42218 enumerable: true, 42219 value: null 42220 }, 42221 attributeCheck: { 42222 writable: true, 42223 configurable: false, 42224 enumerable: true, 42225 value: null 42226 } 42227 })); 42228 /* Decide if ARIA attributes are okay */ 42229 let ALLOW_ARIA_ATTR = true; 42230 /* Decide if custom data attributes are okay */ 42231 let ALLOW_DATA_ATTR = true; 42232 /* Decide if unknown protocols are okay */ 42233 let ALLOW_UNKNOWN_PROTOCOLS = false;
vendor: 3,079 bytes, lines 42234-42291
42234 /* Decide if self-closing tags in attributes are allowed. 42235 * Usually removed due to a mXSS issue in jQuery 3.0 */ 42236 let ALLOW_SELF_CLOSE_IN_ATTR = true; 42237 /* Output should be safe for common template engines. 42238 * This means, DOMPurify removes data attributes, mustaches and ERB 42239 */ 42240 let SAFE_FOR_TEMPLATES = false; 42241 /* Output should be safe even for XML used within HTML and alike. 42242 * This means, DOMPurify removes comments when containing risky content. 42243 */ 42244 let SAFE_FOR_XML = true; 42245 /* Decide if document with <html>... should be returned */ 42246 let WHOLE_DOCUMENT = false; 42247 /* Track whether config is already set on this instance of DOMPurify. */ 42248 let SET_CONFIG = false; 42249 /* Decide if all elements (e.g. style, script) must be children of 42250 * document.body. By default, browsers might move them to document.head */ 42251 let FORCE_BODY = false; 42252 /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html 42253 * string (or a TrustedHTML object if Trusted Types are supported). 42254 * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead 42255 */ 42256 let RETURN_DOM = false; 42257 /* Decide if a DOM `DocumentFragment` should be returned, instead of a html 42258 * string (or a TrustedHTML object if Trusted Types are supported) */ 42259 let RETURN_DOM_FRAGMENT = false; 42260 /* Try to return a Trusted Type object instead of a string, return a string in 42261 * case Trusted Types are not supported */ 42262 let RETURN_TRUSTED_TYPE = false; 42263 /* Output should be free from DOM clobbering attacks? 42264 * This sanitizes markups named with colliding, clobberable built-in DOM APIs. 42265 */ 42266 let SANITIZE_DOM = true; 42267 /* Achieve full DOM Clobbering protection by isolating the namespace of named 42268 * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules. 42269 * 42270 * HTML/DOM spec rules that enable DOM Clobbering: 42271 * - Named Access on Window (§7.3.3) 42272 * - DOM Tree Accessors (§3.1.5) 42273 * - Form Element Parent-Child Relations (§4.10.3) 42274 * - Iframe srcdoc / Nested WindowProxies (§4.8.5) 42275 * - HTMLCollection (§4.2.10.2) 42276 * 42277 * Namespace isolation is implemented by prefixing `id` and `name` attributes 42278 * with a constant string, i.e., `user-content-` 42279 */ 42280 let SANITIZE_NAMED_PROPS = false; 42281 const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-'; 42282 /* Keep element content when removing element? */ 42283 let KEEP_CONTENT = true; 42284 /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead 42285 * of importing it into a new Document and returning a sanitized copy */ 42286 let IN_PLACE = false; 42287 /* Allow usage of profiles like html, svg and mathMl */ 42288 let USE_PROFILES = {}; 42289 /* Tags to ignore content of when KEEP_CONTENT is true */ 42290 let FORBID_CONTENTS = null; 42291 const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'n
vendor: 5,875 bytes, lines 42291-42378
42291oscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']); 42292 /* Tags that are safe for data: URIs */ 42293 let DATA_URI_TAGS = null; 42294 const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']); 42295 /* Attributes safe for values like "javascript:" */ 42296 let URI_SAFE_ATTRIBUTES = null; 42297 const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']); 42298 const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML'; 42299 const SVG_NAMESPACE = 'http://www.w3.org/2000/svg'; 42300 const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml'; 42301 /* Document namespace */ 42302 let NAMESPACE = HTML_NAMESPACE; 42303 let IS_EMPTY_INPUT = false; 42304 /* Allowed XHTML+XML namespaces */ 42305 let ALLOWED_NAMESPACES = null; 42306 const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString); 42307 let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']); 42308 let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']); 42309 // Certain elements are allowed in both SVG and HTML 42310 // namespace. We need to specify them explicitly 42311 // so that they don't get erroneously deleted from 42312 // HTML namespace. 42313 const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']); 42314 /* Parsing of strict XHTML documents */ 42315 let PARSER_MEDIA_TYPE = null; 42316 const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html']; 42317 const DEFAULT_PARSER_MEDIA_TYPE = 'text/html'; 42318 let transformCaseFunc = null; 42319 /* Keep a reference to config to pass to hooks */ 42320 let CONFIG = null; 42321 /* Ideally, do not touch anything below this line */ 42322 /* ______________________________________________ */ 42323 const formElement = document.createElement('form'); 42324 const isRegexOrFunction = function isRegexOrFunction(testValue) { 42325 return testValue instanceof RegExp || testValue instanceof Function; 42326 }; 42327 /** 42328 * _parseConfig 42329 * 42330 * @param cfg optional config literal 42331 */ 42332 // eslint-disable-next-line complexity 42333 const _parseConfig = function _parseConfig() { 42334 let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 42335 if (CONFIG && CONFIG === cfg) { 42336 return; 42337 } 42338 /* Shield configuration object from tampering */ 42339 if (!cfg || typeof cfg !== 'object') { 42340 cfg = {}; 42341 } 42342 /* Shield configuration object from prototype pollution */ 42343 cfg = clone(cfg); 42344 PARSER_MEDIA_TYPE = 42345 // eslint-disable-next-line unicorn/prefer-includes 42346 SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE; 42347 // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is. 42348 transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase; 42349 /* Set configuration parameters */ 42350 ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS; 42351 ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR; 42352 ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES; 42353 URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES; 42354 DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS; 42355 FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS; 42356 FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({}); 42357 FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({}); 42358 USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false; 42359 ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true 42360 ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true 42361 ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false 42362 ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true 42363 SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false 42364 SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true 42365 WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false 42366 RETURN_DOM = cfg.RETURN_DOM || false; // Default false 42367 RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false 42368 RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false 42369 FORCE_BODY = cfg.FORCE_BODY || false; // Default false 42370 SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true 42371 SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false 42372 KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true 42373 IN_PLACE = cfg.IN_PLACE || false; // Default false 42374 IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI; 42375 NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE; 42376 MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS; 42377 HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS; 42378 CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING ||
vendor: 1,621 bytes, lines 42378-42417
42378{}; 42379 if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) { 42380 CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck; 42381 } 42382 if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) { 42383 CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck; 42384 } 42385 if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') { 42386 CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements; 42387 } 42388 if (SAFE_FOR_TEMPLATES) { 42389 ALLOW_DATA_ATTR = false; 42390 } 42391 if (RETURN_DOM_FRAGMENT) { 42392 RETURN_DOM = true; 42393 } 42394 /* Parse profile info */ 42395 if (USE_PROFILES) { 42396 ALLOWED_TAGS = addToSet({}, text); 42397 ALLOWED_ATTR = []; 42398 if (USE_PROFILES.html === true) { 42399 addToSet(ALLOWED_TAGS, html$1); 42400 addToSet(ALLOWED_ATTR, html); 42401 } 42402 if (USE_PROFILES.svg === true) { 42403 addToSet(ALLOWED_TAGS, svg$1); 42404 addToSet(ALLOWED_ATTR, svg); 42405 addToSet(ALLOWED_ATTR, xml); 42406 } 42407 if (USE_PROFILES.svgFilters === true) { 42408 addToSet(ALLOWED_TAGS, svgFilters); 42409 addToSet(ALLOWED_ATTR, svg); 42410 addToSet(ALLOWED_ATTR, xml); 42411 } 42412 if (USE_PROFILES.mathMl === true) { 42413 addToSet(ALLOWED_TAGS, mathMl$1); 42414 addToSet(ALLOWED_ATTR, mathMl); 42415 addToSet(ALLOWED_ATTR, xml); 42416 } 42417 }
vendor: 4,275 bytes, lines 42417-42519
42417 42418 /* Merge configuration parameters */ 42419 if (cfg.ADD_TAGS) { 42420 if (typeof cfg.ADD_TAGS === 'function') { 42421 EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS; 42422 } else { 42423 if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) { 42424 ALLOWED_TAGS = clone(ALLOWED_TAGS); 42425 } 42426 addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc); 42427 } 42428 } 42429 if (cfg.ADD_ATTR) { 42430 if (typeof cfg.ADD_ATTR === 'function') { 42431 EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR; 42432 } else { 42433 if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) { 42434 ALLOWED_ATTR = clone(ALLOWED_ATTR); 42435 } 42436 addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc); 42437 } 42438 } 42439 if (cfg.ADD_URI_SAFE_ATTR) { 42440 addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc); 42441 } 42442 if (cfg.FORBID_CONTENTS) { 42443 if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) { 42444 FORBID_CONTENTS = clone(FORBID_CONTENTS); 42445 } 42446 addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc); 42447 } 42448 if (cfg.ADD_FORBID_CONTENTS) { 42449 if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) { 42450 FORBID_CONTENTS = clone(FORBID_CONTENTS); 42451 } 42452 addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc); 42453 } 42454 /* Add #text in case KEEP_CONTENT is set to true */ 42455 if (KEEP_CONTENT) { 42456 ALLOWED_TAGS['#text'] = true; 42457 } 42458 /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */ 42459 if (WHOLE_DOCUMENT) { 42460 addToSet(ALLOWED_TAGS, ['html', 'head', 'body']); 42461 } 42462 /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */ 42463 if (ALLOWED_TAGS.table) { 42464 addToSet(ALLOWED_TAGS, ['tbody']); 42465 delete FORBID_TAGS.tbody; 42466 } 42467 if (cfg.TRUSTED_TYPES_POLICY) { 42468 if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') { 42469 throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.'); 42470 } 42471 if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') { 42472 throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.'); 42473 } 42474 // Overwrite existing TrustedTypes policy. 42475 trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY; 42476 // Sign local variables required by `sanitize`. 42477 emptyHTML = trustedTypesPolicy.createHTML(''); 42478 } else { 42479 // Uninitialized policy, attempt to initialize the internal dompurify policy. 42480 if (trustedTypesPolicy === undefined) { 42481 trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript); 42482 } 42483 // If creating the internal policy succeeded sign internal variables. 42484 if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') { 42485 emptyHTML = trustedTypesPolicy.createHTML(''); 42486 } 42487 } 42488 // Prevent further manipulation of configuration. 42489 // Not available in IE8, Safari 5, etc. 42490 if (freeze) { 42491 freeze(cfg); 42492 } 42493 CONFIG = cfg; 42494 }; 42495 /* Keep track of all possible SVG and MathML tags 42496 * so that we can perform the namespace checks 42497 * correctly. */ 42498 const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]); 42499 const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]); 42500 /** 42501 * @param element a DOM element whose namespace is being checked 42502 * @returns Return false if the element has a 42503 * namespace that a spec-compliant parser would never 42504 * return. Return true otherwise. 42505 */ 42506 const _checkValidNamespace = function _checkValidNamespace(element) { 42507 let parent = getParentNode(element); 42508 // In JSDOM, if we're inside shadow DOM, then parentNode 42509 // can be null. We just simulate parent in this case. 42510 if (!parent || !parent.tagName) { 42511 parent = { 42512 namespaceURI: NAMESPACE, 42513 tagName: 'template' 42514 }; 42515 } 42516 const tagName = stringToLowerCase(element.tagName); 42517 const parentTagName = stringToLowerCase(parent.tagName); 42518 if (!ALLOWED_NAMESPACES[element.namespaceURI]) { 42519 return false;
vendor: 9,119 bytes, lines 42520-42740
42520 } 42521 if (element.namespaceURI === SVG_NAMESPACE) { 42522 // The only way to switch from HTML namespace to SVG 42523 // is via <svg>. If it happens via any other tag, then 42524 // it should be killed. 42525 if (parent.namespaceURI === HTML_NAMESPACE) { 42526 return tagName === 'svg'; 42527 } 42528 // The only way to switch from MathML to SVG is via` 42529 // svg if parent is either <annotation-xml> or MathML 42530 // text integration points. 42531 if (parent.namespaceURI === MATHML_NAMESPACE) { 42532 return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]); 42533 } 42534 // We only allow elements that are defined in SVG 42535 // spec. All others are disallowed in SVG namespace. 42536 return Boolean(ALL_SVG_TAGS[tagName]); 42537 } 42538 if (element.namespaceURI === MATHML_NAMESPACE) { 42539 // The only way to switch from HTML namespace to MathML 42540 // is via <math>. If it happens via any other tag, then 42541 // it should be killed. 42542 if (parent.namespaceURI === HTML_NAMESPACE) { 42543 return tagName === 'math'; 42544 } 42545 // The only way to switch from SVG to MathML is via 42546 // <math> and HTML integration points 42547 if (parent.namespaceURI === SVG_NAMESPACE) { 42548 return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName]; 42549 } 42550 // We only allow elements that are defined in MathML 42551 // spec. All others are disallowed in MathML namespace. 42552 return Boolean(ALL_MATHML_TAGS[tagName]); 42553 } 42554 if (element.namespaceURI === HTML_NAMESPACE) { 42555 // The only way to switch from SVG to HTML is via 42556 // HTML integration points, and from MathML to HTML 42557 // is via MathML text integration points 42558 if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) { 42559 return false; 42560 } 42561 if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) { 42562 return false; 42563 } 42564 // We disallow tags that are specific for MathML 42565 // or SVG and should never appear in HTML namespace 42566 return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]); 42567 } 42568 // For XHTML and XML documents that support custom namespaces 42569 if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) { 42570 return true; 42571 } 42572 // The code should never reach this place (this means 42573 // that the element somehow got namespace that is not 42574 // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES). 42575 // Return false just in case. 42576 return false; 42577 }; 42578 /** 42579 * _forceRemove 42580 * 42581 * @param node a DOM node 42582 */ 42583 const _forceRemove = function _forceRemove(node) { 42584 arrayPush(DOMPurify.removed, { 42585 element: node 42586 }); 42587 try { 42588 // eslint-disable-next-line unicorn/prefer-dom-node-remove 42589 getParentNode(node).removeChild(node); 42590 } catch (_) { 42591 remove(node); 42592 } 42593 }; 42594 /** 42595 * _removeAttribute 42596 * 42597 * @param name an Attribute name 42598 * @param element a DOM node 42599 */ 42600 const _removeAttribute = function _removeAttribute(name, element) { 42601 try { 42602 arrayPush(DOMPurify.removed, { 42603 attribute: element.getAttributeNode(name), 42604 from: element 42605 }); 42606 } catch (_) { 42607 arrayPush(DOMPurify.removed, { 42608 attribute: null, 42609 from: element 42610 }); 42611 } 42612 element.removeAttribute(name); 42613 // We void attribute values for unremovable "is" attributes 42614 if (name === 'is') { 42615 if (RETURN_DOM || RETURN_DOM_FRAGMENT) { 42616 try { 42617 _forceRemove(element); 42618 } catch (_) {} 42619 } else { 42620 try { 42621 element.setAttribute(name, ''); 42622 } catch (_) {} 42623 } 42624 } 42625 }; 42626 /** 42627 * _initDocument 42628 * 42629 * @param dirty - a string of dirty markup 42630 * @return a DOM, filled with the dirty markup 42631 */ 42632 const _initDocument = function _initDocument(dirty) { 42633 /* Create a HTML document */ 42634 let doc = null; 42635 let leadingWhitespace = null; 42636 if (FORCE_BODY) { 42637 dirty = '<remove></remove>' + dirty; 42638 } else { 42639 /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */ 42640 const matches = stringMatch(dirty, /^[\r\n\t ]+/); 42641 leadingWhitespace = matches && matches[0]; 42642 } 42643 if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) { 42644 // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict) 42645 dirty = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + dirty + '</body></html>'; 42646 } 42647 const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty; 42648 /* 42649 * Use the DOMParser API by default, fallback later if needs be 42650 * DOMParser not work for svg when has multiple root element. 42651 */ 42652 if (NAMESPACE === HTML_NAMESPACE) { 42653 try { 42654 doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE); 42655 } catch (_) {} 42656 } 42657 /* Use createHTMLDocument in case DOMParser is not available */ 42658 if (!doc || !doc.documentElement) { 42659 doc = implementation.createDocument(NAMESPACE, 'template', null); 42660 try { 42661 doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload; 42662 } catch (_) { 42663 // Syntax error if dirtyPayload is invalid xml 42664 } 42665 } 42666 const body = doc.body || doc.documentElement; 42667 if (dirty && leadingWhitespace) { 42668 body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null); 42669 } 42670 /* Work on whole document or just its body */ 42671 if (NAMESPACE === HTML_NAMESPACE) { 42672 return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0]; 42673 } 42674 return WHOLE_DOCUMENT ? doc.documentElement : body; 42675 }; 42676 /** 42677 * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document. 42678 * 42679 * @param root The root element or node to start traversing on. 42680 * @return The created NodeIterator 42681 */ 42682 const _createNodeIterator = function _createNodeIterator(root) { 42683 return createNodeIterator.call(root.ownerDocument || root, root, 42684 // eslint-disable-next-line no-bitwise 42685 NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null); 42686 }; 42687 /** 42688 * _isClobbered 42689 * 42690 * @param element element to check for clobbering attacks 42691 * @return true if clobbered, false if safe 42692 */ 42693 const _isClobbered = function _isClobbered(element) { 42694 return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function'); 42695 }; 42696 /** 42697 * Checks whether the given object is a DOM node. 42698 * 42699 * @param value object to check whether it's a DOM node 42700 * @return true is object is a DOM node 42701 */ 42702 const _isNode = function _isNode(value) { 42703 return typeof Node === 'function' && value instanceof Node; 42704 }; 42705 function _executeHooks(hooks, currentNode, data) { 42706 arrayForEach(hooks, hook => { 42707 hook.call(DOMPurify, currentNode, data, CONFIG); 42708 }); 42709 } 42710 /** 42711 * _sanitizeElements 42712 * 42713 * @protect nodeName 42714 * @protect textContent 42715 * @protect removeChild 42716 * @param currentNode to check for permission to exist 42717 * @return true if node was killed, false if left alive 42718 */ 42719 const _sanitizeElements = function _sanitizeElements(currentNode) { 42720 let content = null; 42721 /* Execute a hook if present */ 42722 _executeHooks(hooks.beforeSanitizeElements, currentNode, null); 42723 /* Check if element is clobbered or can clobber */ 42724 if (_isClobbered(currentNode)) { 42725 _forceRemove(currentNode); 42726 return true; 42727 } 42728 /* Now let's check the element's type and name */ 42729 const tagName = transformCaseFunc(currentNode.nodeName); 42730 /* Execute a hook if present */ 42731 _executeHooks(hooks.uponSanitizeElement, currentNode, { 42732 tagName, 42733 allowedTags: ALLOWED_TAGS 42734 }); 42735 /* Detect mXSS attempts abusing namespace confusion */ 42736 if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\w!]/g, currentNode.textContent)) { 42737 _forceRemove(currentNode); 42738 return true; 42739 } 42740 /* Remove
vendor: 928 bytes, lines 42740-42755
42740any occurrence of processing instructions */ 42741 if (currentNode.nodeType === NODE_TYPE.progressingInstruction) { 42742 _forceRemove(currentNode); 42743 return true; 42744 } 42745 /* Remove any kind of possibly harmful comments */ 42746 if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\w]/g, currentNode.data)) { 42747 _forceRemove(currentNode); 42748 return true; 42749 } 42750 /* Remove element if anything forbids its presence */ 42751 if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) { 42752 /* Check if we have a custom element to handle */ 42753 if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) { 42754 if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) { 42755 return false;
vendor: 4,849 bytes, lines 42756-42832
42756 } 42757 if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) { 42758 return false; 42759 } 42760 } 42761 /* Keep content except for bad-listed elements */ 42762 if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) { 42763 const parentNode = getParentNode(currentNode) || currentNode.parentNode; 42764 const childNodes = getChildNodes(currentNode) || currentNode.childNodes; 42765 if (childNodes && parentNode) { 42766 const childCount = childNodes.length; 42767 for (let i = childCount - 1; i >= 0; --i) { 42768 const childClone = cloneNode(childNodes[i], true); 42769 childClone.__removalCount = (currentNode.__removalCount || 0) + 1; 42770 parentNode.insertBefore(childClone, getNextSibling(currentNode)); 42771 } 42772 } 42773 } 42774 _forceRemove(currentNode); 42775 return true; 42776 } 42777 /* Check whether element has a valid namespace */ 42778 if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) { 42779 _forceRemove(currentNode); 42780 return true; 42781 } 42782 /* Make sure that older browsers don't get fallback-tag mXSS */ 42783 if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\/no(script|embed|frames)/i, currentNode.innerHTML)) { 42784 _forceRemove(currentNode); 42785 return true; 42786 } 42787 /* Sanitize element content to be template-safe */ 42788 if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) { 42789 /* Get the element's text content */ 42790 content = currentNode.textContent; 42791 arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => { 42792 content = stringReplace(content, expr, ' '); 42793 }); 42794 if (currentNode.textContent !== content) { 42795 arrayPush(DOMPurify.removed, { 42796 element: currentNode.cloneNode() 42797 }); 42798 currentNode.textContent = content; 42799 } 42800 } 42801 /* Execute a hook if present */ 42802 _executeHooks(hooks.afterSanitizeElements, currentNode, null); 42803 return false; 42804 }; 42805 /** 42806 * _isValidAttribute 42807 * 42808 * @param lcTag Lowercase tag name of containing element. 42809 * @param lcName Lowercase attribute name. 42810 * @param value Attribute value. 42811 * @return Returns true if `value` is valid, otherwise false. 42812 */ 42813 // eslint-disable-next-line complexity 42814 const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) { 42815 /* Make sure attribute cannot clobber */ 42816 if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) { 42817 return false; 42818 } 42819 /* Allow valid data-* attributes: At least one character after "-" 42820 (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes) 42821 XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804) 42822 We don't need to check the value; it's always URI safe. */ 42823 if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) { 42824 if ( 42825 // First condition does a very basic check if a) it's basically a valid custom element tagname AND 42826 // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck 42827 // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck 42828 _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)) || 42829 // Alternative, second condition checks if it's an `is`-attribute, AND 42830 // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck 42831 lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else { 42832 return false;
vendor: 14,279 bytes, lines 42833-43198
42833 } 42834 /* Check value is safe. First, is attr inert? If so, is safe */ 42835 } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) { 42836 return false; 42837 } else ; 42838 return true; 42839 }; 42840 /** 42841 * _isBasicCustomElement 42842 * checks if at least one dash is included in tagName, and it's not the first char 42843 * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name 42844 * 42845 * @param tagName name of the tag of the node to sanitize 42846 * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false. 42847 */ 42848 const _isBasicCustomElement = function _isBasicCustomElement(tagName) { 42849 return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT); 42850 }; 42851 /** 42852 * _sanitizeAttributes 42853 * 42854 * @protect attributes 42855 * @protect nodeName 42856 * @protect removeAttribute 42857 * @protect setAttribute 42858 * 42859 * @param currentNode to sanitize 42860 */ 42861 const _sanitizeAttributes = function _sanitizeAttributes(currentNode) { 42862 /* Execute a hook if present */ 42863 _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null); 42864 const { 42865 attributes 42866 } = currentNode; 42867 /* Check if we have attributes; if not we might have a text node */ 42868 if (!attributes || _isClobbered(currentNode)) { 42869 return; 42870 } 42871 const hookEvent = { 42872 attrName: '', 42873 attrValue: '', 42874 keepAttr: true, 42875 allowedAttributes: ALLOWED_ATTR, 42876 forceKeepAttr: undefined 42877 }; 42878 let l = attributes.length; 42879 /* Go backwards over all attributes; safely remove bad ones */ 42880 while (l--) { 42881 const attr = attributes[l]; 42882 const { 42883 name, 42884 namespaceURI, 42885 value: attrValue 42886 } = attr; 42887 const lcName = transformCaseFunc(name); 42888 const initValue = attrValue; 42889 let value = name === 'value' ? initValue : stringTrim(initValue); 42890 /* Execute a hook if present */ 42891 hookEvent.attrName = lcName; 42892 hookEvent.attrValue = value; 42893 hookEvent.keepAttr = true; 42894 hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set 42895 _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent); 42896 value = hookEvent.attrValue; 42897 /* Full DOM Clobbering protection via namespace isolation, 42898 * Prefix id and name attributes with `user-content-` 42899 */ 42900 if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) { 42901 // Remove the attribute with this value 42902 _removeAttribute(name, currentNode); 42903 // Prefix the value and later re-create the attribute with the sanitized value 42904 value = SANITIZE_NAMED_PROPS_PREFIX + value; 42905 } 42906 /* Work around a security issue with comments inside attributes */ 42907 if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title|textarea)/i, value)) { 42908 _removeAttribute(name, currentNode); 42909 continue; 42910 } 42911 /* Make sure we cannot easily use animated hrefs, even if animations are allowed */ 42912 if (lcName === 'attributename' && stringMatch(value, 'href')) { 42913 _removeAttribute(name, currentNode); 42914 continue; 42915 } 42916 /* Did the hooks approve of the attribute? */ 42917 if (hookEvent.forceKeepAttr) { 42918 continue; 42919 } 42920 /* Did the hooks approve of the attribute? */ 42921 if (!hookEvent.keepAttr) { 42922 _removeAttribute(name, currentNode); 42923 continue; 42924 } 42925 /* Work around a security issue in jQuery 3.0 */ 42926 if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\/>/i, value)) { 42927 _removeAttribute(name, currentNode); 42928 continue; 42929 } 42930 /* Sanitize attribute content to be template-safe */ 42931 if (SAFE_FOR_TEMPLATES) { 42932 arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => { 42933 value = stringReplace(value, expr, ' '); 42934 }); 42935 } 42936 /* Is `value` valid for this attribute? */ 42937 const lcTag = transformCaseFunc(currentNode.nodeName); 42938 if (!_isValidAttribute(lcTag, lcName, value)) { 42939 _removeAttribute(name, currentNode); 42940 continue; 42941 } 42942 /* Handle attributes that require Trusted Types */ 42943 if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') { 42944 if (namespaceURI) ; else { 42945 switch (trustedTypes.getAttributeType(lcTag, lcName)) { 42946 case 'TrustedHTML': 42947 { 42948 value = trustedTypesPolicy.createHTML(value); 42949 break; 42950 } 42951 case 'TrustedScriptURL': 42952 { 42953 value = trustedTypesPolicy.createScriptURL(value); 42954 break; 42955 } 42956 } 42957 } 42958 } 42959 /* Handle invalid data-* attribute set by try-catching it */ 42960 if (value !== initValue) { 42961 try { 42962 if (namespaceURI) { 42963 currentNode.setAttributeNS(namespaceURI, name, value); 42964 } else { 42965 /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. "x-schema". */ 42966 currentNode.setAttribute(name, value); 42967 } 42968 if (_isClobbered(currentNode)) { 42969 _forceRemove(currentNode); 42970 } else { 42971 arrayPop(DOMPurify.removed); 42972 } 42973 } catch (_) { 42974 _removeAttribute(name, currentNode); 42975 } 42976 } 42977 } 42978 /* Execute a hook if present */ 42979 _executeHooks(hooks.afterSanitizeAttributes, currentNode, null); 42980 }; 42981 /** 42982 * _sanitizeShadowDOM 42983 * 42984 * @param fragment to iterate over recursively 42985 */ 42986 const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) { 42987 let shadowNode = null; 42988 const shadowIterator = _createNodeIterator(fragment); 42989 /* Execute a hook if present */ 42990 _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null); 42991 while (shadowNode = shadowIterator.nextNode()) { 42992 /* Execute a hook if present */ 42993 _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null); 42994 /* Sanitize tags and elements */ 42995 _sanitizeElements(shadowNode); 42996 /* Check attributes next */ 42997 _sanitizeAttributes(shadowNode); 42998 /* Deep shadow DOM detected */ 42999 if (shadowNode.content instanceof DocumentFragment) { 43000 _sanitizeShadowDOM(shadowNode.content); 43001 } 43002 } 43003 /* Execute a hook if present */ 43004 _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null); 43005 }; 43006 // eslint-disable-next-line complexity 43007 DOMPurify.sanitize = function (dirty) { 43008 let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 43009 let body = null; 43010 let importedNode = null; 43011 let currentNode = null; 43012 let returnNode = null; 43013 /* Make sure we have a string to sanitize. 43014 DO NOT return early, as this will return the wrong type if 43015 the user has requested a DOM object rather than a string */ 43016 IS_EMPTY_INPUT = !dirty; 43017 if (IS_EMPTY_INPUT) { 43018 dirty = '<!-->'; 43019 } 43020 /* Stringify, in case dirty is an object */ 43021 if (typeof dirty !== 'string' && !_isNode(dirty)) { 43022 if (typeof dirty.toString === 'function') { 43023 dirty = dirty.toString(); 43024 if (typeof dirty !== 'string') { 43025 throw typeErrorCreate('dirty is not a string, aborting'); 43026 } 43027 } else { 43028 throw typeErrorCreate('toString is not a function'); 43029 } 43030 } 43031 /* Return dirty HTML if DOMPurify cannot run */ 43032 if (!DOMPurify.isSupported) { 43033 return dirty; 43034 } 43035 /* Assign config vars */ 43036 if (!SET_CONFIG) { 43037 _parseConfig(cfg); 43038 } 43039 /* Clean up removed elements */ 43040 DOMPurify.removed = []; 43041 /* Check if dirty is correctly typed for IN_PLACE */ 43042 if (typeof dirty === 'string') { 43043 IN_PLACE = false; 43044 } 43045 if (IN_PLACE) { 43046 /* Do some early pre-sanitization to avoid unsafe root nodes */ 43047 if (dirty.nodeName) { 43048 const tagName = transformCaseFunc(dirty.nodeName); 43049 if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) { 43050 throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place'); 43051 } 43052 } 43053 } else if (dirty instanceof Node) { 43054 /* If dirty is a DOM element, append to an empty document to avoid 43055 elements being stripped by the parser */ 43056 body = _initDocument('<!---->'); 43057 importedNode = body.ownerDocument.importNode(dirty, true); 43058 if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') { 43059 /* Node is already a body, use as is */ 43060 body = importedNode; 43061 } else if (importedNode.nodeName === 'HTML') { 43062 body = importedNode; 43063 } else { 43064 // eslint-disable-next-line unicorn/prefer-dom-node-append 43065 body.appendChild(importedNode); 43066 } 43067 } else { 43068 /* Exit directly if we have nothing to do */ 43069 if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && 43070 // eslint-disable-next-line unicorn/prefer-includes 43071 dirty.indexOf('<') === -1) { 43072 return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty; 43073 } 43074 /* Initialize the document to work on */ 43075 body = _initDocument(dirty); 43076 /* Check we have a DOM node from the data */ 43077 if (!body) { 43078 return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : ''; 43079 } 43080 } 43081 /* Remove first element node (ours) if FORCE_BODY is set */ 43082 if (body && FORCE_BODY) { 43083 _forceRemove(body.firstChild); 43084 } 43085 /* Get node iterator */ 43086 const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body); 43087 /* Now start iterating over the created document */ 43088 while (currentNode = nodeIterator.nextNode()) { 43089 /* Sanitize tags and elements */ 43090 _sanitizeElements(currentNode); 43091 /* Check attributes next */ 43092 _sanitizeAttributes(currentNode); 43093 /* Shadow DOM detected, sanitize it */ 43094 if (currentNode.content instanceof DocumentFragment) { 43095 _sanitizeShadowDOM(currentNode.content); 43096 } 43097 } 43098 /* If we sanitized `dirty` in-place, return it. */ 43099 if (IN_PLACE) { 43100 return dirty; 43101 } 43102 /* Return sanitized string or DOM */ 43103 if (RETURN_DOM) { 43104 if (RETURN_DOM_FRAGMENT) { 43105 returnNode = createDocumentFragment.call(body.ownerDocument); 43106 while (body.firstChild) { 43107 // eslint-disable-next-line unicorn/prefer-dom-node-append 43108 returnNode.appendChild(body.firstChild); 43109 } 43110 } else { 43111 returnNode = body; 43112 } 43113 if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) { 43114 /* 43115 AdoptNode() is not used because internal state is not reset 43116 (e.g. the past names map of a HTMLFormElement), this is safe 43117 in theory but we would rather not risk another attack vector. 43118 The state that is cloned by importNode() is explicitly defined 43119 by the specs. 43120 */ 43121 returnNode = importNode.call(originalDocument, returnNode, true); 43122 } 43123 return returnNode; 43124 } 43125 let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML; 43126 /* Serialize doctype if allowed */ 43127 if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) { 43128 serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\n' + serializedHTML; 43129 } 43130 /* Sanitize final string template-safe */ 43131 if (SAFE_FOR_TEMPLATES) { 43132 arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => { 43133 serializedHTML = stringReplace(serializedHTML, expr, ' '); 43134 }); 43135 } 43136 return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML; 43137 }; 43138 DOMPurify.setConfig = function () { 43139 let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 43140 _parseConfig(cfg); 43141 SET_CONFIG = true; 43142 }; 43143 DOMPurify.clearConfig = function () { 43144 CONFIG = null; 43145 SET_CONFIG = false; 43146 }; 43147 DOMPurify.isValidAttribute = function (tag, attr, value) { 43148 /* Initialize shared config vars if necessary. */ 43149 if (!CONFIG) { 43150 _parseConfig({}); 43151 } 43152 const lcTag = transformCaseFunc(tag); 43153 const lcName = transformCaseFunc(attr); 43154 return _isValidAttribute(lcTag, lcName, value); 43155 }; 43156 DOMPurify.addHook = function (entryPoint, hookFunction) { 43157 if (typeof hookFunction !== 'function') { 43158 return; 43159 } 43160 arrayPush(hooks[entryPoint], hookFunction); 43161 }; 43162 DOMPurify.removeHook = function (entryPoint, hookFunction) { 43163 if (hookFunction !== undefined) { 43164 const index = arrayLastIndexOf(hooks[entryPoint], hookFunction); 43165 return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0]; 43166 } 43167 return arrayPop(hooks[entryPoint]); 43168 }; 43169 DOMPurify.removeHooks = function (entryPoint) { 43170 hooks[entryPoint] = []; 43171 }; 43172 DOMPurify.removeAllHooks = function () { 43173 hooks = _createHooksMap(); 43174 }; 43175 return DOMPurify; 43176 } 43177 var purify = createDOMPurify(); 43178 43179 return purify; 43180 43181})); 43182//# sourceMappingURL=purify.js.map 43183 43184 43185/***/ }), 43186/* 164 */ 43187/***/ (function(module, exports) { 43188 43189// removed by extract-text-webpack-plugin 43190 43191/***/ }), 43192/* 165 */ 43193/***/ (function(module, exports) { 43194 43195// removed by extract-text-webpack-plugin 43196 43197/***/ }) 43198/******/ ]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.