{"version":3,"file":"polyfills.js","mappings":"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","sources":["./src/polyfills.ts","./node_modules/base64-js/index.js","./node_modules/buffer/index.js","./node_modules/ieee754/index.js","./node_modules/zone.js/fesm2015/zone.js","ignored|N:\\projects\\SnowfallPressWebSite\\src|@angular/localize/init"],"sourcesContent":["/***************************************************************************************************\n * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.\n */\nimport '@angular/localize/init';\n/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\n * file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE9, IE10 and IE11 requires all of the following polyfills. **/\n// import 'core-js/es6/symbol';\n// import 'core-js/es6/object';\n// import 'core-js/es6/function';\n// import 'core-js/es6/parse-int';\n// import 'core-js/es6/parse-float';\n// import 'core-js/es6/number';\n// import 'core-js/es6/math';\n// import 'core-js/es6/string';\n// import 'core-js/es6/date';\n// import 'core-js/es6/array';\n// import 'core-js/es6/regexp';\n// import 'core-js/es6/map';\n// import 'core-js/es6/weak-map';\n// import 'core-js/es6/set';\n\n/** IE10 and IE11 requires the following for the Reflect API. */\n// import 'core-js/es6/reflect';\n\n\n/** Evergreen browsers require these. **/\n// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.\n\n\n\n/***************************************************************************************************\n * Zone JS is required by Angular itself.\n */\nimport 'zone.js'; // Included with Angular CLI.\n\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n\n/**\n * Date, currency, decimal and percent pipes.\n * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10\n */\n// import 'intl'; // Run `npm install --save intl`.\n/**\n * Need to import at least one locale-data with intl.\n */\n// import 'intl/locale-data/jsonp/en';\n(window as any).global = window;\n(window as any).global.Buffer = (window as any).global.Buffer || require('buffer').Buffer;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol.for === 'function')\n ? Symbol.for('nodejs.util.inspect.custom')\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayLike(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n buf = Buffer.from(buf)\n }\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (var i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","'use strict';\n/**\n * @license Angular v\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n((function (global) {\n const performance = global['performance'];\n function mark(name) {\n performance && performance['mark'] && performance['mark'](name);\n }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n // Initialize before it's accessed below.\n // __Zone_symbol_prefix global can be used to override the default zone\n // symbol prefix with a custom one if needed.\n const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) {\n return symbolPrefix + name;\n }\n const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone']) {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {\n throw new Error('Zone already loaded.');\n }\n else {\n return global['Zone'];\n }\n }\n class Zone {\n // tslint:disable-next-line:require-internal-with-underscore\n static { this.__symbol__ = __symbol__; }\n static assertZonePatched() {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n }\n static get root() {\n let zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n }\n static get current() {\n return _currentZoneFrame.zone;\n }\n static get currentTask() {\n return _currentTask;\n }\n // tslint:disable-next-line:require-internal-with-underscore\n static __load_patch(name, fn, ignoreDuplicate = false) {\n if (patches.hasOwnProperty(name)) {\n // `checkDuplicate` option is defined from global variable\n // so it works for all modules.\n // `ignoreDuplicate` can work for the specified module\n if (!ignoreDuplicate && checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n const perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n }\n get parent() {\n return this._parent;\n }\n get name() {\n return this._name;\n }\n constructor(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new _ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n get(key) {\n const zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n }\n getZoneWith(key) {\n let current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n }\n fork(zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n }\n wrap(callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n const _callback = this._zoneDelegate.intercept(this, callback, source);\n const zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n }\n run(callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runGuarded(callback, applyThis = null, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runTask(task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n return;\n }\n const reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n const previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n }\n scheduleTask(task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n let newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n const zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n }\n scheduleMicroTask(source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n }\n scheduleMacroTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n }\n scheduleEventTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n }\n cancelTask(task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n if (task.state !== scheduled && task.state !== running) {\n return;\n }\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n }\n _updateTaskCount(task, count) {\n const zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (let i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n }\n }\n const DELEGATE_ZS = {\n name: '',\n onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState),\n onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task),\n onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs),\n onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task)\n };\n class _ZoneDelegate {\n constructor(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone =\n zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone =\n zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec &&\n (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n const parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n fork(targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n }\n intercept(targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n }\n invoke(targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n }\n handleError(targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n }\n scheduleTask(targetZone, task) {\n let returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n // clang-format off\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n // clang-format on\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n }\n invokeTask(targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n }\n cancelTask(targetZone, task) {\n let value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n }\n hasTask(targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _updateTaskCount(type, count) {\n const counts = this._taskCounts;\n const prev = counts[type];\n const next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n const isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n }\n }\n class ZoneTask {\n constructor(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n const self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n static invokeTask(task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n }\n get zone() {\n return this._zone;\n }\n get state() {\n return this._state;\n }\n cancelScheduleRequest() {\n this._transitionTo(notScheduled, scheduling);\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _transitionTo(toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? ' or \\'' + fromState2 + '\\'' : ''}, was '${this._state}'.`);\n }\n }\n toString() {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n }\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n toJSON() {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const symbolSetTimeout = __symbol__('setTimeout');\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n let _microTaskQueue = [];\n let _isDrainingMicrotaskQueue = false;\n let nativeMicroTaskQueuePromise;\n function nativeScheduleMicroTask(func) {\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n let nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, func);\n }\n else {\n global[symbolSetTimeout](func, 0);\n }\n }\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n nativeScheduleMicroTask(drainMicroTaskQueue);\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n const queue = _microTaskQueue;\n _microTaskQueue = [];\n for (let i = 0; i < queue.length; i++) {\n const task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const NO_ZONE = { name: 'NO ZONE' };\n const notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n const microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n const patches = {};\n const _api = {\n symbol: __symbol__,\n currentZoneFrame: () => _currentZoneFrame,\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: () => !Zone[__symbol__('ignoreConsoleErrorUncaughtError')],\n patchEventTarget: () => [],\n patchOnProperties: noop,\n patchMethod: () => noop,\n bindArguments: () => [],\n patchThen: () => noop,\n patchMacroTask: () => noop,\n patchEventPrototype: () => noop,\n isIEOrEdge: () => false,\n getGlobalObjects: () => undefined,\n ObjectDefineProperty: () => noop,\n ObjectGetOwnPropertyDescriptor: () => undefined,\n ObjectCreate: () => undefined,\n ArraySlice: () => [],\n patchClass: () => noop,\n wrapWithCurrentZone: () => noop,\n filterProperties: () => [],\n attachOriginToPatched: () => noop,\n _redefineProperty: () => noop,\n patchCallbacks: () => noop,\n nativeScheduleMicroTask: nativeScheduleMicroTask\n };\n let _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n let _currentTask = null;\n let _numberOfNestedTaskFrames = 0;\n function noop() { }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n}))(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n/// \n// issue #989, to reduce bundle size, use short name\n/** Object.getOwnPropertyDescriptor */\nconst ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n/** Object.defineProperty */\nconst ObjectDefineProperty = Object.defineProperty;\n/** Object.getPrototypeOf */\nconst ObjectGetPrototypeOf = Object.getPrototypeOf;\n/** Object.create */\nconst ObjectCreate = Object.create;\n/** Array.prototype.slice */\nconst ArraySlice = Array.prototype.slice;\n/** addEventListener string const */\nconst ADD_EVENT_LISTENER_STR = 'addEventListener';\n/** removeEventListener string const */\nconst REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n/** zoneSymbol addEventListener */\nconst ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n/** zoneSymbol removeEventListener */\nconst ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n/** true string const */\nconst TRUE_STR = 'true';\n/** false string const */\nconst FALSE_STR = 'false';\n/** Zone symbol prefix string const. */\nconst ZONE_SYMBOL_PREFIX = Zone.__symbol__('');\nfunction wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n}\nfunction scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n}\nconst zoneSymbol = Zone.__symbol__;\nconst isWindowExists = typeof window !== 'undefined';\nconst internalWindow = isWindowExists ? window : undefined;\nconst _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\nconst REMOVE_ATTRIBUTE = 'removeAttribute';\nfunction bindArguments(args, source) {\n for (let i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n const source = prototype.constructor['name'];\n for (let i = 0; i < fnNames.length; i++) {\n const name = fnNames[i];\n const delegate = prototype[name];\n if (delegate) {\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name);\n if (!isPropertyWritable(prototypeDesc)) {\n continue;\n }\n prototype[name] = ((delegate) => {\n const patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n }\n}\nfunction isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n}\nconst isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\nconst isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\nconst zoneSymbolEventNames$1 = {};\nconst wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n let eventNameSymbol = zoneSymbolEventNames$1[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n const target = this || event.target || _global;\n const listener = target[eventNameSymbol];\n let result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signature\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n const errorEvent = event;\n result = listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n};\nfunction patchProperty(obj, prop, prototype) {\n let desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n const originalDescGet = desc.get;\n const originalDescSet = desc.set;\n // slice(2) cuz 'onclick' -> 'click', etc\n const eventName = prop.slice(2);\n let eventNameSymbol = zoneSymbolEventNames$1[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n const previousValue = target[eventNameSymbol];\n if (typeof previousValue === 'function') {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n originalDescSet && originalDescSet.call(target, null);\n target[eventNameSymbol] = newValue;\n if (typeof newValue === 'function') {\n target.addEventListener(eventName, wrapFn, false);\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n const listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n let value = originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n}\nfunction patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (let i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n const onProperties = [];\n for (const prop in obj) {\n if (prop.slice(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (let j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n}\nconst originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n const OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n const a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n const instance = new OriginalClass(function () { });\n let prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n}\nfunction patchMethod(target, name, patchFn) {\n let proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n const delegateName = zoneSymbol(name);\n let delegate = null;\n if (proto && (!(delegate = proto[delegateName]) || !proto.hasOwnProperty(delegateName))) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n const patchDelegate = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate(this, arguments);\n };\n attachOriginToPatched(proto[name], delegate);\n }\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\nfunction patchMacroTask(obj, funcName, metaCreator) {\n let setNative = null;\n function scheduleTask(task) {\n const data = task.data;\n data.args[data.cbIdx] = function () {\n task.invoke.apply(this, arguments);\n };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, (delegate) => function (self, args) {\n const meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n });\n}\nfunction attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n}\nlet isDetectedIEOrEdge = false;\nlet ieOrEdge = false;\nfunction isIE() {\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) {\n }\n return false;\n}\nfunction isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) {\n }\n return ieOrEdge;\n}\n\nZone.__load_patch('ZoneAwarePromise', (global, Zone, api) => {\n const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n const ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n const className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n const __symbol__ = api.symbol;\n const _uncaughtPromiseErrors = [];\n const isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] === true;\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n const creationTrace = '__creationTrace__';\n api.onUnhandledError = (e) => {\n if (api.showUncaughtError()) {\n const rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = () => {\n while (_uncaughtPromiseErrors.length) {\n const uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(() => {\n if (uncaughtPromiseError.throwOriginal) {\n throw uncaughtPromiseError.rejection;\n }\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n }\n };\n const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n const symbolState = __symbol__('state');\n const symbolValue = __symbol__('value');\n const symbolFinally = __symbol__('finally');\n const symbolParentPromiseValue = __symbol__('parentPromiseValue');\n const symbolParentPromiseState = __symbol__('parentPromiseState');\n const source = 'Promise.then';\n const UNRESOLVED = null;\n const RESOLVED = true;\n const REJECTED = false;\n const REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return (v) => {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n const once = function () {\n let wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n const TYPE_ERROR = 'Promise resolved with itself';\n const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n const onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n let then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n const queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n const trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (let i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n let uncaughtPromiseError = value;\n try {\n // Here we throws a new Error to print more readable error log\n // and if the value is not an error, zone.js builds an `Error`\n // Object here to attach the stack information.\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n uncaughtPromiseError = err;\n }\n if (isDisableWrappingUncaughtPromiseRejection) {\n // If disable wrapping uncaught promise reject\n // use the value instead of wrapping it.\n uncaughtPromiseError.throwOriginal = true;\n }\n uncaughtPromiseError.rejection = value;\n uncaughtPromiseError.promise = promise;\n uncaughtPromiseError.zone = Zone.current;\n uncaughtPromiseError.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(uncaughtPromiseError);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n const handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (let i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n const promiseState = promise[symbolState];\n const delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected :\n forwardRejection;\n zone.scheduleMicroTask(source, () => {\n try {\n const parentPromiseValue = promise[symbolValue];\n const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ?\n [] :\n [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n const noop = function () { };\n const AggregateError = global.AggregateError;\n class ZoneAwarePromise {\n static toString() {\n return ZONE_AWARE_PROMISE_TO_STRING;\n }\n static resolve(value) {\n return resolvePromise(new this(null), RESOLVED, value);\n }\n static reject(error) {\n return resolvePromise(new this(null), REJECTED, error);\n }\n static any(values) {\n if (!values || typeof values[Symbol.iterator] !== 'function') {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n const promises = [];\n let count = 0;\n try {\n for (let v of values) {\n count++;\n promises.push(ZoneAwarePromise.resolve(v));\n }\n }\n catch (err) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n if (count === 0) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n let finished = false;\n const errors = [];\n return new ZoneAwarePromise((resolve, reject) => {\n for (let i = 0; i < promises.length; i++) {\n promises[i].then(v => {\n if (finished) {\n return;\n }\n finished = true;\n resolve(v);\n }, err => {\n errors.push(err);\n count--;\n if (count === 0) {\n finished = true;\n reject(new AggregateError(errors, 'All promises were rejected'));\n }\n });\n }\n });\n }\n ;\n static race(values) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) {\n resolve(value);\n }\n function onReject(error) {\n reject(error);\n }\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n }\n static all(values) {\n return ZoneAwarePromise.allWithCallback(values);\n }\n static allSettled(values) {\n const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: (value) => ({ status: 'fulfilled', value }),\n errorCallback: (err) => ({ status: 'rejected', reason: err })\n });\n }\n static allWithCallback(values, callback) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n let unresolvedCount = 2;\n let valueIndex = 0;\n const resolvedValues = [];\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n const curValueIndex = valueIndex;\n try {\n value.then((value) => {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, (err) => {\n if (!callback) {\n reject(err);\n }\n else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n }\n catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n }\n constructor(executor) {\n const promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n const onceWrapper = once();\n executor &&\n executor(onceWrapper(makeResolver(promise, RESOLVED)), onceWrapper(makeResolver(promise, REJECTED)));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n get [Symbol.toStringTag]() {\n return 'Promise';\n }\n get [Symbol.species]() {\n return ZoneAwarePromise;\n }\n then(onFulfilled, onRejected) {\n // We must read `Symbol.species` safely because `this` may be anything. For instance, `this`\n // may be an object without a prototype (created through `Object.create(null)`); thus\n // `this.constructor` will be undefined. One of the use cases is SystemJS creating\n // prototype-less objects (modules) via `Object.create(null)`. The SystemJS creates an empty\n // object and copies promise properties into that object (within the `getOrCreateLoad`\n // function). The zone.js then checks if the resolved value has the `then` method and invokes\n // it with the `value` context. Otherwise, this will throw an error: `TypeError: Cannot read\n // properties of undefined (reading 'Symbol(Symbol.species)')`.\n let C = this.constructor?.[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = this.constructor || ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n }\n catch(onRejected) {\n return this.then(null, onRejected);\n }\n finally(onFinally) {\n // See comment on the call to `then` about why thee `Symbol.species` is safely accessed.\n let C = this.constructor?.[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n chainPromise[symbolFinally] = symbolFinally;\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n }\n }\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n const NativePromise = global[symbolPromise] = global['Promise'];\n global['Promise'] = ZoneAwarePromise;\n const symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n const proto = Ctor.prototype;\n const prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n const originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n const wrapped = new ZoneAwarePromise((resolve, reject) => {\n originalThen.call(this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function (self, args) {\n let resultPromise = fn.apply(self, args);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n let ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n patchMethod(global, 'fetch', delegate => zoneify(delegate));\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n});\n\n// override Function.prototype.toString to make zone.js patched function\n// look like native function\nZone.__load_patch('toString', (global) => {\n // patch Func.prototype.toString to let them look like native\n const originalFunctionToString = Function.prototype.toString;\n const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n const PROMISE_SYMBOL = zoneSymbol('Promise');\n const ERROR_SYMBOL = zoneSymbol('Error');\n const newFunctionToString = function toString() {\n if (typeof this === 'function') {\n const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n const nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n const nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n const originalObjectToString = Object.prototype.toString;\n const PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (typeof Promise === 'function' && this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\n };\n});\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nlet passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n const options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n }\n });\n // Note: We pass the `options` object as the event handler too. This is not compatible with the\n // signature of `addEventListener` or `removeEventListener` but enables us to remove the handler\n // without an actual handler.\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\n// an identifier to tell ZoneTask do not create a new invoke closure\nconst OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n};\nconst zoneSymbolEventNames = {};\nconst globalSources = {};\nconst EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\nconst IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\nfunction prepareEventNames(eventName, eventNameToString) {\n const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n}\nfunction patchEventTarget(_global, api, apis, patchOptions) {\n const ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n const REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n const LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n const REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n const PREPEND_EVENT_LISTENER = 'prependListener';\n const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n const invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n const delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = (event) => delegate.handleEvent(event);\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n // need to try/catch error here, otherwise, the error in one event listener\n // will break the executions of the other event listeners. Also error will\n // not remove the event listener when `once` options is true.\n let error;\n try {\n task.invoke(task, target, [event]);\n }\n catch (err) {\n error = err;\n }\n const options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n const delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options);\n }\n return error;\n };\n function globalCallback(context, event, isCapture) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n const target = context || event.target || _global;\n const tasks = target[zoneSymbolEventNames[event.type][isCapture ? TRUE_STR : FALSE_STR]];\n if (tasks) {\n const errors = [];\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n const err = invokeTask(tasks[0], target, event);\n err && errors.push(err);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n const copyTasks = tasks.slice();\n for (let i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n const err = invokeTask(copyTasks[i], target, event);\n err && errors.push(err);\n }\n }\n // Since there is only one error, we don't need to schedule microTask\n // to throw the error.\n if (errors.length === 1) {\n throw errors[0];\n }\n else {\n for (let i = 0; i < errors.length; i++) {\n const err = errors[i];\n api.nativeScheduleMicroTask(() => {\n throw err;\n });\n }\n }\n }\n }\n // global shared zoneAwareCallback to handle all event callback with capture = false\n const globalZoneAwareCallback = function (event) {\n return globalCallback(this, event, false);\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n const globalZoneAwareCaptureCallback = function (event) {\n return globalCallback(this, event, true);\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n let useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n const validateHandler = patchOptions && patchOptions.vh;\n let checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n let returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n let proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n const eventNameToString = patchOptions && patchOptions.eventNameToString;\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n const taskData = {};\n const nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n const nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n const nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n const nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n let nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n /**\n * This util function will build an option object with passive option\n * to handle all possible input from the user.\n */\n function buildEventListenerOptions(options, passive) {\n if (!passiveSupported && typeof options === 'object' && options) {\n // doesn't support passive but user want to pass an object as options.\n // this will not work on some old browser, so we just pass a boolean\n // as useCapture parameter\n return !!options.capture;\n }\n if (!passiveSupported || !passive) {\n return options;\n }\n if (typeof options === 'boolean') {\n return { capture: options, passive: true };\n }\n if (!options) {\n return { passive: true };\n }\n if (typeof options === 'object' && options.passive !== false) {\n return { ...options, passive: true };\n }\n return options;\n }\n const customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n const customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n const symbolEventNames = zoneSymbolEventNames[task.eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n const customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n const compareTaskCallbackVsDelegate = function (task, delegate) {\n const typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n const compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n const unpatchedEvents = Zone[zoneSymbol('UNPATCHED_EVENTS')];\n const passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')];\n const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) {\n return function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n let delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n let isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n const passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1;\n const options = buildEventListenerOptions(arguments[2], passive);\n if (unpatchedEvents) {\n // check unpatched list\n for (let i = 0; i < unpatchedEvents.length; i++) {\n if (eventName === unpatchedEvents[i]) {\n if (passive) {\n return nativeListener.call(target, eventName, delegate, options);\n }\n else {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n }\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const once = options && typeof options === 'object' ? options.once : false;\n const zone = Zone.current;\n let symbolEventNames = zoneSymbolEventNames[eventName];\n if (!symbolEventNames) {\n prepareEventNames(eventName, eventNameToString);\n symbolEventNames = zoneSymbolEventNames[eventName];\n }\n const symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n let existingTasks = target[symbolEventName];\n let isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (let i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n let source;\n const constructorName = target.constructor['name'];\n const targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const options = arguments[2];\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates all removed\n if (typeof eventName === 'string') {\n const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const listeners = [];\n const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (let i = 0; i < tasks.length; i++) {\n const task = tasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (!eventName) {\n const keys = Object.keys(target);\n for (let i = 0; i < keys.length; i++) {\n const prop = keys[i];\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n if (symbolEventNames) {\n const symbolEventName = symbolEventNames[FALSE_STR];\n const symbolCaptureEventName = symbolEventNames[TRUE_STR];\n const tasks = target[symbolEventName];\n const captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n const removeTasks = tasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n const removeTasks = captureTasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n let results = [];\n for (let i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n}\nfunction findEventTasks(target, eventName) {\n if (!eventName) {\n const foundTasks = [];\n for (let prop in target) {\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n const tasks = target[prop];\n if (tasks) {\n for (let i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n let symbolEventName = zoneSymbolEventNames[eventName];\n if (!symbolEventName) {\n prepareEventNames(eventName);\n symbolEventName = zoneSymbolEventNames[eventName];\n }\n const captureFalseTasks = target[symbolEventName[FALSE_STR]];\n const captureTrueTasks = target[symbolEventName[TRUE_STR]];\n if (!captureFalseTasks) {\n return captureTrueTasks ? captureTrueTasks.slice() : [];\n }\n else {\n return captureTrueTasks ? captureFalseTasks.concat(captureTrueTasks) :\n captureFalseTasks.slice();\n }\n}\nfunction patchEventPrototype(global, api) {\n const Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', (delegate) => function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n });\n }\n}\n\nfunction patchCallbacks(api, target, targetName, method, callbacks) {\n const symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n const nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n const source = `${targetName}.${method}::` + callback;\n const prototype = opts.prototype;\n // Note: the `patchCallbacks` is used for patching the `document.registerElement` and\n // `customElements.define`. We explicitly wrap the patching code into try-catch since\n // callbacks may be already patched by other web components frameworks (e.g. LWC), and they\n // make those properties non-writable. This means that patching callback will throw an error\n // `cannot assign to read-only property`. See this code as an example:\n // https://github.com/salesforce/lwc/blob/master/packages/@lwc/engine-core/src/framework/base-bridge-element.ts#L180-L186\n // We don't want to stop the application rendering if we couldn't patch some\n // callback, e.g. `attributeChangedCallback`.\n try {\n if (prototype.hasOwnProperty(callback)) {\n const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n catch {\n // Note: we leave the catch block empty since there's no way to handle the error related\n // to non-writable property.\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\n}\n\n/**\n * @fileoverview\n * @suppress {globalThis}\n */\nfunction filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n const tip = ignoreProperties.filter(ip => ip.target === target);\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n const targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(op => targetIgnoreProperties.indexOf(op) === -1);\n}\nfunction patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n const filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n}\n/**\n * Get all event name properties which the event name startsWith `on`\n * from the target object itself, inherited properties are not considered.\n */\nfunction getOnEventNames(target) {\n return Object.getOwnPropertyNames(target)\n .filter(name => name.startsWith('on') && name.length > 2)\n .map(name => name.substring(2));\n}\nfunction propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n const ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n let patchTargets = [];\n if (isBrowser) {\n const internalWindow = window;\n patchTargets = patchTargets.concat([\n 'Document', 'SVGElement', 'Element', 'HTMLElement', 'HTMLBodyElement', 'HTMLMediaElement',\n 'HTMLFrameSetElement', 'HTMLFrameElement', 'HTMLIFrameElement', 'HTMLMarqueeElement', 'Worker'\n ]);\n const ignoreErrorProperties = isIE() ? [{ target: internalWindow, ignoreProperties: ['error'] }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow, getOnEventNames(internalWindow), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n }\n patchTargets = patchTargets.concat([\n 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'IDBIndex', 'IDBRequest', 'IDBOpenDBRequest',\n 'IDBDatabase', 'IDBTransaction', 'IDBCursor', 'WebSocket'\n ]);\n for (let i = 0; i < patchTargets.length; i++) {\n const target = _global[patchTargets[i]];\n target && target.prototype &&\n patchFilteredProperties(target.prototype, getOnEventNames(target.prototype), ignoreProperties);\n }\n}\n\nZone.__load_patch('util', (global, Zone, api) => {\n // Collect native event names by looking at properties\n // on the global namespace, e.g. 'onclick'.\n const eventNames = getOnEventNames(global);\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to\n // define which events will not be patched by `Zone.js`.\n // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep\n // the name consistent with angular repo.\n // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for\n // backwards compatibility.\n const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = () => ({\n globalSources,\n zoneSymbolEventNames,\n eventNames,\n isBrowser,\n isMix,\n isNode,\n TRUE_STR,\n FALSE_STR,\n ZONE_SYMBOL_PREFIX,\n ADD_EVENT_LISTENER_STR,\n REMOVE_EVENT_LISTENER_STR\n });\n});\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nfunction patchQueueMicrotask(global, api) {\n api.patchMethod(global, 'queueMicrotask', (delegate) => {\n return function (self, args) {\n Zone.current.scheduleMicroTask('queueMicrotask', args[0]);\n };\n });\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nconst taskSymbol = zoneSymbol('zoneTask');\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n let setNative = null;\n let clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n const tasksByHandleId = {};\n function scheduleTask(task) {\n const data = task.data;\n data.args[0] = function () {\n return task.invoke.apply(this, arguments);\n };\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) {\n return clearNative.call(window, task.data.handleId);\n }\n setNative =\n patchMethod(window, setName, (delegate) => function (self, args) {\n if (typeof args[0] === 'function') {\n const options = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n const callback = args[0];\n args[0] = function timer() {\n try {\n return callback.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n // https://github.com/angular/angular/issues/40387\n // Cleanup tasksByHandleId should be handled before scheduleTask\n // Since some zoneSpec may intercept and doesn't trigger\n // scheduleFn(scheduleTask) provided here.\n if (!(options.isPeriodic)) {\n if (typeof options.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[options.handleId];\n }\n else if (options.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n options.handleId[taskSymbol] = null;\n }\n }\n }\n };\n const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n const handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n });\n clearNative =\n patchMethod(window, cancelName, (delegate) => function (self, args) {\n const id = args[0];\n let task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n });\n}\n\nfunction patchCustomElements(_global, api) {\n const { isBrowser, isMix } = api.getGlobalObjects();\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n const callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n}\n\nfunction eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n const { eventNames, zoneSymbolEventNames, TRUE_STR, FALSE_STR, ZONE_SYMBOL_PREFIX } = api.getGlobalObjects();\n // predefine all __zone_symbol__ + eventName + true/false string\n for (let i = 0; i < eventNames.length; i++) {\n const eventName = eventNames[i];\n const falseEventName = eventName + FALSE_STR;\n const trueEventName = eventName + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n const EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, api, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n}\nfunction patchEvent(global, api) {\n api.patchEventPrototype(global, api);\n}\n\n/**\n * @fileoverview\n * @suppress {missingRequire}\n */\nZone.__load_patch('legacy', (global) => {\n const legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n});\nZone.__load_patch('timers', (global) => {\n const set = 'set';\n const clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n});\nZone.__load_patch('requestAnimationFrame', (global) => {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n});\nZone.__load_patch('blocking', (global, Zone) => {\n const blockingMethods = ['alert', 'prompt', 'confirm'];\n for (let i = 0; i < blockingMethods.length; i++) {\n const name = blockingMethods[i];\n patchMethod(global, name, (delegate, symbol, name) => {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n});\nZone.__load_patch('EventTarget', (global, Zone, api) => {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, api, [XMLHttpRequestEventTarget.prototype]);\n }\n});\nZone.__load_patch('MutationObserver', (global, Zone, api) => {\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n});\nZone.__load_patch('IntersectionObserver', (global, Zone, api) => {\n patchClass('IntersectionObserver');\n});\nZone.__load_patch('FileReader', (global, Zone, api) => {\n patchClass('FileReader');\n});\nZone.__load_patch('on_property', (global, Zone, api) => {\n propertyDescriptorPatch(api, global);\n});\nZone.__load_patch('customElements', (global, Zone, api) => {\n patchCustomElements(global, api);\n});\nZone.__load_patch('XHR', (global, Zone) => {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n const XHR_TASK = zoneSymbol('xhrTask');\n const XHR_SYNC = zoneSymbol('xhrSync');\n const XHR_LISTENER = zoneSymbol('xhrListener');\n const XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n const XHR_URL = zoneSymbol('xhrURL');\n const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n const XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n const XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) {\n return target[XHR_TASK];\n }\n let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n const READY_STATE_CHANGE = 'readystatechange';\n const SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n const data = task.data;\n const target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n const listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n const newListener = target[XHR_LISTENER] = () => {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n // Also if the request failed without response (status = 0), the load event handler\n // will not be triggered, in that case, we should also invoke the placeholder callback\n // to close the XMLHttpRequest::send macroTask.\n // https://github.com/angular/angular/issues/38795\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n if (target.status !== 0 && loadTasks && loadTasks.length > 0) {\n const oriInvoke = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n for (let i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n const storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n const data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n });\n const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n const fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n const options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n });\n const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) {\n const task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n });\n }\n});\nZone.__load_patch('geolocation', (global) => {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n});\nZone.__load_patch('PromiseRejectionEvent', (global, Zone) => {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n const eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(eventTask => {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n const PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n const evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n});\nZone.__load_patch('queueMicrotask', (global, Zone, api) => {\n patchQueueMicrotask(global, api);\n});\n","/* (ignored) */"],"names":["window","global","Buffer","require","exports","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","Array","code","i","len","length","charCodeAt","getLens","b64","Error","validLen","indexOf","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","push","join","extraBytes","parts","maxChunkLength","len2","base64","ieee754","customInspectSymbol","Symbol","for","SlowBuffer","INSPECT_MAX_BYTES","K_MAX_LENGTH","kMaxLength","TYPED_ARRAY_SUPPORT","typedArraySupport","console","error","proto","foo","Object","setPrototypeOf","prototype","e","defineProperty","enumerable","get","isBuffer","undefined","buffer","byteOffset","createBuffer","RangeError","buf","arg","encodingOrOffset","TypeError","allocUnsafe","from","poolSize","value","fromString","ArrayBuffer","isView","fromArrayLike","isInstance","fromArrayBuffer","SharedArrayBuffer","valueOf","b","fromObject","toPrimitive","assertSize","size","alloc","fill","encoding","checked","allocUnsafeSlow","string","isEncoding","actual","write","slice","array","obj","copy","numberIsNaN","type","isArray","data","toString","_isBuffer","compare","a","offset","x","y","Math","min","String","toLowerCase","concat","list","pos","mustMatch","arguments","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","m","swap16","swap32","swap64","apply","toLocaleString","equals","inspect","str","max","replace","trim","target","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","val","dir","arrayIndexOf","call","lastIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","j","includes","hexWrite","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","isFinite","toJSON","_arr","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","fromCharCode","ret","out","hexSliceLookupTable","bytes","newBuf","subarray","checkOffset","ext","readUIntLE","noAssert","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","checkInt","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","checkIEEE754","writeFloat","littleEndian","writeFloatLE","writeFloatBE","writeDouble","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","set","INVALID_BASE64_RE","base64clean","split","units","Infinity","leadSurrogate","byteArray","c","hi","lo","src","dst","constructor","name","alphabet","table","i16","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","d","s","NaN","rt","abs","isNaN","floor","log","LN2","_class","performance","mark","performanceMeasure","label","symbolPrefix","__symbol__","checkDuplicate","Zone","assertZonePatched","patches","root","zone","current","parent","_currentZoneFrame","currentTask","_currentTask","__load_patch","fn","ignoreDuplicate","hasOwnProperty","perfName","_api","_parent","_name","zoneSpec","_properties","properties","_zoneDelegate","_ZoneDelegate","key","getZoneWith","fork","wrap","callback","source","_callback","intercept","runGuarded","run","applyThis","applyArgs","invoke","handleError","runTask","task","NO_ZONE","state","notScheduled","eventTask","macroTask","reEntryGuard","running","_transitionTo","scheduled","runCount","previousTask","isPeriodic","cancelFn","invokeTask","unknown","_updateTaskCount","scheduleTask","newZone","scheduling","zoneDelegates","_zoneDelegates","_zone","err","scheduleMicroTask","customSchedule","ZoneTask","microTask","scheduleMacroTask","customCancel","scheduleEventTask","cancelTask","canceling","count","DELEGATE_ZS","onHasTask","delegate","_","hasTaskState","hasTask","onScheduleTask","onInvokeTask","onCancelTask","parentDelegate","_taskCounts","_parentDelegate","_forkZS","onFork","_forkDlgt","_forkCurrZone","_interceptZS","onIntercept","_interceptDlgt","_interceptCurrZone","_invokeZS","onInvoke","_invokeDlgt","_invokeCurrZone","_handleErrorZS","onHandleError","_handleErrorDlgt","_handleErrorCurrZone","_scheduleTaskZS","_scheduleTaskDlgt","_scheduleTaskCurrZone","_invokeTaskZS","_invokeTaskDlgt","_invokeTaskCurrZone","_cancelTaskZS","_cancelTaskDlgt","_cancelTaskCurrZone","_hasTaskZS","_hasTaskDlgt","_hasTaskDlgtOwner","_hasTaskCurrZone","zoneSpecHasTask","parentHasTask","targetZone","returnTask","scheduleFn","isEmpty","counts","prev","next","change","options","_state","self","useG","args","_numberOfNestedTaskFrames","drainMicroTaskQueue","cancelScheduleRequest","toState","fromState1","fromState2","handleId","symbolSetTimeout","symbolPromise","symbolThen","_microTaskQueue","_isDrainingMicrotaskQueue","nativeMicroTaskQueuePromise","nativeScheduleMicroTask","func","resolve","nativeThen","queue","onUnhandledError","microtaskDrainDone","symbol","currentZoneFrame","noop","showUncaughtError","patchEventTarget","patchOnProperties","patchMethod","bindArguments","patchThen","patchMacroTask","patchEventPrototype","isIEOrEdge","getGlobalObjects","ObjectDefineProperty","ObjectGetOwnPropertyDescriptor","ObjectCreate","ArraySlice","patchClass","wrapWithCurrentZone","filterProperties","attachOriginToPatched","_redefineProperty","patchCallbacks","getOwnPropertyDescriptor","ObjectGetPrototypeOf","getPrototypeOf","create","ADD_EVENT_LISTENER_STR","REMOVE_EVENT_LISTENER_STR","ZONE_SYMBOL_ADD_EVENT_LISTENER","ZONE_SYMBOL_REMOVE_EVENT_LISTENER","TRUE_STR","FALSE_STR","ZONE_SYMBOL_PREFIX","scheduleMacroTaskWithCurrentZone","zoneSymbol","isWindowExists","internalWindow","_global","REMOVE_ATTRIBUTE","patchPrototype","fnNames","prototypeDesc","isPropertyWritable","patched","propertyDesc","writable","isWebWorker","WorkerGlobalScope","isNode","process","isBrowser","isMix","zoneSymbolEventNames$1","wrapFn","event","eventNameSymbol","listener","result","errorEvent","message","filename","lineno","colno","preventDefault","patchProperty","prop","desc","configurable","onPropPatchedSymbol","originalDescGet","originalDescSet","eventName","newValue","previousValue","removeEventListener","addEventListener","removeAttribute","onProperties","originalInstanceKey","className","OriginalClass","instance","patchFn","delegateName","patchDelegate","funcName","metaCreator","setNative","cbIdx","meta","original","isDetectedIEOrEdge","ieOrEdge","isIE","ua","navigator","userAgent","api","readableObjectToString","JSON","stringify","_uncaughtPromiseErrors","isDisableWrappingUncaughtPromiseRejection","creationTrace","rejection","stack","uncaughtPromiseError","shift","throwOriginal","handleUnhandledRejection","UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL","handler","isThenable","then","forwardResolution","forwardRejection","ZoneAwarePromise","reject","symbolState","symbolValue","symbolFinally","symbolParentPromiseValue","symbolParentPromiseState","UNRESOLVED","RESOLVED","REJECTED","REJECTED_NO_CATCH","makeResolver","promise","v","resolvePromise","once","wasCalled","wrapper","wrappedFunction","TYPE_ERROR","CURRENT_TASK_TRACE_SYMBOL","onceWrapper","clearRejectedNoCatch","trace","scheduleResolveOrReject","REJECTION_HANDLED_HANDLER","splice","chainPromise","onFulfilled","onRejected","promiseState","parentPromiseValue","isFinallyPromise","ZONE_AWARE_PROMISE_TO_STRING","AggregateError","any","values","iterator","Promise","promises","finished","errors","race","rej","onResolve","onReject","all","allWithCallback","allSettled","P","thenCallback","status","errorCallback","reason","unresolvedCount","valueIndex","resolvedValues","curValueIndex","thenErr","executor","toStringTag","species","C","catch","finally","onFinally","NativePromise","symbolThenPatched","Ctor","originalThen","wrapped","zoneify","resultPromise","ctor","originalFunctionToString","Function","ORIGINAL_DELEGATE_SYMBOL","PROMISE_SYMBOL","ERROR_SYMBOL","newFunctionToString","originalDelegate","nativePromise","nativeError","originalObjectToString","PROMISE_OBJECT_TO_STRING","passiveSupported","OPTIMIZED_ZONE_EVENT_TASK_DATA","zoneSymbolEventNames","globalSources","EVENT_NAME_SYMBOL_REGX","RegExp","IMMEDIATE_PROPAGATION_SYMBOL","prepareEventNames","eventNameToString","falseEventName","trueEventName","symbolCapture","apis","patchOptions","ADD_EVENT_LISTENER","add","REMOVE_EVENT_LISTENER","rm","LISTENERS_EVENT_LISTENER","listeners","REMOVE_ALL_LISTENERS_EVENT_LISTENER","rmAll","zoneSymbolAddEventListener","ADD_EVENT_LISTENER_SOURCE","PREPEND_EVENT_LISTENER","PREPEND_EVENT_LISTENER_SOURCE","isRemoved","handleEvent","globalCallback","context","isCapture","tasks","copyTasks","globalZoneAwareCallback","globalZoneAwareCaptureCallback","patchEventTargetMethods","useGlobalCallback","validateHandler","vh","chkDup","returnTarget","taskData","nativeAddEventListener","nativeRemoveEventListener","nativeListeners","nativeRemoveAllListeners","nativePrependEventListener","prepend","buildEventListenerOptions","passive","capture","customScheduleGlobal","isExisting","customCancelGlobal","symbolEventNames","symbolEventName","existingTasks","existingTask","allRemoved","customScheduleNonGlobal","customSchedulePrepend","customCancelNonGlobal","compareTaskCallbackVsDelegate","typeOfDelegate","diff","unpatchedEvents","passiveEvents","makeAddListener","nativeListener","addSource","customScheduleFn","customCancelFn","transferEventName","isHandleEvent","constructorName","targetSource","unshift","onPropertySymbol","findEventTasks","keys","match","exec","evtName","symbolCaptureEventName","captureTasks","removeTasks","results","foundTasks","captureFalseTasks","captureTrueTasks","Event","targetName","method","callbacks","nativeDelegate","opts","forEach","descriptor","ignoreProperties","tip","filter","ip","targetIgnoreProperties","op","patchFilteredProperties","filteredProperties","getOnEventNames","getOwnPropertyNames","startsWith","map","substring","propertyDescriptorPatch","patchTargets","ignoreErrorProperties","eventNames","SYMBOL_BLACK_LISTED_EVENTS","SYMBOL_UNPATCHED_EVENTS","patchQueueMicrotask","taskSymbol","patchTimer","setName","cancelName","nameSuffix","clearNative","tasksByHandleId","clearTask","delay","timer","handle","ref","unref","bind","id","patchCustomElements","customElements","eventTargetPatch","EVENT_TARGET","patchEvent","legacyPatch","clear","blockingMethods","XMLHttpRequestEventTarget","patchXHR","XHR_TASK","XHR_SYNC","XHR_LISTENER","XHR_SCHEDULED","XHR_URL","XHR_ERROR_BEFORE_SCHEDULED","XMLHttpRequest","XMLHttpRequestPrototype","findPendingTask","oriAddListener","oriRemoveListener","XMLHttpRequestEventTargetPrototype","READY_STATE_CHANGE","SCHEDULED","newListener","readyState","DONE","aborted","loadTasks","oriInvoke","storedTask","sendNative","placeholderCallback","abortNative","openNative","XMLHTTPREQUEST_SOURCE","fetchTaskAborting","fetchTaskScheduling","url","geolocation","findPromiseRejectionHandler","eventTasks","PromiseRejectionEvent","evt"],"sourceRoot":"webpack:///","x_google_ignoreList":[1,2,3,4]}