4000 Watch Fanático | Netflix Official Site // or element, update the intersection rect. // Note: and cannot be clipped to a rect that's not also // the document rect, so no need to compute a new intersection. if (parent != document.body && parent != document.documentElement && parentComputedStyle.overflow != 'visible') { parentRect = getBoundingClientRect(parent); } } // If either of the above conditionals set a new parentRect, // calculate new intersection data. if (parentRect) { intersectionRect = computeRectIntersection(parentRect, intersectionRect); if (!intersectionRect) break; } parent = getParentNode(parent); } return intersectionRect; }; /** * Returns the root rect after being expanded by the rootMargin value. * @return {Object} The expanded root rect. * @private */ IntersectionObserver.prototype._getRootRect = function() { var rootRect; if (this.root) { rootRect = getBoundingClientRect(this.root); } else { // Use / instead of window since scroll bars affect size. var html = document.documentElement; var body = document.body; rootRect = { x: 0, y: 0, top: 0, left: 0, right: html.clientWidth || body.clientWidth, width: html.clientWidth || body.clientWidth, bottom: html.clientHeight || body.clientHeight, height: html.clientHeight || body.clientHeight }; } return this._expandRectByRootMargin(rootRect); }; /** * Accepts a rect and expands it by the rootMargin value. * @param {Object} rect The rect object to expand. * @return {Object} The expanded rect. * @private */ IntersectionObserver.prototype._expandRectByRootMargin = function(rect) { var margins = this._rootMarginValues.map(function(margin, i) { return margin.unit == 'px' ? margin.value : margin.value * (i % 2 ? rect.width : rect.height) / 100; }); var newRect = { top: rect.top - margins[0], right: rect.right + margins[1], bottom: rect.bottom + margins[2], left: rect.left - margins[3] }; newRect.width = newRect.right - newRect.left; newRect.height = newRect.bottom - newRect.top; newRect.x = newRect.left; newRect.y = newRect.top; return newRect; }; /** * Accepts an old and new entry and returns true if at least one of the * threshold values has been crossed. * @param {?IntersectionObserverEntry} oldEntry The previous entry for a * particular target element or null if no previous entry exists. * @param {IntersectionObserverEntry} newEntry The current entry for a * particular target element. * @return {boolean} Returns true if a any threshold has been crossed. * @private */ IntersectionObserver.prototype._hasCrossedThreshold = function(oldEntry, newEntry) { // To make comparing easier, an entry that has a ratio of 0 // but does not actually intersect is given a value of -1 var oldRatio = oldEntry && oldEntry.isIntersecting ? oldEntry.intersectionRatio || 0 : -1; var newRatio = newEntry.isIntersecting ? newEntry.intersectionRatio || 0 : -1; // Ignore unchanged ratios if (oldRatio === newRatio) return; for (var i = 0; i < this.thresholds.length; i++) { var threshold = this.thresholds[i]; // Return true if an entry matches a threshold or if the new ratio // and the old ratio are on the opposite sides of a threshold. if (threshold == oldRatio || threshold == newRatio || threshold < oldRatio !== threshold < newRatio) { return true; } } }; /** * Returns whether or not the root element is an element and is in the DOM. * @return {boolean} True if the root element is an element and is in the DOM. * @private */ IntersectionObserver.prototype._rootIsInDom = function() { return !this.root || containsDeep(document, this.root); }; /** * Returns whether or not the target element is a child of root. * @param {Element} target The target element to check. * @return {boolean} True if the target element is a child of root. * @private */ IntersectionObserver.prototype._rootContainsTarget = function(target) { return containsDeep(this.root || document, target); }; /** * Adds the instance to the global IntersectionObserver registry if it isn't * already present. * @private */ IntersectionObserver.prototype._registerInstance = function() { if (registry.indexOf(this) < 0) { registry.push(this); } }; /** * Removes the instance from the global IntersectionObserver registry. * @private */ IntersectionObserver.prototype._unregisterInstance = function() { var index = registry.indexOf(this); if (index != -1) registry.splice(index, 1); }; /** * Returns the result of the performance.now() method or null in browsers * that don't support the API. * @return {number} The elapsed time since the page was requested. */ function now() { return window.performance && performance.now && performance.now(); } /** * Throttles a function and delays its execution, so it's only called at most * once within a given time period. * @param {Function} fn The function to throttle. * @param {number} timeout The amount of time that must pass before the * function can be called again. * @return {Function} The throttled function. */ function throttle(fn, timeout) { var timer = null; return function () { if (!timer) { timer = setTimeout(function() { fn(); timer = null; }, timeout); } }; } /** * Adds an event handler to a DOM node ensuring cross-browser compatibility. * @param {Node} node The DOM node to add the event handler to. * @param {string} event The event name. * @param {Function} fn The event handler to add. * @param {boolean} opt_useCapture Optionally adds the even to the capture * phase. Note: this only works in modern browsers. */ function addEvent(node, event, fn, opt_useCapture) { if (typeof node.addEventListener == 'function') { node.addEventListener(event, fn, opt_useCapture || false); } else if (typeof node.attachEvent == 'function') { node.attachEvent('on' + event, fn); } } /** * Removes a previously added event handler from a DOM node. * @param {Node} node The DOM node to remove the event handler from. * @param {string} event The event name. * @param {Function} fn The event handler to remove. * @param {boolean} opt_useCapture If the event handler was added with this * flag set to true, it should be set to true here in order to remove it. */ function removeEvent(node, event, fn, opt_useCapture) { if (typeof node.removeEventListener == 'function') { node.removeEventListener(event, fn, opt_useCapture || false); } else if (typeof node.detatchEvent == 'function') { node.detatchEvent('on' + event, fn); } } /** * Returns the intersection between two rect objects. * @param {Object} rect1 The first rect. * @param {Object} rect2 The second rect. * @return {?Object} The intersection rect or undefined if no intersection * is found. */ function computeRectIntersection(rect1, rect2) { var top = Math.max(rect1.top, rect2.top); var bottom = Math.min(rect1.bottom, rect2.bottom); var left = Math.max(rect1.left, rect2.left); var right = Math.min(rect1.right, rect2.right); var width = right - left; var height = bottom - top; return (width >= 0 && height >= 0) && { x: left, y: top, top: top, bottom: bottom, left: left, right: right, width: width, height: height }; } /** * Shims the native getBoundingClientRect for compatibility with older IE. * @param {Element} el The element whose bounding rect to get. * @return {Object} The (possibly shimmed) rect of the element. */ function getBoundingClientRect(el) { var rect; try { rect = el.getBoundingClientRect(); } catch (err) { // Ignore Windows 7 IE11 "Unspecified error" // https://github.com/w3c/IntersectionObserver/pull/205 } if (!rect) return getEmptyRect(); // Older IE if (!(rect.width && rect.height && rect.x && rect.y)) { rect = { x: rect.left, y: rect.top, top: rect.top, right: rect.right, bottom: rect.bottom, left: rect.left, width: rect.right - rect.left, height: rect.bottom - rect.top }; } return rect; } /** * Returns an empty rect object. An empty rect is returned when an element * is not in the DOM. * @return {Object} The empty rect. */ function getEmptyRect() { return { x: 0, y: 0, top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0 }; } /** * Checks to see if a parent element contains a child element (including inside * shadow DOM). * @param {Node} parent The parent element. * @param {Node} child The child element. * @return {boolean} True if the parent node contains the child node. */ function containsDeep(parent, child) { var node = child; while (node) { if (node == parent) return true; node = getParentNode(node); } return false; } /** * Gets the parent node of an element or its host element if the parent node * is a shadow root. * @param {Node} node The node whose parent to get. * @return {Node|null} The parent node or null if no parent exists. */ function getParentNode(node) { var parent = node.parentNode; if (parent && parent.nodeType == 11 && parent.host) { // If the parent is a shadow root, return the host element. return parent.host; } if (parent && parent.assignedSlot) { // If the parent is distributed in a , return the parent of a slot. return parent.assignedSlot.parentNode; } return parent; } // Exposes the constructors globally. window.IntersectionObserver = IntersectionObserver; window.IntersectionObserverEntry = IntersectionObserverEntry; }(window, document)); } if (!("IntersectionObserverEntry"in window&&"isIntersecting"in window.IntersectionObserverEntry.prototype )) { // IntersectionObserverEntry // Minimal polyfill for Edge 15's lack of `isIntersecting` // See: https://github.com/w3c/IntersectionObserver/issues/211 Object.defineProperty(IntersectionObserverEntry.prototype, 'isIntersecting', { get: function () { return this.intersectionRatio > 0; } } ); } if (!("Reflect"in self )) { // Reflect // 26.1 The Reflect Object try { Object.defineProperty(self, "Reflect", { value: self.Reflect || {}, writable: true, configurable: true, enumerable: false }); } catch (e) { self.Reflect = self.Reflect || {}; } } if (!("flags"in RegExp.prototype )) { // RegExp.prototype.flags /* global Get, ToBoolean, Type */ Object.defineProperty(RegExp.prototype, 'flags', { configurable: true, enumerable: false, get: function () { // 21.2.5.3.1 Let R be the this value. var R = this; // 21.2.5.3.2 If Type(R) is not Object, throw a TypeError exception. if (Type(R) !== 'object') { throw new TypeError('Method called on incompatible type: must be an object.'); } // 21.2.5.3.3 Let result be the empty String. var result = ''; // 21.2.5.3.4 Let global be ToBoolean(? Get(R, "global")). var global = ToBoolean(Get(R, 'global')); // 21.2.5.3.5 If global is true, append the code unit 0x0067 (LATIN SMALL LETTER G) as the last code unit of result. if (global) { result += 'g'; } // 21.2.5.3.6 Let ignoreCase be ToBoolean(? Get(R, "ignoreCase")). var ignoreCase = ToBoolean(Get(R, 'ignoreCase')); // 21.2.5.3.7 If ignoreCase is true, append the code unit 0x0069 (LATIN SMALL LETTER I) as the last code unit of result. if (ignoreCase) { result += 'i'; } // 21.2.5.3.8 Let multiline be ToBoolean(? Get(R, "multiline")). var multiline = ToBoolean(Get(R, 'multiline')); // 21.2.5.3.9 If multiline is true, append the code unit 0x006D (LATIN SMALL LETTER M) as the last code unit of result. if (multiline) { result += 'm'; } // 21.2.5.3.10 Let unicode be ToBoolean(? Get(R, "unicode")). var unicode = ToBoolean(Get(R, 'unicode')); // 21.2.5.3.11 If unicode is true, append the code unit 0x0075 (LATIN SMALL LETTER U) as the last code unit of result. if (unicode) { result += 'u'; } // 21.2.5.3.12 Let sticky be ToBoolean(? Get(R, "sticky")). var sticky = ToBoolean(Get(R, 'sticky')); // 21.2.5.3.13 If sticky is true, append the code unit 0x0079 (LATIN SMALL LETTER Y) as the last code unit of result. if (sticky) { result += 'y'; } // 21.2.5.3.14 Return result. return result; } }); } if (!("requestAnimationFrame"in self )) { // requestAnimationFrame (function (global) { var rafPrefix; // do not inject RAF in order to avoid broken performance var nowOffset = Date.now(); // use performance api if exist, otherwise use Date.now. // Date.now polyfill required. var pnow = function () { if (global.performance && typeof global.performance.now === 'function') { return global.performance.now(); } // fallback return Date.now() - nowOffset; }; if ('mozRequestAnimationFrame' in global) { rafPrefix = 'moz'; } else if ('webkitRequestAnimationFrame' in global) { rafPrefix = 'webkit'; } if (rafPrefix) { global.requestA 4000 nimationFrame = function (callback) { return global[rafPrefix + 'RequestAnimationFrame'](function () { callback(pnow()); }); }; global.cancelAnimationFrame = global[rafPrefix + 'CancelAnimationFrame']; } else { var lastTime = Date.now(); global.requestAnimationFrame = function (callback) { if (typeof callback !== 'function') { throw new TypeError(callback + ' is not a function'); } var currentTime = Date.now(), delay = 16 + lastTime - currentTime; if (delay < 0) { delay = 0; } lastTime = currentTime; return setTimeout(function () { lastTime = Date.now(); callback(pnow()); }, delay); }; global.cancelAnimationFrame = function (id) { clearTimeout(id); }; } }(self)); } if (!("requestIdleCallback"in self )) { // requestIdleCallback (function (global) { // The requestIdleCallback polyfill builds on ReactScheduler, which // calculates the browser's framerate and seperates the idle call into a // seperate tick: // "It works by scheduling a requestAnimationFrame, storing the time for the // start of the frame, then scheduling a postMessage which gets scheduled // after paint. Within the postMessage handler do as much work as possible // until time + frame rate. By separating the idle call into a separate // event tick we ensure that layout, paint and other browser work is counted // against the available time. The frame rate is dynamically adjusted." // https://github.com/facebook/react/blob/43a137d9c13064b530d95ba51138ec1607de2c99/packages/react-scheduler/src/ReactScheduler.js // MIT License // // Copyright (c) 2013-present, Facebook, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. var idleCallbackIdentifier = 0; var scheduledCallbacks = []; var timedOutCallbacks = []; var nestedCallbacks = []; var isIdleScheduled = false; var isCallbackRunning = false; var allowIdleDeadlineConstructor = false; var scheduledAnimationFrameId; var scheduledAnimationFrameTimeout; // We start out assuming that we run at 30fps (1 frame per 33.3ms) but then // the heuristic tracking will adjust this value to a faster fps if we get // more frequent animation frames. var previousFrameTime = 33; var activeFrameTime = 33; var frameDeadline = 0; var port; // The object to `postMessage` on. var messageKey; var messageChannelSupport = typeof MessageChannel === 'object'; // We use the postMessage trick to defer idle work until after the repaint. if (messageChannelSupport) { // Use MessageChannel if supported. var messageChannel = new MessageChannel(); port = messageChannel.port2; messageChannel.port1.onmessage = processIdleCallbacks; } else { // TODO add `MessageChannel` polyfill to polyfill.io. // Otherwise fallback to document messaging. It is less efficient as // all message event listeners within a project will be called each // frame whilst idle callbacks remain. messageKey = 'polyfillIdleCallback' + Math.random().toString(36).slice(2); port = window; window.addEventListener('message', function (event) { // some engines return true when a strict comparison with `window` is made. if (event.source != window || event.data !== messageKey) { return; } processIdleCallbacks(); }); } function timeRemaining() { // Defensive coding. Time remaining should never be more than 50ms. // This is sometimes the case in Safari 9. return Math.min(frameDeadline - performance.now(), 50); } function getDeadline(callbackObject) { var timeout = callbackObject.options.timeout; var added = callbackObject.added; // Create deadline from global.IdleDeadline. // Turn off constructor error to do so. allowIdleDeadlineConstructor = true; var deadline = new global.IdleDeadline(); allowIdleDeadlineConstructor = false; // Set deadline properties. Object.defineProperty(deadline, 'didTimeout', { value: timeout ? added + timeout < performance.now() : false }); Object.defineProperty(deadline, 'timeRemaining', { value: timeRemaining }); return deadline; } function runCallback(callbackObject) { var deadline = getDeadline(callbackObject); var callback = callbackObject.callback; callback(deadline); } function scheduleIdleWork() { if (!isIdleScheduled) { isIdleScheduled = true; try { // Safari 9 throws "TypeError: Value is not a sequence" port.postMessage(messageKey, '*'); } catch (error) { port.postMessage(messageKey); } } } function scheduleAnimationFrame() { // Schedule animation frame to calculate the browsers framerate. if (!scheduledAnimationFrameId) { // Request the animation frame. scheduledAnimationFrameId = requestAnimationFrame(function (rafTime) { // Remove timeout fallback, as the animation frame run successfully. scheduledAnimationFrameId = undefined; clearTimeout(scheduledAnimationFrameTimeout); // Safari 9 gives a `rafTime` far into the future. // It appears to be (now + (frame rate) * 2). var futureRafTime = rafTime - activeFrameTime > performance.now(); if (futureRafTime) { rafTime = rafTime - (activeFrameTime * 2); } // Calculate the frame rate. var nextFrameTime = rafTime - frameDeadline + activeFrameTime; if (nextFrameTime < activeFrameTime && previousFrameTime < activeFrameTime) { if (nextFrameTime < 8) { // Defensive coding. We don't support higher frame rates than 120hz. // If we get lower than that, it is probably a bug. nextFrameTime = 8; } // If one frame goes long, then the next one can be short to catch up. // If two frames are short in a row, then that's an indication that we // actually have a higher frame rate than what we're currently optimizing. // We adjust our heuristic dynamically accordingly. For example, if we're // running on 120hz display or 90hz VR display. // Take the max of the two in case one of them was an anomaly due to // missed frame deadlines. activeFrameTime = Math.max(previousFrameTime, nextFrameTime); } else { previousFrameTime = nextFrameTime; } // Update the deadline we have to run idle callbacks. frameDeadline = rafTime + activeFrameTime; // Schedule idle callback work. scheduleIdleWork(); }); // If the animation frame is not called, for example if the tab is in the // background, schedule work should still be run. So set a timeout as a // fallback. scheduledAnimationFrameTimeout = setTimeout(function () { // Cancel the animation frame which failed to run timely. cancelAnimationFrame(scheduledAnimationFrameId); scheduledAnimationFrameId = undefined; // Update the deadline we have to run idle callbacks. frameDeadline = performance.now() + 50; // Run callbacks. scheduleIdleWork(); }, 100); } } function processIdleCallbacks () { isIdleScheduled = false; isCallbackRunning = true; // Move timed-out callbacks from the scheduled array. timedOutCallbacks = scheduledCallbacks.filter(function (callbackObject) { if (callbackObject.options.timeout !== undefined) { var deadline = getDeadline(callbackObject); return deadline.didTimeout; } return false; }); scheduledCallbacks = scheduledCallbacks.filter(function (callbackObject) { return !timedOutCallbacks.includes(callbackObject); }); // Of the timed-out callbacks, order by those with the lowest timeout. timedOutCallbacks.sort(function (a, b) { return a.options.timeout - b.options.timeout; }); // Run all timed-out callbacks, regardless of the deadline time // remaining. while (timedOutCallbacks.length > 0) { var callbackObject = timedOutCallbacks.shift(); runCallback(callbackObject); } // While there is deadline time remaining, run remaining scheduled // callbacks. while (scheduledCallbacks.length > 0 && timeRemaining() > 0) { callbackObject = scheduledCallbacks.shift(); runCallback(callbackObject); } // Schedule callbacks added during this idle period to run in the next // idle period (nested callbacks). if (nestedCallbacks.length > 0) { scheduledCallbacks = scheduledCallbacks.concat(nestedCallbacks); nestedCallbacks = []; } // Schedule any remaining callbacks for a future idle period. if (scheduledCallbacks.length > 0) { scheduleAnimationFrame(); } isCallbackRunning = false; } /** * @param {function} callback * @return {number} - The idle callback identifier. */ global.requestIdleCallback = function requestIdleCallback(callback, options) { var id = ++idleCallbackIdentifier; // Create an object to store the callback, its options, and the time it // was added. var callbackObject = { id: id, callback: callback, options: options || {}, added: performance.now() }; // If an idle callback is running already this is a nested idle callback // and should be scheduled for a different period. If no idle callback // is running schedule immediately. if (isCallbackRunning) { nestedCallbacks.push(callbackObject); } else { scheduledCallbacks.push(callbackObject); } // Run scheduled idle callbacks after the next animation frame. scheduleAnimationFrame(); // Return the callbacks identifier. return id; }; /** * @param {number} - The idle callback identifier to cancel. * @return {undefined} */ global.cancelIdleCallback = function cancelIdleCallback(id) { if(arguments.length === 0) { throw new TypeError('cancelIdleCallback requires at least 1 argument'); } var callbackFilter = function (callbackObject) { return callbackObject.id !== id; }; // Find and remove the callback from the scheduled idle callbacks, // and nested callbacks (cancelIdleCallback may be called in an idle period). scheduledCallbacks = scheduledCallbacks.filter(callbackFilter); nestedCallbacks = nestedCallbacks.filter(callbackFilter); }; /** IdleDeadline Polyfill * @example * requestIdleCallback(function (deadline) { * console.log(deadline instanceof IdleDeadline); // true * }); */ global.IdleDeadline = function IdleDeadline() { if (!allowIdleDeadlineConstructor) { throw new TypeError('Illegal constructor'); } }; Object.defineProperty(global.IdleDeadline.prototype, 'timeRemaining', { value: function() { throw new TypeError('Illegal invocation'); } }); if (Object.prototype.hasOwnProperty.call(Object.prototype, '__defineGetter__')) { Object.defineProperty(global.IdleDeadline.prototype, 'didTimeout', { get: function () { throw new TypeError('Illegal invocation'); } }); } else { Object.defineProperty(global.IdleDeadline.prototype, 'didTimeout', { value: undefined }); } }(self)); } if (!("fromCodePoint"in String&&1===String.fromCodePoint.length )) { // String.fromCodePoint /* global CreateMethodProperty, IsArray, SameValue, ToInteger, ToNumber, UTF16Encoding */ // 21.1.2.2. String.fromCodePoint ( ...codePoints ) CreateMethodProperty(String, 'fromCodePoint', function fromCodePoint(_) { // Polyfill.io - List to store the characters whilst iterating over the code points. var result = []; // 1. Let codePoints be a List containing the arguments passed to this function. var codePoints = arguments; // 2. Let length be the number of elements in codePoints. var length = arguments.length; // 3. Let elements be a new empty List. var elements = []; // 4. Let nextIndex be 0. var nextIndex = 0; // 5. Repeat, while nextIndex < length while (nextIndex < length) { // Polyfill.io - We reset the elements List as we store the partial results in the result List. elements = []; // a. Let next be codePoints[nextIndex]. var next = codePoints[nextIndex]; // b. Let nextCP be ? ToNumber(next). var nextCP = ToNumber(next); // c. If SameValue(nextCP, ToInteger(nextCP)) is false, throw a RangeError exception. if (SameValue(nextCP, ToInteger(nextCP)) === false) { throw new RangeError('Invalid code point ' + Object.prototype.toString.call(nextCP)); } // d. If nextCP < 0 or nextCP > 0x10FFFF, throw a RangeError exception. if (nextCP < 0 || nextCP > 0x10FFFF) { throw new RangeError('Invalid code point ' + Object.prototype.toString.call(nextCP)); } // e. Append the elements of the UTF16Encoding of nextCP to the end of elements. // Polyfill.io - UTF16Encoding can return a single codepoint or a list of multiple codepoints. var cp = UTF16Encoding(nextCP); if (IsArray(cp)) { elements = elements.concat(cp); } else { elements.push(cp); } // f. Let nextIndex be nextIndex + 1. nextIndex = nextIndex + 1; // Polyfill.io - Retrieving the characters whilst iterating enables the function to work in a memory efficient and performant way. result.push(String.fromCharCode.apply(null, elements)); } // 6. Return the String value whose elements are, in order, the elements in the List elements. If length is 0, the empty string is returned. return length === 0 ? '' : result.join(''); }); } if (!("at"in String.prototype )) { // String.prototype.at /* global CreateMethodProperty, RequireObjectCoercible, ToIntegerOrInfinity, ToString */ // 22.1.3.1. String.prototype.at ( index ) CreateMethodProperty(String.prototype, 'at', function at(index) { // 1. Let O be ? RequireObjectCoercible(this value). var O = RequireObjectCoercible(this); // 2. Let S be ? ToString(O). var S = ToString(O); // 3. Let len be the length of S. var len = S.length; // 4. Let relativeIndex be ? ToIntegerOrInfinity(index). var relativeIndex = ToIntegerOrInfinity(index); // 5. If relativeIndex ≥ 0, then // 5.a. Let k be relativeIndex. // 6. Else, // 6.a. Let k be len + relativeIndex. var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; // 7. If k < 0 or k ≥ len, return undefined. if (k < 0 || k >= len) return undefined; // 8. Return the substring of S from k to k + 1. return S.substring(k, k + 1); }); } if (!("codePointAt"in String.prototype )) { // String.prototype.codePointAt /* global CreateMethodProperty, RequireObjectCoercible, ToInteger, ToString, UTF16Decode */ // 21.1.3.3. String.prototype.codePointAt ( pos ) CreateMethodProperty(String.prototype, 'codePointAt', function codePointAt(pos) { // 1. Let O be ? RequireObjectCoercible(this value). var O = RequireObjectCoercible(this); // 2. Let S be ? ToString(O). var S = ToString(O); // 3. Let position be ? ToInteger(pos). var position = ToInteger(pos); // 4. Let size be the length of S. var size = S.length; // 5. If position < 0 or position ≥ size, return undefined. if (position < 0 || position >= size) { return undefined; } // 6. Let first be the numeric value of the code unit at index position within the String S. var first = String.prototype.charCodeAt.call(S, position); // 7. If first < 0xD800 or first > 0xDBFF or position+1 = size, return first. if (first < 0xD800 || first > 0xDBFF || position + 1 === size) { return first; } // 8. Let second be the numeric value of the code unit at index position+1 within the String S. var second = String.prototype.charCodeAt.call(S, position + 1); // 9. If second < 0xDC00 or second > 0xDFFF, return first. if (second < 0xDC00 || second > 0xDFFF) { return first; } // 10. Return UTF16Decode(first, second). // 21.1.3.3.10 Re 4000 turn UTF16Decode(first, second). return UTF16Decode(first, second); }); } // _ESAbstract.AdvanceStringIndex /* global */ // 22.2.5.2.3 AdvanceStringIndex ( S, index, unicode ) function AdvanceStringIndex(S, index, unicode) { // eslint-disable-line no-unused-vars // 1. Assert: index ≤ 253 - 1. if (index > Number.MAX_SAFE_INTEGER) { throw new TypeError('Assertion failed: `index` must be <= 2**53'); } // 2. If unicode is false, return index + 1. if (unicode === false) { return index + 1; } // 3. Let length be the number of code units in S. var length = S.length; // 4. If index + 1 ≥ length, return index + 1. if (index + 1 >= length) { return index + 1; } // 5. Let cp be ! CodePointAt(S, index). var cp = S.codePointAt(index); // 6. Return index + cp.[[CodeUnitCount]]. return index + cp.length; } if (!("endsWith"in String.prototype )) { // String.prototype.endsWith /* global CreateMethodProperty, IsRegExp, RequireObjectCoercible, ToInteger, ToString */ // 21.1.3.6. String.prototype.endsWith ( searchString [ , endPosition ] ) CreateMethodProperty(String.prototype, 'endsWith', function endsWith(searchString /* [ , endPosition ] */) { 'use strict'; var endPosition = arguments.length > 1 ? arguments[1] : undefined; // 1. Let O be ? RequireObjectCoercible(this value). var O = RequireObjectCoercible(this); // 2. Let S be ? ToString(O). var S = ToString(O); // 3. Let isRegExp be ? IsRegExp(searchString). var isRegExp = IsRegExp(searchString); // 4. If isRegExp is true, throw a TypeError exception. if (isRegExp) { throw new TypeError('First argument to String.prototype.endsWith must not be a regular expression'); } // 5. Let searchStr be ? ToString(searchString). var searchStr = ToString(searchString); // 6. Let len be the length of S. var len = S.length; // 7. If endPosition is undefined, let pos be len, else let pos be ? ToInteger(endPosition). var pos = endPosition === undefined ? len : ToInteger(endPosition); // 8. Let end be min(max(pos, 0), len). var end = Math.min(Math.max(pos, 0), len); // 9. Let searchLength be the length of searchStr. var searchLength = searchStr.length; // 10. Let start be end - searchLength. var start = end - searchLength; // 11. If start is less than 0, return false. if (start < 0) { return false; } // 12. If the sequence of elements of S starting at start of length searchLength is the same as the full element sequence of searchStr, return true. if (S.substr(start, searchLength) === searchStr) { return true; } // 13. Otherwise, return false. return false; }); } if (!("includes"in String.prototype )) { // String.prototype.includes /* global CreateMethodProperty, IsRegExp, RequireObjectCoercible, ToInteger, ToString */ // 21.1.3.7. String.prototype.includes ( searchString [ , position ] ) CreateMethodProperty(String.prototype, 'includes', function includes(searchString /* [ , position ] */) { 'use strict'; var position = arguments.length > 1 ? arguments[1] : undefined; // 1. Let O be ? RequireObjectCoercible(this value). var O = RequireObjectCoercible(this); // 2. Let S be ? ToString(O). var S = ToString(O); // 3. Let isRegExp be ? IsRegExp(searchString). var isRegExp = IsRegExp(searchString); // 4. If isRegExp is true, throw a TypeError exception. if (isRegExp) { throw new TypeError('First argument to String.prototype.includes must not be a regular expression'); } // 5. Let searchStr be ? ToString(searchString). var searchStr = ToString(searchString); // 6. Let pos be ? ToInteger(position). (If position is undefined, this step produces the value 0.) var pos = ToInteger(position); // 7. Let len be the length of S. var len = S.length; // 8. Let start be min(max(pos, 0), len). var start = Math.min(Math.max(pos, 0), len); // 9. Let searchLen be the length of searchStr. // var searchLength = searchStr.length; // 10. If there exists any integer k not smaller than start such that k + searchLen is not greater than len, and for all nonnegative integers j less than searchLen, the code unit at index k+j within S is the same as the code unit at index j within searchStr, return true; but if there is no such integer k, return false. return String.prototype.indexOf.call(S, searchStr, start) !== -1; }); } if (!("padEnd"in String.prototype )) { // String.prototype.padEnd /* global CreateMethodProperty, RequireObjectCoercible, ToLength, ToString */ // 21.1.3.13. String.prototype.padEnd( maxLength [ , fillString ] ) CreateMethodProperty(String.prototype, 'padEnd', function padEnd(maxLength /* [ , fillString ] */) { 'use strict'; var fillString = arguments.length > 1 ? arguments[1] : undefined; // 1. Let O be ? RequireObjectCoercible(this value). var O = RequireObjectCoercible(this); // 2. Let S be ? ToString(O). var S = ToString(O); // 3. Let intMaxLength be ? ToLength(maxLength). var intMaxLength = ToLength(maxLength); // 4. Let stringLength be the length of S. var stringLength = S.length; // 5. If intMaxLength is not greater than stringLength, return S. if (intMaxLength <= stringLength) { return S; } // 6. If fillString is undefined, let filler be the String value consisting solely of the code unit 0x0020 (SPACE). if (fillString === undefined) { var filler = ' '; // 7. Else, let filler be ? ToString(fillString). } else { filler = ToString(fillString); } // 8. If filler is the empty String, return S. if (filler === '') { return S; } // 9. Let fillLen be intMaxLength - stringLength. var fillLen = intMaxLength - stringLength; // 10. Let truncatedStringFiller be the String value consisting of repeated concatenations of filler truncated to length fillLen. var truncatedStringFiller = ''; for (var i = 0; i < fillLen; i++) { truncatedStringFiller += filler; } truncatedStringFiller = truncatedStringFiller.substr(0, fillLen); // 11. Return the string-concatenation of S and truncatedStringFiller. return S + truncatedStringFiller; }); } if (!("padStart"in String.prototype )) { // String.prototype.padStart /* global CreateMethodProperty, RequireObjectCoercible, ToLength, ToString */ // 21.1.3.14. String.prototype.padStart( maxLength [ , fillString ] ) CreateMethodProperty(String.prototype, 'padStart', function padStart(maxLength /* [ , fillString ] */) { 'use strict'; var fillString = arguments.length > 1 ? arguments[1] : undefined; // 1. Let O be ? RequireObjectCoercible(this value). var O = RequireObjectCoercible(this); // 2. Let S be ? ToString(O). var S = ToString(O); // 3. Let intMaxLength be ? ToLength(maxLength). var intMaxLength = ToLength(maxLength); // 4. Let stringLength be the length of S. var stringLength = S.length; // 5. If intMaxLength is not greater than stringLength, return S. if (intMaxLength <= stringLength) { return S; } // 6. If fillString is undefined, let filler be the String value consisting solely of the code unit 0x0020 (SPACE). if (fillString === undefined) { var filler = ' '; // 7. Else, let filler be ? ToString(fillString). } else { filler = ToString(fillString); } // 8. If filler is the empty String, return S. if (filler === '') { return S; } // 9. Let fillLen be intMaxLength - stringLength. var fillLen = intMaxLength - stringLength; // 10. Let truncatedStringFiller be the String value consisting of repeated concatenations of filler truncated to length fillLen. var truncatedStringFiller = ''; for (var i = 0; i < fillLen; i++) { truncatedStringFiller += filler; } truncatedStringFiller = truncatedStringFiller.substr(0, fillLen); // 11. Return the string-concatenation of truncatedStringFiller and S. return truncatedStringFiller + S; }); } if (!("repeat"in String.prototype )) { // String.prototype.repeat /* global CreateMethodProperty, RequireObjectCoercible, ToInteger, ToString */ // 21.1.3.15String.prototype.repeat ( count ) CreateMethodProperty(String.prototype, 'repeat', function repeat(count) { 'use strict'; // 1. Let O be ? RequireObjectCoercible(this value). var O = RequireObjectCoercible(this); // 2. Let S be ? ToString(O). var S = ToString(O); // 3. Let n be ? ToInteger(count). var n = ToInteger(count); // 4. If n < 0, throw a RangeError exception. if (n < 0) { throw new RangeError('Invalid count value'); } // 5. If n is +∞, throw a RangeError exception. if (n === Infinity) { throw new RangeError('Invalid count value'); } // 6. Let T be the String value that is made from n copies of S appended together. If n is 0, T is the empty String. var T = n === 0 ? '' : new Array(n + 1).join(S); // 7. Return T. return T; }); } if (!("startsWith"in String.prototype )) { // String.prototype.startsWith /* global CreateMethodProperty, IsRegExp, RequireObjectCoercible, ToInteger, ToString */ // 21.1.3.20. String.prototype.startsWith ( searchString [ , position ] ) CreateMethodProperty(String.prototype, 'startsWith', function startsWith(searchString /* [ , position ] */) { 'use strict'; var position = arguments.length > 1 ? arguments[1] : undefined; // 1. Let O be ? RequireObjectCoercible(this value). var O = RequireObjectCoercible(this); // 2. Let S be ? ToString(O). var S = ToString(O); // 3. Let isRegExp be ? IsRegExp(searchString). var isRegExp = IsRegExp(searchString); // 4. If isRegExp is true, throw a TypeError exception. if (isRegExp) { throw new TypeError('First argument to String.prototype.startsWith must not be a regular expression'); } // 5. Let searchStr be ? ToString(searchString). var searchStr = ToString(searchString); // 6. Let pos be ? ToInteger(position). (If position is undefined, this step produces the value 0.) var pos = ToInteger(position); // 7. Let len be the length of S. var len = S.length; // 8. Let start be min(max(pos, 0), len). var start = Math.min(Math.max(pos, 0), len); // 9. Let searchLength be the length of searchStr. var searchLength = searchStr.length; // 10. If searchLength+start is greater than len, return false. if (searchLength + start > len) { return false; } // 11. If the sequence of elements of S starting at start of length searchLength is the same as the full element sequence of searchStr, return true. if (S.substr(start).indexOf(searchString) === 0) { return true; } // 12. Otherwise, return false. return false; }); } if (!("trim"in String.prototype&&function(){var r="​…᠎" return!"\t\n\v\f\r                 \u2028\u2029\ufeff".trim()&&r.trim()===r}() )) { // String.prototype.trim /* global CreateMethodProperty, TrimString */ // 21.1.3.27. String.prototype.trim ( ) CreateMethodProperty(String.prototype, 'trim', function trim() { 'use strict'; // Let S be this value. var S = this; // Return ? TrimString(S, "start+end"). return TrimString(S, "start+end"); }); } if (!("parseFloat"in Number&&1/parseFloat("\t\n\v\f\r                 \u2028\u2029\ufeff-0")==-1/0 )) { // Number.parseFloat /* global CreateMethodProperty */ (function (nativeparseFloat, global) { // Polyfill.io - parseFloat is incorrect in older browsers var parseFloat = function parseFloat(str) { var string = String(str).trim(); var result = nativeparseFloat(string); return result === 0 && string.charAt(0) == '-' ? -0 : result; } CreateMethodProperty(global, 'parseFloat', parseFloat); // 20.1.2.12. Number.parseFloat ( string ) // The value of the Number.parseFloat data property is the same built-in function object that is the value of the parseFloat property of the global object defined in 18.2.4. CreateMethodProperty(Number, 'parseFloat', global.parseFloat); }(parseFloat, this)); } if (!("parseInt"in Number&&8===Number.parseInt("08") )) { // Number.parseInt /* global CreateMethodProperty */ (function (nativeParseInt, global) { // Polyfill.io - parseInt is incorrect in older browsers var parseInt = function parseInt(str, radix) { var string = String(str).trim(); return nativeParseInt(string, (radix >>> 0) || (/^[-+]?0[xX]/.test(string) ? 16 : 10)); } CreateMethodProperty(global, 'parseInt', parseInt); // 20.1.2.13. Number.parseInt ( string, radix ) // The value of the Number.parseInt data property is the same built-in function object that is the value of the parseInt property of the global object defined in 18.2.5. CreateMethodProperty(Number, 'parseInt', global.parseInt); }(parseInt, this)); } if (!("trimEnd"in String.prototype&&function(){var n="​…᠎" return!"\t\n\v\f\r                 \u2028\u2029\ufeff".trimEnd()&&n.trimEnd()===n}() )) { // String.prototype.trimEnd /* global CreateMethodProperty, TrimString */ // 21.1.3.28 String.prototype.trimEnd ( ) CreateMethodProperty(String.prototype, 'trimEnd', function trimEnd() { 'use strict'; // 1. Let S be this value. var S = this; // 2. Return ? TrimString(S, "end"). return TrimString(S, "end"); }); } if (!("trimStart"in String.prototype&&function(){var t="​…᠎" return!"\t\n\v\f\r                 \u2028\u2029\ufeff".trimStart()&&t.trimStart()===t}() )) { // String.prototype.trimStart /* global CreateMethodProperty, TrimString */ // 21.1.3.29 String.prototype.trimStart ( ) CreateMethodProperty(String.prototype, 'trimStart', function trimStart() { 'use strict'; // 1. Let S be this value. var S = this; // 2. Return ? TrimString(S, "start"). return TrimString(S, "start"); }); } if (!("Symbol"in self&&0===self.Symbol.length )) { // Symbol // A modification of https://github.com/WebReflection/get-own-property-symbols // (C) Andrea Giammarchi - MIT Licensed /* global Type */ (function (Object, GOPS, global) { 'use strict'; //so that ({}).toString.call(null) returns the correct [object Null] rather than [object Window] var setDescriptor; var id = 0; var random = '' + Math.random(); var prefix = '__\x01symbol:'; var prefixLength = prefix.length; var internalSymbol = '__\x01symbol@@' + random; var emptySymbolLookup = {}; var DP = 'defineProperty'; var DPies = 'defineProperties'; var GOPN = 'getOwnPropertyNames'; var GOPD = 'getOwnPropertyDescriptor'; var PIE = 'propertyIsEnumerable'; var ObjectProto = Object.prototype; var hOP = ObjectProto.hasOwnProperty; var pIE = ObjectProto[PIE]; var toString = ObjectProto.toString; var concat = Array.prototype.concat; var cachedWindowNames = Object.getOwnPropertyNames ? Object.getOwnPropertyNames(self) : []; var nGOPN = Object[GOPN]; var gOPN = function getOwnPropertyNames (obj) { if (toString.call(obj) === '[object Window]') { try { return nGOPN(obj); } catch (e) { // IE bug where layout engine calls userland gOPN for cross-domain `window` objects return concat.call([], cachedWindowNames); } } return nGOPN(obj); }; var gOPD = Object[GOPD]; var objectCreate = Object.create; var objectKeys = Object.keys; var freeze = Object.freeze || Object; var objectDefineProperty = Object[DP]; var $defineProperties = Object[DPies]; var descriptor = gOPD(Object, GOPN); var addInternalIfNeeded = function (o, uid, enumerable) { if (!hOP.call(o, internalSymbol)) { try { objectDefineProperty(o, internalSymbol, { enumerable: false, configurable: false, writable: false, value: {} }); } catch (e) { o[internalSymbol] = {}; } } o[internalSymbol]['@@' + uid] = enumerable; }; var createWithSymbols = function (proto, descriptors) { var self = objectCreate(proto); gOPN(descriptors).forEach(function (key) { if (propertyIsEnumerable.call(descriptors, key)) { $defineProperty(self, key, descriptors[key]); } }); return self; }; var copyAsNonEnumerable = function (descriptor) { var newDescriptor = objectCreate(descriptor); newDescriptor.enumerable = false; return newDescriptor; }; var get = function get(){}; var onlyNonSymbols = function (name) { return name != internalSymbol && !hOP.call(source, name); }; var onlySymbols = function (name) { return name != internalSymbol && hOP.call(source, name); }; var propertyIsEnumerable = function propertyIsEnumerable(key) { var uid = '' + key; return onlySymbols(uid) ? ( hOP.call(this, uid) && this[internalSymbol] && this[internalSymbol]['@@' + uid] ) : pIE.call(this, key); }; var setAndGetSymbol = function (uid) { var descriptor = { enumerable: false, configurable: true, 318 get: get, set: function (value) { setDescriptor(this, uid, { enumerable: false, configurable: true, writable: true, value: value }); addInternalIfNeeded(this, uid, true); } }; try { objectDefineProperty(ObjectProto, uid, descriptor); } catch (e) { ObjectProto[uid] = descriptor.value; } source[uid] = objectDefineProperty( Object(uid), 'constructor', sourceConstructor ); var description = gOPD(Symbol.prototype, 'description'); if (description) { objectDefineProperty( source[uid], 'description', description ); } return freeze(source[uid]); }; var symbolDescription = function (s) { var sym = thisSymbolValue(s); // 3. Return sym.[[Description]]. if (supportsInferredNames) { var name = getI 4000 nferredName(sym); if (name !== "") { return name.slice(1, -1); // name.slice('['.length, -']'.length); } } if (emptySymbolLookup[sym] !== undefined) { return emptySymbolLookup[sym]; } var string = sym.toString(); var randomStartIndex = string.lastIndexOf("0."); string = string.slice(10, randomStartIndex); if (string === "") { return undefined; } return string; }; var Symbol = function Symbol() { var description = arguments[0]; if (this instanceof Symbol) { throw new TypeError('Symbol is not a constructor'); } var uid = prefix.concat(description || '', random, ++id); if (description !== undefined && (description === null || isNaN(description) || String(description) === "")) { emptySymbolLookup[uid] = String(description); } var that = setAndGetSymbol(uid); return that; }; var source = objectCreate(null); var sourceConstructor = {value: Symbol}; var sourceMap = function (uid) { return source[uid]; }; var $defineProperty = function defineProperty(o, key, descriptor) { var uid = '' + key; if (onlySymbols(uid)) { setDescriptor(o, uid, descriptor.enumerable ? copyAsNonEnumerable(descriptor) : descriptor); addInternalIfNeeded(o, uid, !!descriptor.enumerable); } else { objectDefineProperty(o, key, descriptor); } return o; }; var onlyInternalSymbols = function (obj) { return function (name) { return hOP.call(obj, internalSymbol) && hOP.call(obj[internalSymbol], '@@' + name); }; }; var $getOwnPropertySymbols = function getOwnPropertySymbols(o) { return gOPN(o).filter(o === ObjectProto ? onlyInternalSymbols(o) : onlySymbols).map(sourceMap); } ; descriptor.value = $defineProperty; objectDefineProperty(Object, DP, descriptor); descriptor.value = $getOwnPropertySymbols; objectDefineProperty(Object, GOPS, descriptor); descriptor.value = function getOwnPropertyNames(o) { return gOPN(o).filter(onlyNonSymbols); }; objectDefineProperty(Object, GOPN, descriptor); descriptor.value = function defineProperties(o, descriptors) { var symbols = $getOwnPropertySymbols(descriptors); if (symbols.length) { objectKeys(descriptors).concat(symbols).forEach(function (uid) { if (propertyIsEnumerable.call(descriptors, uid)) { $defineProperty(o, uid, descriptors[uid]); } }); } else { $defineProperties(o, descriptors); } return o; }; objectDefineProperty(Object, DPies, descriptor); descriptor.value = propertyIsEnumerable; objectDefineProperty(ObjectProto, PIE, descriptor); descriptor.value = Symbol; objectDefineProperty(global, 'Symbol', descriptor); // defining `Symbol.for(key)` descriptor.value = function (key) { var uid = prefix.concat(prefix, key, random); return uid in ObjectProto ? source[uid] : setAndGetSymbol(uid); }; objectDefineProperty(Symbol, 'for', descriptor); // defining `Symbol.keyFor(symbol)` descriptor.value = function (symbol) { if (onlyNonSymbols(symbol)) throw new TypeError(symbol + ' is not a symbol'); return hOP.call(source, symbol) ? symbol.slice(prefixLength * 2, -random.length) : void 0 ; }; objectDefineProperty(Symbol, 'keyFor', descriptor); descriptor.value = function getOwnPropertyDescriptor(o, key) { var descriptor = gOPD(o, key); if (descriptor && onlySymbols(key)) { descriptor.enumerable = propertyIsEnumerable.call(o, key); } return descriptor; }; objectDefineProperty(Object, GOPD, descriptor); descriptor.value = function create(proto, descriptors) { return arguments.length === 1 || typeof descriptors === "undefined" ? objectCreate(proto) : createWithSymbols(proto, descriptors); }; objectDefineProperty(Object, 'create', descriptor); var strictModeSupported = (function(){ 'use strict'; return this; }).call(null) === null; if (strictModeSupported) { descriptor.value = function () { var str = toString.call(this); return (str === '[object String]' && onlySymbols(this)) ? '[object Symbol]' : str; }; } else { descriptor.value = function () { // https://github.com/Financial-Times/polyfill-library/issues/164#issuecomment-486965300 // Polyfill.io this code is here for the situation where a browser does not // support strict mode and is executing `Object.prototype.toString.call(null)`. // This code ensures that we return the correct result in that situation however, // this code also introduces a bug where it will return the incorrect result for // `Object.prototype.toString.call(window)`. We can't have the correct result for // both `window` and `null`, so we have opted for `null` as we believe this is the more // common situation. if (this === window) { return '[object Null]'; } var str = toString.call(this); return (str === '[object String]' && onlySymbols(this)) ? '[object Symbol]' : str; }; } objectDefineProperty(ObjectProto, 'toString', descriptor); setDescriptor = function (o, key, descriptor) { var protoDescriptor = gOPD(ObjectProto, key); delete ObjectProto[key]; objectDefineProperty(o, key, descriptor); if (o !== ObjectProto) { objectDefineProperty(ObjectProto, key, protoDescriptor); } }; // The abstract operation thisSymbolValue(value) performs the following steps: function thisSymbolValue(value) { // 1. If Type(value) is Symbol, return value. if (Type(value) === "symbol") { return value; } // 2. If Type(value) is Object and value has a [[SymbolData]] internal slot, then // a. Let s be value.[[SymbolData]]. // b. Assert: Type(s) is Symbol. // c. Return s. // 3. Throw a TypeError exception. throw TypeError(value + " is not a symbol"); } // Symbol.prototype.description if (function () { // supports getters try { var a = {}; Object.defineProperty(a, "t", { configurable: true, enumerable: false, get: function() { return true; }, set: undefined }); return !!a.t; } catch (e) { return false; } }()) { var getInferredName; try { // eslint-disable-next-line no-new-func getInferredName = Function("s", "var v = s.valueOf(); return { [v]() {} }[v].name;"); // eslint-disable-next-line no-empty } catch (e) { } var inferred = function () { }; var supportsInferredNames = getInferredName && inferred.name === "inferred" ? getInferredName : null; // 19.4.3.2 get Symbol.prototype.description Object.defineProperty(global.Symbol.prototype, "description", { configurable: true, enumerable: false, get: function () { // 1. Let s be the this value. var s = this; return symbolDescription(s); } }); } }(Object, 'getOwnPropertySymbols', self)); } if (!(self.Reflect&&"ownKeys"in self.Reflect )) { // Reflect.ownKeys /* global CreateMethodProperty, Reflect, Type */ // 26.1.10 Reflect.ownKeys ( target ) CreateMethodProperty(Reflect, 'ownKeys', function ownKeys(target) { // 1. If Type(target) is not Object, throw a TypeError exception. if (Type(target) !== "object") { throw new TypeError(Object.prototype.toString.call(target) + ' is not an Object'); } // polyfill-library - These steps are taken care of by Object.getOwnPropertyNames. // 2. Let keys be ? target.[[OwnPropertyKeys]](). // 3. Return CreateArrayFromList(keys). return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target)); }); } if (!("getOwnPropertyDescriptor"in Object&&"function"==typeof Object.getOwnPropertyDescriptor&&function(){try{var t={} return t.test=0,0===Object.getOwnPropertyDescriptors(t).test.value}catch(t){return!1}}() )) { // Object.getOwnPropertyDescriptors /* global CreateMethodProperty, Reflect, ToObject, CreateDataProperty */ // 19.1.2.9. Object.getOwnPropertyDescriptors ( O ) CreateMethodProperty( Object, 'getOwnPropertyDescriptors', function getOwnPropertyDescriptors(O) { // 1. Let obj be ? ToObject(O). var obj = ToObject(O); // 2. Let ownKeys be ? obj.[[OwnPropertyKeys]](). var ownKeys = Reflect.ownKeys(obj); // 3. Let descriptors be ! ObjectCreate(%ObjectPrototype%). var descriptors = {}; // 4. For each element key of ownKeys in List order, do var length = ownKeys.length; for (var i = 0; i < length; i++) { var key = ownKeys[i]; // a. Let desc be ? obj.[[GetOwnProperty]](key). // b. Let descriptor be ! FromPropertyDescriptor(desc). var descriptor = Object.getOwnPropertyDescriptor(O, key); // c. If descriptor is not undefined, perform ! CreateDataProperty(descriptors, key, descriptor). if (descriptor !== undefined) { CreateDataProperty(descriptors, key, descriptor); } } // 5. Return descriptors. return descriptors; } ); } if (!("Symbol"in self&&"asyncIterator"in self.Symbol )) { // Symbol.asyncIterator /* global Symbol */ Object.defineProperty(Symbol, 'asyncIterator', { value: Symbol('asyncIterator') }); } if (!("Symbol"in self&&"hasInstance"in self.Symbol )) { // Symbol.hasInstance /* global Symbol */ Object.defineProperty(Symbol, 'hasInstance', { value: Symbol('hasInstance') }); } if (!("Symbol"in self&&"isConcatSpreadable"in self.Symbol )) { // Symbol.isConcatSpreadable /* global Symbol */ Object.defineProperty(Symbol, 'isConcatSpreadable', { value: Symbol('isConcatSpreadable') }); } if (!("Symbol"in self&&"iterator"in self.Symbol )) { // Symbol.iterator Object.defineProperty(self.Symbol, 'iterator', { value: self.Symbol('iterator') }); } // _ESAbstract.GetIterator /* global GetMethod, Symbol, Call, Type, GetV */ // 7.4.1. GetIterator ( obj [ , method ] ) // The abstract operation GetIterator with argument obj and optional argument method performs the following steps: function GetIterator(obj /*, method */) { // eslint-disable-line no-unused-vars // 1. If method is not present, then // a. Set method to ? GetMethod(obj, @@iterator). var method = arguments.length > 1 ? arguments[1] : GetMethod(obj, Symbol.iterator); // 2. Let iterator be ? Call(method, obj). var iterator = Call(method, obj); // 3. If Type(iterator) is not Object, throw a TypeError exception. if (Type(iterator) !== 'object') { throw new TypeError('bad iterator'); } // 4. Let nextMethod be ? GetV(iterator, "next"). var nextMethod = GetV(iterator, "next"); // 5. Let iteratorRecord be Record {[[Iterator]]: iterator, [[NextMethod]]: nextMethod, [[Done]]: false}. var iteratorRecord = Object.create(null); iteratorRecord['[[Iterator]]'] = iterator; iteratorRecord['[[NextMethod]]'] = nextMethod; iteratorRecord['[[Done]]'] = false; // 6. Return iteratorRecord. return iteratorRecord; } // _ESAbstract.AddEntriesFromIterable /* global IsCallable, GetIterator, IteratorStep, IteratorValue, IteratorClose, Get, Call, Type */ // eslint-disable-next-line no-unused-vars var AddEntriesFromIterable = (function() { var toString = {}.toString; var split = "".split; // 23.1.1.2 AddEntriesFromIterable ( target, iterable, adder ) return function AddEntriesFromIterable(target, iterable, adder) { // 1. If IsCallable(adder) is false, throw a TypeError exception. if (IsCallable(adder) === false) { throw new TypeError("adder is not callable."); } // 2. Assert: iterable is present, and is neither undefined nor null. // 3. Let iteratorRecord be ? GetIterator(iterable). var iteratorRecord = GetIterator(iterable); // 4. Repeat, // eslint-disable-next-line no-constant-condition while (true) { // a. Let next be ? IteratorStep(iteratorRecord). var next = IteratorStep(iteratorRecord); // b. If next is false, return target. if (next === false) { return target; } // c. Let nextItem be ? IteratorValue(next). var nextItem = IteratorValue(next); // d. If Type(nextItem) is not Object, then if (Type(nextItem) !== "object") { // i. Let error be ThrowCompletion(a newly created TypeError object). var error = new TypeError("nextItem is not an object"); // ii. Return ? IteratorClose(iteratorRecord, error). IteratorClose(iteratorRecord, error); throw error; } // Polyfill.io fallback for non-array-like strings which exist in some ES3 user-agents nextItem = (Type(nextItem) === "string" || nextItem instanceof String) && toString.call(nextItem) == "[object String]" ? split.call(nextItem, "") : nextItem; var k; try { // e. Let k be Get(nextItem, "0"). k = Get(nextItem, "0"); // eslint-disable-next-line no-catch-shadow } catch (k) { // f. If k is an abrupt completion, return ? IteratorClose(iteratorRecord, k). return IteratorClose(iteratorRecord, k); } var v; try { // g. Let v be Get(nextItem, "1"). v = Get(nextItem, "1"); // eslint-disable-next-line no-catch-shadow } catch (v) { // h. If v is an abrupt completion, return ? IteratorClose(iteratorRecord, v). return IteratorClose(iteratorRecord, v); } try { // i. Let status be Call(adder, target, « k.[[Value]], v.[[Value]] »). Call(adder, target, [k, v]); // eslint-disable-next-line no-catch-shadow } catch (status) { // j. If status is an abrupt completion, return ? IteratorClose(iteratorRecord, status). return IteratorClose(iteratorRecord, status); } } }; })(); // _ESAbstract.IterableToList /* global GetIterator, IteratorStep, IteratorValue */ // 7.4.11 IterableToList ( items [ , method ] ) function IterableToList(items /*, method */) { // eslint-disable-line no-unused-vars // 1. If method is present, then // 1.a. Let iteratorRecord be ? GetIterator(items, sync, method). // 2. Else, // 2.a. Let iteratorRecord be ? GetIterator(items, sync). var iteratorRecord = arguments.length > 1 ? GetIterator(items, arguments[1]) : GetIterator(items); // 3. Let values be a new empty List. var values = []; // 4. Let next be true. var next = true; // 5. Repeat, while next is not false, while (next !== false) { // 5.a. Set next to ? IteratorStep(iteratorRecord). next = IteratorStep(iteratorRecord); // 5.b. If next is not false, then if (next !== false) { // 5.b.i. Let nextValue be ? IteratorValue(next). var nextValue = IteratorValue(next); // 5.b.ii. Append nextValue to the end of the List values. values.push(nextValue); } } // 6. Return values. return values; } if (!("AggregateError"in self )) { // AggregateError /* global _ErrorConstructor, CreateDataPropertyOrThrow, CreateMethodProperty, IterableToList */ (function () { var hasErrorCause = (function () { try { return new Error('m', { cause: 'c' }).cause === 'c'; } catch (e) { return false; } })(); function AggregateError (errors, message) { if (!(this instanceof AggregateError)) return new AggregateError(errors, message); var temp = typeof message === 'undefined' ? new Error() : new Error(message); CreateDataPropertyOrThrow(this, 'name', 'AggregateError'); CreateDataPropertyOrThrow(this, 'message', temp.message); CreateDataPropertyOrThrow(this, 'stack', temp.stack); var errorsList; if (Array.isArray(errors)) { errorsList = errors.slice(); } else { try { errorsList = IterableToList(errors); } catch (_error) { throw new TypeError('Argument is not iterable'); } } CreateDataPropertyOrThrow(this, 'errors', errorsList); } AggregateError.prototype = Object.create(Error.prototype); AggregateError.prototype.constructor = AggregateError; CreateMethodProperty(self, 'AggregateError', AggregateError); // If `Error.cause` is available, add it to `AggregateError` if (hasErrorCause) { CreateMethodProperty(self, 'AggregateError', _ErrorConstructor('AggregateError')); } })(); } if (!("Symbol"in self&&"match"in self.Symbol )) { // Symbol.match /* global Symbol */ Object.defineProperty(Symbol, 'match', { value: Symbol('match') }); } if (!("Symbol"in self&&"matchAll"in self.Symbol )) { // Symbol.matchAll /* global Symbol */ // 20.4.2.8 Symbol.matchAll Object.defineProperty(Symbol, 'matchAll', { value: Symbol('matchAll') }); } if (!("Symbol"in self&&"replace"in self.Symbol )) { // Symbol.replace /* global Symbol */ Object.defineProperty(Symbol, 'replace', { value: Symbol('replace') }); } if (!("replaceAll"in String.prototype )) { // String.prototype.replaceAll /* global CreateMethodProperty, RequireObjectCoercible, ToString, IsRegExp, Get, GetMethod, Call, IsCallable, StringIndexOf, GetSubstitution */ // 21.1.3.18 String.prototype.replaceAll ( searchValue, replaceValue ) CreateMethodProperty(St 4000 ring.prototype, 'replaceAll', function replaceAll(searchValue, replaceValue ) { 'use strict'; // 1. Let O be ? RequireObjectCoercible(this value). var O = RequireObjectCoercible(this); // 2. If searchValue is neither undefined nor null, then if (searchValue !== undefined && searchValue !== null) { // 2.a. Let isRegExp be ? IsRegExp(searchValue). var isRegExp = IsRegExp(searchValue); // 2.b. If isRegExp is true, then if (isRegExp) { // 2.b.i. Let flags be ? Get(searchValue, "flags"). var flags = Get(searchValue, "flags"); // IE doesn't have RegExp.prototype.flags support, it does have RegExp.prototype.global // 2.b.iii. If ? ToString(flags) does not contain "g", throw a TypeError exception. if (!('flags' in RegExp.prototype) && searchValue.global !== true) { throw TypeError(''); } else if ('flags' in RegExp.prototype) { // 2.b.ii. Perform ? RequireObjectCoercible(flags). RequireObjectCoercible(flags) // 2.b.iii. If ? ToString(flags) does not contain "g", throw a TypeError exception. if (ToString(flags).indexOf('g') === -1) { throw TypeError(''); } } } // 2.c. Let replacer be ? GetMethod(searchValue, @@replace). var replacer = 'Symbol' in self && 'replace' in self.Symbol ? GetMethod(searchValue, self.Symbol.replace) : undefined; // 2.d. If replacer is not undefined, then if (replacer !== undefined) { // 2.d.i. Return ? Call(replacer, searchValue, « O, replaceValue »). return Call(replacer, searchValue, [ O, replaceValue ]); } } // 3. Let string be ? ToString(O). var string = ToString(O); // 4. Let searchString be ? ToString(searchValue). var searchString = ToString(searchValue); // 5. Let functionalReplace be IsCallable(replaceValue). var functionalReplace = IsCallable(replaceValue); // 6. If functionalReplace is false, then if (functionalReplace === false) { // 6.a. Set replaceValue to ? ToString(replaceValue). replaceValue = ToString(replaceValue); } // 7. Let searchLength be the length of searchString. var searchLength = searchString.length; // 8. Let advanceBy be max(1, searchLength). var advanceBy = Math.max(1, searchLength); // 9. Let matchPositions be a new empty List. var matchPositions = []; // 10. Let position be ! StringIndexOf(string, searchString, 0). var position = StringIndexOf(string, searchString, 0); // 11. Repeat, while position is not -1, while (position !== -1) { // 11.a. Append position to the end of matchPositions. matchPositions.push(position); // 11.b. Set position to ! StringIndexOf(string, searchString, position + advanceBy). position = StringIndexOf(string, searchString, position + advanceBy); } // 12. Let endOfLastMatch be 0. var endOfLastMatch = 0; // 13. Let result be the empty String. var result = ''; // 14. For each element position of matchPositions, do for (var i = 0; i < matchPositions.length; i++) { // 14.a. Let preserved be the substring of string from endOfLastMatch to position. var preserved = string.substring(endOfLastMatch, matchPositions[i]); // 14.b. If functionalReplace is true, then if (functionalReplace) { // 14.b.i. Let replacement be ? ToString(? Call(replaceValue, undefined, « searchString, position, string »)). var replacement = ToString(Call(replaceValue, undefined, [searchString, matchPositions[i], string])); // 14.c. Else, } else { // 14.c.i. Assert: Type(replaceValue) is String. // 14.c.ii. Let captures be a new empty List. var captures = []; // 14.c.iii. Let replacement be ! GetSubstitution(searchString, string, position, captures, undefined, replaceValue). replacement = GetSubstitution(searchString, string, matchPositions[i], captures, undefined, replaceValue); } // 14.d. Set result to the string-concatenation of result, preserved, and replacement. result = result + preserved + replacement; // 14.e. Set endOfLastMatch to position + searchLength. endOfLastMatch = matchPositions[i] + searchLength; } // 15. If endOfLastMatch < the length of string, then if (endOfLastMatch < string.length) { // 15.a. Set result to the string-concatenation of result and the substring of string from endOfLastMatch. result = result + string.substring(endOfLastMatch); } // 16. Return result. return result; }); } if (!("Symbol"in self&&"search"in self.Symbol )) { // Symbol.search /* global Symbol */ Object.defineProperty(Symbol, 'search', { value: Symbol('search') }); } if (!("Symbol"in self&&"species"in self.Symbol )) { // Symbol.species /* global Symbol */ Object.defineProperty(Symbol, 'species', { value: Symbol('species') }); } if (!("Symbol"in self&&"split"in self.Symbol )) { // Symbol.split /* global Symbol */ Object.defineProperty(Symbol, 'split', { value: Symbol('split') }); } if (!("Symbol"in self&&"toPrimitive"in self.Symbol )) { // Symbol.toPrimitive /* global Symbol */ Object.defineProperty(Symbol, 'toPrimitive', { value: Symbol('toPrimitive') }); } if (!("Symbol"in self&&"toStringTag"in self.Symbol )) { // Symbol.toStringTag /* global Symbol */ Object.defineProperty(Symbol, 'toStringTag', { value: Symbol('toStringTag') }); } // _ESAbstract.CreateRegExpStringIterator /* global AdvanceStringIndex, CreateIterResultObject, CreateMethodProperty, Get, RegExpExec, Symbol, ToLength, ToString */ // 22.2.7.1 CreateRegExpStringIterator ( R, S, global, fullUnicode ) function CreateRegExpStringIterator(R, S, global, fullUnicode) { // eslint-disable-line no-unused-vars // 22.2.7.2 The %RegExpStringIteratorPrototype% Object var RegExpStringIteratorPrototype = {} // 22.2.7.2.1 %RegExpStringIteratorPrototype%.next ( ) CreateMethodProperty(RegExpStringIteratorPrototype, 'next', function next() { // 1. Let closure be a new Abstract Closure with no parameters that captures R, S, global, and fullUnicode and performs the following steps when called: // 1.a. Repeat, // 2. Return ! CreateIteratorFromClosure(closure, "%RegExpStringIteratorPrototype%", %RegExpStringIteratorPrototype%). if (this['[[Done]]'] === true) { return CreateIterResultObject(undefined, true); } // 1.a.i. Let match be ? RegExpExec(R, S). var match = RegExpExec(R, S); // 1.a.ii. If match is null, return undefined. if (match === null) { this['[[Done]]'] = true; return CreateIterResultObject(undefined, true); } // 1.a.iii. If global is false, then if (global === false) { // 1.a.iii.1. Perform ? Yield(match). // 1.a.iii.2. Return undefined. var result = CreateIterResultObject(match, false); this['[[Done]]'] = true; return result; } // 1.a.iv. Let matchStr be ? ToString(? Get(match, "0")). var matchStr = ToString(Get(match, '0')); // 1.a.v. If matchStr is the empty String, then if (matchStr === '') { // 1.a.v.1. Let thisIndex be ℝ(? ToLength(? Get(R, "lastIndex"))). var thisIndex = ToLength(Get(R, 'lastIndex')); // 1.a.v.2. Let nextIndex be ! AdvanceStringIndex(S, thisIndex, fullUnicode). var nextIndex = AdvanceStringIndex(S, thisIndex, fullUnicode); // 1.a.v.3. Perform ? Set(R, "lastIndex", 𝔽(nextIndex), true). R.lastIndex = nextIndex; } // 1.a.vi. Perform ? Yield(match). return CreateIterResultObject(match, false); }); // 22.2.7.2.2 %RegExpStringIteratorPrototype% [ @@toStringTag ] Object.defineProperty(RegExpStringIteratorPrototype, Symbol.toStringTag, { configurable: true, enumerable: false, writable: false, value: 'RegExp String Iterator' }); CreateMethodProperty(RegExpStringIteratorPrototype, Symbol.iterator, function iterator() { return this; } ); return RegExpStringIteratorPrototype; } if (!("Symbol"in self&&"matchAll"in self.Symbol&&!!RegExp.prototype[self.Symbol.matchAll] )) { // RegExp.prototype.@@matchAll /* global Construct, CreateMethodProperty, CreateRegExpStringIterator, Get, SpeciesConstructor, Symbol, ToLength, ToString, Type */ var supportsRegexpLiteralConstructorWithFlags = (function () { try { new RegExp(/x/, 'g') return true } catch (ignore) { return false } })(); // 22.2.5.8 RegExp.prototype [ @@matchAll ] ( string ) CreateMethodProperty(RegExp.prototype, Symbol.matchAll, function (string) { 'use strict'; // 1. Let R be the this value. var R = this; // 2. If Type(R) is not Object, throw a TypeError exception. if (Type(R) !== 'object') { throw new TypeError('Method called on incompatible type: must be an object.'); } // 3. Let S be ? ToString(string). var S = ToString(string); // 4. Let C be ? SpeciesConstructor(R, %RegExp%). var C = SpeciesConstructor(R, RegExp); // 5. Let flags be ? ToString(? Get(R, "flags")). var flags = ToString(Get(R, 'flags')); // IE doesn't have RegExp.prototype.flags support if (!('flags' in RegExp.prototype)) { flags = ''; if (R.global === true) { flags += 'g'; } if (R.ignoreCase === true) { flags += 'i'; } if (R.multiline === true) { flags += 'm'; } } // 6. Let matcher be ? Construct(C, « R, flags »). var matcher = Construct(C, [ supportsRegexpLiteralConstructorWithFlags ? R : R.source, flags ]); // 7. Let lastIndex be ? ToLength(? Get(R, "lastIndex")). var lastIndex = ToLength(Get(R, 'lastIndex')); // 8. Perform ? Set(matcher, "lastIndex", lastIndex, true). matcher.lastIndex = lastIndex; // 9. If flags contains "g", let global be true. // 10. Else, let global be false. var global = flags.indexOf('g') > -1; // 11. If flags contains "u", let fullUnicode be true. // 12. Else, let fullUnicode be false. var fullUnicode = flags.indexOf('u') > -1; // 13. Return ! CreateRegExpStringIterator(matcher, S, global, fullUnicode). return CreateRegExpStringIterator(matcher, S, global, fullUnicode); }); } if (!("matchAll"in String.prototype )) { // String.prototype.matchAll /* global Call, CreateMethodProperty, Get, GetMethod, Invoke, IsRegExp, RequireObjectCoercible, ToString */ // 22.1.3.13 String.prototype.matchAll ( regexp ) CreateMethodProperty(String.prototype, 'matchAll', function matchAll(regexp) { 'use strict'; // 1. Let O be ? RequireObjectCoercible(this value). var O = RequireObjectCoercible(this); // 2. If regexp is neither undefined nor null, then if (regexp !== undefined && regexp !== null) { // 2.a. Let isRegExp be ? IsRegExp(regexp). var isRegExp = IsRegExp(regexp); // 2.b. If isRegExp is true, then if (isRegExp) { // 2.b.i. Let flags be ? Get(regexp, "flags"). var flags = Get(regexp, "flags"); // IE doesn't have RegExp.prototype.flags support, it does have RegExp.prototype.global // 2.b.iii. If ? ToString(flags) does not contain "g", throw a TypeError exception. if (!('flags' in RegExp.prototype) && regexp.global !== true) { throw TypeError(''); } else if ('flags' in RegExp.prototype) { // 2.b.ii. Perform ? RequireObjectCoercible(flags). RequireObjectCoercible(flags) // 2.b.iii. If ? ToString(flags) does not contain "g", throw a TypeError exception. if (ToString(flags).indexOf('g') === -1) { throw TypeError(''); } } } // 2.c. Let matcher be ? GetMethod(regexp, @@matchAll). var matcher = 'Symbol' in self && 'matchAll' in self.Symbol ? GetMethod(regexp, self.Symbol.matchAll) : undefined; // 2.d. If matcher is not undefined, then if (matcher !== undefined) { // 2.d.i. Return ? Call(matcher, regexp, « O »). return Call(matcher, regexp, [ O ]); } } // 3. Let S be ? ToString(O). var S = ToString(O); // 4. Let rx be ? RegExpCreate(regexp, "g"). var rx = new RegExp(regexp, 'g'); // 5. Return ? Invoke(rx, @@matchAll, « S »). return Invoke(rx, 'Symbol' in self && 'matchAll' in self.Symbol && self.Symbol.matchAll, [ S ]); }); } // _Iterator /* global Symbol */ // A modification of https://github.com/medikoo/es6-iterator // Copyright (C) 2013-2015 Mariusz Nowak (www.medikoo.com) var Iterator = (function () { // eslint-disable-line no-unused-vars var clear = function () { this.length = 0; return this; }; var callable = function (fn) { if (typeof fn !== 'function') throw new TypeError(fn + " is not a function"); return fn; }; var Iterator = function (list, context) { if (!(this instanceof Iterator)) { return new Iterator(list, context); } Object.defineProperties(this, { __list__: { writable: true, value: list }, __context__: { writable: true, value: context }, __nextIndex__: { writable: true, value: 0 } }); if (!context) return; callable(context.on); context.on('_add', this._onAdd.bind(this)); context.on('_delete', this._onDelete.bind(this)); context.on('_clear', this._onClear.bind(this)); }; Object.defineProperties(Iterator.prototype, Object.assign({ constructor: { value: Iterator, configurable: true, enumerable: false, writable: true }, _next: { value: function () { var i; if (!this.__list__) return; if (this.__redo__) { i = this.__redo__.shift(); if (i !== undefined) return i; } if (this.__nextIndex__ < this.__list__.length) return this.__nextIndex__++; this._unBind(); }, configurable: true, enumerable: false, writable: true }, next: { value: function () { return this._createResult(this._next()); }, configurable: true, enumerable: false, writable: true }, _createResult: { value: function (i) { if (i === undefined) return { done: true, value: undefined }; return { done: false, value: this._resolve(i) }; }, configurable: true, enumerable: false, writable: true }, _resolve: { value: function (i) { return this.__list__[i]; }, configurable: true, enumerable: false, writable: true }, _unBind: { value: function () { this.__list__ = null; delete this.__redo__; if (!this.__context__) return; this.__context__.off('_add', this._onAdd.bind(this)); this.__context__.off('_delete', this._onDelete.bind(this)); this.__context__.off('_clear', this._onClear.bind(this)); this.__context__ = null; }, configurable: true, enumerable: false, writable: true }, toString: { value: function () { return '[object Iterator]'; }, configurable: true, enumerable: false, writable: true } }, { _onAdd: { value: function (index) { if (index >= this.__nextIndex__) return; ++this.__nextIndex__; if (!this.__redo__) { Object.defineProperty(this, '__redo__', { value: [index], configurable: true, enumerable: false, writable: false }); return; } this.__redo__.forEach(function (redo, i) { if (redo >= index) this.__redo__[i] = ++redo; }, this); this.__redo__.push(index); }, configurable: true, enumerable: false, writable: true }, _onDelete: { value: function (index) { var i; if (index >= this.__nextIndex__) return; --this.__nextIndex__; if (!this.__redo__) return; i = this.__redo__.indexOf(index); if (i !== -1) this.__redo__.splice(i, 1); this.__redo__.forEach(function (redo, i) { if (redo > index) this.__redo__[i] = --redo; }, this); }, configurable: true, enumerable: false, writable: true }, _onClear: { value: function () { if (this.__redo__) clear.call(this.__redo__); this.__nextIndex__ = 0; }, configurable: true, enumerable: false, writable: true } })); Object.defineProperty(Iterator.prototype, Symbol.iterator, { value: function () { return this; }, configurable: true, enumerable: false, writable: true }); Object.defineProperty(Iterator.prototype, Symbol.toStringTag, { value: 'Iterator', configurable: false, enumerable: false, writable: true }); return Iterator; }()); // _ArrayIterator /* global Iterator, Symbol */ // A modification of https://github.com/medikoo/es6-iterator // Copyright (C) 2013-2015 Mariusz Nowak (www.medikoo.com) var ArrayIterator = (function() { // eslint-disable-line no-unused-vars var ArrayIterator = function(arr, kind) { if (!(this instanceof ArrayIterator)) return new ArrayIterator(arr, kind); Iterator.call(this, arr); if (!kind) kind = 'value'; else if (String.prototype.includes.call(kind, 'key+value')) kind = 'key+value'; else if (String.prototype.includes.call(kind, 'key')) kind = 'key'; else kind = 'value'; Object.defineProperty(this, '__kind__', { 3ce7 value: kind, configurable: false, enumerable: false, writable: false }); }; if (Object.setPrototypeOf) Object.setPrototypeOf(ArrayIterator, Iterator.prototype); ArrayIterator.prototype = Object.create(Iterator.prototype, { constructor: { value: ArrayIterator, configurable: true, enumerable: false, writable: true }, _resolve: { value: function(i) { if (this.__kind__ === 'value') return this.__list__[i]; if (this.__kind__ === 'key+value') return [i, this.__list__[i]]; return i; }, configurable: true, enumerable: false, writable: true }, toString: { value: function() { return '[object Array Iterator]'; }, configurable: true, enumerable: false, writable: true } }); Object.defineProperty(ArrayIterator.prototype, Symbol.toStringTag, { value: 'Array Iterator', writable: false, enumerable: false, configurable: true }); return ArrayIterator; }()); if (!("Symbol"in self&&"iterator"in self.Symbol&&!!Array.prototype.entries )) { // Array.prototype.entries /* global CreateMethodProperty, ToObject, ArrayIterator */ // 22.1.3.4. Array.prototype.entries ( ) CreateMethodProperty(Array.prototype, 'entries', function entries() { // 1. Let O be ? ToObject(this value). var O = ToObject(this); // 2. Return CreateArrayIterator(O, "key+value"). // TODO: Add CreateArrayIterator return new ArrayIterator(O, 'key+value'); }); } if (!("Symbol"in self&&"iterator"in self.Symbol&&!!Array.prototype.keys )) { // Array.prototype.keys /* global CreateMethodProperty, ToObject, ArrayIterator */ // 22.1.3.14. Array.prototype.keys ( ) CreateMethodProperty(Array.prototype, 'keys', function keys() { // 1. Let O be ? ToObject(this value). var O = ToObject(this); // 2. Return CreateArrayIterator(O, "key"). // TODO: Add CreateArrayIterator. return new ArrayIterator(O, 'key'); }); } if (!("values"in Array.prototype )) { // Array.prototype.values /* global CreateMethodProperty, Symbol, ToObject, ArrayIterator */ // 22.1.3.30/ Array.prototype.values ( ) // Polyfill.io - Firefox, Chrome and Opera have Array.prototype[Symbol.iterator], which is the exact same function as Array.prototype.values. if ('Symbol' in self && 'iterator' in Symbol && typeof Array.prototype[Symbol.iterator] === 'function') { CreateMethodProperty(Array.prototype, 'values', Array.prototype[Symbol.iterator]); } else { CreateMethodProperty(Array.prototype, 'values', function values () { // 1. Let O be ? ToObject(this value). var O = ToObject(this); // 2. Return CreateArrayIterator(O, "value"). // TODO: Add CreateArrayIterator return new ArrayIterator(O, 'value'); }); } } // _StringIterator // A modification of https://github.com/medikoo/es6-iterator // Copyright (C) 2013-2015 Mariusz Nowak (www.medikoo.com) /* global Iterator, Symbol */ var StringIterator = (function() { // eslint-disable-line no-unused-vars var StringIterator = function (str) { if (!(this instanceof StringIterator)) return new StringIterator(str); str = String(str); Iterator.call(this, str); Object.defineProperty(this, '__length__', { value: str.length, configurable: false, enumerable: false, writable: false }); }; if (Object.setPrototypeOf) Object.setPrototypeOf(StringIterator, Iterator); StringIterator.prototype = Object.create(Iterator.prototype, { constructor: { value: StringIterator, configurable: true, enumerable: false, writable: true }, _next: { value: function() { if (!this.__list__) return; if (this.__nextIndex__ < this.__length__) return this.__nextIndex__++; this._unBind(); }, configurable: true, enumerable: false, writable: true }, _resolve: { value: function (i) { var char = this.__list__[i], code; if (this.__nextIndex__ === this.__length__) return char; code = char.charCodeAt(0); if ((code >= 0xD800) && (code <= 0xDBFF)) return char + this.__list__[this.__nextIndex__++]; return char; }, configurable: true, enumerable: false, writable: true }, toString: { value: function() { return '[object String Iterator]'; }, configurable: true, enumerable: false, writable: true } }); Object.defineProperty(StringIterator.prototype, Symbol.toStringTag, { value: 'String Iterator', writable: false, enumerable: false, configurable: true }); return StringIterator; }()); if (!("Symbol"in self&&"iterator"in self.Symbol&&!!Array.prototype[self.Symbol.iterator] )) { // Array.prototype.@@iterator /* global Symbol, CreateMethodProperty */ // 22.1.3.31. Array.prototype [ @@iterator ] ( ) // The initial value of the @@iterator property is the same function object as the initial value of the Array.prototype.values property. CreateMethodProperty(Array.prototype, Symbol.iterator, Array.prototype.values); } if (!("fromEntries"in Object )) { // Object.fromEntries /* global CreateMethodProperty, RequireObjectCoercible, ToPropertyKey, CreateDataPropertyOrThrow, AddEntriesFromIterable */ // 19.1.2.5 Object.fromEntries ( iterable ) CreateMethodProperty(Object, 'fromEntries', function fromEntries(iterable) { // 1. Perform ? RequireObjectCoercible(iterable). RequireObjectCoercible(iterable); // 2. Let obj be ObjectCreate(%ObjectPrototype%). var obj = {}; // 3. Assert: obj is an extensible ordinary object with no own properties. // 4. Let stepsDefine be the algorithm steps defined in CreateDataPropertyOnObject Functions. // 5. Let adder be CreateBuiltinFunction(stepsDefine, « »). var adder = function (key, value) { // Let O be the this value. var O = this; // Assert: Type(O) is Object. // Assert: O is an extensible ordinary object. // Let propertyKey be ? ToPropertyKey(key). var propertyKey = ToPropertyKey(key); // Perform ! CreateDataPropertyOrThrow(O, propertyKey, value). CreateDataPropertyOrThrow(O, propertyKey, value); }; // 6. Return ? AddEntriesFromIterable(obj, iterable, adder). return AddEntriesFromIterable(obj, iterable, adder); }); } if (!("Symbol"in self&&"toStringTag"in self.Symbol&&"ArrayBuffer"in self&&self.Symbol.toStringTag in self.ArrayBuffer.prototype&&void 0!==self.ArrayBuffer.prototype[self.Symbol.toStringTag] )) { // ArrayBuffer.prototype.@@toStringTag /* global ArrayBuffer, DataView, Symbol */ // 25.1.5.4 ArrayBuffer.prototype [ @@toStringTag ] (function () { Object.defineProperty(ArrayBuffer.prototype, Symbol.toStringTag, { value: 'ArrayBuffer', writable: false, enumerable: false, configurable: true }); Object.defineProperty(DataView.prototype, Symbol.toStringTag, { value: 'DataView', writable: false, enumerable: false, configurable: true }); })(); } if (!("Map"in self&&function(t){try{var n=new t.Map([[1,1],[2,2]]) return 0===t.Map.length&&2===n.size&&"Symbol"in t&&"iterator"in t.Symbol&&"function"==typeof n[t.Symbol.iterator]&&"toStringTag"in t.Symbol&&void 0!==n[t.Symbol.toStringTag]}catch(t){return!1}}(self) )) { // Map /* global CreateIterResultObject, CreateMethodProperty, GetIterator, IsCallable, IteratorClose, IteratorStep, IteratorValue, OrdinaryCreateFromConstructor, SameValueZero, Type, Symbol */ (function (global) { // Need an internal counter to assign unique IDs to a key map var _uniqueHashId = 0; // Create a unique key name for storing meta data on functions and objects to enable lookups in hash table var _metaKey = Symbol('meta_' + ((Math.random() * 100000000) + '').replace('.', '')); /** * hashKey() * Function that given a key of `any` type, returns a string key value to enable hash map optimization for accessing Map data structure * @param {string|integer|function|object} recordKey - Record key to normalize to string accessor for hash map * @returns {string|false} - Returns a hashed string value or false if non extensible object key */ var hashKey = function(recordKey) { // Check to see if we are dealing with object or function type. if (typeof recordKey === 'object' ? recordKey !== null : typeof recordKey === 'function') { // Check to see if we are dealing with a non extensible object if (!Object.isExtensible(recordKey)) { // Return `false` return false; } if (!Object.prototype.hasOwnProperty.call(recordKey, _metaKey)) { var uniqueHashKey = typeof(recordKey)+'-'+(++_uniqueHashId); Object.defineProperty(recordKey, _metaKey, { configurable: false, enumerable: false, writable: false, value: uniqueHashKey }); } // Return previously defined hashed key return recordKey[_metaKey]; } // If this is just a primitive: // - prepend the type // - add a unique marker // - cast to a string return (typeof recordKey) + '_f1cc2551-7df7-4319-ba53-5b263a78a257_' + recordKey; }; /** * getRecordIndex() * Function that given a Map and a key of `any` type, returns an index number that coorelates with a record found in `this._keys[index]` and `this._values[index]` * @param {Map} map - Map structure * @param {string|number|function|object} recordKey - Record key to normalize to string accessor for hash map * @returns {number|false} - Returns either a index to access map._keys and map._values, or false if not found */ var getRecordIndex = function(map, recordKey) { var hashedKey = hashKey(recordKey); // Casts key to unique string (unless already string or number) if (hashedKey === false) { // We have to iterate through our Map structure because `recordKey` is non-primitive and not extensible return getRecordIndexSlow(map, recordKey); } var recordIndex = map._table[hashedKey]; // O(1) access to record return recordIndex !== undefined ? recordIndex : false; }; /** * getRecordIndexSlow() * Alternative (and slower) function to `getRecordIndex()`. Necessary for looking up non-extensible object keys. * @param {Map} map - Map structure * @param {string|number|function|object} recordKey - Record key to normalize to string accessor for hash map * @returns {number|false} - Returns either a index to access map._keys and map._values, or false if not found */ var getRecordIndexSlow = function(map, recordKey) { // We have to iterate through our Map structure because `recordKey` is non-primitive and not extensible for (var i = 0; i < map._keys.length; i++) { var _recordKey = map._keys[i]; if (_recordKey !== undefMarker && SameValueZero(_recordKey, recordKey)) { return i; } } return false; }; /** * setHashIndex() * Function that given a map, key of `any` type, and a value, creates a new entry in Map hash table * @param {Map} map * @param {string|number|function|object} recordKey - Key to translate into normalized key for hash map * @param {number|bool} recordIndex - new record index for the hashedKey or `false` to delete the record index for the hashedKey * @returns {bool} - indicates success of operation */ var setHashIndex = function(map, recordKey, recordIndex) { var hashedKey = hashKey(recordKey); if (hashedKey === false) { // If hashed key is false, the recordKey is an object which is not extensible. // That indicates we cannot use the hash map for it, so this operation becomes no-op. return false; } if (recordIndex === false) { delete map._table[hashedKey]; } else { map._table[hashedKey] = recordIndex; } return true; }; // Deleted map items mess with iterator pointers, so rather than removing them mark them as deleted. Can't use undefined or null since those both valid keys so use a private symbol. var undefMarker = Symbol('undef'); // 23.1.1.1 Map ( [ iterable ] ) var Map = function Map(/* iterable */) { // 1. If NewTarget is undefined, throw a TypeError exception. if (!(this instanceof Map)) { throw new TypeError('Constructor Map requires "new"'); } // 2. Let map be ? OrdinaryCreateFromConstructor(NewTarget, "%MapPrototype%", « [[MapData]] »). var map = OrdinaryCreateFromConstructor(this, Map.prototype, { _table: {}, // O(1) access table for retrieving records _keys: [], _values: [], _size: 0, _es6Map: true }); // 3. Set map.[[MapData]] to a new empty List. // Polyfill.io - This step was done as part of step two. // 4. If iterable is not present, let iterable be undefined. var iterable = arguments.length > 0 ? arguments[0] : undefined; // 5. If iterable is either undefined or null, return map. if (iterable === null || iterable === undefined) { return map; } // 6. Let adder be ? Get(map, "set"). var adder = map.set; // 7. If IsCallable(adder) is false, throw a TypeError exception. if (!IsCallable(adder)) { throw new TypeError("Map.prototype.set is not a function"); } // 8. Let iteratorRecord be ? GetIterator(iterable). try { var iteratorRecord = GetIterator(iterable); // 9. Repeat, // eslint-disable-next-line no-constant-condition while (true) { // a. Let next be ? IteratorStep(iteratorRecord). var next = IteratorStep(iteratorRecord); // b. If next is false, return map. if (next === false) { return map; } // c. Let nextItem be ? IteratorValue(next). var nextItem = IteratorValue(next); // d. If Type(nextItem) is not Object, then if (Type(nextItem) !== 'object') { // i. Let error be Completion{[[Type]]: throw, [[Value]]: a newly created TypeError object, [[Target]]: empty}. try { throw new TypeError('Iterator value ' + nextItem + ' is not an entry object'); } catch (error) { // ii. Return ? IteratorClose(iteratorRecord, error). return IteratorClose(iteratorRecord, error); } } try { // Polyfill.io - The try catch accounts for steps: f, h, and j. // e. Let k be Get(nextItem, "0"). var k = nextItem[0]; // f. If k is an abrupt completion, return ? IteratorClose(iteratorRecord, k). // g. Let v be Get(nextItem, "1"). var v = nextItem[1]; // h. If v is an abrupt completion, return ? IteratorClose(iteratorRecord, v). // i. Let status be Call(adder, map, « k.[[Value]], v.[[Value]] »). adder.call(map, k, v); } catch (e) { // j. If status is an abrupt completion, return ? IteratorClose(iteratorRecord, status). return IteratorClose(iteratorRecord, e); } } } catch (e) { // Polyfill.io - For user agents which do not have iteration methods on argument objects or arrays, we can special case those. if (Array.isArray(iterable) || Object.prototype.toString.call(iterable) === '[object Arguments]') { var index; var length = iterable.length; for (index = 0; index < length; index++) { adder.call(map, iterable[index][0], iterable[index][1]); } } } return map; }; // 23.1.2.1. Map.prototype // The initial value of Map.prototype is the intrinsic object %MapPrototype%. // This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Object.defineProperty(Map, 'prototype', { configurable: false, enumerable: false, writable: false, value: {} }); // 23.1.2.2 get Map [ @@species ] Object.defineProperty(Map, Symbol.species, { configurable: true, enumerable: false, get: function () { // 1. Return the this value. return this; }, set: undefined }); // 23.1.3.1 Map.prototype.clear ( ) CreateMethodProperty(Map.prototype, 'clear', function clear() { // 1. Let M be the this value. var M = this; // 2. If Type(M) is not Object, throw a TypeError exception. if (Type(M) !== 'object') { throw new TypeError('Method Map.prototype.clear called on 4000 incompatible receiver ' + Object.prototype.toString.call(M)); } // 3. If M does not have a [[MapData]] internal slot, throw a TypeError exception. if (M._es6Map !== true) { throw new TypeError('Method Map.prototype.clear called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 4. Let entries be the List that is M.[[MapData]]. var entries = M._keys; // 5. For each Record {[[Key]], [[Value]]} p that is an element of entries, do for (var i = 0; i < entries.length; i++) { // 5.a. Set p.[[Key]] to empty. M._keys[i] = undefMarker; // 5.b. Set p.[[Value]] to empty. M._values[i] = undefMarker; } this._size = 0; // 5a. Clear lookup table this._table = {}; // 6. Return undefined. return undefined; } ); // 23.1.3.2. Map.prototype.constructor CreateMethodProperty(Map.prototype, 'constructor', Map); // 23.1.3.3. Map.prototype.delete ( key ) CreateMethodProperty(Map.prototype, 'delete', function (key) { // 1. Let M be the this value. var M = this; // 2. If Type(M) is not Object, throw a TypeError exception. if (Type(M) !== 'object') { throw new TypeError('Method Map.prototype.clear called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 3. If M does not have a [[MapData]] internal slot, throw a TypeError exception. if (M._es6Map !== true) { throw new TypeError('Method Map.prototype.clear called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 4. Let entries be the List that is M.[[MapData]]. // 5. For each Record {[[Key]], [[Value]]} p that is an element of entries, do // 5a. If p.[[Key]] is not empty and SameValueZero(p.[[Key]], key) is true, then // i. Set p.[[Key]] to empty. // ii. Set p.[[Value]] to empty. // ii-a. Remove key from lookup table // iii. Return true. // 6. Return false. // Implement steps 4-6 with a more optimal algo // Steps 4-5: Access record var recordIndex = getRecordIndex(M, key); // O(1) access to record index if (recordIndex !== false) { // Get record's `key` (could be `any` type); var recordKey = M._keys[recordIndex]; // 5a. If p.[[Key]] is not empty and SameValueZero(p.[[Key]], key) is true, then if (recordKey !== undefMarker && SameValueZero(recordKey, key)) { // i. Set p.[[Key]] to empty. this._keys[recordIndex] = undefMarker; // ii. Set p.[[Value]] to empty. this._values[recordIndex] = undefMarker; this._size = --this._size; // iia. Remove key from lookup table setHashIndex(this, key, false); // iii. Return true. return true; } } // 6. Return false. return false; } ); // 23.1.3.4. Map.prototype.entries ( ) CreateMethodProperty(Map.prototype, 'entries', function entries () { // 1. Let M be the this value. var M = this; // 2. Return ? CreateMapIterator(M, "key+value"). return CreateMapIterator(M, 'key+value'); } ); // 23.1.3.5. Map.prototype.forEach ( callbackfn [ , thisArg ] ) CreateMethodProperty(Map.prototype, 'forEach', function (callbackFn) { // 1. Let M be the this value. var M = this; // 2. If Type(M) is not Object, throw a TypeError exception. if (Type(M) !== 'object') { throw new TypeError('Method Map.prototype.forEach called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 3. If M does not have a [[MapData]] internal slot, throw a TypeError exception. if (M._es6Map !== true) { throw new TypeError('Method Map.prototype.forEach called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 4. If IsCallable(callbackfn) is false, throw a TypeError exception. if (!IsCallable(callbackFn)) { throw new TypeError(Object.prototype.toString.call(callbackFn) + ' is not a function.'); } // 5. If thisArg is present, let T be thisArg; else let T be undefined. if (arguments[1]) { var T = arguments[1]; } // 6. Let entries be the List that is M.[[MapData]]. var entries = M._keys; // 7. For each Record {[[Key]], [[Value]]} e that is an element of entries, in original key insertion order, do for (var i = 0; i < entries.length; i++) { // a. If e.[[Key]] is not empty, then if (M._keys[i] !== undefMarker && M._values[i] !== undefMarker ) { // i. Perform ? Call(callbackfn, T, « e.[[Value]], e.[[Key]], M »). callbackFn.call(T, M._values[i], M._keys[i], M); } } // 8. Return undefined. return undefined; } ); // 23.1.3.6. Map.prototype.get ( key ) CreateMethodProperty(Map.prototype, 'get', function get(key) { // 1. Let M be the this value. var M = this; // 2. If Type(M) is not Object, throw a TypeError exception. if (Type(M) !== 'object') { throw new TypeError('Method Map.prototype.get called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 3. If M does not have a [[MapData]] internal slot, throw a TypeError exception. if (M._es6Map !== true) { throw new TypeError('Method Map.prototype.get called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 4. Let entries be the List that is M.[[MapData]]. // 5. For each Record {[[Key]], [[Value]]} p that is an element of entries, do // a. If p.[[Key]] is not empty and SameValueZero(p.[[Key]], key) is true, return p.[[Value]]. // 6. Return undefined. // Implement steps 4-6 with a more optimal algo var recordIndex = getRecordIndex(M, key); // O(1) access to record index if (recordIndex !== false) { var recordKey = M._keys[recordIndex]; if (recordKey !== undefMarker && SameValueZero(recordKey, key)) { return M._values[recordIndex]; } } return undefined; }); // 23.1.3.7. Map.prototype.has ( key ) CreateMethodProperty(Map.prototype, 'has', function has (key) { // 1. Let M be the this value. var M = this; // 2. If Type(M) is not Object, throw a TypeError exception. if (typeof M !== 'object') { throw new TypeError('Method Map.prototype.has called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 3. If M does not have a [[MapData]] internal slot, throw a TypeError exception. if (M._es6Map !== true) { throw new TypeError('Method Map.prototype.has called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 4. Let entries be the List that is M.[[MapData]]. // 5. For each Record {[[Key]], [[Value]]} p that is an element of entries, do // a. If p.[[Key]] is not empty and SameValueZero(p.[[Key]], key) is true, return true. // 6. Return false. // Implement steps 4-6 with a more optimal algo var recordIndex = getRecordIndex(M, key); // O(1) access to record index if (recordIndex !== false) { var recordKey = M._keys[recordIndex]; if (recordKey !== undefMarker && SameValueZero(recordKey, key)) { return true; } } return false; }); // 23.1.3.8. Map.prototype.keys ( ) CreateMethodProperty(Map.prototype, 'keys', function keys () { // 1. Let M be the this value. var M = this; // 2. Return ? CreateMapIterator(M, "key"). return CreateMapIterator(M, "key"); }); // 23.1.3.9. Map.prototype.set ( key, value ) CreateMethodProperty(Map.prototype, 'set', function set(key, value) { // 1. Let M be the this value. var M = this; // 2. If Type(M) is not Object, throw a TypeError exception. if (Type(M) !== 'object') { throw new TypeError('Method Map.prototype.set called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 3. If M does not have a [[MapData]] internal slot, throw a TypeError exception. if (M._es6Map !== true) { throw new TypeError('Method Map.prototype.set called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 4. Let entries be the List that is M.[[MapData]]. // 5. For each Record {[[Key]], [[Value]]} p that is an element of entries, do // 6. If key is -0, let key be +0. // 7. Let p be the Record {[[Key]]: key, [[Value]]: value}. // 8. Append p as the last element of entries. // 9. Return M. // Strictly following the above steps 4-9 will lead to an inefficient algorithm. // Step 8 also doesn't seem to be required if an entry already exists var recordIndex = getRecordIndex(M, key); // O(1) access to record index if (recordIndex !== false) { // update path M._values[recordIndex] = value; } else { // eslint-disable-next-line no-compare-neg-zero if (key === -0) { key = 0; } var p = { '[[Key]]': key, '[[Value]]': value }; M._keys.push(p['[[Key]]']); M._values.push(p['[[Value]]']); setHashIndex(M, key, M._keys.length - 1); // update lookup table ++M._size; } return M; }); // 23.1.3.10. get Map.prototype.size Object.defineProperty(Map.prototype, 'size', { configurable: true, enumerable: false, get: function () { // 1. Let M be the this value. var M = this; // 2. If Type(M) is not Object, throw a TypeError exception. if (Type(M) !== 'object') { throw new TypeError('Method Map.prototype.size called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 3. If M does not have a [[MapData]] internal slot, throw a TypeError exception. if (M._es6Map !== true) { throw new TypeError('Method Map.prototype.size called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 4. Let entries be the List that is M.[[MapData]]. // 5. Let count be 0. // 6. For each Record {[[Key]], [[Value]]} p that is an element of entries, do // 6a. If p.[[Key]] is not empty, set count to count+1. // 7. Return count. // Implement 4-7 more efficently by returning pre-computed property return this._size; }, set: undefined }); // 23.1.3.11. Map.prototype.values ( ) CreateMethodProperty(Map.prototype, 'values', function values () { // 1. Let M be the this value. var M = this; // 2. Return ? CreateMapIterator(M, "value"). return CreateMapIterator(M, 'value'); } ); // 23.1.3.12. Map.prototype [ @@iterator ] ( ) // The initial value of the @@iterator property is the same function object as the initial value of the entries property. CreateMethodProperty(Map.prototype, Symbol.iterator, Map.prototype.entries); // 23.1.3.13. Map.prototype [ @@toStringTag ] // The initial value of the @@toStringTag property is the String value "Map". // This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. Object.defineProperty(Map.prototype, Symbol.toStringTag, { value: 'Map', writable: false, enumerable: false, configurable: true }); // Polyfill.io - Safari 8 implements Map.name but as a non-configurable property, which means it would throw an error if we try and configure it here. if (!('name' in Map)) { // 19.2.4.2 name Object.defineProperty(Map, 'name', { configurable: true, enumerable: false, writable: false, value: 'Map' }); } // 23.1.5.1. CreateMapIterator ( map, kind ) function CreateMapIterator(map, kind) { // 1. If Type(map) is not Object, throw a TypeError exception. if (Type(map) !== 'object') { throw new TypeError('createMapIterator called on incompatible receiver ' + Object.prototype.toString.call(map)); } // 2. If map does not have a [[MapData]] internal slot, throw a TypeError exception. if (map._es6Map !== true) { throw new TypeError('createMapIterator called on incompatible receiver ' + Object.prototype.toString.call(map)); } // 3. Let iterator be ObjectCreate(%MapIteratorPrototype%, « [[Map]], [[MapNextIndex]], [[MapIterationKind]] »). var iterator = Object.create(MapIteratorPrototype); // 4. Set iterator.[[Map]] to map. Object.defineProperty(iterator, '[[Map]]', { configurable: true, enumerable: false, writable: true, value: map }); // 5. Set iterator.[[MapNextIndex]] to 0. Object.defineProperty(iterator, '[[MapNextIndex]]', { configurable: true, enumerable: false, writable: true, value: 0 }); // 6. Set iterator.[[MapIterationKind]] to kind. Object.defineProperty(iterator, '[[MapIterationKind]]', { configurable: true, enumerable: false, writable: true, value: kind }); // 7. Return iterator. return iterator; } // 23.1.5.2. The %MapIteratorPrototype% Object var MapIteratorPrototype = {}; // Polyfill.io - We use this as a quick way to check if an object is a Map Iterator instance. Object.defineProperty(MapIteratorPrototype, 'isMapIterator', { configurable: false, enumerable: false, writable: false, value: true }); // 23.1.5.2.1. %MapIteratorPrototype%.next ( ) CreateMethodProperty(MapIteratorPrototype, 'next', function next() { // 1. Let O be the this value. var O = this; // 2. If Type(O) is not Object, throw a TypeError exception. if (Type(O) !== 'object') { throw new TypeError('Method %MapIteratorPrototype%.next called on incompatible receiver ' + Object.prototype.toString.call(O)); } // 3. If O does not have all of the internal slots of a Map Iterator Instance (23.1.5.3), throw a TypeError exception. if (!O.isMapIterator) { throw new TypeError('Method %MapIteratorPrototype%.next called on incompatible receiver ' + Object.prototype.toString.call(O)); } // 4. Let m be O.[[Map]]. var m = O['[[Map]]']; // 5. Let index be O.[[MapNextIndex]]. var index = O['[[MapNextIndex]]']; // 6. Let itemKind be O.[[MapIterationKind]]. var itemKind = O['[[MapIterationKind]]']; // 7. If m is undefined, return CreateIterResultObject(undefined, true). if (m === undefined) { return CreateIterResultObject(undefined, true); } // 8. Assert: m has a [[MapData]] internal slot. if (!m._es6Map) { throw new Error(Object.prototype.toString.call(m) + ' has a [[MapData]] internal slot.'); } // 9. Let entries be the List that is m.[[MapData]]. var entries = m._keys; // 10. Let numEntries be the number of elements of entries. var numEntries = entries.length; // 11. NOTE: numEntries must be redetermined each time this method is evaluated. // 12. Repeat, while index is less than numEntries, while (index < numEntries) { // a. Let e be the Record {[[Key]], [[Value]]} that is the value of entries[index]. var e = Object.create(null); e['[[Key]]'] = m._keys[index]; e['[[Value]]'] = m._values[index]; // b. Set index to index+1. index = index + 1; // c. Set O.[[MapNextIndex]] to index. O['[[MapNextIndex]]'] = index; // d. If e.[[Key]] is not empty, then if (e['[[Key]]'] !== undefMarker) { // i. If itemKind is "key", let result be e.[[Key]]. if (itemKind === 'key') { var result = e['[[Key]]']; // ii. Else if itemKind is "value", let result be e.[[Value]]. } else if (itemKind === 'value') { result = e['[[Value]]']; // iii. Else, } else { // 1. Assert: itemKind is "key+value". if (itemKind !== 'key+value') { throw new Error(); } // 2. Let result be CreateArrayFromList(« e.[[Key]], e.[[Value]] »). result = [ e['[[Key]]'], e['[[Value]]'] ]; } // iv. Return CreateIterResultObject(result, false). return CreateIterResultObject(result, false); } } // 13. Set O.[[Map]] to undefined. O['[[Map]]'] = undefined; // 14. Return CreateIterResultObject(undefined, true). return CreateIterResultObject(undefined, true); } ); // 23.1.5.2.2 %MapIteratorPrototype% [ @@toStringTag ] // The initial value of the @@toStringTag property is the String value "Map Iterator". // This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. Object.defineProperty(MapIteratorPrototype, Symbol.toStringTag, { value: 'Map Iterator', writable: false, enumerable: false, configurable: true }); CreateMethodProperty(MapIteratorPrototype, Symbol.iterator, function iterator() { return this; } ); // Export the object CreateMethodProperty(global, 'Map', Map); }(self)); } if (!("Symbol"in self&&"toStringTag"in self.Symbol&&"toString"in Object.prototype&&!0===function(){var t={} return t[self.Symbol.toStringTag]="x","[object x]"===Object.prototype.toString.call(t)}() )) { // O 4000 bject.prototype.toString /* global CreateMethodProperty, Get, Symbol, ToObject, Type */ // 20.1.3.6 Object.prototype.toString ( ) (function () { var ObjectProtoToStringOriginal = Object.prototype.toString; CreateMethodProperty(Object.prototype, 'toString', function toString () { 'use strict'; // 1. If the this value is undefined, return "[object Undefined]". if (this === undefined) return '[object Undefined]'; // 2. If the this value is null, return "[object Null]". if (this === null) return '[object Null]'; // 3. Let O be ! ToObject(this value). var O = ToObject(this); // Polyfill.io - We will not implement these; we will use the original `Object.prototype.toString` to determine the object class // 4. Let isArray be ? IsArray(O). // 5. If isArray is true, let builtinTag be "Array". // 6. Else if O has a [[ParameterMap]] internal slot, let builtinTag be "Arguments". // 7. Else if O has a [[Call]] internal method, let builtinTag be "Function". // 8. Else if O has an [[ErrorData]] internal slot, let builtinTag be "Error". // 9. Else if O has a [[BooleanData]] internal slot, let builtinTag be "Boolean". // 10. Else if O has a [[NumberData]] internal slot, let builtinTag be "Number". // 11. Else if O has a [[StringData]] internal slot, let builtinTag be "String". // 12. Else if O has a [[DateValue]] internal slot, let builtinTag be "Date". // 13. Else if O has a [[RegExpMatcher]] internal slot, let builtinTag be "RegExp". // 14. Else, let builtinTag be "Object". // 15. Let tag be ? Get(O, @@toStringTag). var tag = Get(O, Symbol.toStringTag); // 16. If Type(tag) is not String, set tag to builtinTag. if (Type(tag) !== 'string') return ObjectProtoToStringOriginal.call(O); // 17. Return the string-concatenation of "[object ", tag, and "]". return '[object ' + tag + ']'; }); })(); } if (!("Promise"in self )) { // Promise /* Yaku v0.19.3 (c) 2015 Yad Smood. http://ysmood.org License MIT */ /* Yaku v0.17.9 (c) 2015 Yad Smood. http://ysmood.org License MIT */ (function () { 'use strict'; var $undefined , $null = null , isBrowser = typeof self === 'object' , root = self , nativePromise = root.Promise , process = root.process , console = root.console , isLongStackTrace = true , Arr = Array , Err = Error , $rejected = 1 , $resolved = 2 , $pending = 3 , $Symbol = 'Symbol' , $iterator = 'iterator' , $species = 'species' , $speciesKey = $Symbol + '(' + $species + ')' , $return = 'return' , $unhandled = '_uh' , $promiseTrace = '_pt' , $settlerTrace = '_st' , $invalidThis = 'Invalid this' , $invalidArgument = 'Invalid argument' , $fromPrevious = '\nFrom previous ' , $promiseCircularChain = 'Chaining cycle detected for promise' , $unhandledRejectionMsg = 'Uncaught (in promise)' , $rejectionHandled = 'rejectionHandled' , $unhandledRejection = 'unhandledRejection' , $tryCatchFn , $tryCatchThis , $tryErr = { e: $null } , $noop = function () {} , $cleanStackReg = /^.+\/node_modules\/yaku\/.+\n?/mg ; /** * This class follows the [Promises/A+](https://promisesaplus.com) and * [ES6](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-promise-objects) spec * with some extra helpers. * @param {Function} executor Function object with two arguments resolve, reject. * The first argument fulfills the promise, the second argument rejects it. * We can call these functions, once our operation is completed. */ var Yaku = function (executor) { var self = this, err; // "this._s" is the internao state of: pending, resolved or rejected // "this._v" is the internal value if (!isObject(self) || self._s !== $undefined) throw genTypeError($invalidThis); self._s = $pending; if (isLongStackTrace) self[$promiseTrace] = genTraceInfo(); if (executor !== $noop) { if (!isFunction(executor)) throw genTypeError($invalidArgument); err = genTryCatcher(executor)( genSettler(self, $resolved), genSettler(self, $rejected) ); if (err === $tryErr) settlePromise(self, $rejected, err.e); } }; Yaku.default = Yaku; extend(Yaku.prototype, { /** * Appends fulfillment and rejection handlers to the promise, * and returns a new promise resolving to the return value of the called handler. * @param {Function} onFulfilled Optional. Called when the Promise is resolved. * @param {Function} onRejected Optional. Called when the Promise is rejected. * @return {Yaku} It will return a new Yaku which will resolve or reject after * @example * the current Promise. * ```js * var Promise = require('yaku'); * var p = Promise.resolve(10); * * p.then((v) => { * console.log(v); * }); * ``` */ then: function (onFulfilled, onRejected) { if (this._s === undefined) throw genTypeError(); return addHandler( this, newCapablePromise(Yaku.speciesConstructor(this, Yaku)), onFulfilled, onRejected ); }, /** * The `catch()` method returns a Promise and deals with rejected cases only. * It behaves the same as calling `Promise.prototype.then(undefined, onRejected)`. * @param {Function} onRejected A Function called when the Promise is rejected. * This function has one argument, the rejection reason. * @return {Yaku} A Promise that deals with rejected cases only. * @example * ```js * var Promise = require('yaku'); * var p = Promise.reject(new Error("ERR")); * * p['catch']((v) => { * console.log(v); * }); * ``` */ 'catch': function (onRejected) { return this.then($undefined, onRejected); }, /** * Register a callback to be invoked when a promise is settled (either fulfilled or rejected). * Similar with the try-catch-finally, it's often used for cleanup. * @param {Function} onFinally A Function called when the Promise is settled. * It will not receive any argument. * @return {Yaku} A Promise that will reject if onFinally throws an error or returns a rejected promise. * Else it will resolve previous promise's final state (either fulfilled or rejected). * @example * ```js * var Promise = require('yaku'); * var p = Math.random() > 0.5 ? Promise.resolve() : Promise.reject(); * p.finally(() => { * console.log('finally'); * }); * ``` */ 'finally': function (onFinally) { return this.then(function (val) { return Yaku.resolve(onFinally()).then(function () { return val; }); }, function (err) { return Yaku.resolve(onFinally()).then(function () { throw err; }); }); }, // The number of current promises that attach to this Yaku instance. _c: 0, // The parent Yaku. _p: $null }); /** * The `Promise.resolve(value)` method returns a Promise object that is resolved with the given value. * If the value is a thenable (i.e. has a then method), the returned promise will "follow" that thenable, * adopting its eventual state; otherwise the returned promise will be fulfilled with the value. * @param {Any} value Argument to be resolved by this Promise. * Can also be a Promise or a thenable to resolve. * @return {Yaku} * @example * ```js * var Promise = require('yaku'); * var p = Promise.resolve(10); * ``` */ Yaku.resolve = function (val) { return isYaku(val) ? val : settleWithX(newCapablePromise(this), val); }; /** * The `Promise.reject(reason)` method returns a Promise object that is rejected with the given reason. * @param {Any} reason Reason why this Promise rejected. * @return {Yaku} * @example * ```js * var Promise = require('yaku'); * var p = Promise.reject(new Error("ERR")); * ``` */ Yaku.reject = function (reason) { return settlePromise(newCapablePromise(this), $rejected, reason); }; /** * The `Promise.race(iterable)` method returns a promise that resolves or rejects * as soon as one of the promises in the iterable resolves or rejects, * with the value or reason from that promise. * @param {iterable} iterable An iterable object, such as an Array. * @return {Yaku} The race function returns a Promise that is settled * the same way as the first passed promise to settle. * It resolves or rejects, whichever happens first. * @example * ```js * var Promise = require('yaku'); * Promise.race([ * 123, * Promise.resolve(0) * ]) * .then((value) => { * console.log(value); // => 123 * }); * ``` */ Yaku.race = function (iterable) { var self = this , p = newCapablePromise(self) , resolve = function (val) { settlePromise(p, $resolved, val); } , reject = function (val) { settlePromise(p, $rejected, val); } , ret = genTryCatcher(each)(iterable, function (v) { self.resolve(v).then(resolve, reject); }); if (ret === $tryErr) return self.reject(ret.e); return p; }; /** * The `Promise.all(iterable)` method returns a promise that resolves when * all of the promises in the iterable argument have resolved. * * The result is passed as an array of values from all the promises. * If something passed in the iterable array is not a promise, * it's converted to one by Promise.resolve. If any of the passed in promises rejects, * the all Promise immediately rejects with the value of the promise that rejected, * discarding all the other promises whether or not they have resolved. * @param {iterable} iterable An iterable object, such as an Array. * @return {Yaku} * @example * ```js * var Promise = require('yaku'); * Promise.all([ * 123, * Promise.resolve(0) * ]) * .then((values) => { * console.log(values); // => [123, 0] * }); * ``` * @example * Use with iterable. * ```js * var Promise = require('yaku'); * Promise.all((function * () { * yield 10; * yield new Promise(function (r) { setTimeout(r, 1000, "OK") }); * })()) * .then((values) => { * console.log(values); // => [123, 0] * }); * ``` */ Yaku.all = function (iterable) { var self = this , p1 = newCapablePromise(self) , res = [] , ret ; function reject (reason) { settlePromise(p1, $rejected, reason); } ret = genTryCatcher(each)(iterable, function (item, i) { self.resolve(item).then(function (value) { res[i] = value; if (!--ret) settlePromise(p1, $resolved, res); }, reject); }); if (ret === $tryErr) return self.reject(ret.e); if (!ret) settlePromise(p1, $resolved, []); return p1; }; /** * The ES6 Symbol object that Yaku should use, by default it will use the * global one. * @type {Object} * @example * ```js * var core = require("core-js/library"); * var Promise = require("yaku"); * Promise.Symbol = core.Symbol; * ``` */ Yaku.Symbol = root[$Symbol] || {}; // To support browsers that don't support `Object.defineProperty`. genTryCatcher(function () { Object.defineProperty(Yaku, getSpecies(), { get: function () { return this; } }); })(); /** * Use this api to custom the species behavior. * https://tc39.github.io/ecma262/#sec-speciesconstructor * @param {Any} O The current this object. * @param {Function} defaultConstructor */ Yaku.speciesConstructor = function (O, D) { var C = O.constructor; return C ? (C[getSpecies()] || D) : D; }; /** * Catch all possibly unhandled rejections. If you want to use specific * format to display the error stack, overwrite it. * If it is set, auto `console.error` unhandled rejection will be disabled. * @param {Any} reason The rejection reason. * @param {Yaku} p The promise that was rejected. * @example * ```js * var Promise = require('yaku'); * Promise.unhandledRejection = (reason) => { * console.error(reason); * }; * * // The console will log an unhandled rejection error message. * Promise.reject('my reason'); * * // The below won't log the unhandled rejection error message. * Promise.reject('v')["catch"](() => {}); * ``` */ Yaku.unhandledRejection = function (reason, p) { console && console.error( $unhandledRejectionMsg, isLongStackTrace ? p.longStack : genStackInfo(reason, p) ); }; /** * Emitted whenever a Promise was rejected and an error handler was * attached to it (for example with `["catch"]()`) later than after an event loop turn. * @param {Any} reason The rejection reason. * @param {Yaku} p The promise that was rejected. */ Yaku.rejectionHandled = $noop; /** * It is used to enable the long stack trace. * Once it is enabled, it can't be reverted. * While it is very helpful in development and testing environments, * it is not recommended to use it in production. It will slow down * application and eat up memory. * It will add an extra property `longStack` to the Error object. * @example * ```js * var Promise = require('yaku'); * Promise.enableLongStackTrace(); * Promise.reject(new Error("err"))["catch"]((err) => { * console.log(err.longStack); * }); * ``` */ Yaku.enableLongStackTrace = function () { isLongStackTrace = true; }; /** * Only Node has `process.nextTick` function. For browser there are * so many ways to polyfill it. Yaku won't do it for you, instead you * can choose what you prefer. For example, this project * [next-tick](https://github.com/medikoo/next-tick). * By default, Yaku will use `process.nextTick` on Node, `setTimeout` on browser. * @type {Function} * @example * ```js * var Promise = require('yaku'); * Promise.nextTick = require('next-tick'); * ``` * @example * You can even use sync resolution if you really know what you are doing. * ```js * var Promise = require('yaku'); * Promise.nextTick = fn => fn(); * ``` */ Yaku.nextTick = isBrowser ? function (fn) { nativePromise ? new nativePromise(function (resolve) { resolve(); }).then(fn) : setTimeout(fn); } : process.nextTick; // ********************** Private ********************** Yaku._s = 1; /** * All static variable name will begin with `$`. Such as `$rejected`. * @private */ // ******************************* Utils ******************************** function getSpecies () { return Yaku[$Symbol][$species] || $speciesKey; } function extend (src, target) { for (var k in target) { src[k] = target[k]; } } function isObject (obj) { return obj && typeof obj === 'object'; } function isFunction (obj) { return typeof obj === 'function'; } function isInstanceOf (a, b) { return a instanceof b; } function isError (obj) { return isInstanceOf(obj, Err); } function ensureType (obj, fn, msg) { if (!fn(obj)) throw genTypeError(msg); } /** * Wrap a function into a try-catch. * @private * @return {Any | $tryErr} */ function tryCatcher () { try { return $tryCatchFn.apply($tryCatchThis, arguments); } catch (e) { $tryErr.e = e; return $tryErr; } } /** * Generate a try-catch wrapped function. * @private * @param {Function} fn * @return {Function} */ function genTryCatcher (fn, self) { $tryCatchFn = fn; $tryCatchThis = self; return tryCatcher; } /** * Generate a scheduler. * @private * @param {Integer} initQueueSize * @param {Function} fn `(Yaku, Value) ->` The schedule handler. * @return {Function} `(Yaku, Value) ->` The scheduler. */ function genScheduler (initQueueSize, fn) { /** * All async promise will be scheduled in * here, so that they can be execute on the next tick. * @private */ var fnQueue = Arr(initQueueSize) , fnQueueLen = 0; /** * Run all queued functions. * @private */ function flush () { var i = 0; while (i < fnQueueLen) { fn(fnQueue[i], fnQueue[i + 1]); fnQueue[i++] = $undefined; fnQueue[i++] = $undefined; } fnQueueLen = 0; if (fnQueue.length > initQueueSize) fnQueue.length = initQueueSize; } return function (v, arg) { fnQueue[fnQueueLen++] = v; fnQueue[fnQueueLen++] = arg; if (fnQueueLen === 2) Yaku.nextTick(flush); }; } /** * Generate a iterator * @param {Any} obj * @private * @return {Object || TypeError} */ function each (iterable, fn) { var len , i = 0 , iter , item , ret ; if (!iterable) throw genTypeError($invalidArgument); var gen = iterable[Yaku[$Symbol][$iterator]]; if (isFunction(gen)) iter = gen.call(iterable); else if (isFunction(iterable.next)) { iter = iterable; } else if (isInstanceOf(iterable, Arr)) { len = iterable.length; while (i < len) { fn(iterable[i], i++); } return i; } else throw genTypeError($invalidArgument); while (!(item = iter.next()).done) { ret = genTryCatcher(fn)(item.value, i++); if (ret === $tryErr) { isFuncti 318 on(iter[$return]) && iter[$return](); throw ret.e; } } return i; } /** * Generate type error object. * @private * @param {String} msg * @return {TypeError} */ function genTypeError (msg) { return new TypeError(msg); } function genTraceInfo (noTitle) { return (noTitle ? '' : $fromPrevious) + new Err().stack; } // *************************** Promise Helpers **************************** /** * Resolve the value returned by onFulfilled or onRejected. * @private * @param {Yaku} p1 * @param {Yaku} p2 */ var scheduleHandler = genScheduler(999, function (p1, p2) { var x, handler; // 2.2.2 // 2.2.3 handler = p1._s !== $rejected ? p2._onFulfilled : p2._onRejected; // 2.2.7.3 // 2.2.7.4 if (handler === $undefined) { settlePromise(p2, p1._s, p1._v); 4000 return; } // 2.2.7.1 x = genTryCatcher(callHanler)(handler, p1._v); if (x === $tryErr) { // 2.2.7.2 settlePromise(p2, $rejected, x.e); return; } settleWithX(p2, x); }); var scheduleUnhandledRejection = genScheduler(9, function (p) { if (!hashOnRejected(p)) { p[$unhandled] = 1; emitEvent($unhandledRejection, p); } }); function emitEvent (name, p) { var browserEventName = 'on' + name.toLowerCase() , browserHandler = root[browserEventName]; if (process && process.listeners(name).length) name === $unhandledRejection ? process.emit(name, p._v, p) : process.emit(name, p); else if (browserHandler) browserHandler({ reason: p._v, promise: p }); else Yaku[name](p._v, p); } function isYaku (val) { return val && val._s; } function newCapablePromise (Constructor) { if (isYaku(Constructor)) return new Constructor($noop); var p, r, j; p = new Constructor(function (resolve, reject) { if (p) throw genTypeError(); r = resolve; j = reject; }); ensureType(r, isFunction); ensureType(j, isFunction); return p; } /** * It will produce a settlePromise function to user. * Such as the resolve and reject in this `new Yaku (resolve, reject) ->`. * @private * @param {Yaku} self * @param {Integer} state The value is one of `$pending`, `$resolved` or `$rejected`. * @return {Function} `(value) -> undefined` A resolve or reject function. */ function genSettler (self, state) { var isCalled = false; return function (value) { if (isCalled) return; isCalled = true; if (isLongStackTrace) self[$settlerTrace] = genTraceInfo(true); if (state === $resolved) settleWithX(self, value); else settlePromise(self, state, value); }; } /** * Link the promise1 to the promise2. * @private * @param {Yaku} p1 * @param {Yaku} p2 * @param {Function} onFulfilled * @param {Function} onRejected */ function addHandler (p1, p2, onFulfilled, onRejected) { // 2.2.1 if (isFunction(onFulfilled)) p2._onFulfilled = onFulfilled; if (isFunction(onRejected)) { if (p1[$unhandled]) emitEvent($rejectionHandled, p1); p2._onRejected = onRejected; } if (isLongStackTrace) p2._p = p1; p1[p1._c++] = p2; // 2.2.6 if (p1._s !== $pending) scheduleHandler(p1, p2); // 2.2.7 return p2; } // iterate tree function hashOnRejected (node) { // A node shouldn't be checked twice. if (node._umark) return true; else node._umark = true; var i = 0 , len = node._c , child; while (i < len) { child = node[i++]; if (child._onRejected || hashOnRejected(child)) return true; } } function genStackInfo (reason, p) { var stackInfo = []; function push (trace) { return stackInfo.push(trace.replace(/^\s+|\s+$/g, '')); } if (isLongStackTrace) { if (p[$settlerTrace]) push(p[$settlerTrace]); // Hope you guys could understand how the back trace works. // We only have to iterate through the tree from the bottom to root. (function iter (node) { if (node && $promiseTrace in node) { iter(node._next); push(node[$promiseTrace] + ''); iter(node._p); } })(p); } return (reason && reason.stack ? reason.stack : reason) + ('\n' + stackInfo.join('\n')).replace($cleanStackReg, ''); } function callHanler (handler, value) { // 2.2.5 return handler(value); } /** * Resolve or reject a promise. * @private * @param {Yaku} p * @param {Integer} state * @param {Any} value */ function settlePromise (p, state, value) { var i = 0 , len = p._c; // 2.1.2 // 2.1.3 if (p._s === $pending) { // 2.1.1.1 p._s = state; p._v = value; if (state === $rejected) { if (isLongStackTrace && isError(value)) { value.longStack = genStackInfo(value, p); } scheduleUnhandledRejection(p); } // 2.2.4 while (i < len) { scheduleHandler(p, p[i++]); } } return p; } /** * Resolve or reject promise with value x. The x can also be a thenable. * @private * @param {Yaku} p * @param {Any | Thenable} x A normal value or a thenable. */ function settleWithX (p, x) { // 2.3.1 if (x === p && x) { settlePromise(p, $rejected, genTypeError($promiseCircularChain)); return p; } // 2.3.2 // 2.3.3 if (x !== $null && (isFunction(x) || isObject(x))) { // 2.3.2.1 var xthen = genTryCatcher(getThen)(x); if (xthen === $tryErr) { // 2.3.3.2 settlePromise(p, $rejected, xthen.e); return p; } if (isFunction(xthen)) { if (isLongStackTrace && isYaku(x)) p._next = x; // Fix https://bugs.chromium.org/p/v8/issues/detail?id=4162 if (isYaku(x)) settleXthen(p, x, xthen); else Yaku.nextTick(function () { settleXthen(p, x, xthen); }); } else // 2.3.3.4 settlePromise(p, $resolved, x); } else // 2.3.4 settlePromise(p, $resolved, x); return p; } /** * Try to get a promise's then method. * @private * @param {Thenable} x * @return {Function} */ function getThen (x) { return x.then; } /** * Resolve then with its promise. * @private * @param {Yaku} p * @param {Thenable} x * @param {Function} xthen */ function settleXthen (p, x, xthen) { // 2.3.3.3 var err = genTryCatcher(xthen, x)(function (y) { // 2.3.3.3.3 // 2.3.3.3.1 x && (x = $null, settleWithX(p, y)); }, function (r) { // 2.3.3.3.3 // 2.3.3.3.2 x && (x = $null, settlePromise(p, $rejected, r)); }); // 2.3.3.3.4.1 if (err === $tryErr && x) { // 2.3.3.3.4.2 settlePromise(p, $rejected, err.e); x = $null; } } // 27.2.5.5 Promise.prototype [ @@toStringTag ] // The initial value of the @@toStringTag property is the String value "Promise". // This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. Object.defineProperty(Yaku.prototype, Yaku.Symbol.toStringTag, { value: 'Promise', writable: false, enumerable: false, configurable: true }); root.Promise = Yaku; })(); } if (!("Promise"in self&&"allSettled"in self.Promise )) { // Promise.allSettled /* global CreateMethodProperty, IterableToList, Promise, Type */ (function () { // Based on https://github.com/es-shims/Promise.allSettled/blob/main/implementation.js CreateMethodProperty(Promise, 'allSettled', function allSettled (iterable) { var C = this; if (Type(C) !== 'object') { throw new TypeError('`this` value must be an object'); } var arr; if (Array.isArray(iterable)) { arr = iterable; } else { try { arr = IterableToList(iterable); } catch (_error) { return Promise.reject(new TypeError('Argument of Promise.allSettled is not iterable')); } } var promises = arr.map(function (promise) { var onFulfill = function (value) { return { status: 'fulfilled', value: value }; }; var onReject = function (reason) { return { status: 'rejected', reason: reason }; }; var itemPromise = C.resolve(promise); try { return itemPromise.then(onFulfill, onReject); } catch (e) { return C.reject(e); } }); return C.all(promises); }); }()); } if (!("Promise"in self&&"any"in self.Promise )) { // Promise.any /* global AggregateError, CreateMethodProperty, IterableToList, Promise, Type */ (function () { // Based on https://github.com/es-shims/Promise.any/blob/master/implementation.js var identity = function (x) { return x; } CreateMethodProperty(Promise, 'any', function any (iterable) { var C = this; if (Type(C) !== 'object') { throw new TypeError('`this` value must be an object'); } var arr; if (Array.isArray(iterable)) { arr = iterable; } else { try { arr = IterableToList(iterable); } catch (_error) { return Promise.reject(new TypeError('Argument of Promise.any is not iterable')); } } var thrower = function (value) { return C.reject(value); }; var promises = arr.map(function (promise) { var itemPromise = C.resolve(promise); try { return itemPromise.then(thrower, identity); } catch (e) { return e; } }); return C.all(promises).then(function (errors) { throw new AggregateError(errors, 'Every promise rejected') }, identity); }); }()); } if (!("Promise"in self&&"finally"in self.Promise.prototype )) { // Promise.prototype.finally /* global CreateMethodProperty, IsCallable, SpeciesConstructor, Type, Promise */ (function () { // Based on https://github.com/tc39/proposal-promise-finally/blob/master/polyfill.js var then = Function.prototype.bind.call(Function.prototype.call, Promise.prototype.then); var getPromise = function (C, handler) { return new C(function (resolve) { resolve(handler()); }); }; // 1. Promise.prototype.finally ( onFinally ) CreateMethodProperty(Promise.prototype, 'finally', function (onFinally) { // 1. Let promise be the this value. var promise = this; // 2. If Type(promise) is not Object, throw a TypeError exception. if (Type(promise) !== 'object') { throw new TypeError('Method %PromisePrototype%.finally called on incompatible receiver ' + Object.prototype.toString.call(promise)); } // 3. Let C be ? SpeciesConstructor(promise, %Promise%). var C = SpeciesConstructor(promise, Promise); // 4. Assert: IsConstructor(C) is true. // 5. If IsCallable(onFinally) is false, if (IsCallable(onFinally) === false) { // a. Let thenFinally be onFinally. var thenFinally = onFinally; // b. Let catchFinally be onFinally. var catchFinally = onFinally; // 6. Else, } else { // a. Let thenFinally be a new built-in function object as defined in ThenFinally Function. thenFinally = function (x) { return then(getPromise(C, onFinally), function () { return x; }); }; // b. Let catchFinally be a new built-in function object as defined in CatchFinally Function. catchFinally = function (e) { return then(getPromise(C, onFinally), function () { throw e; }); }; // c. Set thenFinally and catchFinally's [[Constructor]] internal slots to C. // d. Set thenFinally and catchFinally's [[OnFinally]] internal slots to onFinally. } // 7. Return ? Invoke(promise, "then", « thenFinally, catchFinally »). return then(promise, thenFinally, catchFinally); }); }()); } if (!("Set"in self&&function(){try{var e=new self.Set([1,2]) return 0===self.Set.length&&2===e.size&&"Symbol"in self&&"iterator"in self.Symbol&&"function"==typeof e[self.Symbol.iterator]&&"toStringTag"in self.Symbol&&void 0!==e[self.Symbol.toStringTag]}catch(e){return!1}}() )) { // Set /* global CreateIterResultObject, CreateMethodProperty, GetIterator, IsCallable, IteratorClose, IteratorStep, IteratorValue, OrdinaryCreateFromConstructor, SameValueZero, Symbol */ (function (global) { // Deleted set items mess with iterator pointers, so rather than removing them mark them as deleted. Can't use undefined or null since those both valid keys so use a private symbol. var undefMarker = Symbol('undef'); // 23.2.1.1. Set ( [ iterable ] ) var Set = function Set(/* iterable */) { // 1. If NewTarget is undefined, throw a TypeError exception. if (!(this instanceof Set)) { throw new TypeError('Constructor Set requires "new"'); } // 2. Let set be ? OrdinaryCreateFromConstructor(NewTarget, "%SetPrototype%", « [[SetData]] »). var set = OrdinaryCreateFromConstructor(this, Set.prototype, { _values: [], _size: 0, _es6Set: true }); // 3. Set set.[[SetData]] to a new empty List. // Polyfill.io - This step was done as part of step two. // 4. If iterable is not present, let iterable be undefined. var iterable = arguments.length > 0 ? arguments[0] : undefined; // 5. If iterable is either undefined or null, return set. if (iterable === null || iterable === undefined) { return set; } // 6. Let adder be ? Get(set, "add"). var adder = set.add; // 7. If IsCallable(adder) is false, throw a TypeError exception. if (!IsCallable(adder)) { throw new TypeError("Set.prototype.add is not a function"); } try { // 8. Let iteratorRecord be ? GetIterator(iterable). var iteratorRecord = GetIterator(iterable); // 9. Repeat, // eslint-disable-next-line no-constant-condition while (true) { // a. Let next be ? IteratorStep(iteratorRecord). var next = IteratorStep(iteratorRecord); // b. If next is false, return set. if (next === false) { return set; } // c. Let nextValue be ? IteratorValue(next). var nextValue = IteratorValue(next); // d. Let status be Call(adder, set, « nextValue.[[Value]] »). try { adder.call(set, nextValue); } catch (e) { // e. If status is an abrupt completion, return ? IteratorClose(iteratorRecord, status). return IteratorClose(iteratorRecord, e); } } } catch (e) { // Polyfill.io - For user agents which do not have iteration methods on argument objects or arrays, we can special case those. if (Array.isArray(iterable) || Object.prototype.toString.call(iterable) === '[object Arguments]') { var index; var length = iterable.length; for (index = 0; index < length; index++) { adder.call(set, iterable[index]); } } else { throw (e); } } return set; }; // 23.2.2.1. Set.prototype // The initial value of Set.prototype is the intrinsic %SetPrototype% object. // This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Object.defineProperty(Set, 'prototype', { configurable: false, enumerable: false, writable: false, value: {} }); // 23.2.2.2 get Set [ @@species ] Object.defineProperty(Set, Symbol.species, { configurable: true, enumerable: false, get: function () { // 1. Return the this value. return this; }, set: undefined }); // 23.2.3.1. Set.prototype.add ( value ) CreateMethodProperty(Set.prototype, 'add', function add(value) { // 1. Let S be the this value. var S = this; // 2. If Type(S) is not Object, throw a TypeError exception. if (typeof S !== 'object') { throw new TypeError('Method Set.prototype.add called on incompatible receiver ' + Object.prototype.toString.call(S)); } // 3. If S does not have a [[SetData]] internal slot, throw a TypeError exception. if (S._es6Set !== true) { throw new TypeError('Method Set.prototype.add called on incompatible receiver ' + Object.prototype.toString.call(S)); } // 4. Let entries be the List that is S.[[SetData]]. var entries = S._values; // 5. For each e that is an element of entries, do for (var i = 0; i < entries.length; i++) { var e = entries[i]; // a. If e is not empty and SameValueZero(e, value) is true, then if (e !== undefMarker && SameValueZero(e, value)) { // i. Return S. return S; } } // 6. If value is -0, let value be +0. if (value === 0 && 1/value === -Infinity) { value = 0; } // 7. Append value as the last element of entries. S._values.push(value); this._size = ++this._size; // 8. Return S. return S; }); // 23.2.3.2. Set.prototype.clear ( ) CreateMethodProperty(Set.prototype, 'clear', function clear() { // 1. Let S be the this value. var S = this; // 2. If Type(S) is not Object, throw a TypeError exception. if (typeof S !== 'object') { throw new TypeError('Method Set.prototype.clear called on incompatible receiver ' + Object.prototype.toString.call(S)); } // 3. If S does not have a [[SetData]] internal slot, throw a TypeError exception. if (S._es6Set !== true) { throw new TypeError('Method Set.prototype.clear called on incompatible receiver ' + Object.prototype.toString.call(S)); } // 4. Let entries be the List that is S.[[SetData]]. var entries = S._values; // 5. For each e that is an element of entries, do for (var i = 0; i < entries.length; i++) { // a. Replace the element of entries whose value is e with an element whose value is empty. entries[i] = undefMarker; } this._size = 0; // 6. Return undefined. return undefined; }); // 23.2.3.3. Set.prototype.constructor CreateMethodProperty(Set.prototype, 'constructor', Set); // 23.2.3.4. Set.prototype.delete ( value ) CreateMethodProperty(Set.prototype, 'delete', function (value) { // 1. Let S be the this value. var S = this; // 2. If Type(S) is not Object, throw a TypeError exception. if (typeof S !== 'object') { throw new TypeError('Method Set.prototype.delete called on incompatible rece 4000 iver ' + Object.prototype.toString.call(S)); } // 3. If S does not have a [[SetData]] internal slot, throw a TypeError exception. if (S._es6Set !== true) { throw new TypeError('Method Set.prototype.delete called on incompatible receiver ' + Object.prototype.toString.call(S)); } // 4. Let entries be the List that is S.[[SetData]]. var entries = S._values; // 5. For each e that is an element of entries, do for (var i = 0; i < entries.length; i++) { var e = entries[i]; // a. If e is not empty and SameValueZero(e, value) is true, then if (e !== undefMarker && SameValueZero(e, value)) { // i. Replace the element of entries whose value is e with an element whose value is empty. entries[i] = undefMarker; this._size = --this._size; // ii. Return true. return true; } } // 6. Return false. return false; } ); // 23.2.3.5. Set.prototype.entries ( ) CreateMethodProperty(Set.prototype, 'entries', function entries() { // 1. Let S be the this value. var S = this; // 2. Return ? CreateSetIterator(S, "key+value"). return CreateSetIterator(S, 'key+value'); } ); // 23.2.3.6. Set.prototype.forEach ( callbackfn [ , thisArg ] ) CreateMethodProperty(Set.prototype, 'forEach', function forEach(callbackFn /*[ , thisArg ]*/) { // 1. Let S be the this value. var S = this; // 2. If Type(S) is not Object, throw a TypeError exception. if (typeof S !== 'object') { throw new TypeError('Method Set.prototype.forEach called on incompatible receiver ' + Object.prototype.toString.call(S)); } // 3. If S does not have a [[SetData]] internal slot, throw a TypeError exception. if (S._es6Set !== true) { throw new TypeError('Method Set.prototype.forEach called on incompatible receiver ' + Object.prototype.toString.call(S)); } // 4. If IsCallable(callbackfn) is false, throw a TypeError exception. if (!IsCallable(callbackFn)) { throw new TypeError(Object.prototype.toString.call(callbackFn) + ' is not a function.'); } // 5. If thisArg is present, let T be thisArg; else let T be undefined. if (arguments[1]) { var T = arguments[1]; } // 6. Let entries be the List that is S.[[SetData]]. var entries = S._values; // 7. For each e that is an element of entries, in original insertion order, do for (var i = 0; i < entries.length; i++) { var e = entries[i]; // a. If e is not empty, then if (e !== undefMarker) { // i. Perform ? Call(callbackfn, T, « e, e, S »). callbackFn.call(T, e, e, S); } } // 8. Return undefined. return undefined; } ); // 23.2.3.7. Set.prototype.has ( value ) CreateMethodProperty(Set.prototype, 'has', function has(value) { // 1. Let S be the this value. var S = this; // 2. If Type(S) is not Object, throw a TypeError exception. if (typeof S !== 'object') { throw new TypeError('Method Set.prototype.forEach called on incompatible receiver ' + Object.prototype.toString.call(S)); } // 3. If S does not have a [[SetData]] internal slot, throw a TypeError exception. if (S._es6Set !== true) { throw new TypeError('Method Set.prototype.forEach called on incompatible receiver ' + Object.prototype.toString.call(S)); } // 4. Let entries be the List that is S.[[SetData]]. var entries = S._values; // 5. For each e that is an element of entries, do for (var i = 0; i < entries.length; i++) { var e = entries[i]; // a. If e is not empty and SameValueZero(e, value) is true, return true. if (e !== undefMarker && SameValueZero(e, value)) { return true; } } // 6. Return false. return false; } ); // Polyfill.io - We need to define Set.prototype.values before Set.prototype.keys because keys is a reference to values. // 23.2.3.10. Set.prototype.values() var values = function values() { // 1. Let S be the this value. var S = this; // 2. Return ? CreateSetIterator(S, "value"). return CreateSetIterator(S, "value"); }; CreateMethodProperty(Set.prototype, 'values', values); // 23.2.3.8 Set.prototype.keys ( ) // The initial value of the keys property is the same function object as the initial value of the values property. CreateMethodProperty(Set.prototype, 'keys', values); // 23.2.3.9. get Set.prototype.size Object.defineProperty(Set.prototype, 'size', { configurable: true, enumerable: false, get: function () { // 1. Let S be the this value. var S = this; // 2. If Type(S) is not Object, throw a TypeError exception. if (typeof S !== 'object') { throw new TypeError('Method Set.prototype.size called on incompatible receiver ' + Object.prototype.toString.call(S)); } // 3. If S does not have a [[SetData]] internal slot, throw a TypeError exception. if (S._es6Set !== true) { throw new TypeError('Method Set.prototype.size called on incompatible receiver ' + Object.prototype.toString.call(S)); } // 4. Let entries be the List that is S.[[SetData]]. var entries = S._values; // 5. Let count be 0. var count = 0; // 6. For each e that is an element of entries, do for (var i = 0; i < entries.length; i++) { var e = entries[i]; // a. If e is not empty, set count to count+1. if (e !== undefMarker) { count = count + 1; } } // 7. Return count. return count; }, set: undefined }); // 23.2.3.11. Set.prototype [ @@iterator ] ( ) // The initial value of the @@iterator property is the same function object as the initial value of the values property. CreateMethodProperty(Set.prototype, Symbol.iterator, values); // 23.2.3.12. Set.prototype [ @@toStringTag ] // The initial value of the @@toStringTag property is the String value "Set". // This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. Object.defineProperty(Set.prototype, Symbol.toStringTag, { value: 'Set', writable: false, enumerable: false, configurable: true }); // Polyfill.io - Safari 8 implements Set.name but as a non-configurable property, which means it would throw an error if we try and configure it here. if (!('name' in Set)) { // 19.2.4.2 name Object.defineProperty(Set, 'name', { configurable: true, enumerable: false, writable: false, value: 'Set' }); } // 23.2.5.1. CreateSetIterator ( set, kind ) function CreateSetIterator(set, kind) { // 1. If Type(set) is not Object, throw a TypeError exception. if (typeof set !== 'object') { throw new TypeError('createSetIterator called on incompatible receiver ' + Object.prototype.toString.call(set)); } // 2. If set does not have a [[SetData]] internal slot, throw a TypeError exception. if (set._es6Set !== true) { throw new TypeError('createSetIterator called on incompatible receiver ' + Object.prototype.toString.call(set)); } // 3. Let iterator be ObjectCreate(%SetIteratorPrototype%, « [[IteratedSet]], [[SetNextIndex]], [[SetIterationKind]] »). var iterator = Object.create(SetIteratorPrototype); // 4. Set iterator.[[IteratedSet]] to set. Object.defineProperty(iterator, '[[IteratedSet]]', { configurable: true, enumerable: false, writable: true, value: set }); // 5. Set iterator.[[SetNextIndex]] to 0. Object.defineProperty(iterator, '[[SetNextIndex]]', { configurable: true, enumerable: false, writable: true, value: 0 }); // 6. Set iterator.[[SetIterationKind]] to kind. Object.defineProperty(iterator, '[[SetIterationKind]]', { configurable: true, enumerable: false, writable: true, value: kind }); // 7. Return iterator. return iterator; } // 23.2.5.2. The %SetIteratorPrototype% Object var SetIteratorPrototype = {}; //Polyfill.io - We add this property to help us identify what is a set iterator. Object.defineProperty(SetIteratorPrototype, 'isSetIterator', { configurable: false, enumerable: false, writable: false, value: true }); // 23.2.5.2.1. %SetIteratorPrototype%.next ( ) CreateMethodProperty(SetIteratorPrototype, 'next', function next() { // 1. Let O be the this value. var O = this; // 2. If Type(O) is not Object, throw a TypeError exception. if (typeof O !== 'object') { throw new TypeError('Method %SetIteratorPrototype%.next called on incompatible receiver ' + Object.prototype.toString.call(O)); } // 3. If O does not have all of the internal slots of a Set Iterator Instance (23.2.5.3), throw a TypeError exception. if (!O.isSetIterator) { throw new TypeError('Method %SetIteratorPrototype%.next called on incompatible receiver ' + Object.prototype.toString.call(O)); } // 4. Let s be O.[[IteratedSet]]. var s = O['[[IteratedSet]]']; // 5. Let index be O.[[SetNextIndex]]. var index = O['[[SetNextIndex]]']; // 6. Let itemKind be O.[[SetIterationKind]]. var itemKind = O['[[SetIterationKind]]']; // 7. If s is undefined, return CreateIterResultObject(undefined, true). if (s === undefined) { return CreateIterResultObject(undefined, true); } // 8. Assert: s has a [[SetData]] internal slot. if (!s._es6Set) { throw new Error(Object.prototype.toString.call(s) + ' does not have [[SetData]] internal slot.'); } // 9. Let entries be the List that is s.[[SetData]]. var entries = s._values; // 10. Let numEntries be the number of elements of entries. var numEntries = entries.length; // 11. NOTE: numEntries must be redetermined each time this method is evaluated. // 12. Repeat, while index is less than numEntries, while (index < numEntries) { // a. Let e be entries[index]. var e = entries[index]; // b. Set index to index+1. index = index + 1; // c. Set O.[[SetNextIndex]] to index. O['[[SetNextIndex]]'] = index; // d. If e is not empty, then if (e !== undefMarker) { // i. If itemKind is "key+value", then if (itemKind === 'key+value') { // 1. Return CreateIterResultObject(CreateArrayFromList(« e, e »), false). return CreateIterResultObject([e, e], false); } // ii. Return CreateIterResultObject(e, false). return CreateIterResultObject(e, false); } } // 13. Set O.[[IteratedSet]] to undefined. O['[[IteratedSet]]'] = undefined; // 14. Return CreateIterResultObject(undefined, true). return CreateIterResultObject(undefined, true); }); // 23.2.5.2.2. %SetIteratorPrototype% [ @@toStringTag ] // The initial value of the @@toStringTag property is the String value "Set Iterator". // This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. Object.defineProperty(SetIteratorPrototype, Symbol.toStringTag, { value: 'Set Iterator', writable: false, enumerable: false, configurable: true }); CreateMethodProperty(SetIteratorPrototype, Symbol.iterator, function iterator() { return this; } ); // Export the object CreateMethodProperty(global, 'Set', Set); }(self)); } if (!("from"in Array&&function(){try{return Array.from({length:-1/0}),"a"===Array.from(new self.Set(["a"]))[0]&&"a"===Array.from(new self.Map([["a","one"]]))[0][0]}catch(r){return!1}}() )) { // Array.from /* globals IsCallable, GetMethod, Symbol, IsConstructor, Construct, ArrayCreate, GetIterator, IteratorClose, ToString, IteratorStep, IteratorValue, Call, CreateDataPropertyOrThrow, ToObject, ToLength, Get, CreateMethodProperty */ (function () { var toString = Object.prototype.toString; var stringMatch = String.prototype.match; // A cross-realm friendly way to detect if a value is a String object or literal. function isString(value) { if (typeof value === 'string') { return true; } if (typeof value !== 'object') { return false; } return toString.call(value) === '[object String]'; } // 22.1.2.1. Array.from ( items [ , mapfn [ , thisArg ] ] ) CreateMethodProperty(Array, 'from', function from(items /* [ , mapfn [ , thisArg ] ] */) { // eslint-disable-line no-undef // 1. Let C be the this value. var C = this; // 2. If mapfn is undefined, let mapping be false. var mapfn = arguments.length > 1 ? arguments[1] : undefined; if (mapfn === undefined) { var mapping = false; // 3. Else, } else { // a. If IsCallable(mapfn) is false, throw a TypeError exception. if (IsCallable(mapfn) === false) { throw new TypeError(Object.prototype.toString.call(mapfn) + ' is not a function.'); } // b. If thisArg is present, let T be thisArg; else let T be undefined. var thisArg = arguments.length > 2 ? arguments[2] : undefined; if (thisArg !== undefined) { var T = thisArg; } else { T = undefined; } // c. Let mapping be true. mapping = true; } // 4. Let usingIterator be ? GetMethod(items, @@iterator). var usingIterator = GetMethod(items, Symbol.iterator); // 5. If usingIterator is not undefined, then if (usingIterator !== undefined) { // a. If IsConstructor(C) is true, then if (IsConstructor(C)) { // i. Let A be ? Construct(C). var A = Construct(C); // b. Else, } else { // i. Let A be ! ArrayCreate(0). A = ArrayCreate(0); } // c. Let iteratorRecord be ? GetIterator(items, usingIterator). var iteratorRecord = GetIterator(items, usingIterator); // d. Let k be 0. var k = 0; // e. Repeat, // eslint-disable-next-line no-constant-condition while (true) { // i. If k ≥ 2^53-1, then if (k >= (Math.pow(2, 53) - 1)) { // 1. Let error be Completion{[[Type]]: throw, [[Value]]: a newly created TypeError object, [[Target]]: empty}. var error = new TypeError('Iteration count can not be greater than or equal 9007199254740991.'); // 2. Return ? IteratorClose(iteratorRecord, error). return IteratorClose(iteratorRecord, error); } // ii. Let Pk be ! ToString(k). var Pk = ToString(k); // iii. Let next be ? IteratorStep(iteratorRecord). var next = IteratorStep(iteratorRecord); // iv. If next is false, then if (next === false) { // 1. Perform ? Set(A, "length", k, true). A.length = k; // 2. Return A. return A; } // v. Let nextValue be ? IteratorValue(next). var nextValue = IteratorValue(next); // vi. If mapping is true, then if (mapping) { try { // Polyfill.io - The try catch accounts for step 2. // 1. Let mappedValue be Call(mapfn, T, « nextValue, k »). var mappedValue = Call(mapfn, T, [nextValue, k]); // 2. If mappedValue is an abrupt completion, return ? IteratorClose(iteratorRecord, mappedValue). // 3. Let mappedValue be mappedValue.[[Value]]. } catch (e) { return IteratorClose(iteratorRecord, e); } // vii. Else, let mappedValue be nextValue. } else { mappedValue = nextValue; } try { // Polyfill.io - The try catch accounts for step ix. // viii. Let defineStatus be CreateDataPropertyOrThrow(A, Pk, mappedValue). CreateDataPropertyOrThrow(A, Pk, mappedValue); // ix. If defineStatus is an abrupt completion, return ? IteratorClose(iteratorRecord, defineStatus). } catch (e) { return IteratorClose(iteratorRecord, e); } // x. Increase k by 1. k = k + 1; } } // 6. NOTE: items is not an Iterable so assume it is an array-like object. // 7. Let arrayLike be ! ToObject(items). // Polyfill.io - For Strings we need to split astral symbols into surrogate pairs. if (isString(items)) { var arrayLike = stringMatch.call(items, /[\uD800-\uDBFF][\uDC00-\uDFFF]?|[^\uD800-\uDFFF]|./g) || []; } else { arrayLike = ToObject(items); } // 8. Let len be ? ToLength(? Get(arrayLike, "length")). var len = ToLength(Get(arrayLike, "length")); // 9. If IsConstructor(C) is true, then if (IsConstructor(C)) { // a. Let A be ? Construct(C, « len »). A = Construct(C, [len]); // 10. Else, } else { // a. Let A be ? ArrayCreate(len). A = ArrayCreate(len); } // 11. Let k be 0. k = 0; // 12. Repeat, while k < len while (k < len) { // a. Let Pk be ! ToString(k). Pk = ToString(k); // b. Let kValue be ? Get(arrayLike, Pk). var kValue = Get(arrayLike, Pk); // c. If mapping is true, then if (mapping === true) { // i. Let mappedValue be ? Call(mapfn, T, « kValue, k »). mappedValue = Call(mapfn, T, [kValue, k]); // d. Else, let mappedValue be kValue. } else { mappedValue = kValue; } // e. Perform ? 3ce7 CreateDataPropertyOrThrow(A, Pk, mappedValue). CreateDataPropertyOrThrow(A, Pk, mappedValue); // f. Increase k by 1. k = k + 1; } // 13. Perform ? Set(A, "length", len, true). A.length = len; // 14. Return A. return A; }); }()); } if (!("Symbol"in self&&"iterator"in self.Symbol&&!!String.prototype[self.Symbol.iterator] )) { // String.prototype.@@iterator /* global CreateMethodProperty, RequireObjectCoercible, ToString, StringIterator, Symbol */ // 21.1.3.29. String.prototype [ @@iterator ] ( ) CreateMethodProperty(String.prototype, Symbol.iterator, function () { // 1. Let O be ? RequireObjectCoercible(this value). var O = RequireObjectCoercible(this); // 2. Let S be ? ToString(O). var S = ToString(O); // 3. Return CreateStringIterator(S). // TODO: Add CreateStringIterator. return new StringIterator(S); }); } if (!("Symbol"in self&&"unscopables"in self.Symbol )) { // Symbol.unscopables /* global Symbol */ Object.defineProperty(Symbol, 'unscopables', { value: Symbol('unscopables') }); } if (!("Symbol"in self&&"toStringTag"in self.Symbol&&"Int8Array"in self&&Object.getOwnPropertyDescriptor("__proto__"in self.Int8Array.prototype&&self.Int8Array.prototype.__proto__!==Object.prototype&&self.Int8Array.prototype.__proto__||self.Int8Array.prototype,self.Symbol.toStringTag) )) { // TypedArray.prototype.@@toStringTag /* global Symbol, Type */ // 23.2.3.33 get %TypedArray%.prototype [ @@toStringTag ] (function () { var supportsDefiningFunctionName = (function () { var fn = function () {}; try { Object.defineProperty(fn, 'name', { value: 'test' }); return true; } catch (ignore) { return false; } })(); function _get() { // 1. Let O be the this value. var O = this; // 2. If Type(O) is not Object, return undefined. if (Type(O) !== 'object') { return undefined; } // 3. If O does not have a [[TypedArrayName]] internal slot, return undefined. if (!('_name' in O)) { return undefined; } // 4. Let name be O.[[TypedArrayName]]. var name = O._name; // 5. Assert: Type(name) is String. if (Type(name) !== 'string') { throw TypeError(); } // 6. Return name. return name; } if (supportsDefiningFunctionName) { Object.defineProperty(_get, 'name', { value: 'get [Symbol.toStringTag]', writable: false, enumerable: false, configurable: true }); } function defineToStringTag(proto) { Object.defineProperty(proto, Symbol.toStringTag, { get: _get, enumerable: false, configurable: true }); } function defineNameInternalSlot(proto, name) { Object.defineProperty(proto, '_name', { value: name, writable: false, enumerable: false, configurable: false }); } defineNameInternalSlot(self.Int8Array.prototype, 'Int8Array'); defineNameInternalSlot(self.Uint8Array.prototype, 'Uint8Array'); defineNameInternalSlot(self.Uint8ClampedArray.prototype, 'Uint8ClampedArray'); defineNameInternalSlot(self.Int16Array.prototype, 'Int16Array'); defineNameInternalSlot(self.Uint16Array.prototype, 'Uint16Array'); defineNameInternalSlot(self.Int32Array.prototype, 'Int32Array'); defineNameInternalSlot(self.Uint32Array.prototype, 'Uint32Array'); defineNameInternalSlot(self.Float32Array.prototype, 'Float32Array'); defineNameInternalSlot(self.Float64Array.prototype, 'Float64Array'); // IE11, and potentially other browsers, have `Int8Array.prototype` inherit directly from `Object.prototype` // in that case, don't define it on the parent; define it directly on the prototype if ('__proto__' in self.Int8Array.prototype && self.Int8Array.prototype.__proto__ !== Object.prototype) { // set this on the underlying "TypedArrayPrototype", which is shared with all "TypedArray" subclasses defineToStringTag(self.Int8Array.prototype.__proto__); } else { defineToStringTag(self.Int8Array.prototype); defineToStringTag(self.Uint8Array.prototype); defineToStringTag(self.Uint8ClampedArray.prototype); defineToStringTag(self.Int16Array.prototype); defineToStringTag(self.Uint16Array.prototype); defineToStringTag(self.Int32Array.prototype); defineToStringTag(self.Uint32Array.prototype); defineToStringTag(self.Float32Array.prototype); defineToStringTag(self.Float64Array.prototype); } })(); } if (!("Int8Array"in self&&"at"in self.Int8Array.prototype )) { // TypedArray.prototype.at /* global CreateMethodProperty, Get, ToIntegerOrInfinity, ToString */ // 23.2.3.1. %TypedArray%.prototype.at ( index ) (function () { function at(index) { // 1. Let O be the this value. var O = this; // 2. Perform ? ValidateTypedArray(O). // TODO: Add ValidateTypedArray // 3. Let len be O.[[ArrayLength]]. var len = O.length; // 4. Let relativeIndex be ? ToIntegerOrInfinity(index). var relativeIndex = ToIntegerOrInfinity(index); // 5. If relativeIndex ≥ 0, then // 5.a. Let k be relativeIndex. // 6. Else, // 6.a. Let k be len + relativeIndex. var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; // 7. If k < 0 or k ≥ len, return undefined. if (k < 0 || k >= len) return undefined; // 8. Return ! Get(O, ! ToString(𝔽(k))). return Get(O, ToString(k)); } // in IE11, `Int8Array.prototype` inherits directly from `Object.prototype` // in that case, don't define it on the parent; define it directly on the prototype if ('__proto__' in self.Int8Array.prototype && self.Int8Array.prototype.__proto__ !== Object.prototype) { // set this on the underlying "TypedArrayPrototype", which is shared with all "TypedArray" subclasses CreateMethodProperty(self.Int8Array.prototype.__proto__, 'at', at); } else { CreateMethodProperty(self.Int8Array.prototype, 'at', at); CreateMethodProperty(self.Uint8Array.prototype, 'at', at); CreateMethodProperty(self.Uint8ClampedArray.prototype, 'at', at); CreateMethodProperty(self.Int16Array.prototype, 'at', at); CreateMethodProperty(self.Uint16Array.prototype, 'at', at); CreateMethodProperty(self.Int32Array.prototype, 'at', at); CreateMethodProperty(self.Uint32Array.prototype, 'at', at); CreateMethodProperty(self.Float32Array.prototype, 'at', at); CreateMethodProperty(self.Float64Array.prototype, 'at', at); } })(); } if (!("Int8Array"in self&&"entries"in self.Int8Array.prototype )) { // TypedArray.prototype.entries /* global CreateMethodProperty, ArrayIterator */ // 23.2.3.7 %TypedArray%.prototype.entries ( ) (function () { function entries() { // 1. Let O be the this value. var O = this; // 2. Perform ? ValidateTypedArray(O). // TODO: Add ValidateTypedArray // 3. Return CreateArrayIterator(O, key). // TODO: Add CreateArrayIterator return new ArrayIterator(O, 'key+value'); } // use "Int8Array" as a proxy for support of "TypedArray" subclasses var fnName = 'entries' // in IE11, `Int8Array.prototype` inherits directly from `Object.prototype` // in that case, don't define it on the parent; define it directly on the prototype if ('__proto__' in self.Int8Array.prototype && self.Int8Array.prototype.__proto__ !== Object.prototype) { // set this on the underlying "TypedArrayPrototype", which is shared with all "TypedArray" subclasses CreateMethodProperty(self.Int8Array.prototype.__proto__, fnName, entries); } else { CreateMethodProperty(self.Int8Array.prototype, fnName, entries); CreateMethodProperty(self.Uint8Array.prototype, fnName, entries); CreateMethodProperty(self.Uint8ClampedArray.prototype, fnName, entries); CreateMethodProperty(self.Int16Array.prototype, fnName, entries); CreateMethodProperty(self.Uint16Array.prototype, fnName, entries); CreateMethodProperty(self.Int32Array.prototype, fnName, entries); CreateMethodProperty(self.Uint32Array.prototype, fnName, entries); CreateMethodProperty(self.Float32Array.prototype, fnName, entries); CreateMethodProperty(self.Float64Array.prototype, fnName, entries); } })(); } if (!("Int8Array"in self&&"findLast"in self.Int8Array.prototype )) { // TypedArray.prototype.findLast /* global Call, CreateMethodProperty, Get, IsCallable, ToBoolean, ToString */ // 23.2.3.13 %TypedArray%.prototype.findLast ( predicate [ , thisArg ] ) (function () { function findLast(predicate /*[ , thisArg ]*/) { // 1. Let O be the this value. var O = this; // 2. Perform ? ValidateTypedArray(O). // TODO: Add ValidateTypedArray // 3. Let len be O.[[ArrayLength]]. var len = O.length; // 4. If IsCallable(predicate) is false, throw a TypeError exception. if (!IsCallable(predicate)) throw TypeError(); // 5. Let k be len - 1. var k = len - 1; // 6. Repeat, while k ≥ 0, while (k >= 0) { // a. Let Pk be ! ToString(𝔽(k)). var Pk = ToString(k); // b. Let kValue be ! Get(O, Pk). var kValue = Get(O, Pk); // c. Let testResult be ToBoolean(? Call(predicate, thisArg, « kValue, 𝔽(k), O »)). var testResult = ToBoolean(Call(predicate, arguments.length > 1 ? arguments[1] : undefined, [kValue, k, O])) // d. If testResult is true, return kValue. if (testResult) { return kValue; } // e. Set k to k - 1. k = k - 1; } // 7. Return undefined. return undefined; } var fnName = 'findLast' // in IE11, `Int8Array.prototype` inherits directly from `Object.prototype` // in that case, don't define it on the parent; define it directly on the prototype if ('__proto__' in self.Int8Array.prototype && self.Int8Array.prototype.__proto__ !== Object.prototype) { // set this on the underlying "TypedArrayPrototype", which is shared with all "TypedArray" subclasses CreateMethodProperty(self.Int8Array.prototype.__proto__, fnName, findLast); } else { CreateMethodProperty(self.Int8Array.prototype, fnName, findLast); CreateMethodProperty(self.Uint8Array.prototype, fnName, findLast); CreateMethodProperty(self.Uint8ClampedArray.prototype, fnName, findLast); CreateMethodProperty(self.Int16Array.prototype, fnName, findLast); CreateMethodProperty(self.Uint16Array.prototype, fnName, findLast); CreateMethodProperty(self.Int32Array.prototype, fnName, findLast); CreateMethodProperty(self.Uint32Array.prototype, fnName, findLast); CreateMethodProperty(self.Float32Array.prototype, fnName, findLast); CreateMethodProperty(self.Float64Array.prototype, fnName, findLast); } })(); } if (!("Int8Array"in self&&"findLastIndex"in self.Int8Array.prototype )) { // TypedArray.prototype.findLastIndex /* global Call, CreateMethodProperty, Get, IsCallable, ToBoolean, ToString */ // 23.2.3.14 %TypedArray%.prototype.findLastIndex ( predicate [ , thisArg ] ) (function () { function findLastIndex(predicate /*[ , thisArg ]*/) { // 1. Let O be the this value. var O = this; // 2. Perform ? ValidateTypedArray(O). // TODO: Add ValidateTypedArray // 3. Let len be O.[[ArrayLength]]. var len = O.length; // 4. If IsCallable(predicate) is false, throw a TypeError exception. if (!IsCallable(predicate)) throw TypeError(); // 5. Let k be len - 1. var k = len - 1; // 6. Repeat, while k ≥ 0, while (k >= 0) { // a. Let Pk be ! ToString(𝔽(k)). var Pk = ToString(k); // b. Let kValue be ! Get(O, Pk). var kValue = Get(O, Pk); // c. Let testResult be ToBoolean(? Call(predicate, thisArg, « kValue, 𝔽(k), O »)). var testResult = ToBoolean(Call(predicate, arguments.length > 1 ? arguments[1] : undefined, [kValue, k, O])) // d. If testResult is true, return 𝔽(k). if (testResult) { return k; } // e. Set k to k - 1. k = k - 1; } // 7. Return -1𝔽. return -1; } var fnName = 'findLastIndex' // in IE11, `Int8Array.prototype` inherits directly from `Object.prototype` // in that case, don't define it on the parent; define it directly on the prototype if ('__proto__' in self.Int8Array.prototype && self.Int8Array.prototype.__proto__ !== Object.prototype) { // set this on the underlying "TypedArrayPrototype", which is shared with all "TypedArray" subclasses CreateMethodProperty(self.Int8Array.prototype.__proto__, fnName, findLastIndex); } else { CreateMethodProperty(self.Int8Array.prototype, fnName, findLastIndex); CreateMethodProperty(self.Uint8Array.prototype, fnName, findLastIndex); CreateMethodProperty(self.Uint8ClampedArray.prototype, fnName, findLastIndex); CreateMethodProperty(self.Int16Array.prototype, fnName, findLastIndex); CreateMethodProperty(self.Uint16Array.prototype, fnName, findLastIndex); CreateMethodProperty(self.Int32Array.prototype, fnName, findLastIndex); CreateMethodProperty(self.Uint32Array.prototype, fnName, findLastIndex); CreateMethodProperty(self.Float32Array.prototype, fnName, findLastIndex); CreateMethodProperty(self.Float64Array.prototype, fnName, findLastIndex); } })(); } if (!("Int8Array"in self&&"keys"in self.Int8Array.prototype )) { // TypedArray.prototype.keys /* global CreateMethodProperty, ArrayIterator */ // 23.2.3.19 %TypedArray%.prototype.keys ( ) (function () { function keys() { // 1. Let O be the this value. var O = this; // 2. Perform ? ValidateTypedArray(O). // TODO: Add ValidateTypedArray // 3. Return CreateArrayIterator(O, key). // TODO: Add CreateArrayIterator return new ArrayIterator(O, 'key'); } // use "Int8Array" as a proxy for support of "TypedArray" subclasses var fnName = 'keys' // in IE11, `Int8Array.prototype` inherits directly from `Object.prototype` // in that case, don't define it on the parent; define it directly on the prototype if ('__proto__' in self.Int8Array.prototype && self.Int8Array.prototype.__proto__ !== Object.prototype) { // set this on the underlying "TypedArrayPrototype", which is shared with all "TypedArray" subclasses CreateMethodProperty(self.Int8Array.prototype.__proto__, fnName, keys); } else { CreateMethodProperty(self.Int8Array.prototype, fnName, keys); CreateMethodProperty(self.Uint8Array.prototype, fnName, keys); CreateMethodProperty(self.Uint8ClampedArray.prototype, fnName, keys); CreateMethodProperty(self.Int16Array.prototype, fnName, keys); CreateMethodProperty(self.Uint16Array.prototype, fnName, keys); CreateMethodProperty(self.Int32Array.prototype, fnName, keys); CreateMethodProperty(self.Uint32Array.prototype, fnName, keys); CreateMethodProperty(self.Float32Array.prototype, fnName, keys); CreateMethodProperty(self.Float64Array.prototype, fnName, keys); } })(); } if (!("Int8Array"in self&&"sort"in self.Int8Array.prototype )) { // TypedArray.prototype.sort /* global CreateMethodProperty, IsCallable */ // 23.2.3.29 %TypedArray%.prototype.sort ( comparefn ) (function () { function sort(comparefn) { // 1. If comparefn is not undefined and IsCallable(comparefn) is false, throw a TypeError exception. if (comparefn !== undefined && IsCallable(comparefn) === false) { throw new TypeError( "The comparison function must be either a function or undefined" ); } // 2. Let obj be the this value. var obj = this; // 3. Perform ? ValidateTypedArray(obj). // TODO: Add ValidateTypedArray // 4. Let len be obj.[[ArrayLength]]. var len = obj.length; // Polyfill.io - This is based on https://github.com/inexorabletash/polyfill/blob/716a3f36ca10fad032083014faf1a47c638e2502/typedarray.js#L848-L858 // 5. NOTE: The following closure performs a numeric comparison rather than the string comparison used in 23.1.3.30. // 6. Let SortCompare be a new Abstract Closure with parameters (x, y) that captures comparefn and performs the following steps when called: // a. Return ? CompareTypedArrayElements(x, y, comparefn). function sortCompare(x, y) { if (x !== x && y !== y) return +0; if (x !== x) return 1; if (y !== y) re 4000 turn -1; if (comparefn !== undefined) { return comparefn(x, y); } if (x < y) return -1; if (x > y) return 1; return +0; } // 7. Let sortedList be ? SortIndexedProperties(obj, len, SortCompare, read-through-holes). var sortedList = Array(len); for (var i = 0; i < len; i++) sortedList[i] = obj[i]; sortedList.sort(sortCompare); // 8. Let j be 0. var j = 0; // 9. Repeat, while j < len, while (j < len) { // a. Perform ! Set(obj, ! ToString(𝔽(j)), sortedList[j], true). obj[j] = sortedList[j]; // b. Set j to j + 1. j = j + 1; } // 10. Return obj. return obj; } // in IE11, `Int8Array.prototype` inherits directly from `Object.prototype` // in that case, don't define it on the parent; define it directly on the prototype if ('__proto__' in self.Int8Array.prototype && self.Int8Array.prototype.__proto__ !== Object.prototype) { // set this on the underlying "TypedArrayPrototype", which is shared with all "TypedArray" subclasses CreateMethodProperty(self.Int8Array.prototype.__proto__, 'sort', sort); } else { CreateMethodProperty(self.Int8Array.prototype, 'sort', sort); CreateMethodProperty(self.Uint8Array.prototype, 'sort', sort); CreateMethodProperty(self.Uint8ClampedArray.prototype, 'sort', sort); CreateMethodProperty(self.Int16Array.prototype, 'sort', sort); CreateMethodProperty(self.Uint16Array.prototype, 'sort', sort); CreateMethodProperty(self.Int32Array.prototype, 'sort', sort); CreateMethodProperty(self.Uint32Array.prototype, 'sort', sort); CreateMethodProperty(self.Float32Array.prototype, 'sort', sort); CreateMethodProperty(self.Float64Array.prototype, 'sort', sort); } })(); } if (!("Int8Array"in self&&"toReversed"in self.Int8Array.prototype )) { // TypedArray.prototype.toReversed /* global CreateMethodProperty, Get, ToString, TypedArrayCreateSameType */ // 23.2.3.32 %TypedArray%.prototype.toReversed ( ) (function () { function toReversed() { // 1. Let O be the this value. var O = this; // 2. Perform ? ValidateTypedArray(O). // TODO: Add ValidateTypedArray // 3. Let length be O.[[ArrayLength]]. var length = O.length; // 4. Let A be ? TypedArrayCreateSameType(O, « 𝔽(length) »). var A = TypedArrayCreateSameType(O, [ length ]); // 5. Let k be 0. var k = 0; // 6. Repeat, while k < length, while (k < length) { // a. Let from be ! ToString(𝔽(length - k - 1)). var from = ToString(length - k - 1); // b. Let Pk be ! ToString(𝔽(k)). var Pk = ToString(k); // c. Let fromValue be ! Get(O, from). var fromValue = Get(O, from); // d. Perform ! Set(A, Pk, fromValue, true). A[Pk] = fromValue; // e. Set k to k + 1. k = k + 1; } // 7. Return A. return A; } // in IE11, `Int8Array.prototype` inherits directly from `Object.prototype` // in that case, don't define it on the parent; define it directly on the prototype if ('__proto__' in self.Int8Array.prototype && self.Int8Array.prototype.__proto__ !== Object.prototype) { // set this on the underlying "TypedArrayPrototype", which is shared with all "TypedArray" subclasses CreateMethodProperty(self.Int8Array.prototype.__proto__, 'toReversed', toReversed); } else { CreateMethodProperty(self.Int8Array.prototype, 'toReversed', toReversed); CreateMethodProperty(self.Uint8Array.prototype, 'toReversed', toReversed); CreateMethodProperty(self.Uint8ClampedArray.prototype, 'toReversed', toReversed); CreateMethodProperty(self.Int16Array.prototype, 'toReversed', toReversed); CreateMethodProperty(self.Uint16Array.prototype, 'toReversed', toReversed); CreateMethodProperty(self.Int32Array.prototype, 'toReversed', toReversed); CreateMethodProperty(self.Uint32Array.prototype, 'toReversed', toReversed); CreateMethodProperty(self.Float32Array.prototype, 'toReversed', toReversed); CreateMethodProperty(self.Float64Array.prototype, 'toReversed', toReversed); } })(); } if (!("Int8Array"in self&&"toSorted"in self.Int8Array.prototype )) { // TypedArray.prototype.toSorted /* global CreateMethodProperty, IsCallable, TypedArrayCreateSameType */ // 23.2.3.33 %TypedArray%.prototype.toSorted ( comparefn ) (function () { function toSorted(comparefn) { // 1. If comparefn is not undefined and IsCallable(comparefn) is false, throw a TypeError exception. if (comparefn !== undefined && IsCallable(comparefn) === false) { throw new TypeError( "The comparison function must be either a function or undefined" ); } // 2. Let O be the this value. var O = this; // 3. Perform ? ValidateTypedArray(O). // TODO: Add ValidateTypedArray // 4. Let len be O.[[ArrayLength]]. var len = O.length; // 5. Let A be ? TypedArrayCreateSameType(O, « 𝔽(len) »). var A = TypedArrayCreateSameType(O, [ len ]); // 9. Let j be 0. var j = 0; // 10. Repeat, while j < len, while (j < len) { // a. Perform ! Set(A, ! ToString(𝔽(j)), sortedList[j], true). A[j] = O[j]; // b. Set j to j + 1. j = j + 1; } // Polyfill.io - These steps are handled by native `%TypedArray%.prototype.sort`, below // 6. NOTE: The following closure performs a numeric comparison rather than the string comparison used in 23.1.3.34. // 7. Let SortCompare be a new Abstract Closure with parameters (x, y) that captures comparefn and performs the following steps when called: // a. Return ? CompareTypedArrayElements(x, y, comparefn). // 8. Let sortedList be ? SortIndexedProperties(O, len, SortCompare, read-through-holes). comparefn !== undefined ? A.sort(comparefn) : A.sort(); // 11. Return A. return A; } // in IE11, `Int8Array.prototype` inherits directly from `Object.prototype` // in that case, don't define it on the parent; define it directly on the prototype if ('__proto__' in self.Int8Array.prototype && self.Int8Array.prototype.__proto__ !== Object.prototype) { // set this on the underlying "TypedArrayPrototype", which is shared with all "TypedArray" subclasses CreateMethodProperty(self.Int8Array.prototype.__proto__, 'toSorted', toSorted); } else { CreateMethodProperty(self.Int8Array.prototype, 'toSorted', toSorted); CreateMethodProperty(self.Uint8Array.prototype, 'toSorted', toSorted); CreateMethodProperty(self.Uint8ClampedArray.prototype, 'toSorted', toSorted); CreateMethodProperty(self.Int16Array.prototype, 'toSorted', toSorted); CreateMethodProperty(self.Uint16Array.prototype, 'toSorted', toSorted); CreateMethodProperty(self.Int32Array.prototype, 'toSorted', toSorted); CreateMethodProperty(self.Uint32Array.prototype, 'toSorted', toSorted); CreateMethodProperty(self.Float32Array.prototype, 'toSorted', toSorted); CreateMethodProperty(self.Float64Array.prototype, 'toSorted', toSorted); } })(); } if (!("Int8Array"in self&&"toString"in self.Int8Array.prototype )) { // TypedArray.prototype.toString /* global CreateMethodProperty */ // 23.2.3.32 %TypedArray%.prototype.toString ( ) // The initial value of the "toString" property is %Array.prototype.toString% // use "Int8Array" as a proxy for all "TypedArray" subclasses (function () { var fnName = 'toString' var fn = Array.prototype.toString // in IE11, `Int8Array.prototype` inherits directly from `Object.prototype` // in that case, don't define it on the parent; define it directly on the prototype if ('__proto__' in self.Int8Array.prototype && self.Int8Array.prototype.__proto__ !== Object.prototype) { // set this on the underlying "TypedArrayPrototype", which is shared with all "TypedArray" subclasses CreateMethodProperty(self.Int8Array.prototype.__proto__, fnName, fn); } else { CreateMethodProperty(self.Int8Array.prototype, fnName, fn); CreateMethodProperty(self.Uint8Array.prototype, fnName, fn); CreateMethodProperty(self.Uint8ClampedArray.prototype, fnName, fn); CreateMethodProperty(self.Int16Array.prototype, fnName, fn); CreateMethodProperty(self.Uint16Array.prototype, fnName, fn); CreateMethodProperty(self.Int32Array.prototype, fnName, fn); CreateMethodProperty(self.Uint32Array.prototype, fnName, fn); CreateMethodProperty(self.Float32Array.prototype, fnName, fn); CreateMethodProperty(self.Float64Array.prototype, fnName, fn); } })(); } if (!("Int8Array"in self&&"values"in self.Int8Array.prototype )) { // TypedArray.prototype.values /* global CreateMethodProperty, Symbol, ArrayIterator */ // 23.2.3.33 %TypedArray%.prototype.values ( ) (function () { // use "Int8Array" as a proxy for support of "TypedArray" subclasses function createMethodProperties (fn) { var fnName = 'values' // in IE11, `Int8Array.prototype` inherits directly from `Object.prototype` // in that case, don't define it on the parent; define it directly on the prototype if ('__proto__' in self.Int8Array.prototype && self.Int8Array.prototype.__proto__ !== Object.prototype) { // set this on the underlying "TypedArrayPrototype", which is shared with all "TypedArray" subclasses CreateMethodProperty(self.Int8Array.prototype.__proto__, fnName, fn); } else { CreateMethodProperty(self.Int8Array.prototype, fnName, fn); CreateMethodProperty(self.Uint8Array.prototype, fnName, fn); CreateMethodProperty(self.Uint8ClampedArray.prototype, fnName, fn); CreateMethodProperty(self.Int16Array.prototype, fnName, fn); CreateMethodProperty(self.Uint16Array.prototype, fnName, fn); CreateMethodProperty(self.Int32Array.prototype, fnName, fn); CreateMethodProperty(self.Uint32Array.prototype, fnName, fn); CreateMethodProperty(self.Float32Array.prototype, fnName, fn); CreateMethodProperty(self.Float64Array.prototype, fnName, fn); } } // Polyfill.io - Firefox, Chrome and Opera have %TypedArray%.prototype[Symbol.iterator], which is the exact same function as %TypedArray%.prototype.values. if ('Symbol' in self && 'iterator' in Symbol && typeof self.Int8Array.prototype[Symbol.iterator] === 'function') { createMethodProperties(self.Int8Array.prototype[Symbol.iterator]) } else { createMethodProperties(function values () { // 1. Let O be the this value. var O = this; // 2. Perform ? ValidateTypedArray(O). // TODO: Add ValidateTypedArray // 3. Return CreateArrayIterator(O, value). // TODO: Add CreateArrayIterator return new ArrayIterator(O, 'value'); }); } })(); } if (!("Symbol"in self&&"iterator"in self.Symbol&&"Int8Array"in self&&self.Symbol.iterator in self.Int8Array.prototype )) { // TypedArray.prototype.@@iterator /* global Symbol, CreateMethodProperty */ // 23.2.3.34 %TypedArray%.prototype [ @@iterator ] ( ) // The initial value of the @@iterator property is %TypedArray.prototype.values% // in IE11, `Int8Array.prototype` inherits directly from `Object.prototype` // in that case, don't define it on the parent; define it directly on the prototype if ('__proto__' in self.Int8Array.prototype && self.Int8Array.prototype.__proto__ !== Object.prototype) { // set this on the underlying "TypedArrayPrototype", which is shared with all "TypedArray" subclasses CreateMethodProperty(self.Int8Array.prototype.__proto__, Symbol.iterator, self.Int8Array.prototype.__proto__.values); } else { CreateMethodProperty(self.Int8Array.prototype, Symbol.iterator, self.Int8Array.prototype.values); CreateMethodProperty(self.Uint8Array.prototype, Symbol.iterator, self.Uint8Array.prototype.values); CreateMethodProperty(self.Uint8ClampedArray.prototype, Symbol.iterator, self.Uint8ClampedArray.prototype.values); CreateMethodProperty(self.Int16Array.prototype, Symbol.iterator, self.Int16Array.prototype.values); CreateMethodProperty(self.Uint16Array.prototype, Symbol.iterator, self.Uint16Array.prototype.values); CreateMethodProperty(self.Int32Array.prototype, Symbol.iterator, self.Int32Array.prototype.values); CreateMethodProperty(self.Uint32Array.prototype, Symbol.iterator, self.Uint32Array.prototype.values); CreateMethodProperty(self.Float32Array.prototype, Symbol.iterator, self.Float32Array.prototype.values); CreateMethodProperty(self.Float64Array.prototype, Symbol.iterator, self.Float64Array.prototype.values); } } if (!("Int8Array"in self&&"with"in self.Int8Array.prototype )) { // TypedArray.prototype.with /* global CreateMethodProperty, Get, IsValidIntegerIndex, ToIntegerOrInfinity, ToNumber, ToString, TypedArrayCreateSameType */ // 23.2.3.36 %TypedArray%.prototype.with ( index, value ) (function () { function With(index, value) { // 1. Let O be the this value. var O = this; // 2. Perform ? ValidateTypedArray(O). // TODO: Add ValidateTypedArray // 3. Let len be O.[[ArrayLength]]. var len = O.length; // 4. Let relativeIndex be ? ToIntegerOrInfinity(index). var relativeIndex = ToIntegerOrInfinity(index); // 5. If relativeIndex ≥ 0, let actualIndex be relativeIndex. // 6. Else, let actualIndex be len + relativeIndex. var actualIndex = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; // 7. If O.[[ContentType]] is BigInt, let numericValue be ? ToBigInt(value). // TODO: Add BigInt support // 8. Else, let numericValue be ? ToNumber(value). var numericValue = ToNumber(value); // 9. If IsValidIntegerIndex(O, 𝔽(actualIndex)) is false, throw a RangeError exception. if (IsValidIntegerIndex(O, actualIndex) === false) { throw new RangeError('Invalid index'); } // 10. Let A be ? TypedArrayCreateSameType(O, « 𝔽(len) »). var A = TypedArrayCreateSameType(O, [ len ]); // 11. Let k be 0. var k = 0; // 12. Repeat, while k < len, while (k < len) { // a. Let Pk be ! ToString(𝔽(k)). var Pk = ToString(k); // b. If k is actualIndex, let fromValue be numericValue. // c. Else, let fromValue be ! Get(O, Pk). var fromValue = k === actualIndex ? numericValue : Get(O, Pk); // d. Perform ! Set(A, Pk, fromValue, true). A[Pk] = fromValue; // e. Set k to k + 1. k = k + 1; } // 13. Return A. return A; } var supportsDefiningFunctionName = (function () { var fn = function () {}; try { Object.defineProperty(fn, 'name', { value: 'test' }); return true; } catch (ignore) { return false; } })(); if (supportsDefiningFunctionName) { Object.defineProperty(With, 'name', { value: 'with', writable: false, enumerable: false, configurable: true }) } // in IE11, `Int8Array.prototype` inherits directly from `Object.prototype` // in that case, don't define it on the parent; define it directly on the prototype if ('__proto__' in self.Int8Array.prototype && self.Int8Array.prototype.__proto__ !== Object.prototype) { // set this on the underlying "TypedArrayPrototype", which is shared with all "TypedArray" subclasses CreateMethodProperty(self.Int8Array.prototype.__proto__, 'with', With); } else { CreateMethodProperty(self.Int8Array.prototype, 'with', With); CreateMethodProperty(self.Uint8Array.prototype, 'with', With); CreateMethodProperty(self.Uint8ClampedArray.prototype, 'with', With); CreateMethodProperty(self.Int16Array.prototype, 'with', With); CreateMethodProperty(self.Uint16Array.prototype, 'with', With); CreateMethodProperty(self.Int32Array.prototype, 'with', With); CreateMethodProperty(self.Uint32Array.prototype, 'with', With); CreateMethodProperty(self.Float32Array.prototype, 'with', With); CreateMethodProperty(self.Float64Array.prototype, 'with', With); } })(); } if (!((function(r){"use strict" try{var a=new r.URL("http://example.com") if("href"in a&&"searchParams"in a){var e=new URL("http://example.com") if(e.search="a=1&b=2","http://example.com/?a=1&b=2"===e.href&&(e.search="","http://example.com/"===e.href)){if(!("sort"in r.URLSearchParams.prototype))return!1 var t=new r.URLSearchParams("a=1"),n=new r.URLSearchParams(t) if("a=1"!==String(n))return!1 var c=new r.URLSearchParams({a:"1"}) if("a=1"!==String(c))return!1 var h=new r.URLSearchParams([["a","1"]]) return"a=1"===String(h)}}return!1}catch(r){return!1}})(self) )) { // URL /* global Symbol */ // URL Polyfill // Draft specification: https://url.spec.whatwg.org // Notes: // - Primarily useful for parsing URLs and modifying query parameters // - Should work in IE9+ and everything more modern, with es5.js polyfills (function (global) { 'use strict'; function isSequence(o) { if (!o) return false; if ('Symbol' in global && 'iterator' in global.Symbol && typeof o[Symbol.iterator] === 'function') return true; if (Array.isArray(o)) return true; return false; } ; 4000 (function() { // eslint-disable-line no-extra-semi // Browsers may have: // * No global URL object // * URL with static methods only - may have a dummy constructor // * URL with members except searchParams // * Full URL API support var origURL = global.URL; var nativeURL; try { if (origURL) { nativeURL = new global.URL('http://example.com'); if ('searchParams' in nativeURL) { var url = new URL('http://example.com'); url.search = 'a=1&b=2'; if (url.href === 'http://example.com/?a=1&b=2') { url.search = ''; if (url.href === 'http://example.com/') { return; } } } if (!('href' in nativeURL)) { nativeURL = undefined; } nativeURL = undefined; } // eslint-disable-next-line no-empty } catch (_) {} // NOTE: Doesn't do the encoding/decoding dance function urlencoded_serialize(pairs) { var output = '', first = true; pairs.forEach(function (pair) { var name = encodeURIComponent(pair.name); var value = encodeURIComponent(pair.value); if (!first) output += '&'; output += name + '=' + value; first = false; }); return output.replace(/%20/g, '+'); } // https://url.spec.whatwg.org/#percent-decode var cachedDecodePattern; function percent_decode(bytes) { // This can't simply use decodeURIComponent (part of ECMAScript) as that's limited to // decoding to valid UTF-8 only. It throws URIError for literals that look like percent // encoding (e.g. `x=%`, `x=%a`, and `x=a%2sf`) and for non-UTF8 binary data that was // percent encoded and cannot be turned back into binary within a JavaScript string. // // The spec deals with this as follows: // * Read input as UTF-8 encoded bytes. This needs low-level access or a modern // Web API, like TextDecoder. Old browsers don't have that, and it'd a large // dependency to add to this polyfill. // * For each percentage sign followed by two hex, blindly decode the byte in binary // form. This would require TextEncoder to not corrupt multi-byte chars. // * Replace any bytes that would be invalid under UTF-8 with U+FFFD. // // Instead we: // * Use the fact that UTF-8 is designed to make validation easy in binary. // You don't have to decode first. There are only a handful of valid prefixes and // ranges, per RFC 3629. // * Safely create multi-byte chars with decodeURIComponent, by only passing it // valid and full characters (e.g. "%F0" separately from "%F0%9F%92%A9" throws). // Anything else is kept as literal or replaced with U+FFFD, as per the URL spec. if (!cachedDecodePattern) { // In a UTF-8 multibyte sequence, non-initial bytes are always between %80 and %BF var uContinuation = '%[89AB][0-9A-F]'; // The length of a UTF-8 sequence is specified by the first byte // // One-byte sequences: 0xxxxxxx // So the byte is between %00 and %7F var u1Bytes = '%[0-7][0-9A-F]'; // Two-byte sequences: 110xxxxx 10xxxxxx // So the first byte is between %C0 and %DF var u2Bytes = '%[CD][0-9A-F]' + uContinuation; // Three-byte sequences: 1110xxxx 10xxxxxx 10xxxxxx // So the first byte is between %E0 and %EF var u3Bytes = '%E[0-9A-F]' + uContinuation + uContinuation; // Four-byte sequences: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx // So the first byte is between %F0 and %F7 var u4Bytes = '%F[0-7]' + uContinuation + uContinuation +uContinuation; var anyByte = '%[0-9A-F][0-9A-F]'; // Match some consecutive percent-escaped bytes. More precisely, match // 1-4 bytes that validly encode one character in UTF-8, or 1 byte that // would be invalid in UTF-8 in this location. cachedDecodePattern = new RegExp( '(' + u4Bytes + ')|(' + u3Bytes + ')|(' + u2Bytes + ')|(' + u1Bytes + ')|(' + anyByte + ')', 'gi' ); } return bytes.replace(cachedDecodePattern, function (match, u4, u3, u2, u1, uBad) { return (uBad !== undefined) ? '\uFFFD' : decodeURIComponent(match); }); } // NOTE: Doesn't do the encoding/decoding dance // // https://url.spec.whatwg.org/#concept-urlencoded-parser function urlencoded_parse(input, isindex) { var sequences = input.split('&'); if (isindex && sequences[0].indexOf('=') === -1) sequences[0] = '=' + sequences[0]; var pairs = []; sequences.forEach(function (bytes) { if (bytes.length === 0) return; var index = bytes.indexOf('='); if (index !== -1) { var name = bytes.substring(0, index); var value = bytes.substring(index + 1); } else { name = bytes; value = ''; } name = name.replace(/\+/g, ' '); value = value.replace(/\+/g, ' '); pairs.push({ name: name, value: value }); }); var output = []; pairs.forEach(function (pair) { output.push({ name: percent_decode(pair.name), value: percent_decode(pair.value) }); }); return output; } function URLUtils(url) { if (nativeURL) return new origURL(url); var anchor = document.createElement('a'); anchor.href = url; return anchor; } function URLSearchParams(init) { var $this = this; this._list = []; if (init === undefined || init === null) { // no-op } else if (init instanceof URLSearchParams) { // In ES6 init would be a sequence, but special case for ES5. this._list = urlencoded_parse(String(init)); } else if (typeof init === 'object' && isSequence(init)) { Array.from(init).forEach(function(e) { if (!isSequence(e)) throw TypeError(); var nv = Array.from(e); if (nv.length !== 2) throw TypeError(); $this._list.push({name: String(nv[0]), value: String(nv[1])}); }); } else if (typeof init === 'object' && init) { Object.keys(init).forEach(function(key) { $this._list.push({name: String(key), value: String(init[key])}); }); } else { init = String(init); if (init.substring(0, 1) === '?') init = init.substring(1); this._list = urlencoded_parse(init); } this._url_object = null; this._setList = function (list) { if (!updating) $this._list = list; }; var updating = false; this._update_steps = function() { if (updating) return; updating = true; if (!$this._url_object) return; // Partial workaround for IE issue with 'about:' if ($this._url_object.protocol === 'about:' && $this._url_object.pathname.indexOf('?') !== -1) { $this._url_object.pathname = $this._url_object.pathname.split('?')[0]; } $this._url_object.search = urlencoded_serialize($this._list); updating = false; }; } Object.defineProperties(URLSearchParams.prototype, { append: { value: function (name, value) { this._list.push({ name: name, value: value }); this._update_steps(); }, writable: true, enumerable: true, configurable: true }, 'delete': { value: function (name) { for (var i = 0; i < this._list.length;) { if (this._list[i].name === name) this._list.splice(i, 1); else ++i; } this._update_steps(); }, writable: true, enumerable: true, configurable: true }, get: { value: function (name) { for (var i = 0; i < this._list.length; ++i) { if (this._list[i].name === name) return this._list[i].value; } return null; }, writable: true, enumerable: true, configurable: true }, getAll: { value: function (name) { var result = []; for (var i = 0; i < this._list.length; ++i) { if (this._list[i].name === name) result.push(this._list[i].value); } return result; }, writable: true, enumerable: true, configurable: true }, has: { value: function (name) { for (var i = 0; i < this._list.length; ++i) { if (this._list[i].name === name) return true; } return false; }, writable: true, enumerable: true, configurable: true }, set: { value: function (name, value) { var found = false; for (var i = 0; i < this._list.length;) { if (this._list[i].name === name) { if (!found) { this._list[i].value = value; found = true; ++i; } else { this._list.splice(i, 1); } } else { ++i; } } if (!found) this._list.push({ name: name, value: value }); this._update_steps(); }, writable: true, enumerable: true, configurable: true }, entries: { value: function() { return new Iterator(this._list, 'key+value'); }, writable: true, enumerable: true, configurable: true }, keys: { value: function() { return new Iterator(this._list, 'key'); }, writable: true, enumerable: true, configurable: true }, values: { value: function() { return new Iterator(this._list, 'value'); }, writable: true, enumerable: true, configurable: true }, forEach: { value: function(callback) { var thisArg = (arguments.length > 1) ? arguments[1] : undefined; this._list.forEach(function(pair) { callback.call(thisArg, pair.value, pair.name); }); }, writable: true, enumerable: true, configurable: true }, toString: { value: function () { return urlencoded_serialize(this._list); }, writable: true, enumerable: false, configurable: true }, sort: { value: function sort() { var entries = this.entries(); var entry = entries.next(); var keys = []; var values = {}; while (!entry.done) { var value = entry.value; var key = value[0]; keys.push(key); if (!(Object.prototype.hasOwnProperty.call(values, key))) { values[key] = []; } values[key].push(value[1]); entry = entries.next(); } keys.sort(); for (var i = 0; i < keys.length; i++) { this.delete(keys[i]); } for (var j = 0; j < keys.length; j++) { key = keys[j]; this.append(key, values[key].shift()); } } } }); function Iterator(source, kind) { var index = 0; this.next = function() { if (index >= source.length) return {done: true, value: undefined}; var pair = source[index++]; return {done: false, value: kind === 'key' ? pair.name : kind === 'value' ? pair.value : [pair.name, pair.value]}; }; } if ('Symbol' in global && 'iterator' in global.Symbol) { Object.defineProperty(URLSearchParams.prototype, global.Symbol.iterator, { value: URLSearchParams.prototype.entries, writable: true, enumerable: true, configurable: true}); Object.defineProperty(Iterator.prototype, global.Symbol.iterator, { value: function() { return this; }, writable: true, enumerable: true, configurable: true}); } function URL(url, base) { if (!(this instanceof global.URL)) throw new TypeError("Failed to construct 'URL': Please use the 'new' operator."); if (base) { url = (function () { if (nativeURL) return new origURL(url, base).href; var iframe; try { var doc; // Use another document/base tag/anchor for relative URL resolution, if possible if (Object.prototype.toString.call(window.operamini) === "[object OperaMini]") { iframe = document.createElement('iframe'); iframe.style.display = 'none'; document.documentElement.appendChild(iframe); doc = iframe.contentWindow.document; } else if (document.implementation && document.implementation.createHTMLDocument) { doc = document.implementation.createHTMLDocument(''); } else if (document.implementation && document.implementation.createDocument) { doc = document.implementation.createDocument('http://www.w3.org/1999/xhtml', 'html', null); doc.documentElement.appendChild(doc.createElement('head')); doc.documentElement.appendChild(doc.createElement('body')); } else if (window.ActiveXObject) { doc = new window.ActiveXObject('htmlfile'); doc.write(''); doc.close(); } if (!doc) throw Error('base not supported'); var baseTag = doc.createElement('base'); baseTag.href = base; doc.getElementsByTagName('head')[0].appendChild(baseTag); var anchor = doc.createElement('a'); anchor.href = url; return anchor.href; } finally { if (iframe) iframe.parentNode.removeChild(iframe); } }()); } // An inner object implementing URLUtils (either a native URL // object or an HTMLAnchorElement instance) is used to perform the // URL algorithms. var instance = URLUtils(url || ''); var self = this; var query_object = new URLSearchParams( instance.search ? instance.search.substring(1) : null); query_object._url_object = self; Object.defineProperties(self, { href: { get: function () { return instance.href; }, set: function (v) { instance.href = v; tidy_instance(); update_steps(); }, enumerable: true, configurable: true }, origin: { get: function () { if (this.protocol.toLowerCase() === "data:") { return null } if ('origin' in instance) return instance.origin; return this.protocol + '//' + this.host; }, enumerable: true, configurable: true }, protocol: { get: function () { return instance.protocol; }, set: function (v) { instance.protocol = v; }, enumerable: true, configurable: true }, username: { get: function () { return instance.username; }, set: function (v) { instance.username = v; }, enumerable: true, configurable: true }, password: { get: function () { return instance.password; }, set: function (v) { instance.password = v; }, enumerable: true, configurable: true }, host: { get: function () { // IE returns default port in |host| var re = {'http:': /:80$/, 'https:': /:443$/, 'ftp:': /:21$/}[instance.protocol]; return re ? instance.host.replace(re, '') : instance.host; }, set: function (v) { instance.host = v; }, enumerable: true, configurable: true }, hostname: { get: function () { return instance.hostname; }, set: function (v) { instance.hostname = v; }, enumerable: true, configurable: true }, port: { get: function () { return instance.port; }, set: function (v) { instance.port = v; }, enumerable: true, configurable: true }, pathname: { get: function () { // IE does not include leading '/' in |pathname| if (instance.pathname.charAt(0) !== '/') return '/' + instance.pathname; return instance.pathname; }, set: function (v) { instance.pathname = v; }, enumerable: true, configurable: true }, search: { get: function () { return instance.search; }, set: function (v) { if (instance.search === v) return; instance.search = v; tidy_instance(); update_steps(); }, enumerable: true, configurable: true }, searchParams: { get: function () { return query_object; }, enumerable: true, configurable: true }, hash: { get: function () { return instance.hash; }, set: function (v) { instance.hash = v; tidy_instance(); }, enumerable: true, configurable: true }, toString: { value: function() { return instance.toString(); }, enumerable: false, configurable: true }, valueOf: { value: function() { return instance.valueOf(); }, enumerable: false, configurable: true } }); function tidy_instance() { var href = instance.href.replace(/#$|\?$|\?(?=#)/g, ''); if (instance.href !== href) instance.href = href; } function update_steps() { query_object._setList(instance.search ? urlencoded_parse(instance.search.substring(1)) : []); query_object._update_steps(); } return self; } if (origURL) { for (var i in origURL) { if (Object.prototype.hasOwnProperty.call(origURL, i) && typeof origURL[i] === 'function') URL[i] = origURL[i]; } } global.URL = URL; global.URLSearchParams = URLSearchParams; })(); // Patch native URLSearchParams constructor to handle sequences/records // if necessary. (function() { if (new global.URLSearc 318 hParams([['a', 1]]).get('a') === '1' && new global.URLSearchParams({a: 1}).get('a') === '1') return; var orig = global.URLSearchParams; global.URLSearchParams = function(init) { if (init && typeof init === 'object' && isSequence(init)) { var o = new orig(); Array.from(init).forEach(function (e) { if (!isSequence(e)) throw TypeError(); var nv = Array.from(e); if (nv.length !== 2) throw TypeError(); o.append(nv[0], nv[1]); }); return o; } else if (init && typeof init === 'object') { o = new orig(); Object.keys(init).forEach(function(key) { o.set(key, init[key]); }); return o; } else { return new orig(init); } }; })(); }(self)); } if (!("fetch"in self&&"Request"in self&&function(){try{return"sign 4000 al"in new Request("")}catch(e){return!1}}() )) { // fetch (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (factory((global.WHATWGFetch = {}))); }(this, (function (exports) { 'use strict'; var global = (typeof globalThis !== 'undefined' && globalThis) || (typeof self !== 'undefined' && self) || (typeof global !== 'undefined' && global); var support = { searchParams: 'URLSearchParams' in global, iterable: 'Symbol' in global && 'iterator' in Symbol, blob: 'FileReader' in global && 'Blob' in global && (function() { try { new Blob(); return true } catch (e) { return false } })(), formData: 'FormData' in global, arrayBuffer: 'ArrayBuffer' in global }; function isDataView(obj) { return obj && DataView.prototype.isPrototypeOf(obj) } if (support.arrayBuffer) { var viewClasses = [ '[object Int8Array]', '[object Uint8Array]', '[object Uint8ClampedArray]', '[object Int16Array]', '[object Uint16Array]', '[object Int32Array]', '[object Uint32Array]', '[object Float32Array]', '[object Float64Array]' ]; var isArrayBufferView = ArrayBuffer.isView || function(obj) { return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1 }; } function normalizeName(name) { if (typeof name !== 'string') { name = String(name); } if (/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(name) || name === '') { throw new TypeError('Invalid character in header field name: "' + name + '"') } return name.toLowerCase() } function normalizeValue(value) { if (typeof value !== 'string') { value = String(value); } return value } // Build a destructive iterator for the value list function iteratorFor(items) { var iterator = { next: function() { var value = items.shift(); return {done: value === undefined, value: value} } }; if (support.iterable) { iterator[Symbol.iterator] = function() { return iterator }; } return iterator } function Headers(headers) { this.map = {}; if (headers instanceof Headers) { headers.forEach(function(value, name) { this.append(name, value); }, this); } else if (Array.isArray(headers)) { headers.forEach(function(header) { this.append(header[0], header[1]); }, this); } else if (headers) { Object.getOwnPropertyNames(headers).forEach(function(name) { this.append(name, headers[name]); }, this); } } Headers.prototype.append = function(name, value) { name = normalizeName(name); value = normalizeValue(value); var oldValue = this.map[name]; this.map[name] = oldValue ? oldValue + ', ' + value : value; }; Headers.prototype['delete'] = function(name) { delete this.map[normalizeName(name)]; }; Headers.prototype.get = function(name) { name = normalizeName(name); return this.has(name) ? this.map[name] : null }; Headers.prototype.has = function(name) { return this.map.hasOwnProperty(normalizeName(name)) }; Headers.prototype.set = function(name, value) { this.map[normalizeName(name)] = normalizeValue(value); }; Headers.prototype.forEach = function(callback, thisArg) { for (var name in this.map) { if (this.map.hasOwnProperty(name)) { callback.call(thisArg, this.map[name], name, this); } } }; Headers.prototype.keys = function() { var items = []; this.forEach(function(value, name) { items.push(name); }); return iteratorFor(items) }; Headers.prototype.values = function() { var items = []; this.forEach(function(value) { items.push(value); }); return iteratorFor(items) }; Headers.prototype.entries = function() { var items = []; this.forEach(function(value, name) { items.push([name, value]); }); return iteratorFor(items) }; if (support.iterable) { Headers.prototype[Symbol.iterator] = Headers.prototype.entries; } function consumed(body) { if (body.bodyUsed) { return Promise.reject(new TypeError('Already read')) } body.bodyUsed = true; } function fileReaderReady(reader) { return new Promise(function(resolve, reject) { reader.onload = function() { resolve(reader.result); }; reader.onerror = function() { reject(reader.error); }; }) } function readBlobAsArrayBuffer(blob) { var reader = new FileReader(); var promise = fileReaderReady(reader); reader.readAsArrayBuffer(blob); return promise } function readBlobAsText(blob) { var reader = new FileReader(); var promise = fileReaderReady(reader); reader.readAsText(blob); return promise } function readArrayBufferAsText(buf) { var view = new Uint8Array(buf); var chars = new Array(view.length); for (var i = 0; i < view.length; i++) { chars[i] = String.fromCharCode(view[i]); } return chars.join('') } function bufferClone(buf) { if (buf.slice) { return buf.slice(0) } else { var view = new Uint8Array(buf.byteLength); view.set(new Uint8Array(buf)); return view.buffer } } function Body() { this.bodyUsed = false; this._initBody = function(body) { /* fetch-mock wraps the Response object in an ES6 Proxy to provide useful test harness features such as flush. However, on ES5 browsers without fetch or Proxy support pollyfills must be used; the proxy-pollyfill is unable to proxy an attribute unless it exists on the object before the Proxy is created. This change ensures Response.bodyUsed exists on the instance, while maintaining the semantic of setting Request.bodyUsed in the constructor before _initBody is called. */ this.bodyUsed = this.bodyUsed; this._bodyInit = body; if (!body) { this._bodyText = ''; } else if (typeof body === 'string') { this._bodyText = body; } else if (support.blob && Blob.prototype.isPrototypeOf(body)) { this._bodyBlob = body; } else if (support.formData && FormData.prototype.isPrototypeOf(body)) { this._bodyFormData = body; } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { this._bodyText = body.toString(); } else if (support.arrayBuffer && support.blob && isDataView(body)) { this._bodyArrayBuffer = bufferClone(body.buffer); // IE 10-11 can't handle a DataView body. this._bodyInit = new Blob([this._bodyArrayBuffer]); } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) { this._bodyArrayBuffer = bufferClone(body); } else { this._bodyText = body = Object.prototype.toString.call(body); } if (!this.headers.get('content-type')) { if (typeof body === 'string') { this.headers.set('content-type', 'text/plain;charset=UTF-8'); } else if (this._bodyBlob && this._bodyBlob.type) { this.headers.set('content-type', this._bodyBlob.type); } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); } } }; if (support.blob) { this.blob = function() { var rejected = consumed(this); if (rejected) { return rejected } if (this._bodyBlob) { return Promise.resolve(this._bodyBlob) } else if (this._bodyArrayBuffer) { return Promise.resolve(new Blob([this._bodyArrayBuffer])) } else if (this._bodyFormData) { throw new Error('could not read FormData body as blob') } else { return Promise.resolve(new Blob([this._bodyText])) } }; this.arrayBuffer = function() { if (this._bodyArrayBuffer) { var isConsumed = consumed(this); if (isConsumed) { return isConsumed } if (ArrayBuffer.isView(this._bodyArrayBuffer)) { return Promise.resolve( this._bodyArrayBuffer.buffer.slice( this._bodyArrayBuffer.byteOffset, this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength ) ) } else { return Promise.resolve(this._bodyArrayBuffer) } } else { return this.blob().then(readBlobAsArrayBuffer) } }; } this.text = function() { var rejected = consumed(this); if (rejected) { return rejected } if (this._bodyBlob) { return readBlobAsText(this._bodyBlob) } else if (this._bodyArrayBuffer) { return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer)) } else if (this._bodyFormData) { throw new Error('could not read FormData body as text') } else { return Promise.resolve(this._bodyText) } }; if (support.formData) { this.formData = function() { return this.text().then(decode) }; } this.json = function() { return this.text().then(JSON.parse) }; return this } // HTTP methods whose capitalization should be normalized var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']; function normalizeMethod(method) { var upcased = method.toUpperCase(); return methods.indexOf(upcased) > -1 ? upcased : method } function Request(input, options) { if (!(this instanceof Request)) { throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.') } options = options || {}; var body = options.body; if (input instanceof Request) { if (input.bodyUsed) { throw new TypeError('Already read') } this.url = input.url; this.credentials = input.credentials; if (!options.headers) { this.headers = new Headers(input.headers); } this.method = input.method; this.mode = input.mode; this.signal = input.signal; if (!body && input._bodyInit != null) { body = input._bodyInit; input.bodyUsed = true; } } else { this.url = String(input); } this.credentials = options.credentials || this.credentials || 'same-origin'; if (options.headers || !this.headers) { this.headers = new Headers(options.headers); } this.method = normalizeMethod(options.method || this.method || 'GET'); this.mode = options.mode || this.mode || null; this.signal = options.signal || this.signal; this.referrer = null; if ((this.method === 'GET' || this.method === 'HEAD') && body) { throw new TypeError('Body not allowed for GET or HEAD requests') } this._initBody(body); if (this.method === 'GET' || this.method === 'HEAD') { if (options.cache === 'no-store' || options.cache === 'no-cache') { // Search for a '_' parameter in the query string var reParamSearch = /([?&])_=[^&]*/; if (reParamSearch.test(this.url)) { // If it already exists then set the value with the current time this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime()); } else { // Otherwise add a new '_' parameter to the end with the current time var reQueryString = /\?/; this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime(); } } } } Request.prototype.clone = function() { return new Request(this, {body: this._bodyInit}) }; function decode(body) { var form = new FormData(); body .trim() .split('&') .forEach(function(bytes) { if (bytes) { var split = bytes.split('='); var name = split.shift().replace(/\+/g, ' '); var value = split.join('=').replace(/\+/g, ' '); form.append(decodeURIComponent(name), decodeURIComponent(value)); } }); return form } function parseHeaders(rawHeaders) { var headers = new Headers(); // Replace instances of \r\n and \n followed by at least one space or horizontal tab with a space // https://tools.ietf.org/html/rfc7230#section-3.2 var preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, ' '); // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill // https://github.com/github/fetch/issues/748 // https://github.com/zloirock/core-js/issues/751 preProcessedHeaders .split('\r') .map(function(header) { return header.indexOf('\n') === 0 ? header.substr(1, header.length) : header }) .forEach(function(line) { var parts = line.split(':'); var key = parts.shift().trim(); if (key) { var value = parts.join(':').trim(); headers.append(key, value); } }); return headers } Body.call(Request.prototype); function Response(bodyInit, options) { if (!(this instanceof Response)) { throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.') } if (!options) { options = {}; } this.type = 'default'; this.status = options.status === undefined ? 200 : options.status; this.ok = this.status >= 200 && this.status < 300; this.statusText = options.statusText === undefined ? '' : '' + options.statusText; this.headers = new Headers(options.headers); this.url = options.url || ''; this._initBody(bodyInit); } Body.call(Response.prototype); Response.prototype.clone = function() { return new Response(this._bodyInit, { status: this.status, statusText: this.statusText, headers: new Headers(this.headers), url: this.url }) }; Response.error = function() { var response = new Response(null, {status: 0, statusText: ''}); response.type = 'error'; return response }; var redirectStatuses = [301, 302, 303, 307, 308]; Response.redirect = function(url, status) { if (redirectStatuses.indexOf(status) === -1) { throw new RangeError('Invalid status code') } return new Response(null, {status: status, headers: {location: url}}) }; exports.DOMException = global.DOMException; try { new exports.DOMException(); } catch (err) { exports.DOMException = function(message, name) { this.message = message; this.name = name; var error = Error(message); this.stack = error.stack; }; exports.DOMException.prototype = Object.create(Error.prototype); exports.DOMException.prototype.constructor = exports.DOMException; } function fetch(input, init) { return new Promise(function(resolve, reject) { var request = new Request(input, init); if (request.signal && request.signal.aborted) { return reject(new exports.DOMException('Aborted', 'AbortError')) } var xhr = new XMLHttpRequest(); function abortXhr() { xhr.abort(); } xhr.onload = function() { var options = { status: xhr.status, statusText: xhr.statusText, headers: parseHeaders(xhr.getAllResponseHeaders() || '') }; options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL'); var body = 'response' in xhr ? xhr.response : xhr.responseText; setTimeout(function() { resolve(new Response(body, options)); }, 0); }; xhr.onerror = function() { setTimeout(function() { reject(new TypeError('Network request failed')); }, 0); }; xhr.ontimeout = function() { setTimeout(function() { reject(new TypeError('Network request failed')); }, 0); }; xhr.onabort = function() { setTim 4000 eout(function() { reject(new exports.DOMException('Aborted', 'AbortError')); }, 0); }; function fixUrl(url) { try { return url === '' && global.location.href ? global.location.href : url } catch (e) { return url } } xhr.open(request.method, fixUrl(request.url), true); if (request.credentials === 'include') { xhr.withCredentials = true; } else if (request.credentials === 'omit') { xhr.withCredentials = false; } if ('responseType' in xhr) { if (support.blob) { xhr.responseType = 'blob'; } else if ( support.arrayBuffer && request.headers.get('Content-Type') && request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1 ) { xhr.responseType = 'arraybuffer'; } } if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) { Object.getOwnPropertyNames(init.headers).forEach(function(name) { xhr.setRequestHeader(name, normalizeValue(init.headers[name])); }); } else { request.headers.forEach(function(value, name) { xhr.setRequestHeader(name, value); }); } if (request.signal) { request.signal.addEventListener('abort', abortXhr); xhr.onreadystatechange = function() { // DONE (success or failure) if (xhr.readyState === 4) { request.signal.removeEventListener('abort', abortXhr); } }; } xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit); }) } fetch.polyfill = true; global.fetch = fetch; global.Headers = Headers; global.Request = Request; global.Response = Response; exports.Headers = Headers; exports.Request = Request; exports.Response = Response; exports.fetch = fetch; Object.defineProperty(exports, '__esModule', { value: true }); }))); } if (!((function(){try{if("WeakMap"in self&&0===self.WeakMap.length){var e={},t=new self.WeakMap([[e,"test"]]) return"test"===t.get(e)&&!1===t.delete(0)&&"toStringTag"in self.Symbol&&void 0!==t[self.Symbol.toStringTag]}return!1}catch(e){return!1}})() )) { // WeakMap /* globals Symbol, OrdinaryCreateFromConstructor, IsCallable, GetIterator, IteratorStep, IteratorValue, IteratorClose, Get, Call, CreateMethodProperty, Type, SameValue */ (function (global) { // Deleted map items mess with iterator pointers, so rather than removing them mark them as deleted. Can't use undefined or null since those both valid keys so use a private symbol. var undefMarker = Symbol('undef'); // 23.3.1.1 WeakMap ( [ iterable ] ) var WeakMap = function WeakMap(/* iterable */) { // 1. If NewTarget is undefined, throw a TypeError exception. if (!(this instanceof WeakMap)) { throw new TypeError('Constructor WeakMap requires "new"'); } // 2. Let map be ? OrdinaryCreateFromConstructor(NewTarget, "%WeakMapPrototype%", « [[WeakMapData]] »). var map = OrdinaryCreateFromConstructor(this, WeakMap.prototype, { _keys: [], _values: [], _es6WeakMap: true }); // 3. Set map.[[WeakMapData]] to a new empty List. // Polyfill.io - This step was done as part of step two. // 4. If iterable is not present, let iterable be undefined. var iterable = arguments.length > 0 ? arguments[0] : undefined; // 5. If iterable is either undefined or null, return map. if (iterable === null || iterable === undefined) { return map; } // 6. Let adder be ? Get(map, "set"). var adder = Get(map, "set"); // 7. If IsCallable(adder) is false, throw a TypeError exception. if (!IsCallable(adder)) { throw new TypeError("WeakMap.prototype.set is not a function"); } // 8. Let iteratorRecord be ? GetIterator(iterable). try { var iteratorRecord = GetIterator(iterable); // 9. Repeat, // eslint-disable-next-line no-constant-condition while (true) { // a. Let next be ? IteratorStep(iteratorRecord). var next = IteratorStep(iteratorRecord); // b. If next is false, return map. if (next === false) { return map; } // c. Let nextItem be ? IteratorValue(next). var nextItem = IteratorValue(next); // d. If Type(nextItem) is not Object, then if (Type(nextItem) !== 'object') { // i. Let error be Completion{[[Type]]: throw, [[Value]]: a newly created TypeError object, [[Target]]: empty}. try { throw new TypeError('Iterator value ' + nextItem + ' is not an entry object'); } catch (error) { // ii. Return ? IteratorClose(iteratorRecord, error). return IteratorClose(iteratorRecord, error); } } try { // Polyfill.io - The try catch accounts for steps: f, h, and j. // e. Let k be Get(nextItem, "0"). var k = Get(nextItem, "0"); // f. If k is an abrupt completion, return ? IteratorClose(iteratorRecord, k). // g. Let v be Get(nextItem, "1"). var v = Get(nextItem, "1"); // h. If v is an abrupt completion, return ? IteratorClose(iteratorRecord, v). // i. Let status be Call(adder, map, « k.[[Value]], v.[[Value]] »). Call(adder, map, [k, v]); } catch (e) { // j. If status is an abrupt completion, return ? IteratorClose(iteratorRecord, status). return IteratorClose(iteratorRecord, e); } } } catch (e) { // Polyfill.io - For user agents which do not have iteration methods on argument objects or arrays, we can special case those. if (Array.isArray(iterable) || Object.prototype.toString.call(iterable) === '[object Arguments]') { var index; var length = iterable.length; for (index = 0; index < length; index++) { k = iterable[index][0]; v = iterable[index][1]; Call(adder, map, [k, v]); } } } return map; }; // 23.3.2.1 WeakMap.prototype // The initial value of WeakMap.prototype is the intrinsic object %WeakMapPrototype%. // This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Object.defineProperty(WeakMap, 'prototype', { configurable: false, enumerable: false, writable: false, value: {} }); // 23.3.3.1 WeakMap.prototype.constructor CreateMethodProperty(WeakMap.prototype, 'constructor', WeakMap); // 23.3.3.2 WeakMap.prototype.delete ( key ) CreateMethodProperty(WeakMap.prototype, 'delete', function (key) { // 1. Let M be the this value. var M = this; // 2. If Type(M) is not Object, throw a TypeError exception. if (Type(M) !== 'object') { throw new TypeError('Method WeakMap.prototype.clear called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 3. If M does not have a [[WeakMapData]] internal slot, throw a TypeError exception. if (M._es6WeakMap !== true) { throw new TypeError('Method WeakMap.prototype.clear called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 4. Let entries be the List that is M.[[WeakMapData]]. var entries = M._keys; // 5. If Type(key) is not Object, return false. if (Type(key) !== 'object') { return false; } // 6. For each Record {[[Key]], [[Value]]} p that is an element of entries, do for (var i = 0; i < entries.length; i++) { // a. If p.[[Key]] is not empty and SameValue(p.[[Key]], key) is true, then if (M._keys[i] !== undefMarker && SameValue(M._keys[i], key)) { // i. Set p.[[Key]] to empty. this._keys[i] = undefMarker; // ii. Set p.[[Value]] to empty. this._values[i] = undefMarker; this._size = --this._size; // iii. Return true. return true; } } // 7. Return false. return false; }); // 23.3.3.3 WeakMap.prototype.get ( key ) CreateMethodProperty(WeakMap.prototype, 'get', function get(key) { // 1. Let M be the this value. var M = this; // 2. If Type(M) is not Object, throw a TypeError exception. if (Type(M) !== 'object') { throw new TypeError('Method WeakMap.prototype.get called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 3. If M does not have a [[WeakMapData]] internal slot, throw a TypeError exception. if (M._es6WeakMap !== true) { throw new TypeError('Method WeakMap.prototype.get called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 4. Let entries be the List that is M.[[WeakMapData]]. var entries = M._keys; // 5. If Type(key) is not Object, return undefined. if (Type(key) !== 'object') { return undefined; } // 6. For each Record {[[Key]], [[Value]]} p that is an element of entries, do for (var i = 0; i < entries.length; i++) { // a. If p.[[Key]] is not empty and SameValue(p.[[Key]], key) is true, return p.[[Value]]. if (M._keys[i] !== undefMarker && SameValue(M._keys[i], key)) { return M._values[i]; } } // 7. Return undefined. return undefined; }); // 23.3.3.4 WeakMap.prototype.has ( key ) CreateMethodProperty(WeakMap.prototype, 'has', function has(key) { // 1. Let M be the this value. var M = this; // 2. If Type(M) is not Object, throw a TypeError exception. if (typeof M !== 'object') { throw new TypeError('Method WeakMap.prototype.has called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 3. If M does not have a [[WeakMapData]] internal slot, throw a TypeError exception. if (M._es6WeakMap !== true) { throw new TypeError('Method WeakMap.prototype.has called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 4. Let entries be the List that is M.[[WeakMapData]]. var entries = M._keys; // 5. If Type(key) is not Object, return false. if (Type(key) !== 'object') { return false; } // 6. For each Record {[[Key]], [[Value]]} p that is an element of entries, do for (var i = 0; i < entries.length; i++) { // a. If p.[[Key]] is not empty and SameValue(p.[[Key]], key) is true, return true. if (M._keys[i] !== undefMarker && SameValue(M._keys[i], key)) { return true; } } // 7. Return false. return false; }); // 23.3.3.5 WeakMap.prototype.set ( key, value ) CreateMethodProperty(WeakMap.prototype, 'set', function set(key, value) { // 1. Let M be the this value. var M = this; // 2. If Type(M) is not Object, throw a TypeError exception. if (Type(M) !== 'object') { throw new TypeError('Method WeakMap.prototype.set called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 3. If M does not have a [[WeakMapData]] internal slot, throw a TypeError exception. if (M._es6WeakMap !== true) { throw new TypeError('Method WeakMap.prototype.set called on incompatible receiver ' + Object.prototype.toString.call(M)); } // 4. Let entries be the List that is M.[[WeakMapData]]. var entries = M._keys; // 5. If Type(key) is not Object, throw a TypeError exception. if (Type(key) !== 'object') { throw new TypeError("Invalid value used as weak map key"); } // 6. For each Record {[[Key]], [[Value]]} p that is an element of entries, do for (var i = 0; i < entries.length; i++) { // a. If p.[[Key]] is not empty and SameValue(p.[[Key]], key) is true, then if (M._keys[i] !== undefMarker && SameValue(M._keys[i], key)) { // i. Set p.[[Value]] to value. M._values[i] = value; // ii. Return M. return M; } } // 7. Let p be the Record {[[Key]]: key, [[Value]]: value}. var p = { '[[Key]]': key, '[[Value]]': value }; // 8. Append p as the last element of entries. M._keys.push(p['[[Key]]']); M._values.push(p['[[Value]]']); // 9. Return M. return M; }); // 23.3.3.6 WeakMap.prototype [ @@toStringTag ] // The initial value of the @@toStringTag property is the String value "WeakMap". // This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. Object.defineProperty(WeakMap.prototype, Symbol.toStringTag, { configurable: true, enumerable: false, writable: false, value: 'WeakMap' }); // Polyfill.io - Safari 8 implements WeakMap.name but as a non-writable property, which means it would throw an error if we try and write to it here. if (!('name' in WeakMap)) { // 19.2.4.2 name Object.defineProperty(WeakMap, 'name', { configurable: true, enumerable: false, writable: false, value: 'WeakMap' }); } // Export the object CreateMethodProperty(global, 'WeakMap', WeakMap); }(self)); } if (!("Intl"in self&&"Locale"in self.Intl )) { // Intl.Locale (function() { var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __markAsModule = function(target) { return __defProp(target, "__esModule", {value: true}); }; var __commonJS = function(cb, mod) { return function __require() { return mod || (0, cb[Object.keys(cb)[0]])((mod = {exports: {}}).exports, mod), mod.exports; }; }; var __reExport = function(target, module, desc) { if (module && typeof module === "object" || typeof module === "function") for (var keys = __getOwnPropNames(module), i = 0, n = keys.length, key; i < n; i++) { key = keys[i]; if (!__hasOwnProp.call(target, key) && key !== "default") __defProp(target, key, {get: function(k) { return module[k]; }.bind(null, key), enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable}); } return target; }; var __toModule = function(module) { return __reExport(__markAsModule(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", module && module.__esModule && "default" in module ? {get: function() { return module.default; }, enumerable: true} : {value: module, enumerable: true})), module); }; // node_modules/tslib/tslib.js var require_tslib = __commonJS({ "node_modules/tslib/tslib.js": function(exports, module) { var __extends2; var __assign5; var __rest; var __decorate; var __param; var __metadata; var __awaiter; var __generator; var __exportStar; var __values; var __read; var __spread; var __spreadArrays; var __spreadArray2; var __await; var __asyncGenerator; var __asyncDelegator; var __asyncValues; var __makeTemplateObject; var __importStar; var __importDefault; var __classPrivateFieldGet; var __classPrivateFieldSet; var __createBinding; (function(factory) { var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; if (typeof define === "function" && define.amd) { define("tslib", ["exports"], function(exports2) { factory(createExporter(root, createExporter(exports2))); }); } else if (typeof module === "object" && typeof module.exports === "object") { factory(createExporter(root, createExporter(module.exports))); } else { factory(createExporter(root)); } function createExporter(exports2, previous) { if (exports2 !== root) { if (typeof Object.create === "function") { Object.defineProperty(exports2, "__esModule", {value: true}); } else { exports2.__esModule = true; } } return function(id, v) { return exports2[id] = previous ? previous(id, v) : v; }; } })(function(exporter) { var extendStatics = Object.setPrototypeOf || {__proto__: []} instanceof Array && function(d, b) { d.__proto__ = b; } || function(d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; __extends2 = function(d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 3ce7 }; __assign5 = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; __rest = function(s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; __decorate = function(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; __param = function(paramIndex, decorator) { return function(target, key) { decorator(target, key, paramIndex); }; }; __metadata = function(metadataKey, metadataValue) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); }; __awaiter = function(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); }); } return new (P || (P = Promise))(function(resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; __generator = function(thisArg, body) { var _ = {label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: []}, f, y, t, g; return g = {next: verb(0), "throw": verb(1), "return": verb(2)}, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function(v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return {value: op[1], done: false}; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return {value: op[0] ? op[1] : void 0, done: true}; } }; __exportStar = function(m, o) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); }; __createBinding = Object.create ? function(o, m, k, k2) { if (k2 === void 0) k2 = k; Object.defineProperty(o, k2, {enumerable: true, get: function() { return m[k]; }}); } : function(o, m, k, k2) { if (k2 === void 0) k2 = k; o[k2] = m[k]; }; __values = function(o) { var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; if (m) return m.call(o); if (o && typeof o.length === "number") return { next: function() { if (o && i >= o.length) o = void 0; return {value: o && o[i++], done: !o}; } }; throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); }; __read = function(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = {error: error}; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; __spread = function() { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; }; __spreadArrays = function() { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; __spreadArray2 = function(to, from) { for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) to[j] = from[i]; return to; }; __await = function(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }; __asyncGenerator = function(thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { return this; }, i; function verb(n) { if (g[n]) i[n] = function(v) { return new Promise(function(a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } }; __asyncDelegator = function(o) { var i, p; return i = {}, verb("next"), verb("throw", function(e) { throw e; }), verb("return"), i[Symbol.iterator] = function() { return this; }, i; function verb(n, f) { i[n] = o[n] ? function(v) { return (p = !p) ? {value: __await(o[n](v)), done: n === "return"} : f ? f(v) : v; } : f; } }; __asyncValues = function(o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator], i; return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { return this; }, i); function verb(n) { i[n] = o[n] && function(v) { return new Promise(function(resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v2) { resolve({value: v2, done: d}); }, reject); } }; __makeTemplateObject = function(cooked, raw) { if (Object.defineProperty) { Object.defineProperty(cooked, "raw", {value: raw}); } else { cooked.raw = raw; } return cooked; }; var __setModuleDefault = Object.create ? function(o, v) { Object.defineProperty(o, "default", {enumerable: true, value: v}); } : function(o, v) { o["default"] = v; }; __importStar = function(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); } __setModuleDefault(result, mod); return result; }; __importDefault = function(mod) { return mod && mod.__esModule ? mod : {"default": mod}; }; __classPrivateFieldGet = function(receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; __classPrivateFieldSet = function(receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value; }; exporter("__extends", __extends2); exporter("__assign", __assign5); exporter("__rest", __rest); exporter("__decorate", __decorate); exporter("__param", __param); exporter("__metadata", __metadata); exporter("__awaiter", __awaiter); exporter("__generator", __generator); exporter("__exportStar", __exportStar); exporter("__createBinding", __createBinding); exporter("__values", __values); exporter("__read", __read); exporter("__spread", __spread); exporter("__spreadArrays", __spreadArrays); exporter("__spreadArray", __spreadArray2); exporter("__await", __await); exporter("__asyncGenerator", __asyncGenerator); exporter("__asyncDelegator", __asyncDelegator); exporter("__asyncValues", __asyncValues); exporter("__makeTemplateObject", __makeTemplateObject); exporter("__importStar", __importStar); exporter("__importDefault", __importDefault); exporter("__classPrivateFieldGet", __classPrivateFieldGet); exporter("__classPrivateFieldSet", __classPrivateFieldSet); }); } }); // bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/parser.js var require_parser = __commonJS({ "bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/parser.js": function(exports) { "use strict"; Object.defineProperty(exports, "__esModule", {value: true}); exports.parseUnicodeLocaleId = exports.parseUnicodeLanguageId = exports.isUnicodeVariantSubtag = exports.isUnicodeScriptSubtag = exports.isUnicodeRegionSubtag = exports.isStructurallyValidLanguageTag = exports.isUnicodeLanguageSubtag = exports.SEPARATOR = void 0; var tslib_1 = require_tslib(); var ALPHANUM_1_8 = /^[a-z0-9]{1,8}$/i; var ALPHANUM_2_8 = /^[a-z0-9]{2,8}$/i; var ALPHANUM_3_8 = /^[a-z0-9]{3,8}$/i; var KEY_REGEX = /^[a-z0-9][a-z]$/i; var TYPE_REGEX = /^[a-z0-9]{3,8}$/i; var ALPHA_4 = /^[a-z]{4}$/i; var OTHER_EXTENSION_TYPE = /^[0-9a-svwyz]$/i; var UNICODE_REGION_SUBTAG_REGEX = /^([a-z]{2}|[0-9]{3})$/i; var UNICODE_VARIANT_SUBTAG_REGEX = /^([a-z0-9]{5,8}|[0-9][a-z0-9]{3})$/i; var UNICODE_LANGUAGE_SUBTAG_REGEX = /^([a-z]{2,3}|[a-z]{5,8})$/i; var TKEY_REGEX = /^[a-z][0-9]$/i; exports.SEPARATOR = "-"; function isUnicodeLanguageSubtag2(lang) { return UNICODE_LANGUAGE_SUBTAG_REGEX.test(lang); } exports.isUnicodeLanguageSubtag = isUnicodeLanguageSubtag2; function isStructurallyValidLanguageTag2(tag) { try { parseUnicodeLanguageId2(tag.split(exports.SEPARATOR)); } catch (e) { return false; } return true; } exports.isStructurallyVal 4000 idLanguageTag = isStructurallyValidLanguageTag2; function isUnicodeRegionSubtag2(region) { return UNICODE_REGION_SUBTAG_REGEX.test(region); } exports.isUnicodeRegionSubtag = isUnicodeRegionSubtag2; function isUnicodeScriptSubtag2(script) { return ALPHA_4.test(script); } exports.isUnicodeScriptSubtag = isUnicodeScriptSubtag2; function isUnicodeVariantSubtag(variant) { return UNICODE_VARIANT_SUBTAG_REGEX.test(variant); } exports.isUnicodeVariantSubtag = isUnicodeVariantSubtag; function parseUnicodeLanguageId2(chunks) { if (typeof chunks === "string") { chunks = chunks.split(exports.SEPARATOR); } var lang = chunks.shift(); if (!lang) { throw new RangeError("Missing unicode_language_subtag"); } if (lang === "root") { return {lang: "root", variants: []}; } if (!isUnicodeLanguageSubtag2(lang)) { throw new RangeError("Malformed unicode_language_subtag"); } var script; if (chunks.length && isUnicodeScriptSubtag2(chunks[0])) { script = chunks.shift(); } var region; if (chunks.length && isUnicodeRegionSubtag2(chunks[0])) { region = chunks.shift(); } var variants = {}; while (chunks.length && isUnicodeVariantSubtag(chunks[0])) { var variant = chunks.shift(); if (variant in variants) { throw new RangeError('Duplicate variant "' + variant + '"'); } variants[variant] = 1; } return { lang: lang, script: script, region: region, variants: Object.keys(variants) }; } exports.parseUnicodeLanguageId = parseUnicodeLanguageId2; function parseUnicodeExtension(chunks) { var keywords = []; var keyword; while (chunks.length && (keyword = parseKeyword(chunks))) { keywords.push(keyword); } if (keywords.length) { return { type: "u", keywords: keywords, attributes: [] }; } var attributes = []; while (chunks.length && ALPHANUM_3_8.test(chunks[0])) { attributes.push(chunks.shift()); } while (chunks.length && (keyword = parseKeyword(chunks))) { keywords.push(keyword); } if (keywords.length || attributes.length) { return { type: "u", attributes: attributes, keywords: keywords }; } throw new RangeError("Malformed unicode_extension"); } function parseKeyword(chunks) { var key; if (!KEY_REGEX.test(chunks[0])) { return; } key = chunks.shift(); var type = []; while (chunks.length && TYPE_REGEX.test(chunks[0])) { type.push(chunks.shift()); } var value = ""; if (type.length) { value = type.join(exports.SEPARATOR); } return [key, value]; } function parseTransformedExtension(chunks) { var lang; try { lang = parseUnicodeLanguageId2(chunks); } catch (e) { } var fields = []; while (chunks.length && TKEY_REGEX.test(chunks[0])) { var key = chunks.shift(); var value = []; while (chunks.length && ALPHANUM_3_8.test(chunks[0])) { value.push(chunks.shift()); } if (!value.length) { throw new RangeError('Missing tvalue for tkey "' + key + '"'); } fields.push([key, value.join(exports.SEPARATOR)]); } if (fields.length) { return { type: "t", fields: fields, lang: lang }; } throw new RangeError("Malformed transformed_extension"); } function parsePuExtension(chunks) { var exts = []; while (chunks.length && ALPHANUM_1_8.test(chunks[0])) { exts.push(chunks.shift()); } if (exts.length) { return { type: "x", value: exts.join(exports.SEPARATOR) }; } throw new RangeError("Malformed private_use_extension"); } function parseOtherExtensionValue(chunks) { var exts = []; while (chunks.length && ALPHANUM_2_8.test(chunks[0])) { exts.push(chunks.shift()); } if (exts.length) { return exts.join(exports.SEPARATOR); } return ""; } function parseExtensions(chunks) { if (!chunks.length) { return {extensions: []}; } var extensions = []; var unicodeExtension; var transformedExtension; var puExtension; var otherExtensionMap = {}; do { var type = chunks.shift(); switch (type) { case "u": case "U": if (unicodeExtension) { throw new RangeError("There can only be 1 -u- extension"); } unicodeExtension = parseUnicodeExtension(chunks); extensions.push(unicodeExtension); break; case "t": case "T": if (transformedExtension) { throw new RangeError("There can only be 1 -t- extension"); } transformedExtension = parseTransformedExtension(chunks); extensions.push(transformedExtension); break; case "x": case "X": if (puExtension) { throw new RangeError("There can only be 1 -x- extension"); } puExtension = parsePuExtension(chunks); extensions.push(puExtension); break; default: if (!OTHER_EXTENSION_TYPE.test(type)) { throw new RangeError("Malformed extension type"); } if (type in otherExtensionMap) { throw new RangeError("There can only be 1 -" + type + "- extension"); } var extension = { type: type, value: parseOtherExtensionValue(chunks) }; otherExtensionMap[extension.type] = extension; extensions.push(extension); break; } } while (chunks.length); return {extensions: extensions}; } function parseUnicodeLocaleId2(locale) { var chunks = locale.split(exports.SEPARATOR); var lang = parseUnicodeLanguageId2(chunks); return tslib_1.__assign({lang: lang}, parseExtensions(chunks)); } exports.parseUnicodeLocaleId = parseUnicodeLocaleId2; } }); // bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/emitter.js var require_emitter = __commonJS({ "bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/emitter.js": function(exports) { "use strict"; Object.defineProperty(exports, "__esModule", {value: true}); exports.emitUnicodeLocaleId = exports.emitUnicodeLanguageId = void 0; var tslib_1 = require_tslib(); function emitUnicodeLanguageId2(lang) { if (!lang) { return ""; } return tslib_1.__spreadArray([lang.lang, lang.script, lang.region], lang.variants || []).filter(Boolean).join("-"); } exports.emitUnicodeLanguageId = emitUnicodeLanguageId2; function emitUnicodeLocaleId2(_a) { var lang = _a.lang, extensions = _a.extensions; var chunks = [emitUnicodeLanguageId2(lang)]; for (var _i = 0, extensions_1 = extensions; _i < extensions_1.length; _i++) { var ext = extensions_1[_i]; chunks.push(ext.type); switch (ext.type) { case "u": chunks.push.apply(chunks, tslib_1.__spreadArray(tslib_1.__spreadArray([], ext.attributes), ext.keywords.reduce(function(all, kv) { return all.concat(kv); }, []))); break; case "t": chunks.push.apply(chunks, tslib_1.__spreadArray([emitUnicodeLanguageId2(ext.lang)], ext.fields.reduce(function(all, kv) { return all.concat(kv); }, []))); break; default: chunks.push(ext.value); break; } } return chunks.filter(Boolean).join("-"); } exports.emitUnicodeLocaleId = emitUnicodeLocaleId2; } }); // bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/data/aliases.js var require_aliases = __commonJS({ "bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/data/aliases.js": function(exports) { "use strict"; Object.defineProperty(exports, "__esModule", {value: true}); exports.variantAlias = exports.scriptAlias = exports.territoryAlias = exports.languageAlias = void 0; exports.languageAlias = { "aa-saaho": "ssy", "aam": "aas", "aar": "aa", "abk": "ab", "adp": "dz", "afr": "af", "agp": "apf", "ais": "ami", "aju": "jrb", "aka": "ak", "alb": "sq", "als": "sq", "amh": "am", "ara": "ar", "arb": "ar", "arg": "an", "arm": "hy", "art-lojban": "jbo", "asd": "snz", "asm": "as", "aue": "ktz", "ava": "av", "ave": "ae", "aym": "ay", "ayr": "ay", "ayx": "nun", "aze": "az", "azj": "az", "bak": "ba", "bam": "bm", "baq": "eu", "baz": "nvo", "bcc": "bal", "bcl": "bik", "bel": "be", "ben": "bn", "bgm": "bcg", "bh": "bho", "bhk": "fbl", "bih": "bho", "bis": "bi", "bjd": "drl", "bjq": "bzc", "bkb": "ebk", "bod": "bo", "bos": "bs", "bre": "br", "btb": "beb", "bul": "bg", "bur": "my", "bxk": "luy", "bxr": "bua", "cat": "ca", "ccq": "rki", "cel-gaulish": "xtg", "ces": "cs", "cha": "ch", "che": "ce", "chi": "zh", "chu": "cu", "chv": "cv", "cjr": "mom", "cka": "cmr", "cld": "syr", "cmk": "xch", "cmn": "zh", "cnr": "sr-ME", "cor": "kw", "cos": "co", "coy": "pij", "cqu": "quh", "cre": "cr", "cwd": "cr", "cym": "cy", "cze": "cs", "daf": "dnj", "dan": "da", "dap": "njz", "deu": "de", "dgo": "doi", "dhd": "mwr", "dik": "din", "diq": "zza", "dit": "dif", "div": "dv", "djl": "dze", "dkl": "aqd", "drh": "mn", "drr": "kzk", "drw": "fa-AF", "dud": "uth", "duj": "dwu", "dut": "nl", "dwl": "dbt", "dzo": "dz", "ekk": "et", "ell": "el", "elp": "amq", "emk": "man", "en-GB-oed": "en-GB-oxendict", "eng": "en", "epo": "eo", "esk": "ik", "est": "et", "eus": "eu", "ewe": "ee", "fao": "fo", "fas": "fa", "fat": "ak", "fij": "fj", "fin": "fi", "fra": "fr", "fre": "fr", "fry": "fy", "fuc": "ff", "ful": "ff", "gav": "dev", "gaz": "om", "gbc": "wny", "gbo": "grb", "geo": "ka", "ger": "de", "gfx": "vaj", "ggn": "gvr", "ggo": "esg", "ggr": "gtu", "gio": "aou", "gla": "gd", "gle": "ga", "glg": "gl", "gli": "kzk", "glv": "gv", "gno": "gon", "gre": "el", "grn": "gn", "gti": "nyc", "gug": "gn", "guj": "gu", "guv": "duz", "gya": "gba", "hat": "ht", "hau": "ha", "hbs": "sr-Latn", "hdn": "hai", "hea": "hmn", "heb": "he", "her": "hz", "him": "srx", "hin": "hi", "hmo": "ho", "hrr": "jal", "hrv": "hr", "hun": "hu", "hy-arevmda": "hyw", "hye": "hy", "i-ami": "ami", "i-bnn": "bnn", "i-default": "en-x-i-default", "i-enochian": "und-x-i-enochian", "i-hak": "hak", "i-klingon": "tlh", "i-lux": "lb", "i-mingo": "see-x-i-mingo", "i-navajo": "nv", "i-pwn": "pwn", "i-tao": "tao", "i-tay": "tay", "i-tsu": "tsu", "ibi": "opa", "ibo": "ig", "ice": "is", "ido": "io", "iii": "ii", "ike": "iu", "iku": "iu", "ile": "ie", "ill": "ilm", "ilw": "gal", "in": "id", "ina": "ia", "ind": "id", "ipk": "ik", "isl": "is", "ita": "it", "iw": "he", "izi": "eza", "jar": "jgk", "jav": "jv", "jeg": "oyb", "ji": "yi", "jpn": "ja", "jw": "jv", "kal": "kl", "kan": "kn", "kas": "ks", "kat": "ka", "kau": "kr", "kaz": "kk", "kdv": "zkd", "kgc": "tdf", "kgd": "ncq", "kgh": "kml", "khk": "mn", "khm": "km", "kik": "ki", "kin": "rw", "kir": "ky", "kmr": "ku", "knc": "kr", "kng": "kg", "knn": "kok", "koj": "kwv", "kom": "kv", "kon": "kg", "kor": "ko", "kpp": "jkm", "kpv": "kv", "krm": "bmf", "ktr": "dtp", "kua": "kj", "kur": "ku", "kvs": "gdj", "kwq": "yam", "kxe": "tvd", "kxl": "kru", "kzh": "dgl", "kzj": "dtp", "kzt": "dtp", "lao": "lo", "lat": "la", "lav": "lv", "lbk": "bnc", "leg": "enl", "lii": "raq", "lim": "li", "lin": "ln", "lit": "lt", "llo": "ngt", "lmm": "rmx", "ltz": "lb", "lub": "lu", "lug": "lg", "lvs": "lv", "mac": "mk", "mah": "mh", "mal": "ml", "mao": "mi", "mar": "mr", "may": "ms", "meg": "cir", "mgx": "jbk", "mhr": "chm", "mkd": "mk", "mlg": "mg", "mlt": "mt", "mnk": "man", "mnt": "wnn", "mo": "ro", "mof": "xnt", "mol": "ro", "mon": "mn", "mri": "mi", "msa": "ms", "mst": "mry", "mup": "raj", "mwd": "dmw", "mwj": "vaj", "mya": "my", "myd": "aog", "myt": "mry", "nad": "xny", "nau": "na", "nav": "nv", "nbf": "nru", "nbl": "nr", "nbx": "ekc", "ncp": "kdz", "nde": "nd", "ndo": "ng", "nep": "ne", "nld": "nl", "nln": "azd", "nlr": "nrk", "nno": "nn", "nns": "nbr", "nnx": "ngv", "no-bok": "nb", "no-bokmal": "nb", "no-nyn": "nn", "no-nynorsk": "nn", "nob": "nb", "noo": "dtd", "nor": "no", "npi": "ne", "nts": "pij", "nxu": "bpp", "nya": "ny", "oci": "oc", "ojg": "oj", "oji": "oj", "ori": "or", "orm": "om", "ory": "or", "oss": "os", "oun": "vaj", "pan": "pa", "pbu": "ps", "pcr": "adx", "per": "fa", "pes": "fa", "pli": "pi", "plt": "mg", "pmc": "huw", "pmu": "phr", "pnb": "lah", "pol": "pl", "por": "pt", "ppa": "bfy", "ppr": "lcq", "prs": "fa-AF", "pry": "prt", "pus": "ps", "puz": "pub", "que": "qu", "quz": "qu", "rmr": "emx", "rmy": "rom", "roh": "rm", "ron": "ro", "rum": "ro", "run": "rn", 4000 "rus": "ru", "sag": "sg", "san": "sa", "sap": "aqt", "sca": "hle", "scc": "sr", "scr": "hr", "sgl": "isk", "sgn-BE-FR": "sfb", "sgn-BE-NL": "vgt", "sgn-BR": "bzs", "sgn-CH-DE": "sgg", "sgn-CO": "csn", "sgn-DE": "gsg", "sgn-DK": "dsl", "sgn-ES": "ssp", "sgn-FR": "fsl", "sgn-GB": "bfi", "sgn-GR": "gss", "sgn-IE": "isg", "sgn-IT": "ise", "sgn-JP": "jsl", "sgn-MX": "mfs", "sgn-NI": "ncs", "sgn-NL": "dse", "sgn-NO": "nsi", "sgn-PT": "psr", "sgn-SE": "swl", "sgn-US": "ase", "sgn-ZA": "sfs", "sh": "sr-Latn", "sin": "si", "skk": "oyb", "slk": "sk", "slo": "sk", "slv": "sl", "sme": "se", "smo": "sm", "sna": "sn", "snd": "sd", "som": "so", "sot": "st", "spa": "es", "spy": "kln", "sqi": "sq", "src": "sc", "srd": "sc", "srp": "sr", "ssw": "ss", "sul": "sgd", "sum": "ulw", "sun": "su", "swa": "sw", "swc": "sw-CD", "swe": "sv", "swh": "sw", "tah": "ty", "tam": "ta", "tat": "tt", "tdu": "dtp", "tel": "te", "tgg": "bjp", "tgk": "tg", "tgl": "fil", "tha": "th", "thc": "tpo", "thw": "ola", "thx": "oyb", "tib": "bo", "tid": "itd", "tie": "ras", "tir": "ti", "tkk": "twm", "tl": "fil", "tlw": "weo", "tmp": "tyj", "tne": "kak", "tnf": "fa-AF", "ton": "to", "tsf": "taj", "tsn": "tn", "tso": "ts", "ttq": "tmh", "tuk": "tk", "tur": "tr", "tw": "ak", "twi": "ak", "uig": "ug", "ukr": "uk", "umu": "del", "und-aaland": "und-AX", "und-arevela": "und", "und-arevmda": "und", "und-bokmal": "und", "und-hakka": "und", "und-hepburn-heploc": "und-alalc97", "und-lojban": "und", "und-nynorsk": "und", "und-saaho": "und", "und-xiang": "und", "unp": "wro", "uok": "ema", "urd": "ur", "uzb": "uz", "uzn": "uz", "ven": "ve", "vie": "vi", "vol": "vo", "wel": "cy", "wgw": "wgb", "wit": "nol", "wiw": "nwo", "wln": "wa", "wol": "wo", "xba": "cax", "xho": "xh", "xia": "acn", "xkh": "waw", "xpe": "kpe", "xrq": "dmw", "xsj": "suj", "xsl": "den", "ybd": "rki", "ydd": "yi", "yen": "ynq", "yid": "yi", "yiy": "yrm", "yma": "lrr", "ymt": "mtm", "yor": "yo", "yos": "zom", "yuu": "yug", "zai": "zap", "zh-cmn": "zh", "zh-cmn-Hans": "zh-Hans", "zh-cmn-Hant": "zh-Hant", "zh-gan": "gan", "zh-guoyu": "zh", "zh-hakka": "hak", "zh-min": "nan-x-zh-min", "zh-min-nan": "nan", "zh-wuu": "wuu", "zh-xiang": "hsn", "zh-yue": "yue", "zha": "za", "zho": "zh", "zir": "scv", "zsm": "ms", "zul": "zu", "zyb": "za" }; exports.territoryAlias = { "100": "BG", "104": "MM", "108": "BI", "112": "BY", "116": "KH", "120": "CM", "124": "CA", "132": "CV", "136": "KY", "140": "CF", "144": "LK", "148": "TD", "152": "CL", "156": "CN", "158": "TW", "162": "CX", "166": "CC", "170": "CO", "172": "RU AM AZ BY GE KG KZ MD TJ TM UA UZ", "174": "KM", "175": "YT", "178": "CG", "180": "CD", "184": "CK", "188": "CR", "191": "HR", "192": "CU", "196": "CY", "200": "CZ SK", "203": "CZ", "204": "BJ", "208": "DK", "212": "DM", "214": "DO", "218": "EC", "222": "SV", "226": "GQ", "230": "ET", "231": "ET", "232": "ER", "233": "EE", "234": "FO", "238": "FK", "239": "GS", "242": "FJ", "246": "FI", "248": "AX", "249": "FR", "250": "FR", "254": "GF", "258": "PF", "260": "TF", "262": "DJ", "266": "GA", "268": "GE", "270": "GM", "275": "PS", "276": "DE", "278": "DE", "280": "DE", "288": "GH", "292": "GI", "296": "KI", "300": "GR", "304": "GL", "308": "GD", "312": "GP", "316": "GU", "320": "GT", "324": "GN", "328": "GY", "332": "HT", "334": "HM", "336": "VA", "340": "HN", "344": "HK", "348": "HU", "352": "IS", "356": "IN", "360": "ID", "364": "IR", "368": "IQ", "372": "IE", "376": "IL", "380": "IT", "384": "CI", "388": "JM", "392": "JP", "398": "KZ", "400": "JO", "404": "KE", "408": "KP", "410": "KR", "414": "KW", "417": "KG", "418": "LA", "422": "LB", "426": "LS", "428": "LV", "430": "LR", "434": "LY", "438": "LI", "440": "LT", "442": "LU", "446": "MO", "450": "MG", "454": "MW", "458": "MY", "462": "MV", "466": "ML", "470": "MT", "474": "MQ", "478": "MR", "480": "MU", "484": "MX", "492": "MC", "496": "MN", "498": "MD", "499": "ME", "500": "MS", "504": "MA", "508": "MZ", "512": "OM", "516": "NA", "520": "NR", "524": "NP", "528": "NL", "530": "CW SX BQ", "531": "CW", "532": "CW SX BQ", "533": "AW", "534": "SX", "535": "BQ", "536": "SA IQ", "540": "NC", "548": "VU", "554": "NZ", "558": "NI", "562": "NE", "566": "NG", "570": "NU", "574": "NF", "578": "NO", "580": "MP", "581": "UM", "582": "FM MH MP PW", "583": "FM", "584": "MH", "585": "PW", "586": "PK", "591": "PA", "598": "PG", "600": "PY", "604": "PE", "608": "PH", "612": "PN", "616": "PL", "620": "PT", "624": "GW", "626": "TL", "630": "PR", "634": "QA", "638": "RE", "642": "RO", "643": "RU", "646": "RW", "652": "BL", "654": "SH", "659": "KN", "660": "AI", "662": "LC", "663": "MF", "666": "PM", "670": "VC", "674": "SM", "678": "ST", "682": "SA", "686": "SN", "688": "RS", "690": "SC", "694": "SL", "702": "SG", "703": "SK", "704": "VN", "705": "SI", "706": "SO", "710": "ZA", "716": "ZW", "720": "YE", "724": "ES", "728": "SS", "729": "SD", "732": "EH", "736": "SD", "740": "SR", "744": "SJ", "748": "SZ", "752": "SE", "756": "CH", "760": "SY", "762": "TJ", "764": "TH", "768": "TG", "772": "TK", "776": "TO", "780": "TT", "784": "AE", "788": "TN", "792": "TR", "795": "TM", "796": "TC", "798": "TV", "800": "UG", "804": "UA", "807": "MK", "810": "RU AM AZ BY EE GE KZ KG LV LT MD TJ TM UA UZ", "818": "EG", "826": "GB", "830": "JE GG", "831": "GG", "832": "JE", "833": "IM", "834": "TZ", "840": "US", "850": "VI", "854": "BF", "858": "UY", "860": "UZ", "862": "VE", "876": "WF", "882": "WS", "886": "YE", "887": "YE", "890": "RS ME SI HR MK BA", "891": "RS ME", "894": "ZM", "958": "AA", "959": "QM", "960": "QN", "962": "QP", "963": "QQ", "964": "QR", "965": "QS", "966": "QT", "967": "EU", "968": "QV", "969": "QW", "970": "QX", "971": "QY", "972": "QZ", "973": "XA", "974": "XB", "975": "XC", "976": "XD", "977": "XE", "978": "XF", "979": "XG", "980": "XH", "981": "XI", "982": "XJ", "983": "XK", "984": "XL", "985": "XM", "986": "XN", "987": "XO", "988": "XP", "989": "XQ", "990": "XR", "991": "XS", "992": "XT", "993": "XU", "994": "XV", "995": "XW", "996": "XX", "997": "XY", "998": "XZ", "999": "ZZ", "004": "AF", "008": "AL", "010": "AQ", "012": "DZ", "016": "AS", "020": "AD", "024": "AO", "028": "AG", "031": "AZ", "032": "AR", "036": "AU", "040": "AT", "044": "BS", "048": "BH", "050": "BD", "051": "AM", "052": "BB", "056": "BE", "060": "BM", "062": "034 143", "064": "BT", "068": "BO", "070": "BA", "072": "BW", "074": "BV", "076": "BR", "084": "BZ", "086": "IO", "090": "SB", "092": "VG", "096": "BN", "AAA": "AA", "ABW": "AW", "AFG": "AF", "AGO": "AO", "AIA": "AI", "ALA": "AX", "ALB": "AL", "AN": "CW SX BQ", "AND": "AD", "ANT": "CW SX BQ", "ARE": "AE", "ARG": "AR", "ARM": "AM", "ASC": "AC", "ASM": "AS", "ATA": "AQ", "ATF": "TF", "ATG": "AG", "AUS": "AU", "AUT": "AT", "AZE": "AZ", "BDI": "BI", "BEL": "BE", "BEN": "BJ", "BES": "BQ", "BFA": "BF", "BGD": "BD", "BGR": "BG", "BHR": "BH", "BHS": "BS", "BIH": "BA", "BLM": "BL", "BLR": "BY", "BLZ": "BZ", "BMU": "BM", "BOL": "BO", "BRA": "BR", "BRB": "BB", "BRN": "BN", "BTN": "BT", "BU": "MM", "BUR": "MM", "BVT": "BV", "BWA": "BW", "CAF": "CF", "CAN": "CA", "CCK": "CC", "CHE": "CH", "CHL": "CL", "CHN": "CN", "CIV": "CI", "CMR": "CM", "COD": "CD", "COG": "CG", "COK": "CK", "COL": "CO", "COM": "KM", "CPT": "CP", "CPV": "CV", "CRI": "CR", "CS": "RS ME", "CT": "KI", "CUB": "CU", "CUW": "CW", "CXR": "CX", "CYM": "KY", "CYP": "CY", "CZE": "CZ", "DD": "DE", "DDR": "DE", "DEU": "DE", "DGA": "DG", "DJI": "DJ", "DMA": "DM", "DNK": "DK", "DOM": "DO", "DY": "BJ", "DZA": "DZ", "ECU": "EC", "EGY": "EG", "ERI": "ER", "ESH": "EH", "ESP": "ES", "EST": "EE", "ETH": "ET", "FIN": "FI", "FJI": "FJ", "FLK": "FK", "FQ": "AQ TF", "FRA": "FR", "FRO": "FO", "FSM": "FM", "FX": "FR", "FXX": "FR", "GAB": "GA", "GBR": "GB", "GEO": "GE", "GGY": "GG", "GHA": "GH", "GIB": "GI", "GIN": "GN", "GLP": "GP", "GMB": "GM", "GNB": "GW", "GNQ": "GQ", "GRC": "GR", "GRD": "GD", "GRL": "GL", "GTM": "GT", "GUF": "GF", "GUM": "GU", "GUY": "GY", "HKG": "HK", "HMD": "HM", "HND": "HN", "HRV": "HR", "HTI": "HT", "HUN": "HU", "HV": "BF", "IDN": "ID", "IMN": "IM", "IND": "IN", "IOT": "IO", "IRL": "IE", "IRN": "IR", "IRQ": "IQ", "ISL": "IS", "ISR": "IL", "ITA": "IT", "JAM": "JM", "JEY": "JE", "JOR": "JO", "JPN": "JP", "JT": "UM", "KAZ": "KZ", "KEN": "KE", "KGZ": "KG", "KHM": "KH", "KIR": "KI", "KNA": "KN", "KOR": "KR", "KWT": "KW", "LAO": "LA", "LBN": "LB", "LBR": "LR", "LBY": "LY", "LCA": "LC", "LIE": "LI", "LKA": "LK", "LSO": "LS", "LTU": "LT", "LUX": "LU", "LVA": "LV", "MAC": "MO", "MAF": "MF", "MAR": "MA", "MCO": "MC", "MDA": "MD", "MDG": "MG", "MDV": "MV", "MEX": "MX", "MHL": "MH", "MI": "UM", "MKD": "MK", "MLI": "ML", "MLT": "MT", "MMR": "MM", "MNE": "ME", "MNG": "MN", "MNP": "MP", "MOZ": "MZ", "MRT": "MR", "MSR": "MS", "MTQ": "MQ", "MUS": "MU", "MWI": "MW", "MYS": "MY", "MYT": "YT", "NAM": "NA", "NCL": "NC", "NER": "NE", "NFK": "NF", "NGA": "NG", "NH": "VU", "NIC": "NI", "NIU": "NU", "NLD": "NL", "NOR": "NO", "NPL": "NP", "NQ": "AQ", "NRU": "NR", "NT": "SA IQ", "NTZ": "SA IQ", "NZL": "NZ", "OMN": "OM", "PAK": "PK", "PAN": "PA", "PC": "FM MH MP PW", "PCN": "PN", "PER": "PE", "PHL": "PH", "PLW": "PW", "PNG": "PG", "POL": "PL", "PRI": "PR", "PRK": "KP", "PRT": "PT", "PRY": "PY", "PSE": "PS", "PU": "UM", "PYF": "PF", "PZ": "PA", "QAT": "QA", "QMM": "QM", "QNN": "QN", "QPP": "QP", "QQQ": "QQ", "QRR": "QR", "QSS": "QS", "QTT": "QT", "QU": "EU", "QUU": "EU", "QVV": "QV", "QWW": "QW", "QXX": "QX", "QYY": "QY", "QZZ": "QZ", "REU": "RE", "RH": "ZW", "ROU": "RO", "RUS": "RU", "RWA": "RW", "SAU": "SA", "SCG": "RS ME", "SDN": "SD", "SEN": "SN", "SGP": "SG", "SGS": "GS", "SHN": "SH", "SJM": "SJ", "SLB": "SB", "SLE": "SL", "SLV": "SV", "SMR": "SM", "SOM": "SO", "SPM": "PM", "SRB": "RS", "SSD": "SS", "STP": "ST", "SU": "RU AM AZ BY EE GE KZ KG LV LT MD TJ TM UA UZ", "SUN": "RU AM AZ BY EE GE KZ KG LV LT MD TJ TM UA UZ", "SUR": "SR", "SVK": "SK", "SVN": "SI", "SWE": "SE", "SWZ": "SZ", "SXM": "SX", "SYC": "SC", "SYR": "SY", "TAA": "TA", "TCA": "TC", "TCD": "TD", "TGO": "TG", "THA": "TH", "TJK": "TJ", "TKL": "TK", "TKM": "TM", "TLS": "TL", "TMP": "TL", "TON": "TO", "TP": "TL", "TTO": "TT", "TUN": "TN", "TUR": "TR", "TUV": "TV", "TWN": "TW", "TZA": "TZ", "UGA": "UG", "UK": "GB", "UKR": "UA", "UMI": "UM", "URY": "UY", "USA": "US", "UZB": "UZ", "VAT": "VA", "VCT": "VC", "VD": "VN", "VEN": "VE", "VGB": "VG", "VIR": "VI", "VNM": "VN", "VUT": "VU", "WK": "UM", "WLF": "WF", 318 "WSM": "WS", "XAA": "XA", "XBB": "XB", "XCC": "XC", "XDD": "XD", "XEE": "XE", "XFF": "XF", "XGG": "XG", "XHH": "XH", "XII": "XI", "XJJ": "XJ", "XKK": "XK", "XLL": "XL", "XMM": "XM", "XNN": "XN", "XOO": "XO", "XPP": "XP", "XQQ": "XQ", "XRR": "XR", "XSS": "XS", "XTT": "XT", "XUU": "XU", "XVV": "XV", "XWW": "XW", "XXX": "XX", "XYY": "XY", "XZZ": "XZ", "YD": "YE", "YEM": "YE", "YMD": "YE", "YU": "RS ME", "YUG": "RS ME", "ZAF": "ZA", "ZAR": "CD", "ZMB": "ZM", "ZR": "CD", "ZWE": "ZW", "ZZZ": "ZZ" 4000 }; exports.scriptAlias = { "Qaai": "Zinh" }; exports.variantAlias = { "heploc": "alalc97", "polytoni": "polyton" }; } }); // node_modules/cldr-core/supplemental/likelySubtags.json var require_likelySubtags = __commonJS({ "node_modules/cldr-core/supplemental/likelySubtags.json": function(exports, module) { module.exports = { supplemental: { version: { _unicodeVersion: "13.0.0", _cldrVersion: "39" }, likelySubtags: { aa: "aa-Latn-ET", aai: "aai-Latn-ZZ", aak: "aak-Latn-ZZ", aau: "aau-Latn-ZZ", ab: "ab-Cyrl-GE", abi: "abi-Latn-ZZ", abq: "abq-Cyrl-ZZ", abr: "abr-Latn-GH", abt: "abt-Latn-ZZ", aby: "aby-Latn-ZZ", acd: "acd-Latn-ZZ", ace: "ace-Latn-ID", ach: "ach-Latn-UG", ada: "ada-Latn-GH", ade: "ade-Latn-ZZ", adj: "adj-Latn-ZZ", adp: "adp-Tibt-BT", ady: "ady-Cyrl-RU", adz: "adz-Latn-ZZ", ae: "ae-Avst-IR", aeb: "aeb-Arab-TN", aey: "aey-Latn-ZZ", af: "af-Latn-ZA", agc: "agc-Latn-ZZ", agd: "agd-Latn-ZZ", agg: "agg-Latn-ZZ", agm: "agm-Latn-ZZ", ago: "ago-Latn-ZZ", agq: "agq-Latn-CM", aha: "aha-Latn-ZZ", ahl: "ahl-Latn-ZZ", aho: "aho-Ahom-IN", ajg: "ajg-Latn-ZZ", ak: "ak-Latn-GH", akk: "akk-Xsux-IQ", ala: "ala-Latn-ZZ", ali: "ali-Latn-ZZ", aln: "aln-Latn-XK", alt: "alt-Cyrl-RU", am: "am-Ethi-ET", amm: "amm-Latn-ZZ", amn: "amn-Latn-ZZ", amo: "amo-Latn-NG", amp: "amp-Latn-ZZ", an: "an-Latn-ES", anc: "anc-Latn-ZZ", ank: "ank-Latn-ZZ", ann: "ann-Latn-ZZ", any: "any-Latn-ZZ", aoj: "aoj-Latn-ZZ", aom: "aom-Latn-ZZ", aoz: "aoz-Latn-ID", apc: "apc-Arab-ZZ", apd: "apd-Arab-TG", ape: "ape-Latn-ZZ", apr: "apr-Latn-ZZ", aps: "aps-Latn-ZZ", apz: "apz-Latn-ZZ", ar: "ar-Arab-EG", arc: "arc-Armi-IR", "arc-Nbat": "arc-Nbat-JO", "arc-Palm": "arc-Palm-SY", arh: "arh-Latn-ZZ", arn: "arn-Latn-CL", aro: "aro-Latn-BO", arq: "arq-Arab-DZ", ars: "ars-Arab-SA", ary: "ary-Arab-MA", arz: "arz-Arab-EG", as: "as-Beng-IN", asa: "asa-Latn-TZ", ase: "ase-Sgnw-US", asg: "asg-Latn-ZZ", aso: "aso-Latn-ZZ", ast: "ast-Latn-ES", ata: "ata-Latn-ZZ", atg: "atg-Latn-ZZ", atj: "atj-Latn-CA", auy: "auy-Latn-ZZ", av: "av-Cyrl-RU", avl: "avl-Arab-ZZ", avn: "avn-Latn-ZZ", avt: "avt-Latn-ZZ", avu: "avu-Latn-ZZ", awa: "awa-Deva-IN", awb: "awb-Latn-ZZ", awo: "awo-Latn-ZZ", awx: "awx-Latn-ZZ", ay: "ay-Latn-BO", ayb: "ayb-Latn-ZZ", az: "az-Latn-AZ", "az-Arab": "az-Arab-IR", "az-IQ": "az-Arab-IQ", "az-IR": "az-Arab-IR", "az-RU": "az-Cyrl-RU", ba: "ba-Cyrl-RU", bal: "bal-Arab-PK", ban: "ban-Latn-ID", bap: "bap-Deva-NP", bar: "bar-Latn-AT", bas: "bas-Latn-CM", bav: "bav-Latn-ZZ", bax: "bax-Bamu-CM", bba: "bba-Latn-ZZ", bbb: "bbb-Latn-ZZ", bbc: "bbc-Latn-ID", bbd: "bbd-Latn-ZZ", bbj: "bbj-Latn-CM", bbp: "bbp-Latn-ZZ", bbr: "bbr-Latn-ZZ", bcf: "bcf-Latn-ZZ", bch: "bch-Latn-ZZ", bci: "bci-Latn-CI", bcm: "bcm-Latn-ZZ", bcn: "bcn-Latn-ZZ", bco: "bco-Latn-ZZ", bcq: "bcq-Ethi-ZZ", bcu: "bcu-Latn-ZZ", bdd: "bdd-Latn-ZZ", be: "be-Cyrl-BY", bef: "bef-Latn-ZZ", beh: "beh-Latn-ZZ", bej: "bej-Arab-SD", bem: "bem-Latn-ZM", bet: "bet-Latn-ZZ", bew: "bew-Latn-ID", bex: "bex-Latn-ZZ", bez: "bez-Latn-TZ", bfd: "bfd-Latn-CM", bfq: "bfq-Taml-IN", bft: "bft-Arab-PK", bfy: "bfy-Deva-IN", bg: "bg-Cyrl-BG", bgc: "bgc-Deva-IN", bgn: "bgn-Arab-PK", bgx: "bgx-Grek-TR", bhb: "bhb-Deva-IN", bhg: "bhg-Latn-ZZ", bhi: "bhi-Deva-IN", bhl: "bhl-Latn-ZZ", bho: "bho-Deva-IN", bhy: "bhy-Latn-ZZ", bi: "bi-Latn-VU", bib: "bib-Latn-ZZ", big: "big-Latn-ZZ", bik: "bik-Latn-PH", bim: "bim-Latn-ZZ", bin: "bin-Latn-NG", bio: "bio-Latn-ZZ", biq: "biq-Latn-ZZ", bjh: "bjh-Latn-ZZ", bji: "bji-Ethi-ZZ", bjj: "bjj-Deva-IN", bjn: "bjn-Latn-ID", bjo: "bjo-Latn-ZZ", bjr: "bjr-Latn-ZZ", bjt: "bjt-Latn-SN", bjz: "bjz-Latn-ZZ", bkc: "bkc-Latn-ZZ", bkm: "bkm-Latn-CM", bkq: "bkq-Latn-ZZ", bku: "bku-Latn-PH", bkv: "bkv-Latn-ZZ", blt: "blt-Tavt-VN", bm: "bm-Latn-ML", bmh: "bmh-Latn-ZZ", bmk: "bmk-Latn-ZZ", bmq: "bmq-Latn-ML", bmu: "bmu-Latn-ZZ", bn: "bn-Beng-BD", bng: "bng-Latn-ZZ", bnm: "bnm-Latn-ZZ", bnp: "bnp-Latn-ZZ", bo: "bo-Tibt-CN", boj: "boj-Latn-ZZ", bom: "bom-Latn-ZZ", bon: "bon-Latn-ZZ", bpy: "bpy-Beng-IN", bqc: "bqc-Latn-ZZ", bqi: "bqi-Arab-IR", bqp: "bqp-Latn-ZZ", bqv: "bqv-Latn-CI", br: "br-Latn-FR", bra: "bra-Deva-IN", brh: "brh-Arab-PK", brx: "brx-Deva-IN", brz: "brz-Latn-ZZ", bs: "bs-Latn-BA", bsj: "bsj-Latn-ZZ", bsq: "bsq-Bass-LR", bss: "bss-Latn-CM", bst: "bst-Ethi-ZZ", bto: "bto-Latn-PH", btt: "btt-Latn-ZZ", btv: "btv-Deva-PK", bua: "bua-Cyrl-RU", buc: "buc-Latn-YT", bud: "bud-Latn-ZZ", bug: "bug-Latn-ID", buk: "buk-Latn-ZZ", bum: "bum-Latn-CM", buo: "buo-Latn-ZZ", bus: "bus-Latn-ZZ", buu: "buu-Latn-ZZ", bvb: "bvb-Latn-GQ", bwd: "bwd-Latn-ZZ", bwr: "bwr-Latn-ZZ", bxh: "bxh-Latn-ZZ", bye: "bye-Latn-ZZ", byn: "byn-Ethi-ER", byr: "byr-Latn-ZZ", bys: "bys-Latn-ZZ", byv: "byv-Latn-CM", byx: "byx-Latn-ZZ", bza: "bza-Latn-ZZ", bze: "bze-Latn-ML", bzf: "bzf-Latn-ZZ", bzh: "bzh-Latn-ZZ", bzw: "bzw-Latn-ZZ", ca: "ca-Latn-ES", cad: "cad-Latn-US", can: "can-Latn-ZZ", cbj: "cbj-Latn-ZZ", cch: "cch-Latn-NG", ccp: "ccp-Cakm-BD", ce: "ce-Cyrl-RU", ceb: "ceb-Latn-PH", cfa: "cfa-Latn-ZZ", cgg: "cgg-Latn-UG", ch: "ch-Latn-GU", chk: "chk-Latn-FM", chm: "chm-Cyrl-RU", cho: "cho-Latn-US", chp: "chp-Latn-CA", chr: "chr-Cher-US", cic: "cic-Latn-US", cja: "cja-Arab-KH", cjm: "cjm-Cham-VN", cjv: "cjv-Latn-ZZ", ckb: "ckb-Arab-IQ", ckl: "ckl-Latn-ZZ", cko: "cko-Latn-ZZ", cky: "cky-Latn-ZZ", cla: "cla-Latn-ZZ", cme: "cme-Latn-ZZ", cmg: "cmg-Soyo-MN", co: "co-Latn-FR", cop: "cop-Copt-EG", cps: "cps-Latn-PH", cr: "cr-Cans-CA", crh: "crh-Cyrl-UA", crj: "crj-Cans-CA", crk: "crk-Cans-CA", crl: "crl-Cans-CA", crm: "crm-Cans-CA", crs: "crs-Latn-SC", cs: "cs-Latn-CZ", csb: "csb-Latn-PL", csw: "csw-Cans-CA", ctd: "ctd-Pauc-MM", cu: "cu-Cyrl-RU", "cu-Glag": "cu-Glag-BG", cv: "cv-Cyrl-RU", cy: "cy-Latn-GB", da: "da-Latn-DK", dad: "dad-Latn-ZZ", daf: "daf-Latn-CI", dag: "dag-Latn-ZZ", dah: "dah-Latn-ZZ", dak: "dak-Latn-US", dar: "dar-Cyrl-RU", dav: "dav-Latn-KE", dbd: "dbd-Latn-ZZ", dbq: "dbq-Latn-ZZ", dcc: "dcc-Arab-IN", ddn: "ddn-Latn-ZZ", de: "de-Latn-DE", ded: "ded-Latn-ZZ", den: "den-Latn-CA", dga: "dga-Latn-ZZ", dgh: "dgh-Latn-ZZ", dgi: "dgi-Latn-ZZ", dgl: "dgl-Arab-ZZ", dgr: "dgr-Latn-CA", dgz: "dgz-Latn-ZZ", dia: "dia-Latn-ZZ", dje: "dje-Latn-NE", dmf: "dmf-Medf-NG", dnj: "dnj-Latn-CI", dob: "dob-Latn-ZZ", doi: "doi-Deva-IN", dop: "dop-Latn-ZZ", dow: "dow-Latn-ZZ", drh: "drh-Mong-CN", dri: "dri-Latn-ZZ", drs: "drs-Ethi-ZZ", dsb: "dsb-Latn-DE", dtm: "dtm-Latn-ML", dtp: "dtp-Latn-MY", dts: "dts-Latn-ZZ", dty: "dty-Deva-NP", dua: "dua-Latn-CM", duc: "duc-Latn-ZZ", dud: "dud-Latn-ZZ", dug: "dug-Latn-ZZ", dv: "dv-Thaa-MV", dva: "dva-Latn-ZZ", dww: "dww-Latn-ZZ", dyo: "dyo-Latn-SN", dyu: "dyu-Latn-BF", dz: "dz-Tibt-BT", dzg: "dzg-Latn-ZZ", ebu: "ebu-Latn-KE", ee: "ee-Latn-GH", efi: "efi-Latn-NG", egl: "egl-Latn-IT", egy: "egy-Egyp-EG", eka: "eka-Latn-ZZ", eky: "eky-Kali-MM", el: "el-Grek-GR", ema: "ema-Latn-ZZ", emi: "emi-Latn-ZZ", en: "en-Latn-US", "en-Shaw": "en-Shaw-GB", enn: "enn-Latn-ZZ", enq: "enq-Latn-ZZ", eo: "eo-Latn-001", eri: "eri-Latn-ZZ", es: "es-Latn-ES", esg: "esg-Gonm-IN", esu: "esu-Latn-US", et: "et-Latn-EE", etr: "etr-Latn-ZZ", ett: "ett-Ital-IT", etu: "etu-Latn-ZZ", etx: "etx-Latn-ZZ", eu: "eu-Latn-ES", ewo: "ewo-Latn-CM", ext: "ext-Latn-ES", eza: "eza-Latn-ZZ", fa: "fa-Arab-IR", faa: "faa-Latn-ZZ", fab: "fab-Latn-ZZ", fag: "fag-Latn-ZZ", fai: "fai-Latn-ZZ", fan: "fan-Latn-GQ", ff: "ff-Latn-SN", "ff-Adlm": "ff-Adlm-GN", ffi: "ffi-Latn-ZZ", ffm: "ffm-Latn-ML", fi: "fi-Latn-FI", fia: "fia-Arab-SD", fil: "fil-Latn-PH", fit: "fit-Latn-SE", fj: "fj-Latn-FJ", flr: "flr-Latn-ZZ", fmp: "fmp-Latn-ZZ", fo: "fo-Latn-FO", fod: "fod-Latn-ZZ", fon: "fon-Latn-BJ", for: "for-Latn-ZZ", fpe: "fpe-Latn-ZZ", fqs: "fqs-Latn-ZZ", fr: "fr-Latn-FR", frc: "frc-Latn-US", frp: "frp-Latn-FR", frr: "frr-Latn-DE", frs: "frs-Latn-DE", fub: "fub-Arab-CM", fud: "fud-Latn-WF", fue: "fue-Latn-ZZ", fuf: "fuf-Latn-GN", fuh: "fuh-Latn-ZZ", fuq: "fuq-Latn-NE", fur: "fur-Latn-IT", fuv: "fuv-Latn-NG", fuy: "fuy-Latn-ZZ", fvr: "fvr-Latn-SD", fy: "fy-Latn-NL", ga: "ga-Latn-IE", gaa: "gaa-Latn-GH", gaf: "gaf-Latn-ZZ", gag: "gag-Latn-MD", gah: "gah-Latn-ZZ", gaj: "gaj-Latn-ZZ", gam: "gam-Latn-ZZ", gan: "gan-Hans-CN", gaw: "gaw-Latn-ZZ", gay: "gay-Latn-ID", gba: "gba-Latn-ZZ", gbf: "gbf-Latn-ZZ", gbm: "gbm-Deva-IN", gby: "gby-Latn-ZZ", gbz: "gbz-Arab-IR", gcr: "gcr-Latn-GF", gd: "gd-Latn-GB", gde: "gde-Latn-ZZ", gdn: "gdn-Latn-ZZ", gdr: "gdr-Latn-ZZ", geb: "geb-Latn-ZZ", gej: "gej-Latn-ZZ", gel: "gel-Latn-ZZ", gez: "gez-Ethi-ET", gfk: "gfk-Latn-ZZ", ggn: "ggn-Deva-NP", ghs: "ghs-Latn-ZZ", gil: "gil-Latn-KI", gim: "gim-Latn-ZZ", gjk: "gjk-Arab-PK", gjn: "gjn-Latn-ZZ", gju: "gju-Arab-PK", gkn: "gkn-Latn-ZZ", gkp: "gkp-Latn-ZZ", gl: "gl-Latn-ES", glk: "glk-Arab-IR", gmm: "gmm-Latn-ZZ", gmv: "gmv-Ethi-ZZ", gn: "gn-Latn-PY", gnd: "gnd-Latn-ZZ", gng: "gng-Latn-ZZ", god: "god-Latn-ZZ", gof: "gof-Ethi-ZZ", goi: "goi-Latn-ZZ", gom: "gom-Deva-IN", gon: "gon-Telu-IN", gor: "gor-Latn-ID", gos: "gos-Latn-NL", got: "got-Goth-UA", grb: "grb-Latn-ZZ", grc: "grc-Cprt-CY", "grc-Linb": "grc-Linb-GR", grt: "grt-Beng-IN", grw: "grw-Latn-ZZ", gsw: "gsw-Latn-CH", gu: "gu-Gujr-IN", gub: "gub-Latn-BR", guc: "guc-Latn-CO", gud: "gud-Latn-ZZ", gur: "gur-Latn-GH", guw: "guw-Latn-ZZ", gux: "gux-Latn-ZZ", guz: "guz-Latn-KE", gv: "gv-Latn-IM", gvf: "gvf-Latn-ZZ", gvr: "gvr-Deva-NP", gvs: "gvs-Latn-ZZ", gwc: "gwc-Arab-ZZ", gwi: "gwi-Latn-CA", gwt: "gwt-Arab-ZZ", gyi: "gyi-Latn-ZZ", ha: "ha-Latn-NG", "ha-CM": "ha-Arab-CM", "ha-SD": "ha-Arab-SD", hag: "hag-Latn-ZZ", hak: "hak-Hans-CN", ham: "ham-Latn-ZZ", haw: "haw-Latn-US", haz: "haz-Arab-AF", hbb: "hbb-Latn-ZZ", hdy: "hdy-Ethi-ZZ", he: "he-Hebr-IL", hhy: "hhy-Latn-ZZ", hi: "hi-Deva-IN", hia: "hia-Latn-ZZ", hif: "hif-Latn-FJ", hig: "hig-Latn-ZZ", hih: "hih-Latn-ZZ", hil: "hil-Latn-PH", hla: "hla-Latn-ZZ", hlu: "hlu-Hluw-TR", hmd: "hmd-Plrd-CN", hmt: "hmt-Latn-ZZ", hnd: "hnd-Arab-PK", hne: "hne-Deva-IN", hnj: "hnj-Hmng-LA", hnn: "hnn-Latn-PH", hno: "hno-Arab-PK", ho: "ho-Latn-PG", hoc: "hoc-Deva-IN", hoj: "hoj-Deva-IN", hot: "hot-Latn-ZZ", hr: "hr-Latn-HR", hsb: "hsb-Latn-DE", hsn: "hsn-Hans-CN", ht: "ht-Latn-HT", hu: "hu-Latn-HU", hui: "hui-Latn-ZZ", hy: "hy-Armn-AM", hz: "hz-Latn-NA", ia: "ia-Latn-001", ian: "ian-Latn-ZZ", iar: "iar-Latn-ZZ", iba: "iba-Latn-MY", ibb: "ibb-Latn-NG", iby: "iby-Latn-ZZ", ica: "ica-Latn-ZZ", ich: "ich-Latn 4000 -ZZ", id: "id-Latn-ID", idd: "idd-Latn-ZZ", idi: "idi-Latn-ZZ", idu: "idu-Latn-ZZ", ife: "ife-Latn-TG", ig: "ig-Latn-NG", igb: "igb-Latn-ZZ", ige: "ige-Latn-ZZ", ii: "ii-Yiii-CN", ijj: "ijj-Latn-ZZ", ik: "ik-Latn-US", ikk: "ikk-Latn-ZZ", ikt: "ikt-Latn-CA", ikw: "ikw-Latn-ZZ", ikx: "ikx-Latn-ZZ", ilo: "ilo-Latn-PH", imo: "imo-Latn-ZZ", in: "in-Latn-ID", inh: "inh-Cyrl-RU", io: "io-Latn-001", iou: "iou-Latn-ZZ", iri: "iri-Latn-ZZ", is: "is-Latn-IS", it: "it-Latn-IT", iu: "iu-Cans-CA", iw: "iw-Hebr-IL", iwm: "iwm-Latn-ZZ", iws: "iws-Latn-ZZ", izh: "izh-Latn-RU", izi: "izi-Latn-ZZ", ja: "ja-Jpan-JP", jab: "jab-Latn-ZZ", jam: "jam-Latn-JM", jar: "jar-Latn-ZZ", jbo: "jbo-Latn-001", jbu: "jbu-Latn-ZZ", jen: "jen-Latn-ZZ", jgk: "jgk-Latn-ZZ", jgo: "jgo-Latn-CM", ji: "ji-Hebr-UA", jib: "jib-Latn-ZZ", jmc: "jmc-Latn-TZ", jml: "jml-Deva-NP", jra: "jra-Latn-ZZ", jut: "jut-Latn-DK", jv: "jv-Latn-ID", jw: "jw-Latn-ID", ka: "ka-Geor-GE", kaa: "kaa-Cyrl-UZ", kab: "kab-Latn-DZ", kac: "kac-Latn-MM", kad: "kad-Latn-ZZ", kai: "kai-Latn-ZZ", kaj: "kaj-Latn-NG", kam: "kam-Latn-KE", kao: "kao-Latn-ML", kbd: "kbd-Cyrl-RU", kbm: "kbm-Latn-ZZ", kbp: "kbp-Latn-ZZ", kbq: "kbq-Latn-ZZ", kbx: "kbx-Latn-ZZ", kby: "kby-Arab-NE", kcg: "kcg-Latn-NG", kck: "kck-Latn-ZW", kcl: "kcl-Latn-ZZ", kct: "kct-Latn-ZZ", kde: "kde-Latn-TZ", kdh: "kdh-Arab-TG", kdl: "kdl-Latn-ZZ", kdt: "kdt-Thai-TH", kea: "kea-Latn-CV", ken: "ken-Latn-CM", kez: "kez-Latn-ZZ", kfo: "kfo-Latn-CI", kfr: "kfr-Deva-IN", kfy: "kfy-Deva-IN", kg: "kg-Latn-CD", kge: "kge-Latn-ID", kgf: "kgf-Latn-ZZ", kgp: "kgp-Latn-BR", kha: "kha-Latn-IN", khb: "khb-Talu-CN", khn: "khn-Deva-IN", khq: "khq-Latn-ML", khs: "khs-Latn-ZZ", kht: "kht-Mymr-IN", khw: "khw-Arab-PK", khz: "khz-Latn-ZZ", ki: "ki-Latn-KE", kij: "kij-Latn-ZZ", kiu: "kiu-Latn-TR", kiw: "kiw-Latn-ZZ", kj: "kj-Latn-NA", kjd: "kjd-Latn-ZZ", kjg: "kjg-Laoo-LA", kjs: "kjs-Latn-ZZ", kjy: "kjy-Latn-ZZ", kk: "kk-Cyrl-KZ", "kk-AF": "kk-Arab-AF", "kk-Arab": "kk-Arab-CN", "kk-CN": "kk-Arab-CN", "kk-IR": "kk-Arab-IR", "kk-MN": "kk-Arab-MN", kkc: "kkc-Latn-ZZ", kkj: "kkj-Latn-CM", kl: "kl-Latn-GL", kln: "kln-Latn-KE", klq: "klq-Latn-ZZ", klt: "klt-Latn-ZZ", klx: "klx-Latn-ZZ", km: "km-Khmr-KH", kmb: "kmb-Latn-AO", kmh: "kmh-Latn-ZZ", kmo: "kmo-Latn-ZZ", kms: "kms-Latn-ZZ", kmu: "kmu-Latn-ZZ", kmw: "kmw-Latn-ZZ", kn: "kn-Knda-IN", knf: "knf-Latn-GW", knp: "knp-Latn-ZZ", ko: "ko-Kore-KR", koi: "koi-Cyrl-RU", kok: "kok-Deva-IN", kol: "kol-Latn-ZZ", kos: "kos-Latn-FM", koz: "koz-Latn-ZZ", kpe: "kpe-Latn-LR", kpf: "kpf-Latn-ZZ", kpo: "kpo-Latn-ZZ", kpr: "kpr-Latn-ZZ", kpx: "kpx-Latn-ZZ", kqb: "kqb-Latn-ZZ", kqf: "kqf-Latn-ZZ", kqs: "kqs-Latn-ZZ", kqy: "kqy-Ethi-ZZ", kr: "kr-Latn-ZZ", krc: "krc-Cyrl-RU", kri: "kri-Latn-SL", krj: "krj-Latn-PH", krl: "krl-Latn-RU", krs: "krs-Latn-ZZ", kru: "kru-Deva-IN", ks: "ks-Arab-IN", ksb: "ksb-Latn-TZ", ksd: "ksd-Latn-ZZ", ksf: "ksf-Latn-CM", ksh: "ksh-Latn-DE", ksj: "ksj-Latn-ZZ", ksr: "ksr-Latn-ZZ", ktb: "ktb-Ethi-ZZ", ktm: "ktm-Latn-ZZ", kto: "kto-Latn-ZZ", ktr: "ktr-Latn-MY", ku: "ku-Latn-TR", "ku-Arab": "ku-Arab-IQ", "ku-LB": "ku-Arab-LB", "ku-Yezi": "ku-Yezi-GE", kub: "kub-Latn-ZZ", kud: "kud-Latn-ZZ", kue: "kue-Latn-ZZ", kuj: "kuj-Latn-ZZ", kum: "kum-Cyrl-RU", kun: "kun-Latn-ZZ", kup: "kup-Latn-ZZ", kus: "kus-Latn-ZZ", kv: "kv-Cyrl-RU", kvg: "kvg-Latn-ZZ", kvr: "kvr-Latn-ID", kvx: "kvx-Arab-PK", kw: "kw-Latn-GB", kwj: "kwj-Latn-ZZ", kwo: "kwo-Latn-ZZ", kwq: "kwq-Latn-ZZ", kxa: "kxa-Latn-ZZ", kxc: "kxc-Ethi-ZZ", kxe: "kxe-Latn-ZZ", kxl: "kxl-Deva-IN", kxm: "kxm-Thai-TH", kxp: "kxp-Arab-PK", kxw: "kxw-Latn-ZZ", kxz: "kxz-Latn-ZZ", ky: "ky-Cyrl-KG", "ky-Arab": "ky-Arab-CN", "ky-CN": "ky-Arab-CN", "ky-Latn": "ky-Latn-TR", "ky-TR": "ky-Latn-TR", kye: "kye-Latn-ZZ", kyx: "kyx-Latn-ZZ", kzh: "kzh-Arab-ZZ", kzj: "kzj-Latn-MY", kzr: "kzr-Latn-ZZ", kzt: "kzt-Latn-MY", la: "la-Latn-VA", lab: "lab-Lina-GR", lad: "lad-Hebr-IL", lag: "lag-Latn-TZ", lah: "lah-Arab-PK", laj: "laj-Latn-UG", las: "las-Latn-ZZ", lb: "lb-Latn-LU", lbe: "lbe-Cyrl-RU", lbu: "lbu-Latn-ZZ", lbw: "lbw-Latn-ID", lcm: "lcm-Latn-ZZ", lcp: "lcp-Thai-CN", ldb: "ldb-Latn-ZZ", led: "led-Latn-ZZ", lee: "lee-Latn-ZZ", lem: "lem-Latn-ZZ", lep: "lep-Lepc-IN", leq: "leq-Latn-ZZ", leu: "leu-Latn-ZZ", lez: "lez-Cyrl-RU", lg: "lg-Latn-UG", lgg: "lgg-Latn-ZZ", li: "li-Latn-NL", lia: "lia-Latn-ZZ", lid: "lid-Latn-ZZ", lif: "lif-Deva-NP", "lif-Limb": "lif-Limb-IN", lig: "lig-Latn-ZZ", lih: "lih-Latn-ZZ", lij: "lij-Latn-IT", lis: "lis-Lisu-CN", ljp: "ljp-Latn-ID", lki: "lki-Arab-IR", lkt: "lkt-Latn-US", lle: "lle-Latn-ZZ", lln: "lln-Latn-ZZ", lmn: "lmn-Telu-IN", lmo: "lmo-Latn-IT", lmp: "lmp-Latn-ZZ", ln: "ln-Latn-CD", lns: "lns-Latn-ZZ", lnu: "lnu-Latn-ZZ", lo: "lo-Laoo-LA", loj: "loj-Latn-ZZ", lok: "lok-Latn-ZZ", lol: "lol-Latn-CD", lor: "lor-Latn-ZZ", los: "los-Latn-ZZ", loz: "loz-Latn-ZM", lrc: "lrc-Arab-IR", lt: "lt-Latn-LT", ltg: "ltg-Latn-LV", lu: "lu-Latn-CD", lua: "lua-Latn-CD", luo: "luo-Latn-KE", luy: "luy-Latn-KE", luz: "luz-Arab-IR", lv: "lv-Latn-LV", lwl: "lwl-Thai-TH", lzh: "lzh-Hans-CN", lzz: "lzz-Latn-TR", mad: "mad-Latn-ID", maf: "maf-Latn-CM", mag: "mag-Deva-IN", mai: "mai-Deva-IN", mak: "mak-Latn-ID", man: "man-Latn-GM", "man-GN": "man-Nkoo-GN", "man-Nkoo": "man-Nkoo-GN", mas: "mas-Latn-KE", maw: "maw-Latn-ZZ", maz: "maz-Latn-MX", mbh: "mbh-Latn-ZZ", mbo: "mbo-Latn-ZZ", mbq: "mbq-Latn-ZZ", mbu: "mbu-Latn-ZZ", mbw: "mbw-Latn-ZZ", mci: "mci-Latn-ZZ", mcp: "mcp-Latn-ZZ", mcq: "mcq-Latn-ZZ", mcr: "mcr-Latn-ZZ", mcu: "mcu-Latn-ZZ", mda: "mda-Latn-ZZ", mde: "mde-Arab-ZZ", mdf: "mdf-Cyrl-RU", mdh: "mdh-Latn-PH", mdj: "mdj-Latn-ZZ", mdr: "mdr-Latn-ID", mdx: "mdx-Ethi-ZZ", med: "med-Latn-ZZ", mee: "mee-Latn-ZZ", mek: "mek-Latn-ZZ", men: "men-Latn-SL", mer: "mer-Latn-KE", met: "met-Latn-ZZ", meu: "meu-Latn-ZZ", mfa: "mfa-Arab-TH", mfe: "mfe-Latn-MU", mfn: "mfn-Latn-ZZ", mfo: "mfo-Latn-ZZ", mfq: "mfq-Latn-ZZ", mg: "mg-Latn-MG", mgh: "mgh-Latn-MZ", mgl: "mgl-Latn-ZZ", mgo: "mgo-Latn-CM", mgp: "mgp-Deva-NP", mgy: "mgy-Latn-TZ", mh: "mh-Latn-MH", mhi: "mhi-Latn-ZZ", mhl: "mhl-Latn-ZZ", mi: "mi-Latn-NZ", mif: "mif-Latn-ZZ", min: "min-Latn-ID", miw: "miw-Latn-ZZ", mk: "mk-Cyrl-MK", mki: "mki-Arab-ZZ", mkl: "mkl-Latn-ZZ", mkp: "mkp-Latn-ZZ", mkw: "mkw-Latn-ZZ", ml: "ml-Mlym-IN", mle: "mle-Latn-ZZ", mlp: "mlp-Latn-ZZ", mls: "mls-Latn-SD", mmo: "mmo-Latn-ZZ", mmu: "mmu-Latn-ZZ", mmx: "mmx-Latn-ZZ", mn: "mn-Cyrl-MN", "mn-CN": "mn-Mong-CN", "mn-Mong": "mn-Mong-CN", mna: "mna-Latn-ZZ", mnf: "mnf-Latn-ZZ", mni: "mni-Beng-IN", mnw: "mnw-Mymr-MM", mo: "mo-Latn-RO", moa: "moa-Latn-ZZ", moe: "moe-Latn-CA", moh: "moh-Latn-CA", mos: "mos-Latn-BF", mox: "mox-Latn-ZZ", mpp: "mpp-Latn-ZZ", mps: "mps-Latn-ZZ", mpt: "mpt-Latn-ZZ", mpx: "mpx-Latn-ZZ", mql: "mql-Latn-ZZ", mr: "mr-Deva-IN", mrd: "mrd-Deva-NP", mrj: "mrj-Cyrl-RU", mro: "mro-Mroo-BD", ms: "ms-Latn-MY", "ms-CC": "ms-Arab-CC", mt: "mt-Latn-MT", mtc: "mtc-Latn-ZZ", mtf: "mtf-Latn-ZZ", mti: "mti-Latn-ZZ", mtr: "mtr-Deva-IN", mua: "mua-Latn-CM", mur: "mur-Latn-ZZ", mus: "mus-Latn-US", mva: "mva-Latn-ZZ", mvn: "mvn-Latn-ZZ", mvy: "mvy-Arab-PK", mwk: "mwk-Latn-ML", mwr: "mwr-Deva-IN", mwv: "mwv-Latn-ID", mww: "mww-Hmnp-US", mxc: "mxc-Latn-ZW", mxm: "mxm-Latn-ZZ", my: "my-Mymr-MM", myk: "myk-Latn-ZZ", mym: "mym-Ethi-ZZ", myv: "myv-Cyrl-RU", myw: "myw-Latn-ZZ", myx: "myx-Latn-UG", myz: "myz-Mand-IR", mzk: "mzk-Latn-ZZ", mzm: "mzm-Latn-ZZ", mzn: "mzn-Arab-IR", mzp: "mzp-Latn-ZZ", mzw: "mzw-Latn-ZZ", mzz: "mzz-Latn-ZZ", na: "na-Latn-NR", nac: "nac-Latn-ZZ", naf: "naf-Latn-ZZ", nak: "nak-Latn-ZZ", nan: "nan-Hans-CN", nap: "nap-Latn-IT", naq: "naq-Latn-NA", nas: "nas-Latn-ZZ", nb: "nb-Latn-NO", nca: "nca-Latn-ZZ", nce: "nce-Latn-ZZ", ncf: "ncf-Latn-ZZ", nch: "nch-Latn-MX", nco: "nco-Latn-ZZ", ncu: "ncu-Latn-ZZ", nd: "nd-Latn-ZW", ndc: "ndc-Latn-MZ", nds: "nds-Latn-DE", ne: "ne-Deva-NP", neb: "neb-Latn-ZZ", new: "new-Deva-NP", nex: "nex-Latn-ZZ", nfr: "nfr-Latn-ZZ", ng: "ng-Latn-NA", nga: "nga-Latn-ZZ", ngb: "ngb-Latn-ZZ", ngl: "ngl-Latn-MZ", nhb: "nhb-Latn-ZZ", nhe: "nhe-Latn-MX", nhw: "nhw-Latn-MX", nif: "nif-Latn-ZZ", nii: "nii-Latn-ZZ", nij: "nij-Latn-ID", nin: "nin-Latn-ZZ", niu: "niu-Latn-NU", niy: "niy-Latn-ZZ", niz: "niz-Latn-ZZ", njo: "njo-Latn-IN", nkg: "nkg-Latn-ZZ", nko: "nko-Latn-ZZ", nl: "nl-Latn-NL", nmg: "nmg-Latn-CM", nmz: "nmz-Latn-ZZ", nn: "nn-Latn-NO", nnf: "nnf-Latn-ZZ", nnh: "nnh-Latn-CM", nnk: "nnk-Latn-ZZ", nnm: "nnm-Latn-ZZ", nnp: "nnp-Wcho-IN", no: "no-Latn-NO", nod: "nod-Lana-TH", noe: "noe-Deva-IN", non: "non-Runr-SE", nop: "nop-Latn-ZZ", nou: "nou-Latn-ZZ", nqo: "nqo-Nkoo-GN", nr: "nr-Latn-ZA", nrb: "nrb-Latn-ZZ", nsk: "nsk-Cans-CA", nsn: "nsn-Latn-ZZ", nso: "nso-Latn-ZA", nss: "nss-Latn-ZZ", ntm: "ntm-Latn-ZZ", ntr: "ntr-Latn-ZZ", nui: "nui-Latn-ZZ", nup: "nup-Latn-ZZ", nus: "nus-Latn-SS", nuv: "nuv-Latn-ZZ", nux: "nux-Latn-ZZ", nv: "nv-Latn-US", nwb: "nwb-Latn-ZZ", nxq: "nxq-Latn-CN", nxr: "nxr-Latn-ZZ", ny: "ny-Latn-MW", nym: "nym-Latn-TZ", nyn: "nyn-Latn-UG", nzi: "nzi-Latn-GH", oc: "oc-Latn-FR", ogc: "ogc-Latn-ZZ", okr: "okr-Latn-ZZ", okv: "okv-Latn-ZZ", om: "om-Latn-ET", ong: "ong-Latn-ZZ", onn: "onn-Latn-ZZ", ons: "ons-Latn-ZZ", opm: "opm-Latn-ZZ", or: "or-Orya-IN", oro: "oro-Latn-ZZ", oru: "oru-Arab-ZZ", os: "os-Cyrl-GE", osa: "osa-Osge-US", ota: "ota-Arab-ZZ", otk: "otk-Orkh-MN", ozm: "ozm-Latn-ZZ", pa: "pa-Guru-IN", "pa-Arab": "pa-Arab-PK", "pa-PK": "pa-Arab-PK", pag: "pag-Latn-PH", pal: "pal-Phli-IR", "pal-Phlp": "pal-Phlp-CN", pam: "pam-Latn-PH", pap: "pap-Latn-AW", pau: "pau-Latn-PW", pbi: "pbi-Latn-ZZ", pcd: "pcd-Latn-FR", pcm: "pcm-Latn-NG", pdc: "pdc-Latn-US", pdt: "pdt-Latn-CA", ped: "ped-Latn-ZZ", peo: "peo-Xpeo-IR", pex: "pex-Latn-ZZ", pfl: "pfl-Latn-DE", phl: "phl-Arab-ZZ", phn: "phn-Phnx-LB", pil: "pil-Latn-ZZ", pip: "pip-Latn-ZZ", pka: "pka-Brah-IN", pko: "pko-Latn-KE", pl: "pl-Latn-PL", pla: "pla-Latn-ZZ", pms: "pms-Latn-IT", png: "png-Latn-ZZ", pnn: "pnn-Latn-ZZ", pnt: "pnt-Grek-GR", pon: "pon-Latn-FM", ppa: "ppa-Deva-IN", ppo: "ppo-Latn-ZZ", pra: "pra-Khar-PK", prd: "prd-Arab-IR", prg: "prg-Latn-001", ps: "ps-Arab-AF", pss: "pss-Latn-ZZ", pt: "pt-Latn-BR", ptp: "ptp-Latn-ZZ", puu: "puu-Latn-GA", pwa: "pwa-Latn-ZZ", qu: "qu-Latn-PE", quc: "quc-Latn-GT", qug: "qug-Latn-EC", rai: "rai-Latn-ZZ", 3ce7 raj: "raj-Deva-IN", rao: "rao-Latn-ZZ", rcf: "rcf-Latn-RE", rej: "rej-Latn-ID", rel: "rel-Latn-ZZ", res: "res-Latn-ZZ", rgn: "rgn-Latn-IT", rhg: "rhg-Arab-MM", ria: "ria-Latn-IN", rif: "rif-Tfng-MA", "rif-NL": "rif-Latn-NL", rjs: "rjs-Deva-NP", rkt: "rkt-Beng-BD", rm: "rm-Latn-CH", rmf: "rmf-Latn-FI", rmo: "rmo-Latn-CH", rmt: "rmt-Arab-IR", rmu: "rmu-Latn-SE", rn: "rn-Latn-BI", rna: "rna-Latn-ZZ", rng: "rng-Latn-MZ", ro: "ro-Latn-RO", rob: "rob-Latn-ID", rof: "rof-Latn-TZ", roo: "roo-Latn-ZZ", rro: "rro-Latn-ZZ", rtm: "rtm-Latn-FJ", ru: "ru-Cyrl-RU", rue: "rue-Cyrl-UA", rug: "rug-Latn-SB", rw: "rw-Latn-RW", rwk: "rwk-Latn-TZ", rwo: "rwo-Latn-ZZ", ryu: "ryu-Kana-JP", sa: "sa-Deva-IN", saf: "saf-Latn-GH", sah: "sah-Cyrl-RU", saq: "saq-Latn-KE", sas: "sas-Latn-ID", sat: "sat-Olck-IN", sav: "sav-Latn-SN", saz: "saz-Saur-IN", sba: "sba-Latn-ZZ", sbe: "sbe-Latn-ZZ", sbp: "sbp-Latn-TZ", sc: "sc-Latn-IT", sck: "sck-Deva-IN", scl: "scl-Arab-ZZ", scn: "scn-Latn-IT", sco: "sco-Latn-GB", scs: "scs-Latn-CA", sd: "sd-Arab-PK", "sd-Deva": "sd-Deva-IN", "sd-Khoj": "sd-Khoj-IN", "sd-Sind": "sd-Sind-IN", sdc: "sdc-Latn-IT", sdh: "sdh-Arab-IR", se: "se-Latn-NO", sef: "sef-Latn-CI", seh: "seh-Latn-MZ", sei: "sei-Latn-MX", ses: "ses-Latn-ML", sg: "sg-Latn-CF", sga: "sga-Ogam-IE", sgs: "sgs-Latn-LT", sgw: "sgw-Ethi-ZZ", sgz: "sgz-Latn-ZZ", shi: "shi-Tfng-MA", shk: "shk-Latn-ZZ", shn: "shn-Mymr-MM", shu: "shu-Arab-ZZ", si: "si-Sinh-LK", sid: "sid-Latn-ET", sig: "sig-Latn-ZZ", sil: "sil-Latn-ZZ", sim: "sim-Latn-ZZ", sjr: "sjr-Latn-ZZ", sk: "sk-Latn-SK", skc: "skc-Latn-ZZ", skr: "skr-Arab-PK", sks: "sks-Latn-ZZ", sl: "sl-Latn-SI", sld: "sld-Latn-ZZ", sli: "sli-Latn-PL", sll: "sll-Latn-ZZ", sly: "sly-Latn-ID", sm: "sm-Latn-WS", sma: "sma-Latn-SE", smj: "smj-Latn-SE", smn: "smn-Latn-FI", smp: "smp-Samr-IL", smq: "smq-Latn-ZZ", sms: "sms-Latn-FI", sn: "sn-Latn-ZW", snc: "snc-Latn-ZZ", snk: "snk-Latn-ML", snp: "snp-Latn-ZZ", snx: "snx-Latn-ZZ", sny: "sny-Latn-ZZ", so: "so-Latn-SO", sog: "sog-Sogd-UZ", sok: "sok-Latn-ZZ", soq: "soq-Latn-ZZ", sou: "sou-Thai-TH", soy: "soy-Latn-ZZ", spd: "spd-Latn-ZZ", spl: "spl-Latn-ZZ", sps: "sps-Latn-ZZ", sq: "sq-Latn-AL", sr: "sr-Cyrl-RS", "sr-ME": "sr-Latn-ME", "sr-RO": "sr-Latn-RO", "sr-RU": "sr-Latn-RU", "sr-TR": "sr-Latn-TR", srb: "srb-Sora-IN", srn: "srn-Latn-SR", srr: "srr-Latn-SN", srx: "srx-Deva-IN", ss: "ss-Latn-ZA", ssd: "ssd-Latn-ZZ", ssg: "ssg-Latn-ZZ", ssy: "ssy-Latn-ER", st: "st-Latn-ZA", stk: "stk-Latn-ZZ", stq: "stq-Latn-DE", su: "su-Latn-ID", sua: "sua-Latn-ZZ", sue: "sue-Latn-ZZ", suk: "suk-Latn-TZ", sur: "sur-Latn-ZZ", sus: "sus-Latn-GN", sv: "sv-Latn-SE", sw: "sw-Latn-TZ", swb: "swb-Arab-YT", swc: "swc-Latn-CD", swg: "swg-Latn-DE", swp: "swp-Latn-ZZ", swv: "swv-Deva-IN", sxn: "sxn-Latn-ID", sxw: "sxw-Latn-ZZ", syl: "syl-Beng-BD", syr: "syr-Syrc-IQ", szl: "szl-Latn-PL", ta: "ta-Taml-IN", taj: "taj-Deva-NP", tal: "tal-Latn-ZZ", tan: "tan-Latn-ZZ", taq: "taq-Latn-ZZ", tbc: "tbc-Latn-ZZ", tbd: "tbd-Latn-ZZ", tbf: "tbf-Latn-ZZ", tbg: "tbg-Latn-ZZ", tbo: "tbo-Latn-ZZ", tbw: "tbw-Latn-PH", tbz: "tbz-Latn-ZZ", tci: "tci-Latn-ZZ", tcy: "tcy-Knda-IN", tdd: "tdd-Tale-CN", tdg: "tdg-Deva-NP", tdh: "tdh-Deva-NP", tdu: "tdu-Latn-MY", te: "te-Telu-IN", ted: "ted-Latn-ZZ", tem: "tem-Latn-SL", teo: "teo-Latn-UG", tet: "tet-Latn-TL", tfi: "tfi-Latn-ZZ", tg: "tg-Cyrl-TJ", "tg-Arab": "tg-Arab-PK", "tg-PK": "tg-Arab-PK", tgc: "tgc-Latn-ZZ", tgo: "tgo-Latn-ZZ", tgu: "tgu-Latn-ZZ", th: "th-Thai-TH", thl: "thl-Deva-NP", thq: "thq-Deva-NP", thr: "thr-Deva-NP", ti: "ti-Ethi-ET", tif: "tif-Latn-ZZ", tig: "tig-Ethi-ER", tik: "tik-Latn-ZZ", tim: "tim-Latn-ZZ", tio: "tio-Latn-ZZ", tiv: "tiv-Latn-NG", tk: "tk-Latn-TM", tkl: "tkl-Latn-TK", tkr: "tkr-Latn-AZ", tkt: "tkt-Deva-NP", tl: "tl-Latn-PH", tlf: "tlf-Latn-ZZ", tlx: "tlx-Latn-ZZ", tly: "tly-Latn-AZ", tmh: "tmh-Latn-NE", tmy: "tmy-Latn-ZZ", tn: "tn-Latn-ZA", tnh: "tnh-Latn-ZZ", to: "to-Latn-TO", tof: "tof-Latn-ZZ", tog: "tog-Latn-MW", toq: "toq-Latn-ZZ", tpi: "tpi-Latn-PG", tpm: "tpm-Latn-ZZ", tpz: "tpz-Latn-ZZ", tqo: "tqo-Latn-ZZ", tr: "tr-Latn-TR", tru: "tru-Latn-TR", trv: "trv-Latn-TW", trw: "trw-Arab-PK", ts: "ts-Latn-ZA", tsd: "tsd-Grek-GR", tsf: "tsf-Deva-NP", tsg: "tsg-Latn-PH", tsj: "tsj-Tibt-BT", tsw: "tsw-Latn-ZZ", tt: "tt-Cyrl-RU", ttd: "ttd-Latn-ZZ", tte: "tte-Latn-ZZ", ttj: "ttj-Latn-UG", ttr: "ttr-Latn-ZZ", tts: "tts-Thai-TH", ttt: "ttt-Latn-AZ", tuh: "tuh-Latn-ZZ", tul: "tul-Latn-ZZ", tum: "tum-Latn-MW", tuq: "tuq-Latn-ZZ", tvd: "tvd-Latn-ZZ", tvl: "tvl-Latn-TV", tvu: "tvu-Latn-ZZ", twh: "twh-Latn-ZZ", twq: "twq-Latn-NE", txg: "txg-Tang-CN", ty: "ty-Latn-PF", tya: "tya-Latn-ZZ", tyv: "tyv-Cyrl-RU", tzm: "tzm-Latn-MA", ubu: "ubu-Latn-ZZ", udi: "udi-Aghb-RU", udm: "udm-Cyrl-RU", ug: "ug-Arab-CN", "ug-Cyrl": "ug-Cyrl-KZ", "ug-KZ": "ug-Cyrl-KZ", "ug-MN": "ug-Cyrl-MN", uga: "uga-Ugar-SY", uk: "uk-Cyrl-UA", uli: "uli-Latn-FM", umb: "umb-Latn-AO", und: "en-Latn-US", "und-002": "en-Latn-NG", "und-003": "en-Latn-US", "und-005": "pt-Latn-BR", "und-009": "en-Latn-AU", "und-011": "en-Latn-NG", "und-013": "es-Latn-MX", "und-014": "sw-Latn-TZ", "und-015": "ar-Arab-EG", "und-017": "sw-Latn-CD", "und-018": "en-Latn-ZA", "und-019": "en-Latn-US", "und-021": "en-Latn-US", "und-029": "es-Latn-CU", "und-030": "zh-Hans-CN", "und-034": "hi-Deva-IN", "und-035": "id-Latn-ID", "und-039": "it-Latn-IT", "und-053": "en-Latn-AU", "und-054": "en-Latn-PG", "und-057": "en-Latn-GU", "und-061": "sm-Latn-WS", "und-142": "zh-Hans-CN", "und-143": "uz-Latn-UZ", "und-145": "ar-Arab-SA", "und-150": "ru-Cyrl-RU", "und-151": "ru-Cyrl-RU", "und-154": "en-Latn-GB", "und-155": "de-Latn-DE", "und-202": "en-Latn-NG", "und-419": "es-Latn-419", "und-AD": "ca-Latn-AD", "und-Adlm": "ff-Adlm-GN", "und-AE": "ar-Arab-AE", "und-AF": "fa-Arab-AF", "und-Aghb": "udi-Aghb-RU", "und-Ahom": "aho-Ahom-IN", "und-AL": "sq-Latn-AL", "und-AM": "hy-Armn-AM", "und-AO": "pt-Latn-AO", "und-AQ": "und-Latn-AQ", "und-AR": "es-Latn-AR", "und-Arab": "ar-Arab-EG", "und-Arab-CC": "ms-Arab-CC", "und-Arab-CN": "ug-Arab-CN", "und-Arab-GB": "ks-Arab-GB", "und-Arab-ID": "ms-Arab-ID", "und-Arab-IN": "ur-Arab-IN", "und-Arab-KH": "cja-Arab-KH", "und-Arab-MM": "rhg-Arab-MM", "und-Arab-MN": "kk-Arab-MN", "und-Arab-MU": "ur-Arab-MU", "und-Arab-NG": "ha-Arab-NG", "und-Arab-PK": "ur-Arab-PK", "und-Arab-TG": "apd-Arab-TG", "und-Arab-TH": "mfa-Arab-TH", "und-Arab-TJ": "fa-Arab-TJ", "und-Arab-TR": "az-Arab-TR", "und-Arab-YT": "swb-Arab-YT", "und-Armi": "arc-Armi-IR", "und-Armn": "hy-Armn-AM", "und-AS": "sm-Latn-AS", "und-AT": "de-Latn-AT", "und-Avst": "ae-Avst-IR", "und-AW": "nl-Latn-AW", "und-AX": "sv-Latn-AX", "und-AZ": "az-Latn-AZ", "und-BA": "bs-Latn-BA", "und-Bali": "ban-Bali-ID", "und-Bamu": "bax-Bamu-CM", "und-Bass": "bsq-Bass-LR", "und-Batk": "bbc-Batk-ID", "und-BD": "bn-Beng-BD", "und-BE": "nl-Latn-BE", "und-Beng": "bn-Beng-BD", "und-BF": "fr-Latn-BF", "und-BG": "bg-Cyrl-BG", "und-BH": "ar-Arab-BH", "und-Bhks": "sa-Bhks-IN", "und-BI": "rn-Latn-BI", "und-BJ": "fr-Latn-BJ", "und-BL": "fr-Latn-BL", "und-BN": "ms-Latn-BN", "und-BO": "es-Latn-BO", "und-Bopo": "zh-Bopo-TW", "und-BQ": "pap-Latn-BQ", "und-BR": "pt-Latn-BR", "und-Brah": "pka-Brah-IN", "und-Brai": "fr-Brai-FR", "und-BT": "dz-Tibt-BT", "und-Bugi": "bug-Bugi-ID", "und-Buhd": "bku-Buhd-PH", "und-BV": "und-Latn-BV", "und-BY": "be-Cyrl-BY", "und-Cakm": "ccp-Cakm-BD", "und-Cans": "cr-Cans-CA", "und-Cari": "xcr-Cari-TR", "und-CD": "sw-Latn-CD", "und-CF": "fr-Latn-CF", "und-CG": "fr-Latn-CG", "und-CH": "de-Latn-CH", "und-Cham": "cjm-Cham-VN", "und-Cher": "chr-Cher-US", "und-Chrs": "xco-Chrs-UZ", "und-CI": "fr-Latn-CI", "und-CL": "es-Latn-CL", "und-CM": "fr-Latn-CM", "und-CN": "zh-Hans-CN", "und-CO": "es-Latn-CO", "und-Copt": "cop-Copt-EG", "und-CP": "und-Latn-CP", "und-Cprt": "grc-Cprt-CY", "und-CR": "es-Latn-CR", "und-CU": "es-Latn-CU", "und-CV": "pt-Latn-CV", "und-CW": "pap-Latn-CW", "und-CY": "el-Grek-CY", "und-Cyrl": "ru-Cyrl-RU", "und-Cyrl-AL": "mk-Cyrl-AL", "und-Cyrl-BA": "sr-Cyrl-BA", "und-Cyrl-GE": "os-Cyrl-GE", "und-Cyrl-GR": "mk-Cyrl-GR", "und-Cyrl-MD": "uk-Cyrl-MD", "und-Cyrl-RO": "bg-Cyrl-RO", "und-Cyrl-SK": "uk-Cyrl-SK", "und-Cyrl-TR": "kbd-Cyrl-TR", "und-Cyrl-XK": "sr-Cyrl-XK", "und-CZ": "cs-Latn-CZ", "und-DE": "de-Latn-DE", "und-Deva": "hi-Deva-IN", "und-Deva-BT": "ne-Deva-BT", "und-Deva-FJ": "hif-Deva-FJ", "und-Deva-MU": "bho-Deva-MU", "und-Deva-PK": "btv-Deva-PK", "und-Diak": "dv-Diak-MV", "und-DJ": "aa-Latn-DJ", "und-DK": "da-Latn-DK", "und-DO": "es-Latn-DO", "und-Dogr": "doi-Dogr-IN", "und-Dupl": "fr-Dupl-FR", "und-DZ": "ar-Arab-DZ", "und-EA": "es-Latn-EA", "und-EC": "es-Latn-EC", "und-EE": "et-Latn-EE", "und-EG": "ar-Arab-EG", "und-Egyp": "egy-Egyp-EG", "und-EH": "ar-Arab-EH", "und-Elba": "sq-Elba-AL", "und-Elym": "arc-Elym-IR", "und-ER": "ti-Ethi-ER", "und-ES": "es-Latn-ES", "und-ET": "am-Ethi-ET", "und-Ethi": "am-Ethi-ET", "und-EU": "en-Latn-IE", "und-EZ": "de-Latn-EZ", "und-FI": "fi-Latn-FI", "und-FO": "fo-Latn-FO", "und-FR": "fr-Latn-FR", "und-GA": "fr-Latn-GA", "und-GE": "ka-Geor-GE", "und-Geor": "ka-Geor-GE", "und-GF": "fr-Latn-GF", "und-GH": "ak-Latn-GH", "und-GL": "kl-Latn-GL", "und-Glag": "cu-Glag-BG", "und-GN": "fr-Latn-GN", "und-Gong": "wsg-Gong-IN", "und-Gonm": "esg-Gonm-IN", "und-Goth": "got-Goth-UA", "und-GP": "fr-Latn-GP", "und-GQ": "es-Latn-GQ", "und-GR": "el-Grek-GR", "und-Gran": "sa-Gran-IN", "und-Grek": "el-Grek-GR", "und-Grek-TR": "bgx-Grek-TR", "und-GS": "und-Latn-GS", "und-GT": "es-Latn-GT", "und-Gujr": "gu-Gujr-IN", "und-Guru": "pa-Guru-IN", "und-GW": "pt-Latn-GW", "und-Hanb": "zh-Hanb-TW", "und-Hang": "ko-Hang-KR", "und-Hani": "zh-Hani-CN", "und-Hano": "hnn-Hano-PH", "und-Hans": "zh-Hans-CN", "und-Hant": "zh-Hant-TW", "und-Hebr": "he-Hebr-IL", "und-Hebr-CA": "yi-Hebr-CA", "und-Hebr-GB": "yi-Hebr-GB", "und-Hebr-SE": "yi-Hebr-SE", "und-Hebr-UA": "yi-Hebr-UA", "und-Hebr-US": "yi-Hebr-US", "und-Hira": "ja-Hira-JP", "und-HK": "zh-Hant-HK", "und-Hluw": "hlu-Hluw-TR", "und-HM": "und-Latn-HM", "und-Hmng": "hnj-Hmng-LA", "und-Hmnp": "mww-Hmnp-US", "und-HN": "es-Latn-HN", "und-HR": "hr-Latn-HR", "und-HT": "ht-Latn-HT", "und-HU": "hu-Latn-HU", "und-Hung": "hu-Hung-HU", "und-IC": "es-Latn-IC", "und-ID": "id-Latn-ID", " 4000 und-IL": "he-Hebr-IL", "und-IN": "hi-Deva-IN", "und-IQ": "ar-Arab-IQ", "und-IR": "fa-Arab-IR", "und-IS": "is-Latn-IS", "und-IT": "it-Latn-IT", "und-Ital": "ett-Ital-IT", "und-Jamo": "ko-Jamo-KR", "und-Java": "jv-Java-ID", "und-JO": "ar-Arab-JO", "und-JP": "ja-Jpan-JP", "und-Jpan": "ja-Jpan-JP", "und-Kali": "eky-Kali-MM", "und-Kana": "ja-Kana-JP", "und-KE": "sw-Latn-KE", "und-KG": "ky-Cyrl-KG", "und-KH": "km-Khmr-KH", "und-Khar": "pra-Khar-PK", "und-Khmr": "km-Khmr-KH", "und-Khoj": "sd-Khoj-IN", "und-Kits": "zkt-Kits-CN", "und-KM": "ar-Arab-KM", "und-Knda": "kn-Knda-IN", "und-Kore": "ko-Kore-KR", "und-KP": "ko-Kore-KP", "und-KR": "ko-Kore-KR", "und-Kthi": "bho-Kthi-IN", "und-KW": "ar-Arab-KW", "und-KZ": "ru-Cyrl-KZ", "und-LA": "lo-Laoo-LA", "und-Lana": "nod-Lana-TH", "und-Laoo": "lo-Laoo-LA", "und-Latn-AF": "tk-Latn-AF", "und-Latn-AM": "ku-Latn-AM", "und-Latn-CN": "za-Latn-CN", "und-Latn-CY": "tr-Latn-CY", "und-Latn-DZ": "fr-Latn-DZ", "und-Latn-ET": "en-Latn-ET", "und-Latn-GE": "ku-Latn-GE", "und-Latn-IR": "tk-Latn-IR", "und-Latn-KM": "fr-Latn-KM", "und-Latn-MA": "fr-Latn-MA", "und-Latn-MK": "sq-Latn-MK", "und-Latn-MM": "kac-Latn-MM", "und-Latn-MO": "pt-Latn-MO", "und-Latn-MR": "fr-Latn-MR", "und-Latn-RU": "krl-Latn-RU", "und-Latn-SY": "fr-Latn-SY", "und-Latn-TN": "fr-Latn-TN", "und-Latn-TW": "trv-Latn-TW", "und-Latn-UA": "pl-Latn-UA", "und-LB": "ar-Arab-LB", "und-Lepc": "lep-Lepc-IN", "und-LI": "de-Latn-LI", "und-Limb": "lif-Limb-IN", "und-Lina": "lab-Lina-GR", "und-Linb": "grc-Linb-GR", "und-Lisu": "lis-Lisu-CN", "und-LK": "si-Sinh-LK", "und-LS": "st-Latn-LS", "und-LT": "lt-Latn-LT", "und-LU": "fr-Latn-LU", "und-LV": "lv-Latn-LV", "und-LY": "ar-Arab-LY", "und-Lyci": "xlc-Lyci-TR", "und-Lydi": "xld-Lydi-TR", "und-MA": "ar-Arab-MA", "und-Mahj": "hi-Mahj-IN", "und-Maka": "mak-Maka-ID", "und-Mand": "myz-Mand-IR", "und-Mani": "xmn-Mani-CN", "und-Marc": "bo-Marc-CN", "und-MC": "fr-Latn-MC", "und-MD": "ro-Latn-MD", "und-ME": "sr-Latn-ME", "und-Medf": "dmf-Medf-NG", "und-Mend": "men-Mend-SL", "und-Merc": "xmr-Merc-SD", "und-Mero": "xmr-Mero-SD", "und-MF": "fr-Latn-MF", "und-MG": "mg-Latn-MG", "und-MK": "mk-Cyrl-MK", "und-ML": "bm-Latn-ML", "und-Mlym": "ml-Mlym-IN", "und-MM": "my-Mymr-MM", "und-MN": "mn-Cyrl-MN", "und-MO": "zh-Hant-MO", "und-Modi": "mr-Modi-IN", "und-Mong": "mn-Mong-CN", "und-MQ": "fr-Latn-MQ", "und-MR": "ar-Arab-MR", "und-Mroo": "mro-Mroo-BD", "und-MT": "mt-Latn-MT", "und-Mtei": "mni-Mtei-IN", "und-MU": "mfe-Latn-MU", "und-Mult": "skr-Mult-PK", "und-MV": "dv-Thaa-MV", "und-MX": "es-Latn-MX", "und-MY": "ms-Latn-MY", "und-Mymr": "my-Mymr-MM", "und-Mymr-IN": "kht-Mymr-IN", "und-Mymr-TH": "mnw-Mymr-TH", "und-MZ": "pt-Latn-MZ", "und-NA": "af-Latn-NA", "und-Nand": "sa-Nand-IN", "und-Narb": "xna-Narb-SA", "und-Nbat": "arc-Nbat-JO", "und-NC": "fr-Latn-NC", "und-NE": "ha-Latn-NE", "und-Newa": "new-Newa-NP", "und-NI": "es-Latn-NI", "und-Nkoo": "man-Nkoo-GN", "und-NL": "nl-Latn-NL", "und-NO": "nb-Latn-NO", "und-NP": "ne-Deva-NP", "und-Nshu": "zhx-Nshu-CN", "und-Ogam": "sga-Ogam-IE", "und-Olck": "sat-Olck-IN", "und-OM": "ar-Arab-OM", "und-Orkh": "otk-Orkh-MN", "und-Orya": "or-Orya-IN", "und-Osge": "osa-Osge-US", "und-Osma": "so-Osma-SO", "und-PA": "es-Latn-PA", "und-Palm": "arc-Palm-SY", "und-Pauc": "ctd-Pauc-MM", "und-PE": "es-Latn-PE", "und-Perm": "kv-Perm-RU", "und-PF": "fr-Latn-PF", "und-PG": "tpi-Latn-PG", "und-PH": "fil-Latn-PH", "und-Phag": "lzh-Phag-CN", "und-Phli": "pal-Phli-IR", "und-Phlp": "pal-Phlp-CN", "und-Phnx": "phn-Phnx-LB", "und-PK": "ur-Arab-PK", "und-PL": "pl-Latn-PL", "und-Plrd": "hmd-Plrd-CN", "und-PM": "fr-Latn-PM", "und-PR": "es-Latn-PR", "und-Prti": "xpr-Prti-IR", "und-PS": "ar-Arab-PS", "und-PT": "pt-Latn-PT", "und-PW": "pau-Latn-PW", "und-PY": "gn-Latn-PY", "und-QA": "ar-Arab-QA", "und-QO": "en-Latn-DG", "und-RE": "fr-Latn-RE", "und-Rjng": "rej-Rjng-ID", "und-RO": "ro-Latn-RO", "und-Rohg": "rhg-Rohg-MM", "und-RS": "sr-Cyrl-RS", "und-RU": "ru-Cyrl-RU", "und-Runr": "non-Runr-SE", "und-RW": "rw-Latn-RW", "und-SA": "ar-Arab-SA", "und-Samr": "smp-Samr-IL", "und-Sarb": "xsa-Sarb-YE", "und-Saur": "saz-Saur-IN", "und-SC": "fr-Latn-SC", "und-SD": "ar-Arab-SD", "und-SE": "sv-Latn-SE", "und-Sgnw": "ase-Sgnw-US", "und-Shaw": "en-Shaw-GB", "und-Shrd": "sa-Shrd-IN", "und-SI": "sl-Latn-SI", "und-Sidd": "sa-Sidd-IN", "und-Sind": "sd-Sind-IN", "und-Sinh": "si-Sinh-LK", "und-SJ": "nb-Latn-SJ", "und-SK": "sk-Latn-SK", "und-SM": "it-Latn-SM", "und-SN": "fr-Latn-SN", "und-SO": "so-Latn-SO", "und-Sogd": "sog-Sogd-UZ", "und-Sogo": "sog-Sogo-UZ", "und-Sora": "srb-Sora-IN", "und-Soyo": "cmg-Soyo-MN", "und-SR": "nl-Latn-SR", "und-ST": "pt-Latn-ST", "und-Sund": "su-Sund-ID", "und-SV": "es-Latn-SV", "und-SY": "ar-Arab-SY", "und-Sylo": "syl-Sylo-BD", "und-Syrc": "syr-Syrc-IQ", "und-Tagb": "tbw-Tagb-PH", "und-Takr": "doi-Takr-IN", "und-Tale": "tdd-Tale-CN", "und-Talu": "khb-Talu-CN", "und-Taml": "ta-Taml-IN", "und-Tang": "txg-Tang-CN", "und-Tavt": "blt-Tavt-VN", "und-TD": "fr-Latn-TD", "und-Telu": "te-Telu-IN", "und-TF": "fr-Latn-TF", "und-Tfng": "zgh-Tfng-MA", "und-TG": "fr-Latn-TG", "und-Tglg": "fil-Tglg-PH", "und-TH": "th-Thai-TH", "und-Thaa": "dv-Thaa-MV", "und-Thai": "th-Thai-TH", "und-Thai-CN": "lcp-Thai-CN", "und-Thai-KH": "kdt-Thai-KH", "und-Thai-LA": "kdt-Thai-LA", "und-Tibt": "bo-Tibt-CN", "und-Tirh": "mai-Tirh-IN", "und-TJ": "tg-Cyrl-TJ", "und-TK": "tkl-Latn-TK", "und-TL": "pt-Latn-TL", "und-TM": "tk-Latn-TM", "und-TN": "ar-Arab-TN", "und-TO": "to-Latn-TO", "und-TR": "tr-Latn-TR", "und-TV": "tvl-Latn-TV", "und-TW": "zh-Hant-TW", "und-TZ": "sw-Latn-TZ", "und-UA": "uk-Cyrl-UA", "und-UG": "sw-Latn-UG", "und-Ugar": "uga-Ugar-SY", "und-UY": "es-Latn-UY", "und-UZ": "uz-Latn-UZ", "und-VA": "it-Latn-VA", "und-Vaii": "vai-Vaii-LR", "und-VE": "es-Latn-VE", "und-VN": "vi-Latn-VN", "und-VU": "bi-Latn-VU", "und-Wara": "hoc-Wara-IN", "und-Wcho": "nnp-Wcho-IN", "und-WF": "fr-Latn-WF", "und-WS": "sm-Latn-WS", "und-XK": "sq-Latn-XK", "und-Xpeo": "peo-Xpeo-IR", "und-Xsux": "akk-Xsux-IQ", "und-YE": "ar-Arab-YE", "und-Yezi": "ku-Yezi-GE", "und-Yiii": "ii-Yiii-CN", "und-YT": "fr-Latn-YT", "und-Zanb": "cmg-Zanb-MN", "und-ZW": "sn-Latn-ZW", unr: "unr-Beng-IN", "unr-Deva": "unr-Deva-NP", "unr-NP": "unr-Deva-NP", unx: "unx-Beng-IN", uok: "uok-Latn-ZZ", ur: "ur-Arab-PK", uri: "uri-Latn-ZZ", urt: "urt-Latn-ZZ", urw: "urw-Latn-ZZ", usa: "usa-Latn-ZZ", uth: "uth-Latn-ZZ", utr: "utr-Latn-ZZ", uvh: "uvh-Latn-ZZ", uvl: "uvl-Latn-ZZ", uz: "uz-Latn-UZ", "uz-AF": "uz-Arab-AF", "uz-Arab": "uz-Arab-AF", "uz-CN": "uz-Cyrl-CN", vag: "vag-Latn-ZZ", vai: "vai-Vaii-LR", van: "van-Latn-ZZ", ve: "ve-Latn-ZA", vec: "vec-Latn-IT", vep: "vep-Latn-RU", vi: "vi-Latn-VN", vic: "vic-Latn-SX", viv: "viv-Latn-ZZ", vls: "vls-Latn-BE", vmf: "vmf-Latn-DE", vmw: "vmw-Latn-MZ", vo: "vo-Latn-001", vot: "vot-Latn-RU", vro: "vro-Latn-EE", vun: "vun-Latn-TZ", vut: "vut-Latn-ZZ", wa: "wa-Latn-BE", wae: "wae-Latn-CH", waj: "waj-Latn-ZZ", wal: "wal-Ethi-ET", wan: "wan-Latn-ZZ", war: "war-Latn-PH", wbp: "wbp-Latn-AU", wbq: "wbq-Telu-IN", wbr: "wbr-Deva-IN", wci: "wci-Latn-ZZ", wer: "wer-Latn-ZZ", wgi: "wgi-Latn-ZZ", whg: "whg-Latn-ZZ", wib: "wib-Latn-ZZ", wiu: "wiu-Latn-ZZ", wiv: "wiv-Latn-ZZ", wja: "wja-Latn-ZZ", wji: "wji-Latn-ZZ", wls: "wls-Latn-WF", wmo: "wmo-Latn-ZZ", wnc: "wnc-Latn-ZZ", wni: "wni-Arab-KM", wnu: "wnu-Latn-ZZ", wo: "wo-Latn-SN", wob: "wob-Latn-ZZ", wos: "wos-Latn-ZZ", wrs: "wrs-Latn-ZZ", wsg: "wsg-Gong-IN", wsk: "wsk-Latn-ZZ", wtm: "wtm-Deva-IN", wuu: "wuu-Hans-CN", wuv: "wuv-Latn-ZZ", wwa: "wwa-Latn-ZZ", xav: "xav-Latn-BR", xbi: "xbi-Latn-ZZ", xco: "xco-Chrs-UZ", xcr: "xcr-Cari-TR", xes: "xes-Latn-ZZ", xh: "xh-Latn-ZA", xla: "xla-Latn-ZZ", xlc: "xlc-Lyci-TR", xld: "xld-Lydi-TR", xmf: "xmf-Geor-GE", xmn: "xmn-Mani-CN", xmr: "xmr-Merc-SD", xna: "xna-Narb-SA", xnr: "xnr-Deva-IN", xog: "xog-Latn-UG", xon: "xon-Latn-ZZ", xpr: "xpr-Prti-IR", xrb: "xrb-Latn-ZZ", xsa: "xsa-Sarb-YE", xsi: "xsi-Latn-ZZ", xsm: "xsm-Latn-ZZ", xsr: "xsr-Deva-NP", xwe: "xwe-Latn-ZZ", yam: "yam-Latn-ZZ", yao: "yao-Latn-MZ", yap: "yap-Latn-FM", yas: "yas-Latn-ZZ", yat: "yat-Latn-ZZ", yav: "yav-Latn-CM", yay: "yay-Latn-ZZ", yaz: "yaz-Latn-ZZ", yba: "yba-Latn-ZZ", ybb: "ybb-Latn-CM", yby: "yby-Latn-ZZ", yer: "yer-Latn-ZZ", ygr: "ygr-Latn-ZZ", ygw: "ygw-Latn-ZZ", yi: "yi-Hebr-001", yko: "yko-Latn-ZZ", yle: "yle-Latn-ZZ", ylg: "ylg-Latn-ZZ", yll: "yll-Latn-ZZ", yml: "yml-Latn-ZZ", yo: "yo-Latn-NG", yon: "yon-Latn-ZZ", yrb: "yrb-Latn-ZZ", yre: "yre-Latn-ZZ", yrl: "yrl-Latn-BR", yss: "yss-Latn-ZZ", yua: "yua-Latn-MX", yue: "yue-Hant-HK", "yue-CN": "yue-Hans-CN", "yue-Hans": "yue-Hans-CN", yuj: "yuj-Latn-ZZ", yut: "yut-Latn-ZZ", yuw: "yuw-Latn-ZZ", za: "za-Latn-CN", zag: "zag-Latn-SD", zdj: "zdj-Arab-KM", zea: "zea-Latn-NL", zgh: "zgh-Tfng-MA", zh: "zh-Hans-CN", "zh-AU": "zh-Hant-AU", "zh-BN": "zh-Hant-BN", "zh-Bopo": "zh-Bopo-TW", "zh-GB": "zh-Hant-GB", "zh-GF": "zh-Hant-GF", "zh-Hanb": "zh-Hanb-TW", "zh-Hant": "zh-Hant-TW", "zh-HK": "zh-Hant-HK", "zh-ID": "zh-Hant-ID", "zh-MO": "zh-Hant-MO", "zh-PA": "zh-Hant-PA", "zh-PF": "zh-Hant-PF", "zh-PH": "zh-Hant-PH", "zh-SR": "zh-Hant-SR", "zh-TH": "zh-Hant-TH", "zh-TW": "zh-Hant-TW", "zh-US": "zh-Hant-US", "zh-VN": "zh-Hant-VN", zhx: "zhx-Nshu-CN", zia: "zia-Latn-ZZ", zkt: "zkt-Kits-CN", zlm: "zlm-Latn-TG", zmi: "zmi-Latn-MY", zne: "zne-Latn-ZZ", zu: "zu-Latn-ZA", zza: "zza-Latn-TR" } } }; } }); // bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/canonicalizer.js var require_canonicalizer = __commonJS({ "bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/canonicalizer.js": function(exports) { "use strict"; Object.defineProperty(exports, "__esModule", {value: true}); exports.canonicalizeUnicodeLocaleId = exports.canonicalizeUnicodeLanguageId = void 0; var tslib_1 = require_tslib(); var aliases_1 = require_aliases(); var parser_1 = require_parser(); var likelySubtags2 = tslib_1.__importStar(require_likelySubtags()); var emitter_1 = require_emitter(); function canonicalizeAttrs(strs) { return Object.keys(strs.reduce(function(all, str) { all[str.toLowerCase()] = 1; return all; }, {})).sort(); } function canonicalizeKVs(arr) { var all = {}; var result = []; for (var _i = 0, arr_1 = arr; _i < arr_1.length; _i++) { var kv = arr_1[_i]; if (kv[0] in all) { continue; } all[kv[0]] = 1; if (!kv[1] || kv[1] === "true") { result.push([kv[0].toLowerCase()]); } else { result.push([kv[0].toLowerCase(), kv[1].toLowerCase()]); } } return result.sort(compareKV); } function compareKV(t1, t2) { return t1[0] < t2[0] ? -1 : t1[0] > t2[0] ? 1 : 0; } function compareExtension(e1, e2) { return e1.type < e2.type ? -1 : e1.type > e2.type ? 1 : 0; } function mergeVariants(v1, v2) { var result = tslib_1.__spreadArray([], v1); for (var _i = 0, v2_1 = v2; _i < v2_1.length; _i++) { var v = v2_1[_i]; if (v1.indexOf(v) < 0) { result.push(v); } } return result; } function canonicalizeUnicodeLanguageId(unicodeLanguageId) { var finalLangAst = unicodeLanguageId; if (unicodeLanguageId.variants.length) { var replacedLang_1 = ""; for (var _i = 0, _a = unicodeLanguageId.variants; _i < _a.length; _i++) { var variant = _a[_i]; if (replacedLang_1 = aliases_1.languageAlias[emitter_1.emitUnicodeLang 4000 uageId({ lang: unicodeLanguageId.lang, variants: [variant] })]) { var replacedLangAst = parser_1.parseUnicodeLanguageId(replacedLang_1.split(parser_1.SEPARATOR)); finalLangAst = { lang: replacedLangAst.lang, script: finalLangAst.script || replacedLangAst.script, region: finalLangAst.region || replacedLangAst.region, variants: mergeVariants(finalLangAst.variants, replacedLangAst.variants) }; break; } } } if (finalLangAst.script && finalLangAst.region) { var replacedLang_2 = aliases_1.languageAlias[emitter_1.emitUnicodeLanguageId({ lang: finalLangAst.lang, script: finalLangAst.script, region: finalLangAst.region, variants: [] })]; if (replacedLang_2) { var replacedLangAst = parser_1.parseUnicodeLanguageId(replacedLang_2.split(parser_1.SEPARATOR)); finalLangAst = { lang: replacedLangAst.lang, script: replacedLangAst.script, region: replacedLangAst.region, variants: finalLangAst.variants }; } } if (finalLangAst.region) { var replacedLang_3 = aliases_1.languageAlias[emitter_1.emitUnicodeLanguageId({ lang: finalLangAst.lang, region: finalLangAst.region, variants: [] })]; if (replacedLang_3) { var replacedLangAst = parser_1.parseUnicodeLanguageId(replacedLang_3.split(parser_1.SEPARATOR)); finalLangAst = { lang: replacedLangAst.lang, script: finalLangAst.script || replacedLangAst.script, region: replacedLangAst.region, variants: finalLangAst.variants }; } } var replacedLang = aliases_1.languageAlias[emitter_1.emitUnicodeLanguageId({ lang: finalLangAst.lang, variants: [] })]; if (replacedLang) { var replacedLangAst = parser_1.parseUnicodeLanguageId(replacedLang.split(parser_1.SEPARATOR)); finalLangAst = { lang: replacedLangAst.lang, script: finalLangAst.script || replacedLangAst.script, region: finalLangAst.region || replacedLangAst.region, variants: finalLangAst.variants }; } if (finalLangAst.region) { var region = finalLangAst.region.toUpperCase(); var regionAlias = aliases_1.territoryAlias[region]; var replacedRegion = void 0; if (regionAlias) { var regions = regionAlias.split(" "); replacedRegion = regions[0]; var likelySubtag = likelySubtags2.supplemental.likelySubtags[emitter_1.emitUnicodeLanguageId({ lang: finalLangAst.lang, script: finalLangAst.script, variants: [] })]; if (likelySubtag) { var likelyRegion = parser_1.parseUnicodeLanguageId(likelySubtag.split(parser_1.SEPARATOR)).region; if (likelyRegion && regions.indexOf(likelyRegion) > -1) { replacedRegion = likelyRegion; } } } if (replacedRegion) { finalLangAst.region = replacedRegion; } finalLangAst.region = finalLangAst.region.toUpperCase(); } if (finalLangAst.script) { finalLangAst.script = finalLangAst.script[0].toUpperCase() + finalLangAst.script.slice(1).toLowerCase(); if (aliases_1.scriptAlias[finalLangAst.script]) { finalLangAst.script = aliases_1.scriptAlias[finalLangAst.script]; } } if (finalLangAst.variants.length) { for (var i = 0; i < finalLangAst.variants.length; i++) { var variant = finalLangAst.variants[i].toLowerCase(); if (aliases_1.variantAlias[variant]) { var alias = aliases_1.variantAlias[variant]; if (parser_1.isUnicodeVariantSubtag(alias)) { finalLangAst.variants[i] = alias; } else if (parser_1.isUnicodeLanguageSubtag(alias)) { finalLangAst.lang = alias; } } } finalLangAst.variants.sort(); } return finalLangAst; } exports.canonicalizeUnicodeLanguageId = canonicalizeUnicodeLanguageId; function canonicalizeUnicodeLocaleId(locale) { locale.lang = canonicalizeUnicodeLanguageId(locale.lang); if (locale.extensions) { for (var _i = 0, _a = locale.extensions; _i < _a.length; _i++) { var extension = _a[_i]; switch (extension.type) { case "u": extension.keywords = canonicalizeKVs(extension.keywords); if (extension.attributes) { extension.attributes = canonicalizeAttrs(extension.attributes); } break; case "t": if (extension.lang) { extension.lang = canonicalizeUnicodeLanguageId(extension.lang); } extension.fields = canonicalizeKVs(extension.fields); break; default: extension.value = extension.value.toLowerCase(); break; } } locale.extensions.sort(compareExtension); } return locale; } exports.canonicalizeUnicodeLocaleId = canonicalizeUnicodeLocaleId; } }); // bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/types.js var require_types = __commonJS({ "bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/types.js": function(exports) { "use strict"; Object.defineProperty(exports, "__esModule", {value: true}); } }); // bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/index.js var require_intl_getcanonicallocales = __commonJS({ "bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/index.js": function(exports) { "use strict"; Object.defineProperty(exports, "__esModule", {value: true}); exports.isUnicodeLanguageSubtag = exports.isUnicodeScriptSubtag = exports.isUnicodeRegionSubtag = exports.isStructurallyValidLanguageTag = exports.parseUnicodeLanguageId = exports.parseUnicodeLocaleId = exports.getCanonicalLocales = void 0; var tslib_1 = require_tslib(); var parser_1 = require_parser(); var emitter_1 = require_emitter(); var canonicalizer_1 = require_canonicalizer(); function CanonicalizeLocaleList2(locales) { if (locales === void 0) { return []; } var seen = []; if (typeof locales === "string") { locales = [locales]; } for (var _i = 0, locales_1 = locales; _i < locales_1.length; _i++) { var locale = locales_1[_i]; var canonicalizedTag = emitter_1.emitUnicodeLocaleId(canonicalizer_1.canonicalizeUnicodeLocaleId(parser_1.parseUnicodeLocaleId(locale))); if (seen.indexOf(canonicalizedTag) < 0) { seen.push(canonicalizedTag); } } return seen; } function getCanonicalLocales(locales) { return CanonicalizeLocaleList2(locales); } exports.getCanonicalLocales = getCanonicalLocales; var parser_2 = require_parser(); Object.defineProperty(exports, "parseUnicodeLocaleId", {enumerable: true, get: function() { return parser_2.parseUnicodeLocaleId; }}); Object.defineProperty(exports, "parseUnicodeLanguageId", {enumerable: true, get: function() { return parser_2.parseUnicodeLanguageId; }}); Object.defineProperty(exports, "isStructurallyValidLanguageTag", {enumerable: true, get: function() { return parser_2.isStructurallyValidLanguageTag; }}); Object.defineProperty(exports, "isUnicodeRegionSubtag", {enumerable: true, get: function() { return parser_2.isUnicodeRegionSubtag; }}); Object.defineProperty(exports, "isUnicodeScriptSubtag", {enumerable: true, get: function() { return parser_2.isUnicodeScriptSubtag; }}); Object.defineProperty(exports, "isUnicodeLanguageSubtag", {enumerable: true, get: function() { return parser_2.isUnicodeLanguageSubtag; }}); tslib_1.__exportStar(require_types(), exports); tslib_1.__exportStar(require_emitter(), exports); } }); // bazel-out/darwin-fastbuild/bin/packages/intl-locale/lib/index.js var import_tslib5 = __toModule(require_tslib()); // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DateTimeFormat/BestFitFormatMatcher.js var import_tslib2 = __toModule(require_tslib()); // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/utils.js function invariant(condition, message, Err) { if (Err === void 0) { Err = Error; } if (!condition) { throw new Err(message); } } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DateTimeFormat/skeleton.js var import_tslib = __toModule(require_tslib()); // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/types/date-time.js var RangePatternType; (function(RangePatternType2) { RangePatternType2["startRange"] = "startRange"; RangePatternType2["shared"] = "shared"; RangePatternType2["endRange"] = "endRange"; })(RangePatternType || (RangePatternType = {})); // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/262.js function ToString(o) { if (typeof o === "symbol") { throw TypeError("Cannot convert a Symbol value to a string"); } return String(o); } function ToObject(arg) { if (arg == null) { throw new TypeError("undefined/null cannot be converted to object"); } return Object(arg); } function SameValue(x, y) { if (Object.is) { return Object.is(x, y); } if (x === y) { return x !== 0 || 1 / x === 1 / y; } return x !== x && y !== y; } var MINUTES_PER_HOUR = 60; var SECONDS_PER_MINUTE = 60; var MS_PER_SECOND = 1e3; var MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE; var MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR; // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/CoerceOptionsToObject.js function CoerceOptionsToObject(options) { if (typeof options === "undefined") { return Object.create(null); } return ToObject(options); } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DateTimeFormat/BasicFormatMatcher.js var import_tslib3 = __toModule(require_tslib()); // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/GetOption.js function GetOption(opts, prop, type, values, fallback) { if (typeof opts !== "object") { throw new TypeError("Options must be an object"); } var value = opts[prop]; if (value !== void 0) { if (type !== "boolean" && type !== "string") { throw new TypeError("invalid type"); } if (type === "boolean") { value = Boolean(value); } if (type === "string") { value = ToString(value); } if (values !== void 0 && !values.filter(function(val) { return val == value; }).length) { throw new RangeError(value + " is not within " + values.join(", ")); } return value; } return fallback; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/IsSanctionedSimpleUnitIdentifier.js var SANCTIONED_UNITS = [ "angle-degree", "area-acre", "area-hectare", "concentr-percent", "digital-bit", "digital-byte", "digital-gigabit", "digital-gigabyte", "digital-kilobit", "digital-kilobyte", "digital-megabit", "digital-megabyte", "digital-petabyte", "digital-terabit", "digital-terabyte", "duration-day", "duration-hour", "duration-millisecond", "duration-minute", "duration-month", "duration-second", "duration-week", "duration-year", "length-centimeter", "length-foot", "length-inch", "length-kilometer", "length-meter", "length-mile-scandinavian", "length-mile", "length-millimeter", "length-yard", "mass-gram", "mass-kilogram", "mass-ounce", "mass-pound", "mass-stone", "temperature-celsius", "temperature-fahrenheit", "volume-fluid-ounce", "volume-gallon", "volume-liter", "volume-milliliter" ]; function removeUnitNamespace(unit) { return unit.slice(unit.indexOf("-") + 1); } var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace); // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/regex.generated.js var S_UNICODE_REGEX = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/; // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/format_to_parts.js var CARET_S_UNICODE_REGEX = new RegExp("^" + S_UNICODE_REGEX.source); var S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + "$"); // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/data.js var import_tslib4 = __toModule(require_tslib()); var MissingLocaleDataError = function(_super) { (0, import_tslib4.__extends)(MissingLocaleDataError2, _super); function MissingLocaleDataError2() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = "MISSING_LOCALE_DATA"; return _this; } return MissingLocaleDataError2; }(Error); // bazel-out/darwin-fastbuild/bin/packages/intl-locale/lib/index.js var import_intl_getcanonicallocales = __toModule(require_intl_getcanonicallocales()); var likelySubtagsD 318 ata = __toModule(require_likelySubtags()); // bazel-out/darwin-fastbuild/bin/packages/intl-locale/lib/get_internal_slots.js var internalSlotMap = new WeakMap(); function getInternalSlots(x) { var internalSlots = internalSlotMap.get(x); if (!internalSlots) { internalSlots = Object.create(null); internalSlotMap.set(x, internalSlots); } return internalSlots; } // bazel-out/darwin-fastbuild/bin/packages/intl-locale/lib/index.js var likelySubtags = likelySubtagsData.supplemental.likelySubtags; var RELEVANT_EXTENSION_KEYS = ["ca", "co", "hc", "kf", "kn", "nu"]; var UNICODE_TYPE_REGEX = /^[a-z0-9]{3,8}(-[a-z0-9]{3,8})*$/i; function applyOptionsToTag(tag, options) { invariant(typeof tag === "string", "language tag must be a string"); 4000 invariant((0, import_intl_getcanonicallocales.isStructurallyValidLanguageTag)(tag), "malformed language tag", RangeError); var language = GetOption(options, "language", "string", void 0, void 0); if (language !== void 0) { invariant((0, import_intl_getcanonicallocales.isUnicodeLanguageSubtag)(language), "Malformed unicode_language_subtag", RangeError); } var script = GetOption(options, "script", "string", void 0, void 0); if (script !== void 0) { invariant((0, import_intl_getcanonicallocales.isUnicodeScriptSubtag)(script), "Malformed unicode_script_subtag", RangeError); } var region = GetOption(options, "region", "string", void 0, void 0); if (region !== void 0) { invariant((0, import_intl_getcanonicallocales.isUnicodeRegionSubtag)(region), "Malformed unicode_region_subtag", RangeError); } var languageId = (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(tag); if (language !== void 0) { languageId.lang = language; } if (script !== void 0) { languageId.script = script; } if (region !== void 0) { languageId.region = region; } return Intl.getCanonicalLocales((0, import_intl_getcanonicallocales.emitUnicodeLocaleId)((0, import_tslib5.__assign)((0, import_tslib5.__assign)({}, (0, import_intl_getcanonicallocales.parseUnicodeLocaleId)(tag)), {lang: languageId})))[0]; } function applyUnicodeExtensionToTag(tag, options, relevantExtensionKeys) { var unicodeExtension; var keywords = []; var ast = (0, import_intl_getcanonicallocales.parseUnicodeLocaleId)(tag); for (var _i = 0, _a = ast.extensions; _i < _a.length; _i++) { var ext = _a[_i]; if (ext.type === "u") { unicodeExtension = ext; if (Array.isArray(ext.keywords)) keywords = ext.keywords; } } var result = Object.create(null); for (var _b = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _b < relevantExtensionKeys_1.length; _b++) { var key = relevantExtensionKeys_1[_b]; var value = void 0, entry = void 0; for (var _c = 0, keywords_1 = keywords; _c < keywords_1.length; _c++) { var keyword = keywords_1[_c]; if (keyword[0] === key) { entry = keyword; value = entry[1]; } } invariant(key in options, key + " must be in options"); var optionsValue = options[key]; if (optionsValue !== void 0) { invariant(typeof optionsValue === "string", "Value for " + key + " must be a string"); value = optionsValue; if (entry) { entry[1] = value; } else { keywords.push([key, value]); } } result[key] = value; } if (!unicodeExtension) { if (keywords.length) { ast.extensions.push({ type: "u", keywords: keywords, attributes: [] }); } } else { unicodeExtension.keywords = keywords; } result.locale = Intl.getCanonicalLocales((0, import_intl_getcanonicallocales.emitUnicodeLocaleId)(ast))[0]; return result; } function mergeUnicodeLanguageId(lang, script, region, variants, replacement) { if (variants === void 0) { variants = []; } if (!replacement) { return { lang: lang || "und", script: script, region: region, variants: variants }; } return { lang: !lang || lang === "und" ? replacement.lang : lang, script: script || replacement.script, region: region || replacement.region, variants: (0, import_tslib5.__spreadArray)((0, import_tslib5.__spreadArray)([], variants), replacement.variants) }; } function addLikelySubtags(tag) { var ast = (0, import_intl_getcanonicallocales.parseUnicodeLocaleId)(tag); var unicodeLangId = ast.lang; var lang = unicodeLangId.lang, script = unicodeLangId.script, region = unicodeLangId.region, variants = unicodeLangId.variants; if (script && region) { var match_1 = likelySubtags[(0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({lang: lang, script: script, region: region, variants: []})]; if (match_1) { var parts_1 = (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(match_1); ast.lang = mergeUnicodeLanguageId(void 0, void 0, void 0, variants, parts_1); return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)(ast); } } if (script) { var match_2 = likelySubtags[(0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({lang: lang, script: script, variants: []})]; if (match_2) { var parts_2 = (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(match_2); ast.lang = mergeUnicodeLanguageId(void 0, void 0, region, variants, parts_2); return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)(ast); } } if (region) { var match_3 = likelySubtags[(0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({lang: lang, region: region, variants: []})]; if (match_3) { var parts_3 = (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(match_3); ast.lang = mergeUnicodeLanguageId(void 0, script, void 0, variants, parts_3); return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)(ast); } } var match = likelySubtags[lang] || likelySubtags[(0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({lang: "und", script: script, variants: []})]; if (!match) { throw new Error("No match for addLikelySubtags"); } var parts = (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(match); ast.lang = mergeUnicodeLanguageId(void 0, script, region, variants, parts); return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)(ast); } function removeLikelySubtags(tag) { var maxLocale = addLikelySubtags(tag); if (!maxLocale) { return tag; } maxLocale = (0, import_intl_getcanonicallocales.emitUnicodeLanguageId)((0, import_tslib5.__assign)((0, import_tslib5.__assign)({}, (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(maxLocale)), {variants: []})); var ast = (0, import_intl_getcanonicallocales.parseUnicodeLocaleId)(tag); var _a = ast.lang, lang = _a.lang, script = _a.script, region = _a.region, variants = _a.variants; var trial = addLikelySubtags((0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({lang: lang, variants: []})); if (trial === maxLocale) { return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)((0, import_tslib5.__assign)((0, import_tslib5.__assign)({}, ast), {lang: mergeUnicodeLanguageId(lang, void 0, void 0, variants)})); } if (region) { var trial_1 = addLikelySubtags((0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({lang: lang, region: region, variants: []})); if (trial_1 === maxLocale) { return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)((0, import_tslib5.__assign)((0, import_tslib5.__assign)({}, ast), {lang: mergeUnicodeLanguageId(lang, void 0, region, variants)})); } } if (script) { var trial_2 = addLikelySubtags((0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({lang: lang, script: script, variants: []})); if (trial_2 === maxLocale) { return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)((0, import_tslib5.__assign)((0, import_tslib5.__assign)({}, ast), {lang: mergeUnicodeLanguageId(lang, script, void 0, variants)})); } } return tag; } var Locale = function() { function Locale2(tag, opts) { var newTarget = this && this instanceof Locale2 ? this.constructor : void 0; if (!newTarget) { throw new TypeError("Intl.Locale must be called with 'new'"); } var relevantExtensionKeys = Locale2.relevantExtensionKeys; var internalSlotsList = [ "initializedLocale", "locale", "calendar", "collation", "hourCycle", "numberingSystem" ]; if (relevantExtensionKeys.indexOf("kf") > -1) { internalSlotsList.push("caseFirst"); } if (relevantExtensionKeys.indexOf("kn") > -1) { internalSlotsList.push("numeric"); } if (tag === void 0) { throw new TypeError("First argument to Intl.Locale constructor can't be empty or missing"); } if (typeof tag !== "string" && typeof tag !== "object") { throw new TypeError("tag must be a string or object"); } var internalSlots; if (typeof tag === "object" && (internalSlots = getInternalSlots(tag)) && internalSlots.initializedLocale) { tag = internalSlots.locale; } else { tag = tag.toString(); } internalSlots = getInternalSlots(this); var options = CoerceOptionsToObject(opts); tag = applyOptionsToTag(tag, options); var opt = Object.create(null); var calendar = GetOption(options, "calendar", "string", void 0, void 0); if (calendar !== void 0) { if (!UNICODE_TYPE_REGEX.test(calendar)) { throw new RangeError("invalid calendar"); } } opt.ca = calendar; var collation = GetOption(options, "collation", "string", void 0, void 0); if (collation !== void 0) { if (!UNICODE_TYPE_REGEX.test(collation)) { throw new RangeError("invalid collation"); } } opt.co = collation; var hc = GetOption(options, "hourCycle", "string", ["h11", "h12", "h23", "h24"], void 0); opt.hc = hc; var kf = GetOption(options, "caseFirst", "string", ["upper", "lower", "false"], void 0); opt.kf = kf; var _kn = GetOption(options, "numeric", "boolean", void 0, void 0); var kn; if (_kn !== void 0) { kn = String(_kn); } opt.kn = kn; var numberingSystem = GetOption(options, "numberingSystem", "string", void 0, void 0); if (numberingSystem !== void 0) { if (!UNICODE_TYPE_REGEX.test(numberingSystem)) { throw new RangeError("Invalid numberingSystem"); } } opt.nu = numberingSystem; var r = applyUnicodeExtensionToTag(tag, opt, relevantExtensionKeys); internalSlots.locale = r.locale; internalSlots.calendar = r.ca; internalSlots.collation = r.co; internalSlots.hourCycle = r.hc; if (relevantExtensionKeys.indexOf("kf") > -1) { internalSlots.caseFirst = r.kf; } if (relevantExtensionKeys.indexOf("kn") > -1) { internalSlots.numeric = SameValue(r.kn, "true"); } internalSlots.numberingSystem = r.nu; } Locale2.prototype.maximize = function() { var locale = getInternalSlots(this).locale; try { var maximizedLocale = addLikelySubtags(locale); return new Locale2(maximizedLocale); } catch (e) { return new Locale2(locale); } }; Locale2.prototype.minimize = function() { var locale = getInternalSlots(this).locale; try { var minimizedLocale = removeLikelySubtags(locale); return new Locale2(minimizedLocale); } catch (e) { return new Locale2(locale); } }; Locale2.prototype.toString = function() { return getInternalSlots(this).locale; }; Object.defineProperty(Locale2.prototype, "baseName", { get: function() { var locale = getInternalSlots(this).locale; return (0, import_intl_getcanonicallocales.emitUnicodeLanguageId)((0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(locale)); }, enumerable: false, configurable: true }); Object.defineProperty(Locale2.prototype, "calendar", { get: function() { return getInternalSlots(this).calendar; }, enumerable: false, configurable: true }); Object.defineProperty(Locale2.prototype, "collation", { get: function() { return getInternalSlots(this).collation; }, enumerable: false, configurable: true }); Object.defineProperty(Locale2.prototype, "hourCycle", { get: function() { return getInternalSlots(this).hourCycle; }, enumerable: false, configurable: true }); Object.defineProperty(Locale2.prototype, "caseFirst", { get: function() { return getInternalSlots(this).caseFirst; }, enumerable: false, configurable: true }); Object.defineProperty(Locale2.prototype, "numeric", { get: function() { return getInternalSlots(this).numeric; }, enumerable: false, configurable: true }); Object.defineProperty(Locale2.prototype, "numberingSystem", { get: function() { return getInternalSlots(this).numberingSystem; }, enumerable: false, configurable: true }); Object.defineProperty(Locale2.prototype, "language", { get: function() { var locale = getInternalSlots(this).locale; return (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(locale).lang; }, enumerable: false, configurable: true }); Object.defineProperty(Locale2.prototype, "script", { get: function() { var locale = getInternalSlots(this).locale; return (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(locale).script; }, enumerable: false, configurable: true }); Object.defineProperty(Locale2.prototype, "region", { get: function() { var locale = getInternalSlots(this).locale; return (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(locale).region; }, enumerable: false, configurable: true }); Locale2.relevantExtensionKeys = RELEVANT_EXTENSION_KEYS; return Locale2; }(); try { if (typeof Symbol !== "undefined") { Object.defineProperty(Locale.prototype, Symbol.toStringTag, { value: "Intl.Locale", writable: false, enumerable: false, configurable: true }); } Object.defineProperty(Locale.prototype.constructor, "length", { value: 1, writable: false, enumerable: false, configurable: true }); } catch (e) { } // bazel-out/darwin-fastbuild/bin/packages/intl-locale/lib/should-polyfill.js function hasIntlGetCanonicalLocalesBug() { try { return new Intl.Locale("und-x-private").toString() === "x-private"; } catch (e) { return true; } } function shouldPolyfill() { return typeof Intl === "undefined" || !("Locale" in Intl) || hasIntlGetCanonicalLocalesBug(); } // bazel-out/darwin-fastbuild/bin/packages/intl-locale/lib/polyfill.js if (shouldPolyfill()) { Object.defineProperty(Intl, "Locale", { value: Locale, writable: true, enumerable: false, configurable: true }); } })(); /*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ } if (!("Intl"in self&&"DisplayNames"in self.Intl )) { // Intl.DisplayNames (function() { // node_modules/tslib/tslib.es6.js var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || {__proto__: []} instanceof Array && function(d2, b2) { d2.__proto__ = b2; } || function(d2, b2) { for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; }; return extendStatics(d, b); }; function __extends(d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b) 4000 ; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } var __assign = function() { __assign = Object.assign || function __assign2(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/utils.js function setInternalSlot(map, pl, field, value) { if (!map.get(pl)) { map.set(pl, Object.create(null)); } var slots = map.get(pl); slots[field] = value; } function getInternalSlot(map, pl, field) { return getMultiInternalSlots(map, pl, field)[field]; } function getMultiInternalSlots(map, pl) { var fields = []; for (var _i = 2; _i < arguments.length; _i++) { fields[_i - 2] = arguments[_i]; } var slots = map.get(pl); if (!slots) { throw new TypeError(pl + " InternalSlot has not been initialized"); } return fields.reduce(function(all, f) { all[f] = slots[f]; return all; }, Object.create(null)); } var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi; function invariant(condition, message, Err) { if (Err === void 0) { Err = Error; } if (!condition) { throw new Err(message); } } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/types/date-time.js var RangePatternType; (function(RangePatternType2) { RangePatternType2["startRange"] = "startRange"; RangePatternType2["shared"] = "shared"; RangePatternType2["endRange"] = "endRange"; })(RangePatternType || (RangePatternType = {})); // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/CanonicalizeLocaleList.js function CanonicalizeLocaleList(locales) { return Intl.getCanonicalLocales(locales); } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/262.js function ToString(o) { if (typeof o === "symbol") { throw TypeError("Cannot convert a Symbol value to a string"); } return String(o); } function ToObject(arg) { if (arg == null) { throw new TypeError("undefined/null cannot be converted to object"); } return Object(arg); } var MINUTES_PER_HOUR = 60; var SECONDS_PER_MINUTE = 60; var MS_PER_SECOND = 1e3; var MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE; var MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR; // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/GetOption.js function GetOption(opts, prop, type, values, fallback) { if (typeof opts !== "object") { throw new TypeError("Options must be an object"); } var value = opts[prop]; if (value !== void 0) { if (type !== "boolean" && type !== "string") { throw new TypeError("invalid type"); } if (type === "boolean") { value = Boolean(value); } if (type === "string") { value = ToString(value); } if (values !== void 0 && !values.filter(function(val) { return val == value; }).length) { throw new RangeError(value + " is not within " + values.join(", ")); } return value; } return fallback; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/BestAvailableLocale.js function BestAvailableLocale(availableLocales, locale) { var candidate = locale; while (true) { if (availableLocales.has(candidate)) { return candidate; } var pos = candidate.lastIndexOf("-"); if (!~pos) { return void 0; } if (pos >= 2 && candidate[pos - 2] === "-") { pos -= 2; } candidate = candidate.slice(0, pos); } } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/LookupMatcher.js function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) { var result = {locale: ""}; for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) { var locale = requestedLocales_1[_i]; var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, ""); var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale); if (availableLocale) { result.locale = availableLocale; if (locale !== noExtensionLocale) { result.extension = locale.slice(noExtensionLocale.length + 1, locale.length); } return result; } } result.locale = getDefaultLocale(); return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/BestFitMatcher.js function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) { var minimizedAvailableLocaleMap = {}; var minimizedAvailableLocales = new Set(); availableLocales.forEach(function(locale2) { var minimizedLocale = new Intl.Locale(locale2).minimize().toString(); minimizedAvailableLocaleMap[minimizedLocale] = locale2; minimizedAvailableLocales.add(minimizedLocale); }); var foundLocale; for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) { var l = requestedLocales_1[_i]; if (foundLocale) { break; } var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, ""); if (availableLocales.has(noExtensionLocale)) { foundLocale = noExtensionLocale; break; } if (minimizedAvailableLocales.has(noExtensionLocale)) { foundLocale = minimizedAvailableLocaleMap[noExtensionLocale]; break; } var locale = new Intl.Locale(noExtensionLocale); var maximizedRequestedLocale = locale.maximize().toString(); var minimizedRequestedLocale = locale.minimize().toString(); if (minimizedAvailableLocales.has(minimizedRequestedLocale)) { foundLocale = minimizedAvailableLocaleMap[minimizedRequestedLocale]; break; } foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale); } return { locale: foundLocale || getDefaultLocale() }; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/UnicodeExtensionValue.js function UnicodeExtensionValue(extension, key) { invariant(key.length === 2, "key must have 2 elements"); var size = extension.length; var searchValue = "-" + key + "-"; var pos = extension.indexOf(searchValue); if (pos !== -1) { var start = pos + 4; var end = start; var k = start; var done = false; while (!done) { var e = extension.indexOf("-", k); var len = void 0; if (e === -1) { len = size - k; } else { len = e - k; } if (len === 2) { done = true; } else if (e === -1) { end = size; done = true; } else { end = e; k = e + 1; } } return extension.slice(start, end); } searchValue = "-" + key; pos = extension.indexOf(searchValue); if (pos !== -1 && pos + 3 === size) { return ""; } return void 0; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/ResolveLocale.js function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) { var matcher = options.localeMatcher; var r; if (matcher === "lookup") { r = LookupMatcher(availableLocales, requestedLocales, getDefaultLocale); } else { r = BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale); } var foundLocale = r.locale; var result = {locale: "", dataLocale: foundLocale}; var supportedExtension = "-u"; for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) { var key = relevantExtensionKeys_1[_i]; invariant(foundLocale in localeData, "Missing locale data for " + foundLocale); var foundLocaleData = localeData[foundLocale]; invariant(typeof foundLocaleData === "object" && foundLocaleData !== null, "locale data " + key + " must be an object"); var keyLocaleData = foundLocaleData[key]; invariant(Array.isArray(keyLocaleData), "keyLocaleData for " + key + " must be an array"); var value = keyLocaleData[0]; invariant(typeof value === "string" || value === null, "value must be string or null but got " + typeof value + " in key " + key); var supportedExtensionAddition = ""; if (r.extension) { var requestedValue = UnicodeExtensionValue(r.extension, key); if (requestedValue !== void 0) { if (requestedValue !== "") { if (~keyLocaleData.indexOf(requestedValue)) { value = requestedValue; supportedExtensionAddition = "-" + key + "-" + value; } } else if (~requestedValue.indexOf("true")) { value = "true"; supportedExtensionAddition = "-" + key; } } } if (key in options) { var optionsValue = options[key]; invariant(typeof optionsValue === "string" || typeof optionsValue === "undefined" || optionsValue === null, "optionsValue must be String, Undefined or Null"); if (~keyLocaleData.indexOf(optionsValue)) { if (optionsValue !== value) { value = optionsValue; supportedExtensionAddition = ""; } } } result[key] = value; supportedExtension += supportedExtensionAddition; } if (supportedExtension.length > 2) { var privateIndex = foundLocale.indexOf("-x-"); if (privateIndex === -1) { foundLocale = foundLocale + supportedExtension; } else { var preExtension = foundLocale.slice(0, privateIndex); var postExtension = foundLocale.slice(privateIndex, foundLocale.length); foundLocale = preExtension + supportedExtension + postExtension; } foundLocale = Intl.getCanonicalLocales(foundLocale)[0]; } result.locale = foundLocale; return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/IsWellFormedCurrencyCode.js function toUpperCase(str) { return str.replace(/([a-z])/g, function(_, c) { return c.toUpperCase(); }); } var NOT_A_Z_REGEX = /[^A-Z]/; function IsWellFormedCurrencyCode(currency) { currency = toUpperCase(currency); if (currency.length !== 3) { return false; } if (NOT_A_Z_REGEX.test(currency)) { return false; } return true; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DisplayNames/CanonicalCodeForDisplayNames.js var UNICODE_REGION_SUBTAG_REGEX = /^([a-z]{2}|[0-9]{3})$/i; var ALPHA_4 = /^[a-z]{4}$/i; function isUnicodeRegionSubtag(region) { return UNICODE_REGION_SUBTAG_REGEX.test(region); } function isUnicodeScriptSubtag(script) { return ALPHA_4.test(script); } function CanonicalCodeForDisplayNames(type, code) { if (type === "language") { return CanonicalizeLocaleList([code])[0]; } if (type === "region") { if (!isUnicodeRegionSubtag(code)) { throw RangeError("invalid region"); } return code.toUpperCase(); } if (type === "script") { if (!isUnicodeScriptSubtag(code)) { throw RangeError("invalid script"); } return "" + code[0].toUpperCase() + code.slice(1).toLowerCase(); } invariant(type === "currency", "invalid type"); if (!IsWellFormedCurrencyCode(code)) { throw RangeError("invalid currency"); } return code.toUpperCase(); } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/GetOptionsObject.js function GetOptionsObject(options) { if (typeof options === "undefined") { return Object.create(null); } if (typeof options === "object") { return options; } throw new TypeError("Options must be an object"); } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/IsSanctionedSimpleUnitIdentifier.js var SANCTIONED_UNITS = [ "angle-degree", "area-acre", "area-hectare", "concentr-percent", "digital-bit", "digital-byte", "digital-gigabit", "digital-gigabyte", "digital-kilobit", "digital-kilobyte", "digital-megabit", "digital-megabyte", "digital-petabyte", "digital-terabit", "digital-terabyte", "duration-day", "duration-hour", "duration-millisecond", "duration-minute", "duration-month", "duration-second", "duration-week", "duration-year", "length-centimeter", "length-foot", "length-inch", "length-kilometer", "length-meter", "length-mile-scandinavian", "length-mile", "length-millimeter", "length-yard", "mass-gram", "mass-kilogram", "mass-ounce", "mass-pound", "mass-stone", "temperature-celsius", "temperature-fahrenheit", "volume-fluid-ounce", "volume-gallon", "volume-liter", "volume-milliliter" ]; function removeUnitNamespace(unit) { return unit.slice(unit.indexOf("-") + 1); } var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace); // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/regex.generated.js var S_UNICODE_REGEX = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/; // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/format_to_parts.js var CARET_S_UNICODE_REGEX = new RegExp("^" + S_UNICODE_REGEX.source); var S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + "$"); // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/l 3ce7 ib/LookupSupportedLocales.js function LookupSupportedLocales(availableLocales, requestedLocales) { var subset = []; for (var _i = 0, requestedLocales_1 = requestedLocales; _i -1) { endIndex = pattern.indexOf("}", beginIndex); invariant(endIndex > beginIndex, "Invalid pattern " + pattern); if (beginIndex > nextIndex) { result.push({ type: "literal", value: pattern.substring(nextIndex, beginIndex) }); } result.push({ type: pattern.substring(beginIndex + 1, endIndex), value: void 0 }); nextIndex = endIndex + 1; beginIndex = pattern.indexOf("{", nextIndex); } if (nextIndex < length) { result.push({ type: "literal", value: pattern.substring(nextIndex, length) }); } return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/GetOption.js function GetOption(opts, prop, type, values, fallback) { if (typeof opts !== "object") { throw new TypeError("Options must be an object"); } var value = opts[prop]; if (value !== void 0) { if (type !== "boolean" && type !== "string") { throw new TypeError("invalid type"); } if (type === "boolean") { value = Boolean(value); } if (type === "string") { value = ToString(value); } if (values !== void 0 && !values.filter(function(val) { return val == value; }).length) { throw new RangeError(value + " is not within " + values.join(", ")); } return value; } return fallback; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/BestAvailableLocale.js function BestAvailableLocale(availableLocales, locale) { var candidate = locale; while (true) { if (availableLocales.has(candidate)) { return candidate; } var pos = candidate.lastIndexOf("-"); if (!~pos) { return void 0; } if (pos >= 2 && candidate[pos - 2] === "-") { pos -= 2; } candidate = candidate.slice(0, pos); } } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/LookupMatcher.js function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) { var result = {locale: ""}; for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) { var locale = requestedLocales_1[_i]; var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, ""); var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale); if (availableLocale) { result.locale = availableLocale; if (locale !== noExtensionLocale) { result.extension = locale.slice(noExtensionLocale.length + 1, locale.length); } return result; } } result.locale = getDefaultLocale(); return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/BestFitMatcher.js function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) { var minimizedAvailableLocaleMap = {}; var minimizedAvailableLocales = new Set(); availableLocales.forEach(function(locale2) { var minimizedLocale = new Intl.Locale(locale2).minimize().toString(); minimizedAvailableLocaleMap[minimizedLocale] = locale2; minimizedAvailableLocales.add(minimizedLocale); }); var foundLocale; for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) { var l = requestedLocales_1[_i]; if (foundLocale) { break; } var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, ""); if (availableLocales.has(noExtensionLocale)) { foundLocale = noExtensionLocale; break; } if (minimizedAvailableLocales.has(noExtensionLocale)) { foundLocale = minimizedAvailableLocaleMap[noExtensionLocale]; break; } var locale = new Intl.Locale(noExtensionLocale); var maximizedRequestedLocale = locale.maximize().toString(); var minimizedRequestedLocale = locale.minimize().toString(); if (minimizedAvailableLocales.has(minimizedRequestedLocale)) { foundLocale = minimizedAvailableLocaleMap[minimizedRequestedLocale]; break; } foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale); } return { locale: foundLocale || getDefaultLocale() }; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/UnicodeExtensionValue.js function UnicodeExtensionValue(extension, key) { invariant(key.length === 2, "key must have 2 elements"); var size = extension.length; var searchValue = "-" + key + "-"; var pos = extension.indexOf(searchValue); if (pos !== -1) { var start = pos + 4; var end = start; var k = start; var done = false; while (!done) { var e = extension.indexOf("-", k); var len = void 0; if (e === -1) { len = size - k; } else { len = e - k; } if (len === 2) { done = true; } else if (e === -1) { end = size; done = true; } else { end = e; k = e + 1; } } return extension.slice(start, end); } searchValue = "-" + key; pos = extension.indexOf(searchValue); if (pos !== -1 && pos + 3 === size) { return ""; } return void 0; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/ResolveLocale.js function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) { var matcher = options.localeMatcher; var r; if (matcher === "lookup") { r = LookupMatcher(availableLocales, requestedLocales, getDefaultLocale); } else { r = BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale); } var foundLocale = r.locale; var result = {locale: "", dataLocale: foundLocale}; var supportedExtension = "-u"; for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i 318 ++) { var key = relevantExtensionKeys_1[_i]; invariant(foundLocale in localeData, "Missing locale data for " + foundLocale); var foundLocaleData = localeData[foundLocale]; invariant(typeof foundLocaleData === "object" && foundLocaleData !== null, "locale data " + key + " must be an object"); var keyLocaleData = foundLocaleData[key]; invariant(Array.isArray(keyLocaleData), "keyLocaleData for " + key + " must be an array"); var value = keyLocaleData[0]; invariant(typeof value === "string" || value === null, "value must be string or null but got " + typeof value + " in key " + key); var supportedExtensionAddition = ""; if (r.extension) { var requestedValue = UnicodeExtensionValue(r.extension, key); if (request 4000 edValue !== void 0) { if (requestedValue !== "") { if (~keyLocaleData.indexOf(requestedValue)) { value = requestedValue; supportedExtensionAddition = "-" + key + "-" + value; } } else if (~requestedValue.indexOf("true")) { value = "true"; supportedExtensionAddition = "-" + key; } } } if (key in options) { var optionsValue = options[key]; invariant(typeof optionsValue === "string" || typeof optionsValue === "undefined" || optionsValue === null, "optionsValue must be String, Undefined or Null"); if (~keyLocaleData.indexOf(optionsValue)) { if (optionsValue !== value) { value = optionsValue; supportedExtensionAddition = ""; } } } result[key] = value; supportedExtension += supportedExtensionAddition; } if (supportedExtension.length > 2) { var privateIndex = foundLocale.indexOf("-x-"); if (privateIndex === -1) { foundLocale = foundLocale + supportedExtension; } else { var preExtension = foundLocale.slice(0, privateIndex); var postExtension = foundLocale.slice(privateIndex, foundLocale.length); foundLocale = preExtension + supportedExtension + postExtension; } foundLocale = Intl.getCanonicalLocales(foundLocale)[0]; } result.locale = foundLocale; return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/GetOptionsObject.js function GetOptionsObject(options) { if (typeof options === "undefined") { return Object.create(null); } if (typeof options === "object") { return options; } throw new TypeError("Options must be an object"); } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/IsSanctionedSimpleUnitIdentifier.js var SANCTIONED_UNITS = [ "angle-degree", "area-acre", "area-hectare", "concentr-percent", "digital-bit", "digital-byte", "digital-gigabit", "digital-gigabyte", "digital-kilobit", "digital-kilobyte", "digital-megabit", "digital-megabyte", "digital-petabyte", "digital-terabit", "digital-terabyte", "duration-day", "duration-hour", "duration-millisecond", "duration-minute", "duration-month", "duration-second", "duration-week", "duration-year", "length-centimeter", "length-foot", "length-inch", "length-kilometer", "length-meter", "length-mile-scandinavian", "length-mile", "length-millimeter", "length-yard", "mass-gram", "mass-kilogram", "mass-ounce", "mass-pound", "mass-stone", "temperature-celsius", "temperature-fahrenheit", "volume-fluid-ounce", "volume-gallon", "volume-liter", "volume-milliliter" ]; function removeUnitNamespace(unit) { return unit.slice(unit.indexOf("-") + 1); } var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace); // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/regex.generated.js var S_UNICODE_REGEX = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/; // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/format_to_parts.js var CARET_S_UNICODE_REGEX = new RegExp("^" + S_UNICODE_REGEX.source); var S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + "$"); // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/LookupSupportedLocales.js function LookupSupportedLocales(availableLocales, requestedLocales) { var subset = []; for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) { var locale = requestedLocales_1[_i]; var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, ""); var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale); if (availableLocale) { subset.push(availableLocale); } } return subset; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/SupportedLocales.js function SupportedLocales(availableLocales, requestedLocales, options) { var matcher = "best fit"; if (options !== void 0) { options = ToObject(options); matcher = GetOption(options, "localeMatcher", "string", ["lookup", "best fit"], "best fit"); } if (matcher === "best fit") { return LookupSupportedLocales(availableLocales, requestedLocales); } return LookupSupportedLocales(availableLocales, requestedLocales); } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/data.js var MissingLocaleDataError = function(_super) { __extends(MissingLocaleDataError2, _super); function MissingLocaleDataError2() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = "MISSING_LOCALE_DATA"; return _this; } return MissingLocaleDataError2; }(Error); // bazel-out/darwin-fastbuild/bin/packages/intl-listformat/lib/index.js function validateInstance(instance, method) { if (!(instance instanceof ListFormat)) { throw new TypeError("Method Intl.ListFormat.prototype." + method + " called on incompatible receiver " + String(instance)); } } function stringListFromIterable(list) { if (list === void 0) { return []; } var result = []; for (var _i = 0, list_1 = list; _i < list_1.length; _i++) { var el = list_1[_i]; if (typeof el !== "string") { throw new TypeError("array list[" + list.indexOf(el) + "] is not type String"); } result.push(el); } return result; } function createPartsFromList(internalSlotMap, lf, list) { var size = list.length; if (size === 0) { return []; } if (size === 2) { var pattern = getInternalSlot(internalSlotMap, lf, "templatePair"); var first = {type: "element", value: list[0]}; var second = {type: "element", value: list[1]}; return deconstructPattern(pattern, {"0": first, "1": second}); } var last = { type: "element", value: list[size - 1] }; var parts = last; var i = size - 2; while (i >= 0) { var pattern = void 0; if (i === 0) { pattern = getInternalSlot(internalSlotMap, lf, "templateStart"); } else if (i = 2 && candidate[pos - 2] === "-") { pos -= 2; } candidate = candidate.slice(0, pos); } } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/LookupMatcher.js function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) { var result = {locale: ""}; for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) { var locale = requestedLocales_1[_i]; var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, ""); var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale); if (availableLocale) { result.locale = availableLocale; if (locale !== noExtensionLocale) { result.extension = locale.slice(noExtensionLocale.length + 1, locale.length); } return result; } } result.locale = getDefaultLocale(); return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/BestFitMatcher.js function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) { var minimizedAvailableLocaleMap = {}; var minimizedAvailableLocales = new Set(); availableLocales.forEach(function(locale2) { var minimizedLocale = new Intl.Locale(locale2).minimize().toString(); minimizedAvailableLocaleMap[minimizedLocale] = locale2; minimizedAvailableLocales.add(minimizedLocale); }); var foundLocale; for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) { var l = requestedLocales_1[_i]; if (foundLocale) { break; } var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, ""); if (availableLocales.has(noExtensionLocale)) { foundLocale = noExtensionLocale; break; } if (minimizedAvailableLocales.has(noExtensionLocale)) { foundLocale = minimizedAvailableLocaleMap[noExtensionLocale]; break; } var locale = new Intl.Locale(noExtensionLocale); var maximizedRequestedLocale = locale.maximize().toString(); var minimizedRequestedLocale = locale.minimize().toString(); if (minimizedAvailableLocales.has(minimizedRequestedLocale)) { foundLocale = minimizedAvailableLocaleMap[minimizedRequestedLocale]; break; } foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale); } return { locale: foundLocale || getDefaultLocale() }; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/UnicodeExtensionValue.js function UnicodeExtensionValue(extension, key) { invariant(key.length === 2, "key must have 2 elements"); var size = extension.length; var searchValue = "-" + key + "-"; var pos = extension.indexOf(searchValue); if (pos !== -1) { var start = pos + 4; var end = start; var k = start; var done = false; while (!done) { var e = extension.indexOf("-", k); var len = void 0; if (e === -1) { len = size - k; } else { len = e - k; } if (len === 2) { done = true; } else if (e === -1) { end = size; done = true; } else { end = e; k = e + 1; } } return extension.slice(start, end); } searchValue = "-" + key; pos = extension.indexOf(searchValue); if (pos !== -1 && pos + 3 === size) { return ""; } return void 0; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/ResolveLocale.js function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) { var matcher = options.localeMatcher; var r; if (matcher === "lookup") { r = LookupMatcher(availableLocales, requestedLocales, getDefaultLocale); } else { r = BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale); } var foundLocale = r.locale; var result = {locale: "", dataLocale: foundLocale}; var supportedExtension = "-u"; for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) { var key = relevantExtensionKeys_1[_i]; invariant(foundLocale in localeData, "Missing locale data for " + foundLocale); var foundLocaleData = localeData[foundLocale]; invariant(typeof foundLocaleData === "object" && foundLocaleData !== null, "locale data " + key + " must be an object"); var keyLocaleData = foundLocaleData[key]; invariant(Array.isArray(keyLocaleData), "keyLocaleData for " + key + " must be an array"); var value = keyLocaleData[0]; invariant(typeof value === "string" || value === null, "value must be string or null but got " + typeof value + " in key " + key); var supportedExtensionAddition = ""; if (r.extension) { var requestedValue = UnicodeExtensionValue(r.extension, key); if (requestedValue !== void 0) { if (requestedValue !== "") { if (~keyLocaleData.indexOf(requestedValue)) { value = requestedValue; supportedExtensionAddition = "-" + key + "-" + value; } } else if (~requestedValue.indexOf("true")) { value = "true"; supportedExtensionAddition = "-" + key; } } } if (key in options) { var optionsValue = options[key]; invariant(typeof optionsValue === "string" || typeof optionsValue === "undefined" || optionsValue === null, "optionsValue must be String, Undefined or Null"); if (~keyLocaleData.indexOf(optionsValue)) { if (optionsValue !== value) { value = optionsValue; supportedExtensionAddition = ""; } } } result[key] = value; supportedExtension += supportedExtensionAddition; } if (supportedExtension.length > 2) { var privateIndex = foundLocale.indexOf("-x-"); if (privateIndex === -1) { foundLocale = foundLocale + supportedExtension; } else { var preExtension = foundLocale.slice(0, privateIndex); var postExtension = foundLocale.slice(privateIndex, foundLocale.length); foundLocale = preExtension + supportedExtension + postExtension; } foundLocale = Intl.getCanonicalLocales(foundLocale)[0]; } result.locale = foundLocale; return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DefaultNumberOption.js function DefaultNumberOption(val, min, max, fallback) { if (val !== void 0) { val = Number(val); if (isNaN(val) || val < min || val > max) { throw new RangeError(val + " is outside of range [" + min + ", " + max + "]"); } return Math.floor(val); } return fallback; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/GetNumberOption.js function GetNumberOption(options, property, minimum, maximum, fallback) { var val = options[property]; return DefaultNumberOption(val, minimum, maximum, fallback); } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/IsSanctionedSimpleUnitIdentifier.js var SANCTIONED_UNITS = [ "angle-degree", "area-acre", "area-hectare", "concentr-percent", "digital-bit", "digital-byte", "digital-gigabit", "digital-gigabyte", "digital-kilobit", "digital-kilobyte", "digital-megabit", "digital-megabyte", "digital-petabyte", "digital-terabit", "digital-terabyte", "duration-day", "duration-hour", "duration-millisecond", "duration-minute", "duration-month", "duration-second", "duration-week", "duration-year", "length-centimeter", "length-foot", "length-inch", "length-kilometer", "length-meter", "length-mile-scandinavian", "length-mile", "length-millimeter", "length-yard", "mass-gram", "mass-kilogram", "mass-ounce", "mass-pound", "mass-stone", "temperature-celsius", "temperature-fahrenheit", "volume-fluid-ounce", "volume-gallon", "volume-liter", "volume-milliliter" ]; function removeUnitNamespace(unit) { return unit.slice(unit.indexOf("-") + 1); } var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace); // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/ToRawPrecision.js function ToRawPrecision(x, minPrecision, maxPrecision) { var p = maxPrecision; var m; var e; var xFinal; if (x === 0) { m = repeat("0", p); e = 0; xFinal = 0; } else { var xToString = x.toString(); var xToStringExponentIndex = xToString.indexOf("e"); var _a = xToString.split("e"), xToStringMantissa = _a[0], xToStringExponent = _a[1]; var xToStringMantissaWithoutDecimalPoint = xToStringMantissa.replace(".", ""); if (xToStringExponentIndex >= 0 && xToStringMantissaWithoutDecimalPoint.length <= p) { e = +xToStringExponent; m = xToStringMantissaWithoutDecimalPoint + repeat("0", p - xToStringMantissaWithoutDecimalPoint.length); xFinal = x; } else { e = getMagnitude(x); var decimalPlaceOffset = e - p + 1; var n = Math.round(adjustDecimalPlace(x, decimalPlaceOffset)); if (adjustDecimalPlace(n, p - 1) >= 10) { e = e + 1; n = Math.floor(n / 10); } m = n.toString(); xFinal = adjustDecimalPlace(n, p - 1 - e); } } var int; if (e >= p - 1) { m = m + repeat("0", e - p + 1); int = e + 1; } else if (e >= 0) { m = m.slice(0, e + 1) + "." + m.slice(e + 1); int = e + 1; } else { m = "0." + repeat("0", -e - 1) + m; int = 1; } if (m.indexOf(".") >= 0 && maxPrecision > minPrecision) { 3ce7 var cut = maxPrecision - minPrecision; while (cut > 0 && m[m.length - 1] === "0") { m = m.slice(0, -1); cut--; } if (m[m.length - 1] === ".") { m = m.slice(0, -1); } } return {formattedString: m, roundedNumber: xFinal, integerDigitsCount: int}; function adjustDecimalPlace(x2, magnitude) { return magnitude < 0 ? x2 * Math.pow(10, -magnitude) : x2 / Math.pow(10, magnitude); } } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/ToRawFixed.js function ToRawFixed(x, minFraction, maxFraction) { var f = maxFraction; var n = Math.round(x * Math.pow(10, f)); var xFinal = n / Math.pow(10, f); var m; if (n < 1e21) { m = n.toString(); } else { m = n.toString(); var _a = m.split("e"), mantissa = _a[0], exponent = _a[1]; m = mantissa.replace(".", ""); m = m + repeat("0", Math.max(+exponent - m.length + 1, 0)); } var int; if (f !== 0) { var k = m.length; if (k <= f) { var z = repeat("0", f + 1 - k); m = z + m; k = f + 1; } var a = m.slice(0, k - f); var b = m.slice(k - f); m = a + "." + b; int = a.length; } else { int = m.length; } var cut = maxFraction - minFraction; while (cut > 0 && m[m.length - 1] === "0") { m = m.slice(0, -1); cut--; } if (m[m.length - 1] === ".") { m = m.slice(0, -1); } return {formattedString: m, roundedNumber: xFinal, integerDigitsCount: int}; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/FormatNumericToString.js function FormatNumericToString(intlObject, x) { var isNegative = x < 0 || SameValue(x, -0); if (isNegative) { x = -x; } var result; var rourndingType = intlObject.roundingType; switch (rourndingType) { case "significantDigits": result = ToRawPrecision(x, intlObject.minimumSignificantDigits, intlObject.maximumSignificantDigits); break; case "fractionDigits": result = ToRawFixed(x, intlObject.minimumFractionDigits, intlObject.maximumFractionDigits); break; default: result = ToRawPrecision(x, 1, 2); if (result.integerDigitsCount > 1) { result = ToRawFixed(x, 0, 0); } break; } x = result.roundedNumber; var string = result.formattedString; var int = result.integerDigitsCount; var minInteger = intlObject.minimumIntegerDigits; if (int < minInteger) { var forwardZeros = repeat("0", minInteger - int); string = forwardZeros + string; } if (isNegative) { x = -x; } return {roundedNumber: x, formattedString: string}; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/regex.generated.js var S_UNICODE_REGEX = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/; // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/format_to_parts.js var CARET_S_UNICODE_REGEX = new RegExp("^" + S_UNICODE_REGEX.source); var S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + "$"); // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/SetNumberFormatDigitOptions.js function SetNumberFormatDigitOptions(internalSlots, opts, mnfdDefault, mxfdDefault, notation) { var mnid = GetNumberOption(opts, "minimumIntegerDigits", 1, 21, 1); var mnfd = opts.minimumFractionDigits; var mxfd = opts.maximumFractionDigits; var mnsd = opts.minimumSignificantDigits; var mxsd = opts.maximumSignificantDigits; internalSlots.minimumIntegerDigits = mnid; if (mnsd !== void 0 || mxsd !== void 0) { internalSlots.roundingType = "significantDigits"; mnsd = DefaultNumberOption(mnsd, 1, 21, 1); mxsd = DefaultNumberOption(mxsd, mnsd, 21, 21); internalSlots.minimumSignificantDigits = mnsd; internalSlots.maximumSignificantDigits = mxsd; } else if (mnfd !== void 0 || mxfd !== void 0) { internalSlots.roundingType = "fractionDigits"; mnfd = DefaultNumberOption(mnfd, 0, 20, mnfdDefault); var mxfdActualDefault = Math.max(mnfd, mxfdDefault); mxfd = DefaultNumberOption(mxfd, mnfd, 20, mxfdActualDefault); internalSlots.minimumFractionDigits = mnfd; internalSlots.maximumFractionDigits = mxfd; } else if (notation === "compact") { internalSlots.roundingType = "compactRounding"; } else { internalSlots.roundingType = "fractionDigits"; internalSlots.minimumFractionDigits = mnfdDefault; internalSlots.maximumFractionDigits = mxfdDefault; } } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/PluralRules/GetOperands.js function GetOperands(s) { invariant(typeof s === "string", "GetOperands should have been called with a string"); var n = ToNumber(s); invariant(isFinite(n), "n should be finite"); var dp = s.indexOf("."); var iv; var f; var v; var fv = ""; if (dp === -1) { iv = n; f = 0; v = 0; } else { iv = s.slice(0, dp); fv = s.slice(dp, s.length); f = ToNumber(fv); v = fv.length; } var i = Math.abs(ToNumber(iv)); var w; var t; if (f !== 0) { var ft = fv.replace(/0+$/, ""); w = ft.length; t = ToNumber(ft); } else { w = 0; t = 0; } return { Number: n, IntegerDigits: i, NumberOfFractionDigits: v, NumberOfFractionDigitsWithoutTrailing: w, FractionDigits: f, FractionDigitsWithoutTrailing: t }; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/PluralRules/InitializePluralRules.js function InitializePluralRules(pl, locales, options, _a) { var availableLocales = _a.availableLocales, relevantExtensionKeys = _a.relevantExtensionKeys, localeData = _a.localeData, getDefaultLocale = _a.getDefaultLocale, getInternalSlots2 = _a.getInternalSlots; var requestedLocales = CanonicalizeLocaleList(locales); var opt = Object.create(null); var opts = CoerceOptionsToObject(options); var internalSlots = getInternalSlots2(pl); internalSlots.initializedPluralRules = true; var matcher = GetOption(opts, "localeMatcher", "string", ["best fit", "lookup"], "best fit"); opt.localeMatcher = matcher; internalSlots.type = GetOption(opts, "type", "string", ["cardinal", "ordinal"], "cardinal"); SetNumberFormatDigitOptions(internalSlots, opts, 0, 3, "standard"); var r = ResolveLocale(availableLocales, requestedLocales, opt, relevantExtensionKeys, localeData, getDefaultLocale); internalSlots.locale = r.locale; return pl; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/PluralRules/ResolvePlural.js function ResolvePlural(pl, n, _a) { var getInternalSlots2 = _a.getInternalSlots, PluralRuleSelect2 = _a.PluralRuleSelect; var internalSlots = getInternalSlots2(pl); invariant(Type(internalSlots) === "Object", "pl has to be an object"); invariant("initializedPluralRules" in internalSlots, "pluralrules must be initialized"); invariant(Type(n) === "Number", "n must be a number"); if (!isFinite(n)) { return "other"; } var locale = internalSlots.locale, type = internalSlots.type; var res = FormatNumericToString(internalSlots, n); var s = res.formattedString; var operands = GetOperands(s); return PluralRuleSelect2(locale, type, n, operands); } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/LookupSupportedLocales.js function LookupSupportedLocales(availableLocales, requestedLocales) { var subset = []; for (var _i = 0, requestedLocales_1 = requestedLocales; _i = 2 && candidate[pos - 2] === "-") { pos -= 2; } candidate = candidate.slice(0, pos); } } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/LookupMatcher.js function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) { var result = {locale: ""}; for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) { var locale = requestedLocales_1[_i]; var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, ""); var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale); if (availableLocale) { result.locale = availableLocale; if (locale !== noExtensionLocale) { result.extension = locale.slice(noExtensionLocale.length + 1, locale.length); } return result; } } result.locale = getDefaultLocale(); return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/BestFitMatcher.js function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) { var minimizedAvailableLocaleMap = {}; var minimizedAvailableLocales = new Set(); availableLocales.forEach(function(locale2) { var minimizedLocale = new Intl.Locale(locale2).minimize().toString(); minimizedAvailableLocaleMap[minimizedLocale] = locale2; minimizedAvailableLocales.add(minimizedLocale); }); var foundLocale; for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) { var l = requestedLocales_1[_i]; if (foundLocale) { break; } var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, ""); if (availableLocales.has(noExtensionLocale)) { foundLocale = noExtensionLocale; break; } if (minimizedAvailableLocales.has(noExtensionLocale)) { foundLocale = minimizedAvailableLocaleMap[noExtensionLocale]; break; } var locale = new Intl.Locale(noExtensionLocale); var maximizedRequestedLocale = locale.maximize().toString(); var minimizedRequestedLocale = locale.minimize().toString(); if (minimizedAvailableLocales.has(minimizedRequestedLocale)) { foundLocale = minimizedAvailableLocaleMap[minimizedRequestedLocale]; break; } foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale); } return { locale: foundLocale || getDefaultLocale() }; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/UnicodeExtensionValue.js function UnicodeExtensionValue(extension, key) { invariant(key.length === 2, "key must have 2 elements"); var size = extension.length; var searchValue = "-" + key + "-"; var pos = extension.indexOf(searchValue); if (pos !== -1) { var start = pos + 4; var end = start; var k = start; var done = false; while (!done) { var e = extension.indexOf("-", k); var len = void 0; if (e === -1) { len = size - k; } else { len = e - k; } if (len === 2) { done = true; } else if (e === -1) { end = size; done = true; } else { end = e; k = e + 1; } } return extension.slice(start, end); } searchValue = "-" + key; pos = extension.indexOf(searchValue); if (pos !== -1 && pos + 3 === size) { return ""; } return void 0; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/ResolveLocale.js function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) { var matcher = options.localeMatcher; var r; if (matcher === "lookup") { r = LookupMatcher(availableLocales, requestedLocales, getDefaultLocale); } else { r = BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale); } var foundLocale = r.locale; var result = {locale: "", dataLocale: foundLocale}; var supportedExtension = "-u"; for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) { var key = relevantExtensionKeys_1[_i]; invariant(foundLocale in localeData, "Missing locale data for " + foundLocale); var foundLocaleData = localeData[foundLocale]; invariant(typeof foundLocaleData === "object" && foundLocaleData !== null, "locale data " + key + " must be an object"); var keyLocaleData = foundLocaleData[key]; invariant(Array.isArray(keyLocaleData), "keyLocaleData for " + key + " must be an array"); var value = keyLocaleData[0]; invariant(typeof value === "string" || value === null, "value must be string or null but got " + typeof value + " in key " + key); var supportedExtensionAddition = ""; if (r.extension) { var requestedValue = UnicodeExtensionValue(r.extension, key); if (requestedValue !== void 0) { if (requestedValue !== "") { if (~keyLocaleData.indexOf(requestedValue)) { value = requestedValue; supportedExtensionAddition = "-" + key + "-" + value; } } else if (~requestedValue.indexOf("true")) { value = "true"; supportedExtensionAddition = "-" + key; } } } if (key in options) { var optionsValue = options[key]; invariant(typeof optionsValue === "string" || typeof optionsValue === "undefined" || optionsValue === null, "optionsValue must be String, Undefined or Null"); if (~keyLocaleData.indexOf(optionsValue)) { if (optionsValue !== value) { value = optionsValue; supportedExtensionAddition = ""; } } } result[key] = value; supportedExtension += supportedExtensionAddition; } if (supportedExtension.length > 2) { var privateIndex = foundLocale.indexOf("-x-"); if (privateIndex === -1) { foundLocale = foundLocale + supportedExtension; } else { var preExtension = foundLocale.slice(0, privateIndex); var postExtension = foundLocale.slice(privateIndex, foundLocale.length); foundLocale = preExtension + supportedExtension + postExtension; } foundLocale = Intl.getCanonicalLocales(foundLocale)[0]; } result.locale = foundLocale; return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DefaultNumberOption.js function DefaultNumberOption(val, min, max, fallback) { if (val !== void 0) { val = Number(val); if (isNaN(val) || val < min || val > max) { throw new RangeError(val + " is outside of range [" + min + ", " + max + "]"); } return Math.floor(val); } return fallback; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/GetNumberOption.js function GetNumberOption(options, property, minimum, maximum, fallback) { var val = options[property]; return DefaultNumberOption(val, minimum, maximum, fallback); } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/IsWellFormedCurrencyCode.js function toUpperCase(str) { return str.replace(/([a-z])/g, function(_, c) { return c.toUpperCase(); }); } var NOT_A_Z_REGEX = /[^A-Z]/; function IsWellFormedCurrencyCode(currency) { currency = toUpperCase(currency); if (currency.length !== 3) { return false; } if (NOT_A_Z_REGEX.test(currency)) { return false; } return true; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/IsSanctionedSimpleUnitIdentifier.js var SANCTIONED_UNITS = [ "angle-degree", "area-acre", "area-hectare", "concentr-percent", "digital-bit", "digital-byte", "digital-gigabit", "digital-gigabyte", "digital-kilobit", "digital-kilobyte", "digital-megabit", "digital-megabyte", "digital-petabyte", "digital-terabit", "digital-terabyte", "duration-day", "duration-hour", "duration-millisecond", "duration-minute", "duration-month", "duration-second", "duration-week", "duration-year", "length-centimeter", "length-foot", "length-inch", "length-kilometer", "length-meter", "length-mile-scandinavian", "length-mile", "length-millimeter", "length-yard", "mass-gram", "mass-kilogram" 4000 , "mass-ounce", "mass-pound", "mass-stone", "temperature-celsius", "temperature-fahrenheit", "volume-fluid-ounce", "volume-gallon", "volume-liter", "volume-milliliter" ]; function removeUnitNamespace(unit) { return unit.slice(unit.indexOf("-") + 1); } var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace); function IsSanctionedSimpleUnitIdentifier(unitIdentifier) { return SIMPLE_UNITS.indexOf(unitIdentifier) > -1; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/IsWellFormedUnitIdentifier.js function toLowerCase(str) { return str.replace(/([A-Z])/g, function(_, c) { return c.toLowerCase(); }); } function IsWellFormedUnitIdentifier(unit) { unit = toLowerCase(unit); if (IsSanctionedSimpleUnitIdentifier(unit)) { return true; } var units = unit.split("-per-"); if (units.length !== 2) { return false; } var numerator = units[0], denominator = units[1]; if (!IsSanctionedSimpleUnitIdentifier(numerator) || !IsSanctionedSimpleUnitIdentifier(denominator)) { return false; } return true; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/ComputeExponentForMagnitude.js function ComputeExponentForMagnitude(numberFormat, magnitude, _a) { var getInternalSlots2 = _a.getInternalSlots; var internalSlots = getInternalSlots2(numberFormat); var notation = internalSlots.notation, dataLocaleData = internalSlots.dataLocaleData, numberingSystem = internalSlots.numberingSystem; switch (notation) { case "standard": return 0; case "scientific": return magnitude; case "engineering": return Math.floor(magnitude / 3) * 3; default: { var compactDisplay = internalSlots.compactDisplay, style = internalSlots.style, currencyDisplay = internalSlots.currencyDisplay; var thresholdMap = void 0; if (style === "currency" && currencyDisplay !== "name") { var currency = dataLocaleData.numbers.currency[numberingSystem] || dataLocaleData.numbers.currency[dataLocaleData.numbers.nu[0]]; thresholdMap = currency.short; } else { var decimal = dataLocaleData.numbers.decimal[numberingSystem] || dataLocaleData.numbers.decimal[dataLocaleData.numbers.nu[0]]; thresholdMap = compactDisplay === "long" ? decimal.long : decimal.short; } if (!thresholdMap) { return 0; } var num = String(Math.pow(10, magnitude)); var thresholds = Object.keys(thresholdMap); if (num < thresholds[0]) { return 0; } if (num > thresholds[thresholds.length - 1]) { return thresholds[thresholds.length - 1].length - 1; } var i = thresholds.indexOf(num); if (i === -1) { return 0; } var magnitudeKey = thresholds[i]; var compactPattern = thresholdMap[magnitudeKey].other; if (compactPattern === "0") { return 0; } return magnitudeKey.length - thresholdMap[magnitudeKey].other.match(/0+/)[0].length; } } } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/ToRawPrecision.js function ToRawPrecision(x, minPrecision, maxPrecision) { var p = maxPrecision; var m; var e; var xFinal; if (x === 0) { m = repeat("0", p); e = 0; xFinal = 0; } else { var xToString = x.toString(); var xToStringExponentIndex = xToString.indexOf("e"); var _a = xToString.split("e"), xToStringMantissa = _a[0], xToStringExponent = _a[1]; var xToStringMantissaWithoutDecimalPoint = xToStringMantissa.replace(".", ""); if (xToStringExponentIndex >= 0 && xToStringMantissaWithoutDecimalPoint.length <= p) { e = +xToStringExponent; m = xToStringMantissaWithoutDecimalPoint + repeat("0", p - xToStringMantissaWithoutDecimalPoint.length); xFinal = x; } else { e = getMagnitude(x); var decimalPlaceOffset = e - p + 1; var n = Math.round(adjustDecimalPlace(x, decimalPlaceOffset)); if (adjustDecimalPlace(n, p - 1) >= 10) { e = e + 1; n = Math.floor(n / 10); } m = n.toString(); xFinal = adjustDecimalPlace(n, p - 1 - e); } } var int; if (e >= p - 1) { m = m + repeat("0", e - p + 1); int = e + 1; } else if (e >= 0) { m = m.slice(0, e + 1) + "." + m.slice(e + 1); int = e + 1; } else { m = "0." + repeat("0", -e - 1) + m; int = 1; } if (m.indexOf(".") >= 0 && maxPrecision > minPrecision) { var cut = maxPrecision - minPrecision; while (cut > 0 && m[m.length - 1] === "0") { m = m.slice(0, -1); cut--; } if (m[m.length - 1] === ".") { m = m.slice(0, -1); } } return {formattedString: m, roundedNumber: xFinal, integerDigitsCount: int}; function adjustDecimalPlace(x2, magnitude) { return magnitude < 0 ? x2 * Math.pow(10, -magnitude) : x2 / Math.pow(10, magnitude); } } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/ToRawFixed.js function ToRawFixed(x, minFraction, maxFraction) { var f = maxFraction; var n = Math.round(x * Math.pow(10, f)); var xFinal = n / Math.pow(10, f); var m; if (n < 1e21) { m = n.toString(); } else { m = n.toString(); var _a = m.split("e"), mantissa = _a[0], exponent = _a[1]; m = mantissa.replace(".", ""); m = m + repeat("0", Math.max(+exponent - m.length + 1, 0)); } var int; if (f !== 0) { var k = m.length; if (k <= f) { var z = repeat("0", f + 1 - k); m = z + m; k = f + 1; } var a = m.slice(0, k - f); var b = m.slice(k - f); m = a + "." + b; int = a.length; } else { int = m.length; } var cut = maxFraction - minFraction; while (cut > 0 && m[m.length - 1] === "0") { m = m.slice(0, -1); cut--; } if (m[m.length - 1] === ".") { m = m.slice(0, -1); } return {formattedString: m, roundedNumber: xFinal, integerDigitsCount: int}; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/FormatNumericToString.js function FormatNumericToString(intlObject, x) { var isNegative = x < 0 || SameValue(x, -0); if (isNegative) { x = -x; } var result; var rourndingType = intlObject.roundingType; switch (rourndingType) { case "significantDigits": result = ToRawPrecision(x, intlObject.minimumSignificantDigits, intlObject.maximumSignificantDigits); break; case "fractionDigits": result = ToRawFixed(x, intlObject.minimumFractionDigits, intlObject.maximumFractionDigits); break; default: result = ToRawPrecision(x, 1, 2); if (result.integerDigitsCount > 1) { result = ToRawFixed(x, 0, 0); } break; } x = result.roundedNumber; var string = result.formattedString; var int = result.integerDigitsCount; var minInteger = intlObject.minimumIntegerDigits; if (int < minInteger) { var forwardZeros = repeat("0", minInteger - int); string = forwardZeros + string; } if (isNegative) { x = -x; } return {roundedNumber: x, formattedString: string}; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/ComputeExponent.js function ComputeExponent(numberFormat, x, _a) { var getInternalSlots2 = _a.getInternalSlots; if (x === 0) { return [0, 0]; } if (x < 0) { x = -x; } var magnitude = getMagnitude(x); var exponent = ComputeExponentForMagnitude(numberFormat, magnitude, { getInternalSlots: getInternalSlots2 }); x = exponent < 0 ? x * Math.pow(10, -exponent) : x / Math.pow(10, exponent); var formatNumberResult = FormatNumericToString(getInternalSlots2(numberFormat), x); if (formatNumberResult.roundedNumber === 0) { return [exponent, magnitude]; } var newMagnitude = getMagnitude(formatNumberResult.roundedNumber); if (newMagnitude === magnitude - exponent) { return [exponent, magnitude]; } return [ ComputeExponentForMagnitude(numberFormat, magnitude + 1, { getInternalSlots: getInternalSlots2 }), magnitude + 1 ]; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/CurrencyDigits.js function CurrencyDigits(c, _a) { var currencyDigitsData = _a.currencyDigitsData; return HasOwnProperty(currencyDigitsData, c) ? currencyDigitsData[c] : 2; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/digit-mapping.json var digit_mapping_exports = {}; __export(digit_mapping_exports, { adlm: function() { return adlm; }, ahom: function() { return ahom; }, arab: function() { return arab; }, arabext: function() { return arabext; }, bali: function() { return bali; }, beng: function() { return beng; }, bhks: function() { return bhks; }, brah: function() { return brah; }, cakm: function() { return cakm; }, cham: function() { return cham; }, default: function() { return digit_mapping_default; }, deva: function() { return deva; }, diak: function() { return diak; }, fullwide: function() { return fullwide; }, gong: function() { return gong; }, gonm: function() { return gonm; }, gujr: function() { return gujr; }, guru: function() { return guru; }, hanidec: function() { return hanidec; }, hmng: function() { return hmng; }, hmnp: function() { return hmnp; }, java: function() { return java; }, kali: function() { return kali; }, khmr: function() { return khmr; }, knda: function() { return knda; }, lana: function() { return lana; }, lanatham: function() { return lanatham; }, laoo: function() { return laoo; }, lepc: function() { return lepc; }, limb: function() { return limb; }, mathbold: function() { return mathbold; }, mathdbl: function() { return mathdbl; }, mathmono: function() { return mathmono; }, mathsanb: function() { return mathsanb; }, mathsans: function() { return mathsans; }, mlym: function() { return mlym; }, modi: function() { return modi; }, mong: function() { return mong; }, mroo: function() { return mroo; }, mtei: function() { return mtei; }, mymr: function() { return mymr; }, mymrshan: function() { return mymrshan; }, mymrtlng: function() { return mymrtlng; }, newa: function() { return newa; }, nkoo: function() { return nkoo; }, olck: function() { return olck; }, orya: function() { return orya; }, osma: function() { return osma; }, rohg: function() { return rohg; }, saur: function() { return saur; }, segment: function() { return segment; }, shrd: function() { return shrd; }, sind: function() { return sind; }, sinh: function() { return sinh; }, sora: function() { return sora; }, sund: function() { return sund; }, takr: function() { return takr; }, talu: function() { return talu; }, tamldec: function() { return tamldec; }, telu: function() { return telu; }, thai: function() { return thai; }, tibt: function() { return tibt; }, tirh: function() { return tirh; }, vaii: function() { return vaii; }, wara: function() { return wara; }, wcho: function() { return wcho; } }); var adlm = ["\uD83A\uDD50", "\uD83A\uDD51", "\uD83A\uDD52", "\uD83A\uDD53", "\uD83A\uDD54", "\uD83A\uDD55", "\uD83A\uDD56", "\uD83A\uDD57", "\uD83A\uDD58", "\uD83A\uDD59"]; var ahom = ["\uD805\uDF30", "\uD805\uDF31", "\uD805\uDF32", "\uD805\uDF33", "\uD805\uDF34", "\uD805\uDF35", "\uD805\uDF36", "\uD805\uDF37", "\uD805\uDF38", "\uD805\uDF39"]; var arab = ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"]; var arabext = ["\u06F0", "\u06F1", "\u06F2", "\u06F3", "\u06F4", "\u06F5", "\u06F6", "\u06F7", "\u06F8", "\u06F9"]; var bali = ["\u1B50", "\u1B51", "\u1B52", "\u1B53", "\u1B54", "\u1B55", "\u1B56", "\u1B57", "\u1B58", "\u1B59"]; var beng = ["\u09E6", "\u09E7", "\u09E8", "\u09E9", "\u09EA", "\u09EB", "\u09EC", "\u09ED", "\u09EE", "\u09EF"]; var bhks = ["\uD807\uDC50", "\uD807\uDC51", "\uD807\uDC52", "\uD807\uDC53", "\uD807\uDC54", "\uD807\uDC55", "\uD807\uDC56", "\uD807\uDC57", "\uD807\uDC58", "\uD807\uDC59"]; var brah = ["\uD804\uDC66", "\uD804\uDC67", "\uD804\uDC68", "\uD804\uDC69", "\uD804\uDC6A", "\uD804\uDC6B", "\uD804\uDC6C", "\uD804\uDC6D", "\uD804\uDC6E", "\uD804\uDC6F"]; var cakm = ["\uD804\uDD36", "\uD804\uDD37", "\uD804\uDD38", "\uD804\uDD39", "\uD804\uDD3A", "\uD804\uDD3B", "\uD804\uDD3C", "\uD804\uDD3D", "\uD804\uDD3E", "\uD804\uDD3F"]; var cham = ["\uAA50", "\uAA51", "\uAA52", "\uAA53", "\uAA54", "\uAA55", "\uAA56", "\uAA57", "\uAA58", "\uAA59"]; var deva = ["\u0966", "\u0967", "\u0968", "\u0969", "\u096A", "\u096B", "\u096C", "\u096D", "\u096E", "\u096F"]; var diak = ["\uD806\uDD50", "\uD806\uDD51", "\uD806\uDD52", "\uD806\uDD53", "\uD806\uDD54", "\uD806\uDD55", "\uD806\uDD56", "\uD806\uDD57", "\uD806\uDD58", "\uD806\uDD59"]; var fullwide = ["\uFF10", "\uFF11", "\uFF12", "\uFF13", "\uFF14", "\uFF15", "\uFF16", "\uFF17", "\uFF18", "\uFF19"]; var gong = ["\uD807\uDDA0", "\uD807\uDDA1", "\uD807\uDDA2", "\uD807\uDDA3", "\uD807\uDDA4", "\uD807\uDDA5", "\uD807\uDDA6", "\uD807\uDDA7", "\uD807\uDDA8", "\uD807\uDDA9"]; var gonm = ["\uD807\uDD50", "\uD807\uDD51", "\uD807\uDD52", "\uD807\uDD53", "\uD807\uDD54", "\uD807\uDD55", "\uD807\uDD56", "\uD807\uDD57", "\uD807\uDD58", "\uD807\uDD59"]; var gujr = ["\u0AE6", "\u0AE7", "\u0AE8", "\u0AE9", "\u0AEA", "\u0AEB", "\u0AEC", "\u0AED", "\u0AEE", "\u0AEF"]; var guru = ["\u0A66", "\u0A67", "\u0A68", "\u0A69", "\u0A6A", "\u0A6B", "\u0A6C", "\u0A6D", "\u0A6E", "\u0A6F"]; var hanidec = ["\u3007", "\u4E00", "\u4E8C", "\u4E09", "\u56DB", "\u4E94", "\u516D", "\u4E03", "\u516B", "\u4E5D"]; var hmng = ["\uD81A\uDF50", "\uD81A\uDF51", "\uD81A\uDF52", "\uD81A\uDF53", "\uD81A\uDF54", "\uD81A\uDF55", "\uD81A\uDF56", "\uD81A\uDF57", "\uD81A\uDF58", "\uD81A\uDF59"]; var hmnp = ["\uD838\uDD40", "\uD838\uDD41", "\uD838\uDD42", "\uD838\uDD43", "\uD838\uDD44", "\uD838\uDD45", "\uD838\uDD46", "\uD838\uDD47", "\uD838\uDD48", "\uD838\uDD49"]; var java = ["\uA9D0", "\uA9D1", "\uA9D2", "\uA9D3", "\uA9D4", "\uA9D5", "\uA9D6", "\uA9D7", "\uA9D8", "\uA9D9"]; var kali = ["\uA900", "\uA901", "\uA902", "\uA903", "\uA904", "\uA905", "\uA906", "\uA907", "\uA908", "\uA909"]; var khmr = ["\u17E0", "\u17E1", "\u17E2", "\u17E3", "\u17E4", "\u17E5", "\u17E6", "\u17E7", "\u17E8", "\u17E9"]; var knda = ["\u0CE6", "\u0CE7", "\u0CE8", "\u0CE9", "\u0CEA", "\u0CEB", "\u0CEC", "\u0CED", "\u0CEE", "\u0CEF"]; var lana = ["\u1A80", "\u1A81", "\u1A82", "\u1A83", "\u1A84", "\u1A85", "\u1A86", "\u1A87", "\u1A88", "\u1A89"]; var lanatham = ["\u1A90", "\u1A91", "\u1A92", "\u1A93", "\u1A94", "\u1A95", "\u1A96", "\u1A97", "\u1A98", "\u1A99"]; var laoo = ["\u0ED0", "\u0ED1", "\u0ED2", "\u0ED3", "\u0ED4", "\u0ED5", "\u0ED6", "\u0ED7", "\u0ED8", "\u0ED9"]; var lepc = ["\u1A90", "\u1A91", "\u1A92", "\u1A93", "\u1A94", "\u1A95", "\u1A96", "\u1A97", "\u1A98", "\u1A99"]; var limb = ["\u1946", "\u1947", "\u1948", "\u1949", "\u194A", "\u194B", "\u194C", "\u194D", "\u194E", "\u194F"]; var mathbold = ["\uD835\uDFCE", "\uD835\uDFCF", "\uD835\uDFD0", "\uD835\uDFD1", "\uD835\uDFD2", "\uD835\uDFD3", "\uD 318 835\uDFD4", "\uD835\uDFD5", "\uD835\uDFD6", "\uD835\uDFD7"]; var mathdbl = ["\uD835\uDFD8", "\uD835\uDFD9", "\uD835\uDFDA", "\uD835\uDFDB", "\uD835\uDFDC", "\uD835\uDFDD", "\uD835\uDFDE", "\uD835\uDFDF", "\uD835\uDFE0", "\uD835\uDFE1"]; var mathmono = ["\uD835\uDFF6", "\uD835\uDFF7", "\uD835\uDFF8", "\uD835\uDFF9", "\uD835\uDFFA", "\uD835\uDFFB", "\uD835\uDFFC", "\uD835\uDFFD", "\uD835\uDFFE", "\uD835\uDFFF"]; var mathsanb = ["\uD835\uDFEC", "\uD835\uDFED", "\uD835\uDFEE", "\uD835\uDFEF", "\uD835\uDFF0", "\uD835\uDFF1", "\uD835\uDFF2", "\uD835\uDFF3", "\uD835\uDFF4", "\uD835\uDFF5"]; var mathsans = ["\uD835\uDFE2", "\uD835\uDFE3", "\uD835\uDFE4", "\uD835\uDFE5", "\uD835\uDFE6", "\uD835\uDFE7", "\uD835\uDFE8", "\uD835\uDFE9", "\uD835\uDFEA", "\uD835\uDFEB"]; var mlym = ["\ 4000 u0D66", "\u0D67", "\u0D68", "\u0D69", "\u0D6A", "\u0D6B", "\u0D6C", "\u0D6D", "\u0D6E", "\u0D6F"]; var modi = ["\uD805\uDE50", "\uD805\uDE51", "\uD805\uDE52", "\uD805\uDE53", "\uD805\uDE54", "\uD805\uDE55", "\uD805\uDE56", "\uD805\uDE57", "\uD805\uDE58", "\uD805\uDE59"]; var mong = ["\u1810", "\u1811", "\u1812", "\u1813", "\u1814", "\u1815", "\u1816", "\u1817", "\u1818", "\u1819"]; var mroo = ["\uD81A\uDE60", "\uD81A\uDE61", "\uD81A\uDE62", "\uD81A\uDE63", "\uD81A\uDE64", "\uD81A\uDE65", "\uD81A\uDE66", "\uD81A\uDE67", "\uD81A\uDE68", "\uD81A\uDE69"]; var mtei = ["\uABF0", "\uABF1", "\uABF2", "\uABF3", "\uABF4", "\uABF5", "\uABF6", "\uABF7", "\uABF8", "\uABF9"]; var mymr = ["\u1040", "\u1041", "\u1042", "\u1043", "\u1044", "\u1045", "\u1046", "\u1047", "\u1048", "\u1049"]; var mymrshan = ["\u1090", "\u1091", "\u1092", "\u1093", "\u1094", "\u1095", "\u1096", "\u1097", "\u1098", "\u1099"]; var mymrtlng = ["\uA9F0", "\uA9F1", "\uA9F2", "\uA9F3", "\uA9F4", "\uA9F5", "\uA9F6", "\uA9F7", "\uA9F8", "\uA9F9"]; var newa = ["\uD805\uDC50", "\uD805\uDC51", "\uD805\uDC52", "\uD805\uDC53", "\uD805\uDC54", "\uD805\uDC55", "\uD805\uDC56", "\uD805\uDC57", "\uD805\uDC58", "\uD805\uDC59"]; var nkoo = ["\u07C0", "\u07C1", "\u07C2", "\u07C3", "\u07C4", "\u07C5", "\u07C6", "\u07C7", "\u07C8", "\u07C9"]; var olck = ["\u1C50", "\u1C51", "\u1C52", "\u1C53", "\u1C54", "\u1C55", "\u1C56", "\u1C57", "\u1C58", "\u1C59"]; var orya = ["\u0B66", "\u0B67", "\u0B68", "\u0B69", "\u0B6A", "\u0B6B", "\u0B6C", "\u0B6D", "\u0B6E", "\u0B6F"]; var osma = ["\uD801\uDCA0", "\uD801\uDCA1", "\uD801\uDCA2", "\uD801\uDCA3", "\uD801\uDCA4", "\uD801\uDCA5", "\uD801\uDCA6", "\uD801\uDCA7", "\uD801\uDCA8", "\uD801\uDCA9"]; var rohg = ["\uD803\uDD30", "\uD803\uDD31", "\uD803\uDD32", "\uD803\uDD33", "\uD803\uDD34", "\uD803\uDD35", "\uD803\uDD36", "\uD803\uDD37", "\uD803\uDD38", "\uD803\uDD39"]; var saur = ["\uA8D0", "\uA8D1", "\uA8D2", "\uA8D3", "\uA8D4", "\uA8D5", "\uA8D6", "\uA8D7", "\uA8D8", "\uA8D9"]; var segment = ["\uD83E\uDFF0", "\uD83E\uDFF1", "\uD83E\uDFF2", "\uD83E\uDFF3", "\uD83E\uDFF4", "\uD83E\uDFF5", "\uD83E\uDFF6", "\uD83E\uDFF7", "\uD83E\uDFF8", "\uD83E\uDFF9"]; var shrd = ["\uD804\uDDD0", "\uD804\uDDD1", "\uD804\uDDD2", "\uD804\uDDD3", "\uD804\uDDD4", "\uD804\uDDD5", "\uD804\uDDD6", "\uD804\uDDD7", "\uD804\uDDD8", "\uD804\uDDD9"]; var sind = ["\uD804\uDEF0", "\uD804\uDEF1", "\uD804\uDEF2", "\uD804\uDEF3", "\uD804\uDEF4", "\uD804\uDEF5", "\uD804\uDEF6", "\uD804\uDEF7", "\uD804\uDEF8", "\uD804\uDEF9"]; var sinh = ["\u0DE6", "\u0DE7", "\u0DE8", "\u0DE9", "\u0DEA", "\u0DEB", "\u0DEC", "\u0DED", "\u0DEE", "\u0DEF"]; var sora = ["\uD804\uDCF0", "\uD804\uDCF1", "\uD804\uDCF2", "\uD804\uDCF3", "\uD804\uDCF4", "\uD804\uDCF5", "\uD804\uDCF6", "\uD804\uDCF7", "\uD804\uDCF8", "\uD804\uDCF9"]; var sund = ["\u1BB0", "\u1BB1", "\u1BB2", "\u1BB3", "\u1BB4", "\u1BB5", "\u1BB6", "\u1BB7", "\u1BB8", "\u1BB9"]; var takr = ["\uD805\uDEC0", "\uD805\uDEC1", "\uD805\uDEC2", "\uD805\uDEC3", "\uD805\uDEC4", "\uD805\uDEC5", "\uD805\uDEC6", "\uD805\uDEC7", "\uD805\uDEC8", "\uD805\uDEC9"]; var talu = ["\u19D0", "\u19D1", "\u19D2", "\u19D3", "\u19D4", "\u19D5", "\u19D6", "\u19D7", "\u19D8", "\u19D9"]; var tamldec = ["\u0BE6", "\u0BE7", "\u0BE8", "\u0BE9", "\u0BEA", "\u0BEB", "\u0BEC", "\u0BED", "\u0BEE", "\u0BEF"]; var telu = ["\u0C66", "\u0C67", "\u0C68", "\u0C69", "\u0C6A", "\u0C6B", "\u0C6C", "\u0C6D", "\u0C6E", "\u0C6F"]; var thai = ["\u0E50", "\u0E51", "\u0E52", "\u0E53", "\u0E54", "\u0E55", "\u0E56", "\u0E57", "\u0E58", "\u0E59"]; var tibt = ["\u0F20", "\u0F21", "\u0F22", "\u0F23", "\u0F24", "\u0F25", "\u0F26", "\u0F27", "\u0F28", "\u0F29"]; var tirh = ["\uD805\uDCD0", "\uD805\uDCD1", "\uD805\uDCD2", "\uD805\uDCD3", "\uD805\uDCD4", "\uD805\uDCD5", "\uD805\uDCD6", "\uD805\uDCD7", "\uD805\uDCD8", "\uD805\uDCD9"]; var vaii = ["\u1620", "\u1621", "\u1622", "\u1623", "\u1624", "\u1625", "\u1626", "\u1627", "\u1628", "\u1629"]; var wara = ["\uD806\uDCE0", "\uD806\uDCE1", "\uD806\uDCE2", "\uD806\uDCE3", "\uD806\uDCE4", "\uD806\uDCE5", "\uD806\uDCE6", "\uD806\uDCE7", "\uD806\uDCE8", "\uD806\uDCE9"]; var wcho = ["\uD838\uDEF0", "\uD838\uDEF1", "\uD838\uDEF2", "\uD838\uDEF3", "\uD838\uDEF4", "\uD838\uDEF5", "\uD838\uDEF6", "\uD838\uDEF7", "\uD838\uDEF8", "\uD838\uDEF9"]; var digit_mapping_default = {adlm: adlm, ahom: ahom, arab: arab, arabext: arabext, bali: bali, beng: beng, bhks: bhks, brah: brah, cakm: cakm, cham: cham, deva: deva, diak: diak, fullwide: fullwide, gong: gong, gonm: gonm, gujr: gujr, guru: guru, hanidec: hanidec, hmng: hmng, hmnp: hmnp, java: java, kali: kali, khmr: khmr, knda: knda, lana: lana, lanatham: lanatham, laoo: laoo, lepc: lepc, limb: limb, mathbold: mathbold, mathdbl: mathdbl, mathmono: mathmono, mathsanb: mathsanb, mathsans: mathsans, mlym: mlym, modi: modi, mong: mong, mroo: mroo, mtei: mtei, mymr: mymr, mymrshan: mymrshan, mymrtlng: mymrtlng, newa: newa, nkoo: nkoo, olck: olck, orya: orya, osma: osma, rohg: rohg, saur: saur, segment: segment, shrd: shrd, sind: sind, sinh: sinh, sora: sora, sund: sund, takr: takr, talu: talu, tamldec: tamldec, telu: telu, thai: thai, tibt: tibt, tirh: tirh, vaii: vaii, wara: wara, wcho: wcho}; // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/regex.generated.js var S_UNICODE_REGEX = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/; // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/format_to_parts.js var CARET_S_UNICODE_REGEX = new RegExp("^" + S_UNICODE_REGEX.source); var S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + "$"); var CLDR_NUMBER_PATTERN = /[#0](?:[\.,][#0]+)*/g; function formatToParts(numberResult, data, pl, options) { var sign = numberResult.sign, exponent = numberResult.exponent, magnitude = numberResult.magnitude; var notation = options.notation, style = options.style, numberingSystem = options.numberingSystem; var defaultNumberingSystem = data.numbers.nu[0]; var compactNumberPattern = null; if (notation === "compact" && magnitude) { compactNumberPattern = getCompactDisplayPattern(numberResult, pl, data, style, options.compactDisplay, options.currencyDisplay, numberingSystem); } var nonNameCurrencyPart; if (style === "currency" && options.currencyDisplay !== "name") { var byCurrencyDisplay = data.currencies[options.currency]; if (byCurrencyDisplay) { switch (options.currencyDisplay) { case "code": nonNameCurrencyPart = options.currency; break; case "symbol": nonNameCurrencyPart = byCurrencyDisplay.symbol; break; default: nonNameCurrencyPart = byCurrencyDisplay.narrow; break; } } else { nonNameCurrencyPart = options.currency; } } var numberPattern; if (!compactNumberPattern) { if (style === "decimal" || style === "unit" || style === "currency" && options.currencyDisplay === "name") { var decimalData = data.numbers.decimal[numberingSystem] || data.numbers.decimal[defaultNumberingSystem]; numberPattern = getPatternForSign(decimalData.standard, sign); } else if (style === "currency") { var currencyData = data.numbers.currency[numberingSystem] || data.numbers.currency[defaultNumberingSystem]; numberPattern = getPatternForSign(currencyData[options.currencySign], sign); } else { var percentPattern = data.numbers.percent[numberingSystem] || data.numbers.percent[defaultNumberingSystem]; numberPattern = getPatternForSign(percentPattern, sign); } } else { numberPattern = compactNumberPattern; } var decimalNumberPattern = CLDR_NUMBER_PATTERN.exec(numberPattern)[0]; numberPattern = numberPattern.replace(CLDR_NUMBER_PATTERN, "{0}").replace(/'(.)'/g, "$1"); if (style === "currency" && options.currencyDisplay !== "name") { var currencyData = data.numbers.currency[numberingSystem] || data.numbers.currency[defaultNumberingSystem]; var afterCurrency = currencyData.currencySpacing.afterInsertBetween; if (afterCurrency && !S_DOLLAR_UNICODE_REGEX.test(nonNameCurrencyPart)) { numberPattern = numberPattern.replace("\xA4{0}", "\xA4" + afterCurrency + "{0}"); } var beforeCurrency = currencyData.currencySpacing.beforeInsertBetween; if (beforeCurrency && !CARET_S_UNICODE_REGEX.test(nonNameCurrencyPart)) { numberPattern = numberPattern.replace("{0}\xA4", "{0}" + beforeCurrency + "\xA4"); } } var numberPatternParts = numberPattern.split(/({c:[^}]+}|\{0\}|[¤%\-\+])/g); var numberParts = []; var symbols = data.numbers.symbols[numberingSystem] || data.numbers.symbols[defaultNumberingSystem]; for (var _i = 0, numberPatternParts_1 = numberPatternParts; _i 0) { integer = n.slice(0, decimalSepIndex); fraction = n.slice(decimalSepIndex + 1); } else { integer = n; } if (useGrouping && (notation !== "compact" || x >= 1e4)) { var groupSepSymbol = symbols.group; var groups = []; var integerNumberPattern = decimalNumberPattern.split(".")[0]; var patternGroups = integerNumberPattern.split(","); var primaryGroupingSize = 3; var secondaryGroupingSize = 3; if (patternGroups.length > 1) { primaryGroupingSize = patternGroups[patternGroups.length - 1].length; } if (patternGroups.length > 2) { secondaryGroupingSize = patternGroups[patternGroups.length - 2].length; } var i = integer.length - primaryGroupingSize; if (i > 0) { groups.push(integer.slice(i, i + primaryGroupingSize)); for (i -= secondaryGroupingSize; i > 0; i -= secondaryGroupingSize) { groups.push(integer.slice(i, i + secondaryGroupingSize)); } groups.push(integer.slice(0, i + secondaryGroupingSize)); } else { groups.push(integer); } while (groups.length > 0) { var integerGroup = groups.pop(); result.push({type: "integer", value: integerGroup}); if (groups.length > 0) { result.push({type: "group", value: groupSepSymbol}); } } } else { result.push({type: "integer", value: integer}); } if (fraction !== void 0) { result.push({type: "decimal", value: symbols.decimal}, {type: "fraction", value: fraction}); } if ((notation === "scientific" || notation === "engineering") && isFinite(x)) { result.push({type: "exponentSeparator", value: symbols.exponential}); if (exponent < 0) { result.push({type: "exponentMinusSign", value: symbols.minusSign}); exponent = -exponent; } var exponentResult = ToRawFixed(exponent, 0, 0); result.push({ type: "exponentInteger", value: exponentResult.formattedString }); } return result; } function getPatternForSign(pattern, sign) { if (pattern.indexOf(";") < 0) { pattern = pattern + ";-" + pattern; } var _a = pattern.split(";"), zeroPattern = _a[0], negativePattern = _a[1]; switch (sign) { case 0: return zeroPattern; case -1: return negativePattern; default: return negativePattern.indexOf("-") >= 0 ? negativePattern.replace(/-/g, "+") : "+" + zeroPattern; } } function getCompactDisplayPattern(numberResult, pl, data, style, compactDisplay, currencyDisplay, numberingSystem) { var _a; var roundedNumber = numberResult.roundedNumber, sign = numberResult.sign, magnitude = numberResult.magnitude; var magnitudeKey = String(Math.pow(10, magnitude)); var defaultNumberingSystem = data.numbers.nu[0]; var pattern; if (style === "currency" && currencyDisplay !== "name") { var byNumberingSystem = data.numbers.currency; var currencyData = byNumberingSystem[numberingSystem] || byNumberingSystem[defaultNumberingSystem]; var compactPluralRules = (_a = currencyData.short) === null || _a === void 0 ? void 0 : _a[magnitudeKey]; if (!compactPluralRules) { return null; } pattern = selectPlural(pl, roundedNumber, compactPluralRules); } else { var byNumberingSystem = data.numbers.decimal; var byCompactDisplay = byNumberingSystem[numberingSystem] || byNumberingSystem[defaultNumberingSystem]; var compactPlaralRule = byCompactDisplay[compactDisplay][magnitudeKey]; if (!compactPlaralRule) { return null; } pattern = selectPlural(pl, roundedNumber, compactPlaralRule); } if (pattern === "0") { return null; } pattern = getPatternForSign(pattern, sign).replace(/([^\s;\-\+\d¤]+)/g, "{c:$1}").replace(/0+/, "0"); return pattern; } function selectPlural(pl, x, rules) { return rules[pl.select(x)] || rules.other; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/PartitionNumberPattern.js function PartitionNumberPattern(numberFormat, x, _a) { var _b; var getInternalSlots2 = _a.getInternalSlots; var internalSlots = getInternalSlots2(numberFormat); var pl = internalSlots.pl, dataLocaleData = internalSlots.dataLocaleData, numberingSystem = internalSlots.numberingSystem; var symbols = dataLocaleData.numbers.symbols[numberingSystem] || dataLocaleData.numbers.symbols[dataLocaleData.numbers.nu[0]]; var magnitude = 0; var exponent = 0; var n; if (isNaN(x)) { n = symbols.nan; } else if (!isFinite(x)) { n = symbols.infinity; } else { if (internalSlots.style === "percent") { x *= 100; } ; _b = ComputeExponent(numberFormat, x, { getInternalSlots: getInternalSlots2 }), exponent = _b[0], magnitude = _b[1]; x = exponent < 0 ? x * Math.pow(10, -exponent) : x / Math.pow(10, exponent); var formatNumberResult = FormatNumericToString(internalSlots, x); n = formatNumberResult.formattedString; x = formatNumberResult.roundedNumber; } var sign; var signDisplay = internalSlots.signDisplay; switch (signDisplay) { case "never": sign = 0; break; case "auto": if (SameValue(x, 0) || x > 0 || isNaN(x)) { sign = 0; } else { sign = -1; } break; case "always": if (SameValue(x, 0) || x > 0 || isNaN(x)) { sign = 1; } else { sign = -1; } break; default: if (x === 0 || isNaN(x)) { sign = 0; } else if (x > 0) { sign = 1; } else { sign = -1; } } return formatToParts({roundedNumber: x, formattedString: n, exponent: exponent, magnitude: magnitude, sign: sign}, internalSlots.dataLocaleData, pl, internalSlots); } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/FormatNumericToParts.js function FormatNumericToParts(nf, x, implDetails) { var parts = PartitionNumberPattern(nf, x, implDetails); var result = ArrayCreate(0); for (var _i = 0, parts_1 = parts; _i bestScore) { bestScore = score; bestFormat = format; } } var skeletonFormat = __assign({}, bestFormat); var patternFormat = {rawPattern: bestFormat.rawPattern}; processDateTimePattern(bestFormat.rawPattern, patternFormat); for (var prop in skeletonFormat) { var skeletonValue = skeletonFormat[prop]; var patternValue = patternFormat[prop]; var requestedValue = options[prop]; if (prop === "minute" || prop === "second") { continue; } if (!requestedValue) { continue; } if (isNumericType(patternValue) && !isNumericType(requestedValue)) { continue; } if (skeletonValue === requestedValue) { continue; } patternFormat[prop] = requestedValue; } patternFormat.pattern = skeletonFormat.pattern; patternFormat.pattern12 = skeletonFormat.pattern12; patternFormat.skeleton = skeletonFormat.skeleton; patternFormat.rangePatterns = skeletonFormat.rangePatterns; patternFormat.rangePatterns12 = skeletonFormat.rangePatterns12; return patternFormat; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/CanonicalizeLocaleList.js function CanonicalizeLocaleList(locales) { return Intl.getCanonicalLocales(locales); } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/CanonicalizeTimeZoneName.js function CanonicalizeTimeZoneName(tz, _a) { var tzData = _a.tzData, uppercaseLinks = _a.uppercaseLinks; var uppercasedTz = tz.toUpperCase(); var uppercasedZones = Object.keys(tzData).reduce(function(all, z) { all[z.toUpperCase()] = z; return all; }, {}); var ianaTimeZone = uppercaseLinks[uppercasedTz] || uppercasedZones[uppercasedTz]; if (ianaTimeZone === "Etc/UTC" || ianaTimeZone === "Etc/GMT") { return "UTC"; } return ianaTimeZone; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/262.js function ToString(o) { if (typeof o === "symbol") { throw TypeError("Cannot convert a Symbol value to a string"); } return String(o); } function ToNumber(val) { if (val === void 0) { return NaN; } if (val === null) { return 0; } if (typeof val === "boolean") { return val ? 1 : 0; } if (typeof val === "number") { return val; } if (typeof val === "symbol" || typeof val === "bigint") { throw new TypeError("Cannot convert symbol/bigint to number"); } return Number(val); } function ToInteger(n) { var number = ToNumber(n); if (isNaN(number) || SameValue(number, -0)) { return 0; } if (isFinite(number)) { return number; } var integer = Math.floor(Math.abs(number)); if (number < 0) { integer = -integer; } if (SameValue(integer, -0)) { return 0; } return integer; } function TimeClip(time) { if (!isFinite(time)) { return NaN; } if (Math.abs(time) > 8.64 * 1e15) { return NaN; } return ToInteger(time); } function ToObject(arg) { if (arg == null) { throw new TypeError("undefined/null cannot be converted to object"); } return Object(arg); } function SameValue(x, y) { if (Object.is) { return Object.is(x, y); } if (x === y) { return x !== 0 || 1 / x === 1 / y; } return x !== x && y !== y; } function ArrayCreate(len) { return new Array(len); } function Type(x) { if (x === null) { return "Null"; } if (typeof x === "undefined") { return "Undefined"; } if (typeof x === "function" || typeof x === "object") { return "Object"; } if (typeof x === "number") { return "Number"; } if (typeof x === "boolean") { return "Boolean"; } if (typeof x === "string") { return "String"; } if (typeof x === "symbol") { return "Symbol"; } if (typeof x === "bigint") { return "BigInt"; } } var MS_PER_DAY = 864e5; function mod(x, y) { return x - Math.floor(x / y) * y; } function Day(t) { return Math.floor(t / MS_PER_DAY); } function WeekDay(t) { return mod(Day(t) + 4, 7); } function DayFromYear(y) { return Date.UTC(y, 0) / MS_PER_DAY; } function YearFromTime(t) { return new Date(t).getUTCFullYear(); } function DaysInYear(y) { if (y % 4 !== 0) { return 365; } if (y % 100 !== 0) { return 366; } if (y % 400 !== 0) { return 365; } return 366; } function DayWithinYear(t) { return Day(t) - DayFromYear(YearFromTime(t)); } function InLeapYear(t) { return DaysInYear(YearFromTime(t)) === 365 ? 0 : 1; } function MonthFromTime(t) { var dwy = DayWithinYear(t); var leap = InLeapYear(t); if (dwy >= 0 && dwy < 31) { return 0; } if (dwy < 59 + leap) { return 1; } if (dwy < 90 + leap) { return 2; } if (dwy < 120 + leap) { return 3; } if (dwy < 151 + leap) { return 4; } if (dwy < 181 + leap) { return 5; } if (dwy < 212 + leap) { return 6; } if (dwy < 243 + leap) { return 7; } if (dwy < 273 + leap) { return 8; } if (dwy < 304 + leap) { return 9; } if (dwy < 334 + leap) { return 10; } if (dwy < 365 + leap) { return 11; } throw new Error("Invalid time"); } function DateFromTime(t) { var dwy = DayWithinYear(t); var mft = MonthFromTime(t); var leap = InLeapYear(t); if (mft === 0) { return dwy + 1; } if (mft === 1) { return dwy - 30; } if (mft === 2) { return dwy - 58 - leap; } if (mft === 3) { return dwy - 89 - leap; } if (mft === 4) { return dwy - 119 - leap; } if (mft === 5) { return dwy - 150 - leap; } if (mft === 6) { return dwy - 180 - leap; } if (mft === 7) { return dwy - 211 - leap; } if (mft === 8) { return dwy - 242 - leap; } if (mft === 9) { return dwy - 272 - leap; } if (mft === 10) { return dwy - 303 - leap; 4000 } if (mft === 11) { return dwy - 333 - leap; } throw new Error("Invalid time"); } var HOURS_PER_DAY = 24; var MINUTES_PER_HOUR = 60; var SECONDS_PER_MINUTE = 60; var MS_PER_SECOND = 1e3; var MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE; var MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR; function HourFromTime(t) { return mod(Math.floor(t / MS_PER_HOUR), HOURS_PER_DAY); } function MinFromTime(t) { return mod(Math.floor(t / MS_PER_MINUTE), MINUTES_PER_HOUR); } function SecFromTime(t) { return mod(Math.floor(t / MS_PER_SECOND), SECONDS_PER_MINUTE); } function IsCallable(fn) { return typeof fn === "function"; } function OrdinaryHasInstance(C, O, internalSlots) { if (!IsCallable(C)) { return false; } if (internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction) { var BC = internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction; return O instanceof BC; } if (typeof O !== "object") { return false; } var P = C.prototype; if (typeof P !== "object") { throw new TypeError("OrdinaryHasInstance called on an object with an invalid prototype property."); } return Object.prototype.isPrototypeOf.call(P, O); } function msFromTime(t) { return mod(t, MS_PER_SECOND); } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DateTimeFormat/BasicFormatMatcher.js function BasicFormatMatcher(options, formats) { var bestScore = -Infinity; var bestFormat = formats[0]; invariant(Array.isArray(formats), "formats should be a list of things"); for (var _i = 0, formats_1 = formats; _i < formats_1.length; _i++) { var format = formats_1[_i]; var score = 0; for (var _a = 0, DATE_TIME_PROPS_1 = DATE_TIME_PROPS; _a < DATE_TIME_PROPS_1.length; _a++) { var prop = DATE_TIME_PROPS_1[_a]; var optionsProp = options[prop]; var formatProp = format[prop]; if (optionsProp === void 0 && formatProp !== void 0) { score -= additionPenalty; } else if (optionsProp !== void 0 && formatProp === void 0) { score -= removalPenalty; } else if (optionsProp !== formatProp) { var values = void 0; if (prop === "fractionalSecondDigits") { values = [1, 2, 3]; } else { values = ["2-digit", "numeric", "narrow", "short", "long"]; } var optionsPropIndex = values.indexOf(optionsProp); var formatPropIndex = values.indexOf(formatProp); var delta = Math.max(-2, Math.min(formatPropIndex - optionsPropIndex, 2)); if (delta === 2) { score -= longMorePenalty; } else if (delta === 1) { score -= shortMorePenalty; } else if (delta === -1) { score -= shortLessPenalty; } else if (delta === -2) { score -= longLessPenalty; } } } if (score > bestScore) { bestScore = score; bestFormat = format; } } return __assign({}, bestFormat); } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DateTimeFormat/DateTimeStyleFormat.js function DateTimeStyleFormat(dateStyle, timeStyle, dataLocaleData) { var dateFormat, timeFormat; if (timeStyle !== void 0) { invariant(timeStyle === "full" || timeStyle === "long" || timeStyle === "medium" || timeStyle === "short", "invalid timeStyle"); timeFormat = dataLocaleData.timeFormat[timeStyle]; } if (dateStyle !== void 0) { invariant(dateStyle === "full" || dateStyle === "long" || dateStyle === "medium" || dateStyle === "short", "invalid dateStyle"); dateFormat = dataLocaleData.dateFormat[dateStyle]; } if (dateStyle !== void 0 && timeStyle !== void 0) { var format = {}; for (var field in dateFormat) { if (field !== "pattern") { format[field] = dateFormat[field]; } } for (var field in timeFormat) { if (field !== "pattern" && field !== "pattern12") { format[field] = timeFormat[field]; } } var connector = dataLocaleData.dateTimeFormat[dateStyle]; var pattern = connector.replace("{0}", timeFormat.pattern).replace("{1}", dateFormat.pattern); format.pattern = pattern; if ("pattern12" in timeFormat) { var pattern12 = connector.replace("{0}", timeFormat.pattern12).replace("{1}", dateFormat.pattern); format.pattern12 = pattern12; } return format; } if (timeStyle !== void 0) { return timeFormat; } invariant(dateStyle !== void 0, "dateStyle should not be undefined"); return dateFormat; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DateTimeFormat/ToLocalTime.js function getApplicableZoneData(t, timeZone, tzData) { var _a; var zoneData = tzData[timeZone]; if (!zoneData) { return [0, false]; } var i = 0; var offset = 0; var dst = false; for (; i <= zoneData.length; i++) { if (i === zoneData.length || zoneData[i][0] * 1e3 > t) { ; _a = zoneData[i - 1], offset = _a[2], dst = _a[3]; break; } } return [offset * 1e3, dst]; } function ToLocalTime(t, calendar, timeZone, _a) { var tzData = _a.tzData; invariant(Type(t) === "Number", "invalid time"); invariant(calendar === "gregory", "We only support Gregory calendar right now"); var _b = getApplicableZoneData(t, timeZone, tzData), timeZoneOffset = _b[0], inDST = _b[1]; var tz = t + timeZoneOffset; var year = YearFromTime(tz); return { weekday: WeekDay(tz), era: year < 0 ? "BC" : "AD", year: year, relatedYear: void 0, yearName: void 0, month: MonthFromTime(tz), day: DateFromTime(tz), hour: HourFromTime(tz), minute: MinFromTime(tz), second: SecFromTime(tz), millisecond: msFromTime(tz), inDST: inDST, timeZoneOffset: timeZoneOffset }; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DateTimeFormat/FormatDateTimePattern.js function pad(n) { if (n < 10) { return "0" + n; } return String(n); } function offsetToGmtString(gmtFormat, hourFormat, offsetInMs, style) { var offsetInMinutes = Math.floor(offsetInMs / 6e4); var mins = Math.abs(offsetInMinutes) % 60; var hours = Math.floor(Math.abs(offsetInMinutes) / 60); var _a = hourFormat.split(";"), positivePattern = _a[0], negativePattern = _a[1]; var offsetStr = ""; var pattern = offsetInMs < 0 ? negativePattern : positivePattern; if (style === "long") { offsetStr = pattern.replace("HH", pad(hours)).replace("H", String(hours)).replace("mm", pad(mins)).replace("m", String(mins)); } else if (mins || hours) { if (!mins) { pattern = pattern.replace(/:?m+/, ""); } offsetStr = pattern.replace(/H+/, String(hours)).replace(/m+/, String(mins)); } return gmtFormat.replace("{0}", offsetStr); } function FormatDateTimePattern(dtf, patternParts, x, _a) { var getInternalSlots2 = _a.getInternalSlots, localeData = _a.localeData, getDefaultTimeZone = _a.getDefaultTimeZone, tzData = _a.tzData; x = TimeClip(x); var internalSlots = getInternalSlots2(dtf); var dataLocale = internalSlots.dataLocale; var dataLocaleData = localeData[dataLocale]; var locale = internalSlots.locale; var nfOptions = Object.create(null); nfOptions.useGrouping = false; var nf = new Intl.NumberFormat(locale, nfOptions); var nf2Options = Object.create(null); nf2Options.minimumIntegerDigits = 2; nf2Options.useGrouping = false; var nf2 = new Intl.NumberFormat(locale, nf2Options); var fractionalSecondDigits = internalSlots.fractionalSecondDigits; var nf3; if (fractionalSecondDigits !== void 0) { var nf3Options = Object.create(null); nf3Options.minimumIntegerDigits = fractionalSecondDigits; nf3Options.useGrouping = false; nf3 = new Intl.NumberFormat(locale, nf3Options); } var tm = ToLocalTime(x, internalSlots.calendar, internalSlots.timeZone, {tzData: tzData}); var result = []; for (var _i = 0, patternParts_1 = patternParts; _i < patternParts_1.length; _i++) { var patternPart = patternParts_1[_i]; var p = patternPart.type; if (p === "literal") { result.push({ type: "literal", value: patternPart.value }); } else if (p === "fractionalSecondDigits") { var v = Math.floor(tm.millisecond * Math.pow(10, (fractionalSecondDigits || 0) - 3)); result.push({ type: "fractionalSecond", value: nf3.format(v) }); } else if (DATE_TIME_PROPS.indexOf(p) > -1) { var fv = ""; var f = internalSlots[p]; var v = tm[p]; if (p === "year" && v <= 0) { v = 1 - v; } if (p === "month") { v++; } var hourCycle = internalSlots.hourCycle; if (p === "hour" && (hourCycle === "h11" || hourCycle === "h12")) { v = v % 12; if (v === 0 && hourCycle === "h12") { v = 12; } } if (p === "hour" && hourCycle === "h24") { if (v === 0) { v = 24; } } if (f === "numeric") { fv = nf.format(v); } else if (f === "2-digit") { fv = nf2.format(v); if (fv.length > 2) { fv = fv.slice(fv.length - 2, fv.length); } } else if (f === "narrow" || f === "short" || f === "long") { if (p === "era") { fv = dataLocaleData[p][f][v]; } else if (p === "timeZoneName") { var timeZoneName = dataLocaleData.timeZoneName, gmtFormat = dataLocaleData.gmtFormat, hourFormat = dataLocaleData.hourFormat; var timeZone = internalSlots.timeZone || getDefaultTimeZone(); var timeZoneData = timeZoneName[timeZone]; if (timeZoneData && timeZoneData[f]) { fv = timeZoneData[f][+tm.inDST]; } else { fv = offsetToGmtString(gmtFormat, hourFormat, tm.timeZoneOffset, f); } } else if (p === "month") { fv = dataLocaleData.month[f][v - 1]; } else { fv = dataLocaleData[p][f][v]; } } result.push({ type: p, value: fv }); } else if (p === "ampm") { var v = tm.hour; var fv = void 0; if (v > 11) { fv = dataLocaleData.pm; } else { fv = dataLocaleData.am; } result.push({ type: "dayPeriod", value: fv }); } else if (p === "relatedYear") { var v = tm.relatedYear; var fv = nf.format(v); result.push({ type: "relatedYear", value: fv }); } else if (p === "yearName") { var v = tm.yearName; var fv = nf.format(v); result.push({ type: "yearName", value: fv }); } } return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/PartitionPattern.js function PartitionPattern(pattern) { var result = []; var beginIndex = pattern.indexOf("{"); var endIndex = 0; var nextIndex = 0; var length = pattern.length; while (beginIndex < pattern.length && beginIndex > -1) { endIndex = pattern.indexOf("}", beginIndex); invariant(endIndex > beginIndex, "Invalid pattern " + pattern); if (beginIndex > nextIndex) { result.push({ type: "literal", value: pattern.substring(nextIndex, beginIndex) }); } result.push({ type: pattern.substring(beginIndex + 1, endIndex), value: void 0 }); nextIndex = endIndex + 1; beginIndex = pattern.indexOf("{", nextIndex); } if (nextIndex < length) { result.push({ type: "literal", value: pattern.substring(nextIndex, length) }); } return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DateTimeFormat/PartitionDateTimePattern.js function PartitionDateTimePattern(dtf, x, implDetails) { x = TimeClip(x); if (isNaN(x)) { throw new RangeError("invalid time"); } var getInternalSlots2 = implDetails.getInternalSlots; var internalSlots = getInternalSlots2(dtf); var pattern = internalSlots.pattern; return FormatDateTimePattern(dtf, PartitionPattern(pattern), x, implDetails); } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DateTimeFormat/FormatDateTime.js function FormatDateTime(dtf, x, implDetails) { var parts = PartitionDateTimePattern(dtf, x, implDetails); var result = ""; for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) { var part = parts_1[_i]; result += part.value; } return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DateTimeFormat/PartitionDateTimeRangePattern.js var TABLE_2_FIELDS = [ "era", "year", "month", "day", "ampm", "hour", "minute", "second", "fractionalSecondDigits" ]; function PartitionDateTimeRangePattern(dtf, x, y, implDetails) { x = TimeClip(x); if (isNaN(x)) { throw new RangeError("Invalid start time"); } y = TimeClip(y); if (isNaN(y)) { throw new RangeError("Invalid end time"); } var getInternalSlots2 = implDetails.getInternalSlots, tzData = implDetails.tzData; var internalSlots = getInternalSlots2(dtf); var tm1 = ToLocalTime(x, internalSlots.calendar, internalSlots.timeZone, {tzData: tzData}); var tm2 = ToLocalTime(y, internalSlots.calendar, internalSlots.timeZone, {tzData: tzData}); var pattern = internalSlots.pattern, rangePatterns = internalSlots.rangePatterns; var rangePattern; var dateFieldsPracticallyEqual = true; var patternContainsLargerDateField = false; for (var _i = 0, TABLE_2_FIELDS_1 = TABLE_2_FIELDS; _i < TABLE_2_FIELDS_1.length; _i++) { var fieldName = TABLE_2_FIELDS_1[_i]; if (dateFieldsPracticallyEqual && !patternContainsLargerDateField) { if (fieldName === "ampm") { var rp = rangePatterns.ampm; if (rangePattern !== void 0 && rp === void 0) { patternContainsLargerDateField = true; } else { var v1 = tm1.hour; var v2 = tm2.hour; if (v1 > 11 && v2 < 11 || v1 < 11 && v2 > 11) { dateFieldsPracticallyEqual = false; } rangePattern = rp; } } else if (fieldName === "fractionalSecondDigits") { var fractionalSecondDigits = internalSlots.fractionalSecondDigits; if (fractionalSecondDigits === void 0) { fractionalSecondDigits = 3; } var v1 = Math.floor(tm1.millisecond * Math.pow(10, fractionalSecondDigits - 3)); var v2 = Math.floor(tm2.millisecond * Math.pow(10, fractionalSecondDigits - 3)); if (v1 !== v2) { dateFieldsPracticallyEqual = false; } } else { var rp = rangePatterns[fieldName]; if (rangePattern !== void 0 && rp === void 0) { patternContainsLargerDateField = true; } else { var v1 = tm1[fieldName]; var v2 = tm2[fieldName]; if (!SameValue(v1, v2)) { dateFieldsPracticallyEqual = false; } rangePattern = rp; } } } } if (dateFieldsPracticallyEqual) { var result_2 = FormatDateTimePattern(dtf, PartitionPattern(pattern), x, implDetails); for (var _a = 0, result_1 = result_2; _a < result_1.length; _a++) { var r = result_1[_a]; r.source = RangePatternType.shared; } return result_2; } var result = []; if (rangePattern === void 0) { rangePattern = rangePatterns.default; for (var _b = 0, _c = rangePattern.patternParts; _b < _c.length; _b++) { var patternPart = _c[_b]; if (patternPart.pattern === "{0}" || patternPart.p 318 attern === "{1}") { patternPart.pattern = pattern; } } } for (var _d = 0, _e = rangePattern.patternParts; _d < _e.length; _d++) { var rangePatternPart = _e[_d]; var source = rangePatternPart.source, pattern_1 = rangePatternPart.pattern; var z = void 0; if (source === RangePatternType.startRange || source === RangePatternType.shared) { z = x; } else { z = y; } var patternParts = PartitionPattern(pattern_1); var partResult = FormatDateTimePattern(dtf, patternParts, z, implDetails); for (var _f = 0, partResult_1 = partResult; _f < partResult_1.length; _f++) { var r = partResult_1[_f]; r.source = source; } result = result.concat(partResult); } return 4000 result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DateTimeFormat/FormatDateTimeRange.js function FormatDateTimeRange(dtf, x, y, implDetails) { var parts = PartitionDateTimeRangePattern(dtf, x, y, implDetails); var result = ""; for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) { var part = parts_1[_i]; result += part.value; } return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DateTimeFormat/FormatDateTimeRangeToParts.js function FormatDateTimeRangeToParts(dtf, x, y, implDetails) { var parts = PartitionDateTimeRangePattern(dtf, x, y, implDetails); var result = new Array(0); for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) { var part = parts_1[_i]; result.push({ type: part.type, value: part.value, source: part.source }); } return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DateTimeFormat/FormatDateTimeToParts.js function FormatDateTimeToParts(dtf, x, implDetails) { var parts = PartitionDateTimePattern(dtf, x, implDetails); var result = ArrayCreate(0); for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) { var part = parts_1[_i]; result.push({ type: part.type, value: part.value }); } return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DateTimeFormat/ToDateTimeOptions.js function ToDateTimeOptions(options, required, defaults) { if (options === void 0) { options = null; } else { options = ToObject(options); } options = Object.create(options); var needDefaults = true; if (required === "date" || required === "any") { for (var _i = 0, _a = ["weekday", "year", "month", "day"]; _i < _a.length; _i++) { var prop = _a[_i]; var value = options[prop]; if (value !== void 0) { needDefaults = false; } } } if (required === "time" || required === "any") { for (var _b = 0, _c = [ "dayPeriod", "hour", "minute", "second", "fractionalSecondDigits" ]; _b < _c.length; _b++) { var prop = _c[_b]; var value = options[prop]; if (value !== void 0) { needDefaults = false; } } } if (options.dateStyle !== void 0 || options.timeStyle !== void 0) { needDefaults = false; } if (required === "date" && options.timeStyle) { throw new TypeError("Intl.DateTimeFormat date was required but timeStyle was included"); } if (required === "time" && options.dateStyle) { throw new TypeError("Intl.DateTimeFormat time was required but dateStyle was included"); } if (needDefaults && (defaults === "date" || defaults === "all")) { for (var _d = 0, _e = ["year", "month", "day"]; _d < _e.length; _d++) { var prop = _e[_d]; options[prop] = "numeric"; } } if (needDefaults && (defaults === "time" || defaults === "all")) { for (var _f = 0, _g = ["hour", "minute", "second"]; _f < _g.length; _f++) { var prop = _g[_f]; options[prop] = "numeric"; } } return options; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/GetOption.js function GetOption(opts, prop, type, values, fallback) { if (typeof opts !== "object") { throw new TypeError("Options must be an object"); } var value = opts[prop]; if (value !== void 0) { if (type !== "boolean" && type !== "string") { throw new TypeError("invalid type"); } if (type === "boolean") { value = Boolean(value); } if (type === "string") { value = ToString(value); } if (values !== void 0 && !values.filter(function(val) { return val == value; }).length) { throw new RangeError(value + " is not within " + values.join(", ")); } return value; } return fallback; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/BestAvailableLocale.js function BestAvailableLocale(availableLocales, locale) { var candidate = locale; while (true) { if (availableLocales.has(candidate)) { return candidate; } var pos = candidate.lastIndexOf("-"); if (!~pos) { return void 0; } if (pos >= 2 && candidate[pos - 2] === "-") { pos -= 2; } candidate = candidate.slice(0, pos); } } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/LookupMatcher.js function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) { var result = {locale: ""}; for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) { var locale = requestedLocales_1[_i]; var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, ""); var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale); if (availableLocale) { result.locale = availableLocale; if (locale !== noExtensionLocale) { result.extension = locale.slice(noExtensionLocale.length + 1, locale.length); } return result; } } result.locale = getDefaultLocale(); return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/BestFitMatcher.js function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) { var minimizedAvailableLocaleMap = {}; var minimizedAvailableLocales = new Set(); availableLocales.forEach(function(locale2) { var minimizedLocale = new Intl.Locale(locale2).minimize().toString(); minimizedAvailableLocaleMap[minimizedLocale] = locale2; minimizedAvailableLocales.add(minimizedLocale); }); var foundLocale; for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) { var l = requestedLocales_1[_i]; if (foundLocale) { break; } var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, ""); if (availableLocales.has(noExtensionLocale)) { foundLocale = noExtensionLocale; break; } if (minimizedAvailableLocales.has(noExtensionLocale)) { foundLocale = minimizedAvailableLocaleMap[noExtensionLocale]; break; } var locale = new Intl.Locale(noExtensionLocale); var maximizedRequestedLocale = locale.maximize().toString(); var minimizedRequestedLocale = locale.minimize().toString(); if (minimizedAvailableLocales.has(minimizedRequestedLocale)) { foundLocale = minimizedAvailableLocaleMap[minimizedRequestedLocale]; break; } foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale); } return { locale: foundLocale || getDefaultLocale() }; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/UnicodeExtensionValue.js function UnicodeExtensionValue(extension, key) { invariant(key.length === 2, "key must have 2 elements"); var size = extension.length; var searchValue = "-" + key + "-"; var pos = extension.indexOf(searchValue); if (pos !== -1) { var start = pos + 4; var end = start; var k = start; var done = false; while (!done) { var e = extension.indexOf("-", k); var len = void 0; if (e === -1) { len = size - k; } else { len = e - k; } if (len === 2) { done = true; } else if (e === -1) { end = size; done = true; } else { end = e; k = e + 1; } } return extension.slice(start, end); } searchValue = "-" + key; pos = extension.indexOf(searchValue); if (pos !== -1 && pos + 3 === size) { return ""; } return void 0; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/ResolveLocale.js function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) { var matcher = options.localeMatcher; var r; if (matcher === "lookup") { r = LookupMatcher(availableLocales, requestedLocales, getDefaultLocale); } else { r = BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale); } var foundLocale = r.locale; var result = {locale: "", dataLocale: foundLocale}; var supportedExtension = "-u"; for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) { var key = relevantExtensionKeys_1[_i]; invariant(foundLocale in localeData, "Missing locale data for " + foundLocale); var foundLocaleData = localeData[foundLocale]; invariant(typeof foundLocaleData === "object" && foundLocaleData !== null, "locale data " + key + " must be an object"); var keyLocaleData = foundLocaleData[key]; invariant(Array.isArray(keyLocaleData), "keyLocaleData for " + key + " must be an array"); var value = keyLocaleData[0]; invariant(typeof value === "string" || value === null, "value must be string or null but got " + typeof value + " in key " + key); var supportedExtensionAddition = ""; if (r.extension) { var requestedValue = UnicodeExtensionValue(r.extension, key); if (requestedValue !== void 0) { if (requestedValue !== "") { if (~keyLocaleData.indexOf(requestedValue)) { value = requestedValue; supportedExtensionAddition = "-" + key + "-" + value; } } else if (~requestedValue.indexOf("true")) { value = "true"; supportedExtensionAddition = "-" + key; } } } if (key in options) { var optionsValue = options[key]; invariant(typeof optionsValue === "string" || typeof optionsValue === "undefined" || optionsValue === null, "optionsValue must be String, Undefined or Null"); if (~keyLocaleData.indexOf(optionsValue)) { if (optionsValue !== value) { value = optionsValue; supportedExtensionAddition = ""; } } } result[key] = value; supportedExtension += supportedExtensionAddition; } if (supportedExtension.length > 2) { var privateIndex = foundLocale.indexOf("-x-"); if (privateIndex === -1) { foundLocale = foundLocale + supportedExtension; } else { var preExtension = foundLocale.slice(0, privateIndex); var postExtension = foundLocale.slice(privateIndex, foundLocale.length); foundLocale = preExtension + supportedExtension + postExtension; } foundLocale = Intl.getCanonicalLocales(foundLocale)[0]; } result.locale = foundLocale; return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/IsValidTimeZoneName.js function IsValidTimeZoneName(tz, _a) { var tzData = _a.tzData, uppercaseLinks = _a.uppercaseLinks; var uppercasedTz = tz.toUpperCase(); var zoneNames = new Set(); Object.keys(tzData).map(function(z) { return z.toUpperCase(); }).forEach(function(z) { return zoneNames.add(z); }); return zoneNames.has(uppercasedTz) || uppercasedTz in uppercaseLinks; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DefaultNumberOption.js function DefaultNumberOption(val, min, max, fallback) { if (val !== void 0) { val = Number(val); if (isNaN(val) || val < min || val > max) { throw new RangeError(val + " is outside of range [" + min + ", " + max + "]"); } return Math.floor(val); } return fallback; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/GetNumberOption.js function GetNumberOption(options, property, minimum, maximum, fallback) { var val = options[property]; return DefaultNumberOption(val, minimum, maximum, fallback); } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/DateTimeFormat/InitializeDateTimeFormat.js function isTimeRelated(opt) { for (var _i = 0, _a = ["hour", "minute", "second"]; _i < _a.length; _i++) { var prop = _a[_i]; var value = opt[prop]; if (value !== void 0) { return true; } } return false; } function resolveHourCycle(hc, hcDefault, hour12) { if (hc == null) { hc = hcDefault; } if (hour12 !== void 0) { if (hour12) { if (hcDefault === "h11" || hcDefault === "h23") { hc = "h11"; } else { hc = "h12"; } } else { invariant(!hour12, "hour12 must not be set"); if (hcDefault === "h11" || hcDefault === "h23") { hc = "h23"; } else { hc = "h24"; } } } return hc; } var TYPE_REGEX = /^[a-z0-9]{3,8}$/i; function InitializeDateTimeFormat(dtf, locales, opts, _a) { var getInternalSlots2 = _a.getInternalSlots, availableLocales = _a.availableLocales, localeData = _a.localeData, getDefaultLocale = _a.getDefaultLocale, getDefaultTimeZone = _a.getDefaultTimeZone, relevantExtensionKeys = _a.relevantExtensionKeys, tzData = _a.tzData, uppercaseLinks = _a.uppercaseLinks; var requestedLocales = CanonicalizeLocaleList(locales); var options = ToDateTimeOptions(opts, "any", "date"); var opt = Object.create(null); var matcher = GetOption(options, "localeMatcher", "string", ["lookup", "best fit"], "best fit"); opt.localeMatcher = matcher; var calendar = GetOption(options, "calendar", "string", void 0, void 0); if (calendar !== void 0 && !TYPE_REGEX.test(calendar)) { throw new RangeError("Malformed calendar"); } var internalSlots = getInternalSlots2(dtf); opt.ca = calendar; var numberingSystem = GetOption(options, "numberingSystem", "string", void 0, void 0); if (numberingSystem !== void 0 && !TYPE_REGEX.test(numberingSystem)) { throw new RangeError("Malformed numbering system"); } opt.nu = numberingSystem; var hour12 = GetOption(options, "hour12", "boolean", void 0, void 0); var hourCycle = GetOption(options, "hourCycle", "string", ["h11", "h12", "h23", "h24"], void 0); if (hour12 !== void 0) { hourCycle = null; } opt.hc = hourCycle; var r = ResolveLocale(availableLocales, requestedLocales, opt, relevantExtensionKeys, localeData, getDefaultLocale); internalSlots.locale = r.locale; calendar = r.ca; internalSlots.calendar = calendar; internalSlots.hourCycle = r.hc; internalSlots.numberingSystem = r.nu; var dataLocale = r.dataLocale; internalSlots.dataLocale = dataLocale; var timeZone = options.timeZone; if (timeZone !== void 0) { timeZone = String(timeZone); if (!IsValidTimeZoneName(timeZone, {tzData: tzData, uppercaseLinks: uppercaseLinks})) { throw new RangeError("Invalid timeZoneName"); } timeZone = CanonicalizeTimeZoneName(timeZone, {tzData: tzData, uppercaseLinks: uppercaseLinks}); } else { timeZone = getDefaultTimeZone(); } internalSlots.timeZone = timeZone; opt = Object.create(null); opt.weekday = GetOption(options, "weekday", "string", ["narrow", "short", "long"], void 0); opt.era = GetOption(options, "era", "string", ["narrow", "short", "long"], void 0); opt.year = GetOption(options, "year", "string", ["2-digit", "numeric"], void 0); opt.month = GetOption(options, "month", "string", ["2-digit", "numeric", "narrow", "short", "long"], void 0); opt.day = GetOption(options, "day", "string", ["2-digit", "numeric"], void 0); opt.hour = GetOption(options, "hour", "string", ["2-digit", "numeric"], void 0); opt.minute = GetOption(options, "minute", "string", ["2-digit", "numeric"], void 0); opt.second = GetOption(options, "second", "string", ["2-digit", "numeric"], void 0); opt.timeZoneName = GetOption(options, "timeZoneName", "string", ["short", "long"], void 0); opt.fractionalSecondDigits = GetNumberOption(options, "fractionalSecondDigits", 1, 3, void 0); var dataLocaleData = localeData[dataLocale]; invariant(!!dataLocaleData, "Miss 4000 ing locale data for " + dataLocale); var formats = dataLocaleData.formats[calendar]; if (!formats) { throw new RangeError('Calendar "' + calendar + '" is not supported. Try setting "calendar" to 1 of the following: ' + Object.keys(dataLocaleData.formats).join(", ")); } var formatMatcher = GetOption(options, "formatMatcher", "string", ["basic", "best fit"], "best fit"); var dateStyle = GetOption(options, "dateStyle", "string", ["full", "long", "medium", "short"], void 0); internalSlots.dateStyle = dateStyle; var timeStyle = GetOption(options, "timeStyle", "string", ["full", "long", "medium", "short"], void 0); internalSlots.timeStyle = timeStyle; var bestFormat; if (dateStyle === void 0 && timeStyle === void 0) { if (formatMatcher === "basic") { bestFormat = BasicFormatMatcher(opt, formats); } else { if (isTimeRelated(opt)) { var hc = resolveHourCycle(internalSlots.hourCycle, dataLocaleData.hourCycle, hour12); opt.hour12 = hc === "h11" || hc === "h12"; } bestFormat = BestFitFormatMatcher(opt, formats); } } else { for (var _i = 0, DATE_TIME_PROPS_1 = DATE_TIME_PROPS; _i < DATE_TIME_PROPS_1.length; _i++) { var prop = DATE_TIME_PROPS_1[_i]; var p = opt[prop]; if (p !== void 0) { throw new TypeError("Intl.DateTimeFormat can't set option " + prop + " when " + (dateStyle ? "dateStyle" : "timeStyle") + " is used"); } } bestFormat = DateTimeStyleFormat(dateStyle, timeStyle, dataLocaleData); } internalSlots.format = bestFormat; for (var prop in opt) { var p = bestFormat[prop]; if (p !== void 0) { internalSlots[prop] = p; } } var pattern; var rangePatterns; if (internalSlots.hour !== void 0) { var hc = resolveHourCycle(internalSlots.hourCycle, dataLocaleData.hourCycle, hour12); internalSlots.hourCycle = hc; if (hc === "h11" || hc === "h12") { pattern = bestFormat.pattern12; rangePatterns = bestFormat.rangePatterns12; } else { pattern = bestFormat.pattern; rangePatterns = bestFormat.rangePatterns; } } else { internalSlots.hourCycle = void 0; pattern = bestFormat.pattern; rangePatterns = bestFormat.rangePatterns; } internalSlots.pattern = pattern; internalSlots.rangePatterns = rangePatterns; return dtf; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/IsSanctionedSimpleUnitIdentifier.js var SANCTIONED_UNITS = [ "angle-degree", "area-acre", "area-hectare", "concentr-percent", "digital-bit", "digital-byte", "digital-gigabit", "digital-gigabyte", "digital-kilobit", "digital-kilobyte", "digital-megabit", "digital-megabyte", "digital-petabyte", "digital-terabit", "digital-terabyte", "duration-day", "duration-hour", "duration-millisecond", "duration-minute", "duration-month", "duration-second", "duration-week", "duration-year", "length-centimeter", "length-foot", "length-inch", "length-kilometer", "length-meter", "length-mile-scandinavian", "length-mile", "length-millimeter", "length-yard", "mass-gram", "mass-kilogram", "mass-ounce", "mass-pound", "mass-stone", "temperature-celsius", "temperature-fahrenheit", "volume-fluid-ounce", "volume-gallon", "volume-liter", "volume-milliliter" ]; function removeUnitNamespace(unit) { return unit.slice(unit.indexOf("-") + 1); } var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace); // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/regex.generated.js var S_UNICODE_REGEX = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/; // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/format_to_parts.js var CARET_S_UNICODE_REGEX = new RegExp("^" + S_UNICODE_REGEX.source); var S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + "$"); // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/LookupSupportedLocales.js function LookupSupportedLocales(availableLocales, requestedLocales) { var subset = []; for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) { var locale = requestedLocales_1[_i]; var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, ""); var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale); if (availableLocale) { subset.push(availableLocale); } } return subset; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/SupportedLocales.js function SupportedLocales(availableLocales, requestedLocales, options) { var matcher = "best fit"; if (options !== void 0) { options = ToObject(options); matcher = GetOption(options, "localeMatcher", "string", ["lookup", "best fit"], "best fit"); } if (matcher === "best fit") { return LookupSupportedLocales(availableLocales, requestedLocales); } return LookupSupportedLocales(availableLocales, requestedLocales); } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/data.js var MissingLocaleDataError = function(_super) { __extends(MissingLocaleDataError2, _super); function MissingLocaleDataError2() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = "MISSING_LOCALE_DATA"; return _this; } return MissingLocaleDataError2; }(Error); // bazel-out/darwin-fastbuild/bin/packages/intl-datetimeformat/lib/src/get_internal_slots.js var internalSlotMap = new WeakMap(); function getInternalSlots(x) { var internalSlots = internalSlotMap.get(x); if (!internalSlots) { internalSlots = Object.create(null); internalSlotMap.set(x, internalSlots); } return internalSlots; } // bazel-out/darwin-fastbuild/bin/packages/intl-datetimeformat/lib/src/data/links.js var links_default = { "Africa/Asmera": "Africa/Nairobi", "Africa/Timbuktu": "Africa/Abidjan", "America/Argentina/ComodRivadavia": "America/Argentina/Catamarca", "America/Atka": "America/Adak", "America/Buenos_Aires": "America/Argentina/Buenos_Aires", "America/Catamarca": "America/Argentina/Catamarca", "America/Coral_Harbour": "America/Atikokan", "America/Cordoba": "America/Argentina/Cordoba", "America/Ensenada": "America/Tijuana", "America/Fort_Wayne": "America/Indiana/Indianapolis", "America/Godthab": "America/Nuuk", "America/Indianapolis": "America/Indiana/Indianapolis", "America/Jujuy": "America/Argentina/Jujuy", "America/Knox_IN": "America/Indiana/Knox", "America/Louisville": "America/Kentucky/Louisville", "America/Mendoza": "America/Argentina/Mendoza", "America/Montreal": "America/Toronto", "America/Porto_Acre": "America/Rio_Branco", "America/Rosario": "America/Argentina/Cordoba", "America/Santa_Isabel": "America/Tijuana", "America/Shiprock": "America/Denver", "America/Virgin": "America/Port_of_Spain", "Antarctica/South_Pole": "Pacific/Auckland", "Asia/Ashkhabad": "Asia/Ashgabat", "Asia/Calcutta": "Asia/Kolkata", "Asia/Chongqing": "Asia/Shanghai", "Asia/Chungking": "Asia/Shanghai", "Asia/Dacca": "Asia/Dhaka", "Asia/Harbin": "Asia/Shanghai", "Asia/Kashgar": "Asia/Urumqi", "Asia/Katmandu": "Asia/Kathmandu", "Asia/Macao": "Asia/Macau", "Asia/Rangoon": "Asia/Yangon", "Asia/Saigon": "Asia/Ho_Chi_Minh", "Asia/Tel_Aviv": "Asia/Jerusalem", "Asia/Thimbu": "Asia/Thimphu", "Asia/Ujung_Pandang": "Asia/Makassar", "Asia/Ulan_Bator": "Asia/Ulaanbaatar", "Atlantic/Faeroe": "Atlantic/Faroe", "Atlantic/Jan_Mayen": "Europe/Oslo", "Australia/ACT": "Australia/Sydney", "Australia/Canberra": "Australia/Sydney", "Australia/Currie": "Australia/Hobart", "Australia/LHI": "Australia/Lord_Howe", "Australia/NSW": "Australia/Sydney", "Australia/North": "Australia/Darwin", "Australia/Queensland": "Australia/Brisbane", "Australia/South": "Australia/Adelaide", "Australia/Tasmania": "Australia/Hobart", "Australia/Victoria": "Australia/Melbourne", "Australia/West": "Australia/Perth", "Australia/Yancowinna": "Australia/Broken_Hill", "Brazil/Acre": "America/Rio_Branco", "Brazil/DeNoronha": "America/Noronha", "Brazil/East": "America/Sao_Paulo", "Brazil/West": "America/Manaus", "Canada/Atlantic": "America/Halifax", "Canada/Central": "America/Winnipeg", "Canada/Eastern": "America/Toronto", "Canada/Mountain": "America/Edmonton", "Canada/Newfoundland": "America/St_Johns", "Canada/Pacific": "America/Vancouver", "Canada/Saskatchewan": "America/Regina", "Canada/Yukon": "America/Whitehorse", "Chile/Continental": "America/Santiago", "Chile/EasterIsland": "Pacific/Easter", "Cuba": "America/Havana", "Egypt": "Africa/Cairo", "Eire": "Europe/Dublin", "Etc/UCT": "Etc/UTC", "Europe/Belfast": "Europe/London", "Europe/Tiraspol": "Europe/Chisinau", "GB": "Europe/London", "GB-Eire": "Europe/London", "GMT+0": "Etc/GMT", "GMT-0": "Etc/GMT", "GMT0": "Etc/GMT", "Greenwich": "Etc/GMT", "Hongkong": "Asia/Hong_Kong", "Iceland": "Atlantic/Reykjavik", "Iran": "Asia/Tehran", "Israel": "Asia/Jerusalem", "Jamaica": "America/Jamaica", "Japan": "Asia/Tokyo", "Kwajalein": "Pacific/Kwajalein", "Libya": "Africa/Tripoli", "Mexico/BajaNorte": "America/Tijuana", "Mexico/BajaSur": "America/Mazatlan", "Mexico/General": "America/Mexico_City", "NZ": "Pacific/Auckland", "NZ-CHAT": "Pacific/Chatham", "Navajo": "America/Denver", "PRC": "Asia/Shanghai", "Pacific/Johnston": "Pacific/Honolulu", "Pacific/Ponape": "Pacific/Pohnpei", "Pacific/Samoa": "Pacific/Pago_Pago", "Pacific/Truk": "Pacific/Chuuk", "Pacific/Yap": "Pacific/Chuuk", "Poland": "Europe/Warsaw", "Portugal": "Europe/Lisbon", "ROC": "Asia/Taipei", "ROK": "Asia/Seoul", "Singapore": "Asia/Singapore", "Turkey": "Europe/Istanbul", "UCT": "Etc/UTC", "US/Alaska": "America/Anchorage", "US/Aleutian": "America/Adak", "US/Arizona": "America/Phoenix", "US/Central": "America/Chicago", "US/East-Indiana": "America/Indiana/Indianapolis", "US/Eastern": "America/New_York", "US/Hawaii": "Pacific/Honolulu", "US/Indiana-Starke": "America/Indiana/Knox", "US/Michigan": "America/Detroit", "US/Mountain": "America/Denver", "US/Pacific": "America/Los_Angeles", "US/Samoa": "Pacific/Pago_Pago", "UTC": "Etc/UTC", "Universal": "Etc/UTC", "W-SU": "Europe/Moscow", "Zulu": "Etc/UTC" }; // bazel-out/darwin-fastbuild/bin/packages/intl-datetimeformat/lib/src/packer.js function unpack(data) { var abbrvs = data.abbrvs.split("|"); var offsets = data.offsets.split("|").map(function(n) { return parseInt(n, 36); }); var packedZones = data.zones; var zones = {}; for (var _i = 0, packedZones_1 = packedZones; _i < packedZones_1.length; _i++) { var d = packedZones_1[_i]; var _a = d.split("|"), zone = _a[0], zoneData = _a.slice(1); zones[zone] = zoneData.map(function(z) { return z.split(","); }).map(function(_a2) { var ts = _a2[0], abbrvIndex = _a2[1], offsetIndex = _a2[2], dst = _a2[3]; return [ ts === "" ? -Infinity : parseInt(ts, 36), abbrvs[+abbrvIndex], offsets[+offsetIndex], dst === "1" ]; }); } return zones; } // bazel-out/darwin-fastbuild/bin/packages/intl-datetimeformat/lib/src/core.js var UPPERCASED_LINKS = Object.keys(links_default).reduce(function(all, l) { all[l.toUpperCase()] = links_default[l]; return all; }, {}); var RESOLVED_OPTIONS_KEYS = [ "locale", "calendar", "numberingSystem", "dateStyle", "timeStyle", "timeZone", "hourCycle", "weekday", "era", "year", "month", "day", "hour", "minute", "second", "timeZoneName" ]; var formatDescriptor = { enumerable: false, configurable: true, get: function() { if (typeof this !== "object" || !OrdinaryHasInstance(DateTimeFormat, this)) { throw TypeError("Intl.DateTimeFormat format property accessor called on incompatible receiver"); } var internalSlots = getInternalSlots(this); var dtf = this; var boundFormat = internalSlots.boundFormat; if (boundFormat === void 0) { boundFormat = function(date) { var x; if (date === void 0) { x = Date.now(); } else { x = Number(date); } return FormatDateTime(dtf, x, { getInternalSlots: getInternalSlots, localeData: DateTimeFormat.localeData, tzData: DateTimeFormat.tzData, getDefaultTimeZone: DateTimeFormat.getDefaultTimeZone }); }; try { Object.defineProperty(boundFormat, "name", { configurable: true, enumerable: false, writable: false, value: "" }); } catch (e) { } internalSlots.boundFormat = boundFormat; } return boundFormat; } }; try { Object.defineProperty(formatDescriptor.get, "name", { configurable: true, enumerable: false, writable: false, value: "get format" }); } catch (e) { } var DateTimeFormat = function(locales, options) { if (!this || !OrdinaryHasInstance(DateTimeFormat, this)) { return new DateTimeFormat(locales, options); } InitializeDateTimeF 3ce7 ormat(this, locales, options, { tzData: DateTimeFormat.tzData, uppercaseLinks: UPPERCASED_LINKS, availableLocales: DateTimeFormat.availableLocales, relevantExtensionKeys: DateTimeFormat.relevantExtensionKeys, getDefaultLocale: DateTimeFormat.getDefaultLocale, getDefaultTimeZone: DateTimeFormat.getDefaultTimeZone, getInternalSlots: getInternalSlots, localeData: DateTimeFormat.localeData }); var internalSlots = getInternalSlots(this); var dataLocale = internalSlots.dataLocale; var dataLocaleData = DateTimeFormat.localeData[dataLocale]; invariant(dataLocaleData !== void 0, "Cannot load locale-dependent data for " + dataLocale + "."); }; defineProperty(DateTimeFormat, "supportedLocalesOf", { value: function supportedLocalesOf(locales, options) { return SupportedLocales(DateTimeFormat.availableLocales, CanonicalizeLocaleList(locales), options); } }); defineProperty(DateTimeFormat.prototype, "resolvedOptions", { value: function resolvedOptions() { if (typeof this !== "object" || !OrdinaryHasInstance(DateTimeFormat, this)) { throw TypeError("Method Intl.DateTimeFormat.prototype.resolvedOptions called on incompatible receiver"); } var internalSlots = getInternalSlots(this); var ro = {}; for (var _i = 0, RESOLVED_OPTIONS_KEYS_1 = RESOLVED_OPTIONS_KEYS; _i < RESOLVED_OPTIONS_KEYS_1.length; _i++) { var key = RESOLVED_OPTIONS_KEYS_1[_i]; var value = internalSlots[key]; if (key === "hourCycle") { var hour12 = value === "h11" || value === "h12" ? true : value === "h23" || value === "h24" ? false : void 0; if (hour12 !== void 0) { ro.hour12 = hour12; } } if (DATE_TIME_PROPS.indexOf(key) > -1) { if (internalSlots.dateStyle !== void 0 || internalSlots.timeStyle !== void 0) { value = void 0; } } if (value !== void 0) { ro[key] = value; } } return ro; } }); defineProperty(DateTimeFormat.prototype, "formatToParts", { value: function formatToParts2(date) { if (date === void 0) { date = Date.now(); } else { date = ToNumber(date); } return FormatDateTimeToParts(this, date, { getInternalSlots: getInternalSlots, localeData: DateTimeFormat.localeData, tzData: DateTimeFormat.tzData, getDefaultTimeZone: DateTimeFormat.getDefaultTimeZone }); } }); defineProperty(DateTimeFormat.prototype, "formatRangeToParts", { value: function formatRangeToParts(startDate, endDate) { var dtf = this; if (typeof dtf !== "object") { throw new TypeError(); } if (startDate === void 0 || endDate === void 0) { throw new TypeError("startDate/endDate cannot be undefined"); } var x = ToNumber(startDate); var y = ToNumber(endDate); return FormatDateTimeRangeToParts(dtf, x, y, { getInternalSlots: getInternalSlots, localeData: DateTimeFormat.localeData, tzData: DateTimeFormat.tzData, getDefaultTimeZone: DateTimeFormat.getDefaultTimeZone }); } }); defineProperty(DateTimeFormat.prototype, "formatRange", { value: function formatRange(startDate, endDate) { var dtf = this; if (typeof dtf !== "object") { throw new TypeError(); } if (startDate === void 0 || endDate === void 0) { throw new TypeError("startDate/endDate cannot be undefined"); } var x = ToNumber(startDate); var y = ToNumber(endDate); return FormatDateTimeRange(dtf, x, y, { getInternalSlots: getInternalSlots, localeData: DateTimeFormat.localeData, tzData: DateTimeFormat.tzData, getDefaultTimeZone: DateTimeFormat.getDefaultTimeZone }); } }); var DEFAULT_TIMEZONE = "UTC"; DateTimeFormat.__setDefaultTimeZone = function(timeZone) { if (timeZone !== void 0) { timeZone = String(timeZone); if (!IsValidTimeZoneName(timeZone, { tzData: DateTimeFormat.tzData, uppercaseLinks: UPPERCASED_LINKS })) { throw new RangeError("Invalid timeZoneName"); } timeZone = CanonicalizeTimeZoneName(timeZone, { tzData: DateTimeFormat.tzData, uppercaseLinks: UPPERCASED_LINKS }); } else { timeZone = DEFAULT_TIMEZONE; } DateTimeFormat.__defaultTimeZone = timeZone; }; DateTimeFormat.relevantExtensionKeys = ["nu", "ca", "hc"]; DateTimeFormat.__defaultTimeZone = DEFAULT_TIMEZONE; DateTimeFormat.getDefaultTimeZone = function() { return DateTimeFormat.__defaultTimeZone; }; DateTimeFormat.__addLocaleData = function __addLocaleData() { var data = []; for (var _i = 0; _i -1) { endIndex = pattern.indexOf("}", beginIndex); invariant(endIndex > beginIndex, "Invalid pattern " + pattern); if (beginIndex > nextIndex) { result.push({ type: "literal", value: pattern.substring(nextIndex, beginIndex) }); } result.push({ type: pattern.substring(beginIndex + 1, endIndex), value: void 0 }); nextIndex = endIndex + 1; beginIndex = pattern.indexOf("{", nextIndex); } if (nextIndex < length) { result.push({ type: "literal", value: pattern.substring(nextIndex, length) }); } return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/GetOption.js function GetOption(opts, prop, type, values, fallback) { if (typeof opts !== "object") { throw new TypeError("Options must be an object"); } var value = opts[prop]; if (value !== void 0) { if (type !== "boolean" && type !== "string") { throw new TypeError("invalid type"); } if (type === "boolean") { value = Boolean(value); } if (type === "string") { value = ToString(value); } if (values !== void 0 && !values.filter(function(val) { return val == value; }).length) { throw new RangeError(value + " is not within " + values.join(", ")); } return value; } return fallback; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/BestAvailableLocale.js function BestAvailableLocale(availableLocales, locale) { var candidate = locale; while (true) { if (availableLocales.has(candidate)) { return candidate; } var pos = candidate.lastIndexOf("-"); if (!~pos) { return void 0; } if (pos >= 2 && candidate[pos - 2] === "-") { pos -= 2; } candidate = candidate.slice(0, pos); } } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/LookupMatcher.js function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) { var result = {locale: ""}; for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) { var locale = requestedLocales_1[_i]; var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, ""); var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale); if (availableLocale) { result.locale = availableLocale; if (locale !== noExtensionLocale) { result.extension = locale.slice(noExtensionLocale.length + 1, locale.length); } return result; } } result.locale = getDefaultLocale(); return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/BestFitMatcher.js function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) { var minimizedAvailableLocaleMap = {}; var minimizedAvailableLocales = new Set(); availableLocales.forEach(function(locale2) { var minimizedLocale = new Intl.Locale(locale2).minimize().toString(); minimizedAvailableLocaleMap[minimizedLocale] = locale2; minimizedAvailableLocales.add(minimizedLocale); }); var foundLocale; for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) { var l = requestedLocales_1[_i]; if (foundLocale) { break; } var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, ""); if (availableLocales.has(noExtensionLocale)) { foundLocale = noExtensionLocale; break; } if (minimizedAvailableLocales.has(noExtensionLocale)) { foundLocale = minimizedAvailableLocaleMap[noExtensionLocale]; break; } var locale = new Intl.Locale(noExtensionLocale); var maximizedRequestedLocale = locale.maximize().toString(); var minimizedRequestedLocale = locale.minimize().toString(); if (minimizedAvailableLocales.has(minimizedRequestedLocale)) { foundLocale = minimizedAvailableLocaleMap[minimizedRequestedLocale]; break; } foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale); } return { locale: foundLocale || getDefaultLocale() }; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/UnicodeExtensionValue.js function UnicodeExtensionValue(extension, key) { invariant(key.length === 2, "key must have 2 elements"); var size = extension.length; var searchValue = "-" + key + "-"; var pos = extension.indexOf(searchValue); if (pos !== -1) { var start = pos + 4; var end = start; var k = start; var done = false; while (!done) { var e = extension.indexOf("-", k); var len = void 0; if (e === -1) { len = size - k; } else { len = e - k; } if (len === 2) { done = true; } else if (e === -1) { end = size; done = true; } else { end = e; k = e + 1; } } return extension.slice(start, end); } searchValue = "-" + key; pos = extension.indexOf(searchValue); if (pos !== -1 && pos + 3 === size) { return ""; } return void 0; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/ResolveLocale.js function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) { var matcher = options.localeMatcher; var r; if (matcher === "lookup") { r = LookupMatcher(availableLocales, requestedLocales, getDefaultLocale); } else { r = BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale); } var foundLocale = r.locale; var result = {locale: "", dataLocale: foundLocale}; var supportedExtension = "-u"; for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) { var key = relevantExtensionKeys_1[_i]; invariant(foundLocale in localeData, "Missing locale data for " + foundLocale); var foundLocaleData = localeData[foundLocale]; invariant(typeof foundLocaleData === "object" && foundLocaleData !== null, "locale data " + key + " must be an object"); var keyLocaleData = foundLocaleData[key]; invariant(Array.isArray(keyLocaleData), "keyLocaleData for " + key + " must be an array"); var value = keyLocaleData[0]; invariant(typeof value === "string" || value === null, "value must be string or null but got " + typeof value + " in key " + key); var supportedExtensionAddition = ""; if (r.extension) { var requestedValue = UnicodeExtensionValue(r.extension, key); if (requestedValue !== void 0) { if (requestedValue !== "") { if (~keyLocaleData.indexOf(requestedValue)) { value = requestedValue; supportedExtensionAddition = "-" + key + "-" + value; } } else if (~requestedValue.indexOf("true")) { value = "true"; supportedExtensionAddition = "-" + key; } } } if (key in options) { var optionsValue = options[key]; invariant(typeof optionsValue === "string" || typeof optionsValue === "undefined" || optionsValue === null, "optionsValue must be String, Undefined or Null"); if (~keyLocaleData.indexOf(optionsValue)) { if (optionsValue !== value) { value = optionsValue; supportedExtensionAddition = ""; } } } result[key] = value; supportedExtension += supportedExtensionAddition; } if (supportedExtension.length > 2) { var privateIndex = foundLocale.indexOf("-x-"); if (privateIndex === -1) { foundLocale = foundLocale + supportedExtension; } else { var preExtension = foundLocale.slice(0, privateIndex); var postExtension = foundLocale.slice(privateIndex, foundLocale.length); foundLocale = preExtension + supportedExtension + postExtension; } foundLocale = Intl.getCanonicalLocales(foundLocale)[0]; } result.locale = foundLocale; return result; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/IsSanctionedSimpleUnitIdentifier.js var SANCTIONED_UNITS = [ "angle-degree", "area-acre", "area-hectare", "concentr-percent", "digital-bit", "digital-byte", "digital-gigabit", "digital-gigabyte", "digital-kilobit", "digital-kilobyte", "digital-megabit", "digital-megabyte", "digital-petabyte", "digital-terabit", "digital-terabyte", "duration-day", "duration-hour", "duration-millisecond", "duration-minute", "duration-month", "duration-second", "duration-week", "duration-year", "length-centimeter", "length-foot", "length-inch", "length-kilometer", "length-meter", "length-mile-scandinavian", "length-mile", "length-millimeter", "length-yard", "mass-gram", "mass-kilogram", "mass-ounce", "mass-pound", "mass-stone", "temperature-celsius", "temperature-fahrenheit", "volume-fluid-ounce", "volume-gallon", "volume-liter", "volume-milliliter" ]; function removeUnitNamespace(unit) { return unit.slice(unit.indexOf("-") + 1); } var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace); // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/regex.generated.js var S_UNICODE_REGEX = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/; // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/NumberFormat/format_to_parts.js var CARET_S_UNICODE_REGEX = new RegExp("^" + S_UNICODE_REGEX.source); var S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + "$"); // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/RelativeTimeFormat/SingularRelativeTimeUnit.js function SingularRelativeTimeUnit(unit) { invariant(Type(unit) === "String", "unit must be a string"); if (unit === "seconds") return "second"; if (unit === "minutes") return "minute"; if (unit === "hours") return "hour"; if (unit === "days") return "day"; if (unit === "weeks") return "week"; if (unit === "months") return "month"; if (unit === "quarters") return "quarter"; if (unit === "years") return "year"; if (unit !== "second" && unit !== "minute" && unit !== "hour" && unit !== "day" && unit !== "week" && unit !== "month" && unit !== "quarter" && unit !== "year") { throw new RangeError("invalid unit"); } return unit; } // bazel-out/darwin-fastbuild/bin/packages/ecma402-abstract/lib/RelativeTimeFormat/MakePartsList.js function MakePartsList(pattern, unit, parts) { var patternParts = PartitionPattern(pattern); var result = []; for (var _i = 0, patternParts_1 = patternParts; _i 0; }); }; var hasSkippedObservations = function () { return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; }); }; var msg = 'ResizeObserver loop completed with undelivered notifications.'; var deliverResizeLoopError = function () { var event; if (typeof ErrorEvent === 'function') { event = new ErrorEvent('error', { message: msg }); } else { event = document.createEvent('Event'); event.initEvent('error', false, false); event.message = msg; } window.dispatchEvent(event); }; var ResizeObserverBoxOptions; (function (ResizeObserverBoxOptions) { ResizeObserverBoxOptions["BORDER_BOX"] = "border-box"; ResizeObserverBoxOptions["CONTENT_BOX"] = "content-box"; ResizeObserverBoxOptions["DEVICE_PIXEL_CONTENT_BOX"] = "device-pixel-content-box"; })(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {})); var freeze = function (obj) { return Object.freeze(obj); }; var ResizeObserverSize = (function () { function ResizeObserverSize(inlineSize, blockSize) { this.inlineSize = inlineSize; this.blockSize = blockSize; freeze(this); } return ResizeObserverSize; }()); var DOMRectReadOnly = (function () { function DOMRectReadOnly(x, y, width, height) { this.x = x; this.y = y; this.width = width; this.height = height; this.top = this.y; this.left = this.x; this.bottom = this.top + this.height; this.right = this.left + this.width; return freeze(this); } DOMRectReadOnly.prototype.toJSON = function () { var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height; return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height }; }; DOMRectReadOnly.fromRect = function (rectangle) { return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height); }; return DOMRectReadOnly; }()); var isSVG = function (target) { return target 4000 instanceof SVGElement && 'getBBox' in target; }; var isHidden = function (target) { if (isSVG(target)) { var _a = target.getBBox(), width = _a.width, height = _a.height; return !width && !height; } var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight; return !(offsetWidth || offsetHeight || target.getClientRects().length); }; var isElement = function (obj) { var _a; if (obj instanceof Element) { return true; } var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView; return !!(scope && obj instanceof scope.Element); }; var isReplacedElement = function (target) { switch (target.tagName) { case 'INPUT': if (target.type !== 'image') { break; } case 'VIDEO': case 'AUDIO': case 'EMBED': case 'OBJECT': case 'CANVAS': case 'IFRAME': case 'IMG': return true; } return false; }; var global = typeof window !== 'undefined' ? window : {}; var cache = new WeakMap(); var scrollRegexp = /auto|scroll/; var verticalRegexp = /^tb|vertical/; var IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent); var parseDimension = function (pixel) { return parseFloat(pixel || '0'); }; var size = function (inlineSize, blockSize, switchSizes) { if (inlineSize === void 0) { inlineSize = 0; } if (blockSize === void 0) { blockSize = 0; } if (switchSizes === void 0) { switchSizes = false; } return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0); }; var zeroBoxes = freeze({ devicePixelContentBoxSize: size(), borderBoxSize: size(), contentBoxSize: size(), contentRect: new DOMRectReadOnly(0, 0, 0, 0) }); var calculateBoxSizes = function (target, forceRecalculation) { if (forceRecalculation === void 0) { forceRecalculation = false; } if (cache.has(target) && !forceRecalculation) { return cache.get(target); } if (isHidden(target)) { cache.set(target, zeroBoxes); return zeroBoxes; } var cs = getComputedStyle(target); var svg = isSVG(target) && target.ownerSVGElement && target.getBBox(); var removePadding = !IE && cs.boxSizing === 'border-box'; var switchSizes = verticalRegexp.test(cs.writingMode || ''); var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || ''); var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || ''); var paddingTop = svg ? 0 : parseDimension(cs.paddingTop); var paddingRight = svg ? 0 : parseDimension(cs.paddingRight); var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom); var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft); var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth); var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth); var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth); var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth); var horizontalPadding = paddingLeft + paddingRight; var verticalPadding = paddingTop + paddingBottom; var horizontalBorderArea = borderLeft + borderRight; var verticalBorderArea = borderTop + borderBottom; var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight; var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth; var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0; var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0; var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness; var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness; var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea; var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea; var boxes = freeze({ devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes), borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes), contentBoxSize: size(contentWidth, contentHeight, switchSizes), contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight) }); cache.set(target, boxes); return boxes; }; var calculateBoxSize = function (target, observedBox, forceRecalculation) { var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize; switch (observedBox) { case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX: return devicePixelContentBoxSize; case ResizeObserverBoxOptions.BORDER_BOX: return borderBoxSize; default: return contentBoxSize; } }; var ResizeObserverEntry = (function () { function ResizeObserverEntry(target) { var boxes = calculateBoxSizes(target); this.target = target; this.contentRect = boxes.contentRect; this.borderBoxSize = freeze([boxes.borderBoxSize]); this.contentBoxSize = freeze([boxes.contentBoxSize]); this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]); } return ResizeObserverEntry; }()); var calculateDepthForNode = function (node) { if (isHidden(node)) { return Infinity; } var depth = 0; var parent = node.parentNode; while (parent) { depth += 1; parent = parent.parentNode; } return depth; }; var broadcastActiveObservations = function () { var shallowestDepth = Infinity; var callbacks = []; resizeObservers.forEach(function processObserver(ro) { if (ro.activeTargets.length === 0) { return; } var entries = []; ro.activeTargets.forEach(function processTarget(ot) { var entry = new ResizeObserverEntry(ot.target); var targetDepth = calculateDepthForNode(ot.target); entries.push(entry); ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox); if (targetDepth < shallowestDepth) { shallowestDepth = targetDepth; } }); callbacks.push(function resizeObserverCallback() { ro.callback.call(ro.observer, entries, ro.observer); }); ro.activeTargets.splice(0, ro.activeTargets.length); }); for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) { var callback = callbacks_1[_i]; callback(); } return shallowestDepth; }; var gatherActiveObservationsAtDepth = function (depth) { resizeObservers.forEach(function processObserver(ro) { ro.activeTargets.splice(0, ro.activeTargets.length); ro.skippedTargets.splice(0, ro.skippedTargets.length); ro.observationTargets.forEach(function processTarget(ot) { if (ot.isActive()) { if (calculateDepthForNode(ot.target) > depth) { ro.activeTargets.push(ot); } else { ro.skippedTargets.push(ot); } } }); }); }; var process = function () { var depth = 0; gatherActiveObservationsAtDepth(depth); while (hasActiveObservations()) { depth = broadcastActiveObservations(); gatherActiveObservationsAtDepth(depth); } if (hasSkippedObservations()) { deliverResizeLoopError(); } return depth > 0; }; var trigger; var callbacks = []; var notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); }; var queueMicroTask = function (callback) { if (!trigger) { var toggle_1 = 0; var el_1 = document.createTextNode(''); var config = { characterData: true }; new MutationObserver(function () { return notify(); }).observe(el_1, config); trigger = function () { el_1.textContent = "".concat(toggle_1 ? toggle_1-- : toggle_1++); }; } callbacks.push(callback); trigger(); }; var queueResizeObserver = function (cb) { queueMicroTask(function ResizeObserver() { requestAnimationFrame(cb); }); }; var watching = 0; var isWatching = function () { return !!watching; }; var CATCH_PERIOD = 250; var observerConfig = { attributes: true, characterData: true, childList: true, subtree: true }; var events = [ 'resize', 'load', 'transitionend', 'animationend', 'animationstart', 'animationiteration', 'keyup', 'keydown', 'mouseup', 'mousedown', 'mouseover', 'mouseout', 'blur', 'focus' ]; var time = function (timeout) { if (timeout === void 0) { timeout = 0; } return Date.now() + timeout; }; var scheduled = false; var Scheduler = (function () { function Scheduler() { var _this = this; this.stopped = true; this.listener = function () { return _this.schedule(); }; } Scheduler.prototype.run = function (timeout) { var _this = this; if (timeout === void 0) { timeout = CATCH_PERIOD; } if (scheduled) { return; } scheduled = true; var until = time(timeout); queueResizeObserver(function () { var elementsHaveResized = false; try { elementsHaveResized = process(); } finally { scheduled = false; timeout = until - time(); if (!isWatching()) { return; } if (elementsHaveResized) { _this.run(1000); } else if (timeout > 0) { _this.run(timeout); } else { _this.start(); } } }); }; Scheduler.prototype.schedule = function () { this.stop(); this.run(); }; Scheduler.prototype.observe = function () { var _this = this; var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); }; document.body ? cb() : global.addEventListener('DOMContentLoaded', cb); }; Scheduler.prototype.start = function () { var _this = this; if (this.stopped) { this.stopped = false; this.observer = new MutationObserver(this.listener); this.observe(); events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); }); } }; Scheduler.prototype.stop = function () { var _this = this; if (!this.stopped) { this.observer && this.observer.disconnect(); events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); }); this.stopped = true; } }; return Scheduler; }()); var scheduler = new Scheduler(); var updateCount = function (n) { !watching && n > 0 && scheduler.start(); watching += n; !watching && scheduler.stop(); }; var skipNotifyOnElement = function (target) { return !isSVG(target) && !isReplacedElement(target) && getComputedStyle(target).display === 'inline'; }; var ResizeObservation = (function () { function ResizeObservation(target, observedBox) { this.target = target; this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX; this.lastReportedSize = { inlineSize: 0, blockSize: 0 }; } ResizeObservation.prototype.isActive = function () { var size = calculateBoxSize(this.target, this.observedBox, true); if (skipNotifyOnElement(this.target)) { this.lastReportedSize = size; } if (this.lastReportedSize.inlineSize !== size.inlineSize || this.lastReportedSize.blockSize !== size.blockSize) { return true; } return false; }; return ResizeObservation; }()); var ResizeObserverDetail = (function () { function ResizeObserverDetail(resizeObserver, callback) { this.activeTargets = []; this.skippedTargets = []; this.observationTargets = []; this.observer = resizeObserver; this.callback = callback; } return ResizeObserverDetail; }()); var observerMap = new WeakMap(); var getObservationIndex = function (observationTargets, target) { for (var i = 0; i < observationTargets.length; i += 1) { if (observationTargets[i].target === target) { return i; } } return -1; }; var ResizeObserverController = (function () { function ResizeObserverController() { } ResizeObserverController.connect = function (resizeObserver, callback) { var detail = new ResizeObserverDetail(resizeObserver, callback); observerMap.set(resizeObserver, detail); }; ResizeObserverController.observe = function (resizeObserver, target, options) { var detail = observerMap.get(resizeObserver); var firstObservation = detail.observationTargets.length === 0; if (getObservationIndex(detail.observationTargets, target) < 0) { firstObservation && resizeObservers.push(detail); detail.observationTargets.push(new ResizeObservation(target, options && options.box)); updateCount(1); scheduler.schedule(); } }; ResizeObserverController.unobserve = function (resizeObserver, target) { var detail = observerMap.get(resizeObserver); var index = getObservationIndex(detail.observationTargets, target); var lastObservation = detail.observationTargets.length === 1; if (index >= 0) { lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1); detail.observationTargets.splice(index, 1); updateCount(-1); } }; ResizeObserverController.disconnect = function (resizeObserver) { var _this = this; var detail = observerMap.get(resizeObserver); detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); }); detail.activeTargets.splice(0, detail.activeTargets.length); }; return ResizeObserverController; }()); var Re 3ce7 sizeObserver = (function () { function ResizeObserver(callback) { if (arguments.length === 0) { throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present."); } if (typeof callback !== 'function') { throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function."); } ResizeObserverController.connect(this, callback); } ResizeObserver.prototype.observe = function (target, options) { if (arguments.length === 0) { throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present."); } if (!isElement(target)) { throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element"); } ResizeObserverController.observe(this, target, options); }; ResizeObserver.prototype.unobserve = function (target) { if (arguments.length === 0) { throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present."); } if (!isElement(target)) { throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element"); } ResizeObserverController.unobserve(this, target); }; ResizeObserver.prototype.disconnect = function () { ResizeObserverController.disconnect(this); }; ResizeObserver.toString = function () { return 'function ResizeObserver () { [polyfill code] }'; }; return ResizeObserver; }()); exports.ResizeObserver = ResizeObserver; exports.ResizeObserverEntry = ResizeObserverEntry; exports.ResizeObserverSize = ResizeObserverSize; Object.defineProperty(exports, '__esModule', { value: true }); })); ;self.ResizeObserverEntry = ResizeObserver.ResizeObserverEntry;self.ResizeObserver=ResizeObserver.ResizeObserver; } if (!((function(e){try{if(Object.prototype.hasOwnProperty.call(e,"WeakSet")&&0===e.WeakSet.length){var t={},r=new e.WeakSet([t]) return r.has(t)&&!1===r.delete(0)&&"toStringTag"in self.Symbol&&void 0!==r[self.Symbol.toStringTag]}return!1}catch(e){return!1}})(self) )) { // WeakSet /* global Call, CreateMethodProperty, Get, GetIterator, IsArray, IsCallable, IteratorClose, IteratorStep, IteratorValue, OrdinaryCreateFromConstructor, SameValueZero, Type, Symbol */ (function (global) { // Deleted set items mess with iterator pointers, so rather than removing them mark them as deleted. Can't use undefined or null since those both valid keys so use a private symbol. var undefMarker = Symbol('undef'); // 23.4.1.1. WeakSet ( [ iterable ] ) var WeakSet = function WeakSet() { // 1. If NewTarget is undefined, throw a TypeError exception. if (!(this instanceof WeakSet)) { throw new TypeError('Constructor WeakSet requires "new"'); } // 2. Let set be ? OrdinaryCreateFromConstructor(NewTarget, "%WeakSetPrototype%", « [[WeakSetData]] »). var set = OrdinaryCreateFromConstructor(this, WeakSet.prototype, { _values: [], _size: 0, _es6WeakSet: true }); // 3. Set set.[[WeakSetData]] to a new empty List. // Polyfill.io - This step was done as part of step two. // 4. If iterable is not present, let iterable be undefined. var iterable = arguments.length > 0 ? arguments[0] : undefined; // 5. If iterable is either undefined or null, return set. if (iterable === null || iterable === undefined) { return set; } // 6. Let adder be ? Get(set, "add"). var adder = Get(set, 'add'); // 7. If IsCallable(adder) is false, throw a TypeError exception. if (!IsCallable(adder)) { throw new TypeError("WeakSet.prototype.add is not a function"); } try { // 8. Let iteratorRecord be ? GetIterator(iterable). var iteratorRecord = GetIterator(iterable); // 9. Repeat, // eslint-disable-next-line no-constant-condition while (true) { // a. Let next be ? IteratorStep(iteratorRecord). var next = IteratorStep(iteratorRecord); // b. If next is false, return set. if (next === false) { return set; } // c. Let nextValue be ? IteratorValue(next). var nextValue = IteratorValue(next); // d. Let status be Call(adder, set, « nextValue »). try { Call(adder, set, [nextValue]); } catch (e) { // e. If status is an abrupt completion, return ? IteratorClose(iteratorRecord, status). return IteratorClose(iteratorRecord, e); } } } catch (e) { // Polyfill.io - For user agents which do not have iteration methods on argument objects or arrays, we can special case those. if (IsArray(iterable) || Object.prototype.toString.call(iterable) === '[object Arguments]') { var index; var length = iterable.length; for (index = 0; index < length; index++) { Call(adder, set, [iterable[index]]); } } } return set; }; // 23.4.2.1. WeakSet.prototype // The initial value of WeakSet.prototype is the intrinsic %WeakSetPrototype% object. // This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }. Object.defineProperty(WeakSet, 'prototype', { configurable: false, enumerable: false, writable: false, value: {} }); // 23.4.3.1. WeakSet.prototype.add ( value ) CreateMethodProperty(WeakSet.prototype, 'add', function add(value) { // 1. Let S be the this value. var S = this; // 2. If Type(S) is not Object, throw a TypeError exception. if (Type(S) !== 'object') { throw new TypeError('Method WeakSet.prototype.add called on incompatible receiver ' + Object.prototype.toString.call(S)); } // 3. If S does not have a [[WeakSetData]] internal slot, throw a TypeError exception. if (S._es6WeakSet !== true) { throw new TypeError('Method WeakSet.prototype.add called on incompatible receiver ' + Object.prototype.toString.call(S)); } // 4. If Type(value) is not Object, throw a TypeError exception. if (Type(value) !== 'object') { throw new TypeError('Invalid value used in weak set'); } // 5. Let entries be the List that is S.[[WeakSetData]]. var entries = S._values; // 6. For each e that is an element of entries, do for (var i = 0; i < entries.length; i++) { var e = entries[i]; // a. If e is not empty and SameValue(e, value) is true, then if (e !== undefMarker && SameValueZero(e, value)) { // i. Return S. return S; } } // 7. Append value as the last element of entries. S._values.push(value); // 8. Return S. return S; }); // 23.4.3.2. WeakSet.prototype.constructor CreateMethodProperty(WeakSet.prototype, 'constructor', WeakSet); // 23.4.3.3. WeakSet.prototype.delete ( value ) CreateMethodProperty(WeakSet.prototype, 'delete', function (value) { // 1. Let S be the this value. var S = this; // 2. If Type(S) is not Object, throw a TypeError exception. if (Type(S) !== 'object') { throw new TypeError('Method WeakSet.prototype.delete called on incompatible receiver ' + Object.prototype.toString.call(S)); } // 3. If S does not have a [[WeakSetData]] internal slot, throw a TypeError exception. if (S._es6WeakSet !== true) { throw new TypeError('Method WeakSet.prototype.delete called on incompatible receiver ' + Object.prototype.toString.call(S)); } // 4. If Type(value) is not Object, return false. if (Type(value) !== 'object') { return false; } // 5. Let entries be the List that is S.[[WeakSetData]]. var entries = S._values; // 6. For each e that is an element of entries, do for (var i = 0; i < entries.length; i++) { var e = entries[i]; // a. If e is not empty and SameValue(e, value) is true, then if (e !== undefMarker && SameValueZero(e, value)) { // i. Replace the element of entries whose value is e with an element whose value is empty. entries[i] = undefMarker; // ii. Return true. return true; } } // 7. Return false. return false; }); // 23.4.3.4. WeakSet.prototype.has ( value ) CreateMethodProperty(WeakSet.prototype, 'has', function has(value) { // 1. Let S be the this value. var S = this; // 2. If Type(S) is not Object, throw a TypeError exception. if (Type(S) !== 'object') { throw new TypeError('Method WeakSet.prototype.has called on incompatible receiver ' + Object.prototype.toString.call(S)); } // 3. If S does not have a [[WeakSetData]] internal slot, throw a TypeError exception. if (S._es6WeakSet !== true) { throw new TypeError('Method WeakSet.prototype.has called on incompatible receiver ' + Object.prototype.toString.call(S)); } // 4. Let entries be the List that is S.[[WeakSetData]]. var entries = S._values; // 5. If Type(value) is not Object, return false. if (Type(value) !== 'object') { return false; } // 6. For each e that is an element of entries, do for (var i = 0; i < entries.length; i++) { var e = entries[i]; // a. If e is not empty and SameValue(e, value) is true, return true. if (e !== undefMarker && SameValueZero(e, value)) { return true; } } // 7. Return false. return false; }); // 23.4.3.5. WeakSet.prototype [ @@toStringTag ] // The initial value of the @@toStringTag property is the String value "WeakSet". // This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }. Object.defineProperty(WeakSet.prototype, Symbol.toStringTag, { configurable: true, enumerable: false, writable: false, value: 'WeakSet' }); // Polyfill.io - Safari 8 implements Set.name but as a non-configurable property, which means it would throw an error if we try and configure it here. if (!('name' in WeakSet)) { // 19.2.4.2 name Object.defineProperty(WeakSet, 'name', { configurable: true, enumerable: false, writable: false, value: 'WeakSet' }); } // Export the object CreateMethodProperty(global, 'WeakSet', WeakSet); }(self)); } }) ('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
UNLIMITED TV SHOWS & MOVIES
Sign In

Fanático

4000
Plans start at just $6.99
When a trap artist's biggest fan tries to take over his idol's persona, he finds out that being a superstar isn't as easy as it looks.
Starring:Lorenzo Ferro, Dollar Selmouni, Carlota Urdiales
Creators:Yago de Torres, Federico Maniá Sibona, Dani del Águila
Plans start at just $6.99

Lorenzo Ferro ("El Angel") stars as a fan who steps through the looking glass into his musical idol's luxurious life.

Videos

Fanático

Episodes

Fanático

Fanático
  1. Watch Quimera. Episode 1 of Season 1.

    When Lázaro meets his friends at a Quimera show after work, the unthinkable happens — and the tragedy creates an opportunity.

  2. Watch In the Flesh. Episode 2 of Season 1.

    Lázaro starts making the most of his resemblance to Quimera and crashes a party at the beach.

  3. Watch A Privilege. Episode 3 of Season 1.

    Héctor makes a proposal to Lázaro, who decides to try out a new lifestyle. Salva's girlfriend Mia has doubts about their plan.

  4. Watch The Art of Doing Business. Episode 4 of Season 1.

    The team pitches their concept to Quimera's record label. Lázaro's TV debut ruffles some feathers.

  5. Watch Lázaro. Episode 5 of Season 1.

    Lázaro doesn't get the welcome he was hoping for at home. Preparing for his first show as Quimera, he'll need to choose a path forward.

More Details

Watch offline
Download and watch everywhere you go.
This show is...
Dark
Cast
Lorenzo FerroDollar SelmouniCarlota UrdialesFernando ValdivielsoEva Almeida

More Like This

Go behind the scenes of Netflix TV shows and movies, see what's coming soon and watch bonus videos on Tudum.com.
0