From e0e9eac8b0ed558295382e6ccb30e4902144f1c6 Mon Sep 17 00:00:00 2001 From: Joel Male Date: Thu, 10 Nov 2022 22:17:10 +1000 Subject: [PATCH] wip --- dist/index.js | 1294 ++++++++--------- dist/index.js.map | 2 +- .../@vercel/ncc/dist/ncc/cli.js.cache | Bin 81944 -> 81944 bytes .../@vercel/ncc/dist/ncc/index.js.cache | Bin 3468864 -> 3486936 bytes .../dist/ncc/loaders/relocate-loader.js.cache | Bin 524936 -> 537992 bytes .../dist/ncc/loaders/shebang-loader.js.cache | Bin 2536 -> 2536 bytes package.json | 3 +- yarn.lock | 5 + 8 files changed, 655 insertions(+), 649 deletions(-) diff --git a/dist/index.js b/dist/index.js index af5afede..f461731c 100644 --- a/dist/index.js +++ b/dist/index.js @@ -614,7 +614,7 @@ exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; /* eslint-disable @typescript-eslint/no-explicit-any */ const fs = __importStar(__nccwpck_require__(7147)); const os = __importStar(__nccwpck_require__(2037)); -const uuid_1 = __nccwpck_require__(5840); +const uuid_1 = __nccwpck_require__(8974); const utils_1 = __nccwpck_require__(5278); function issueFileCommand(command, message) { const filePath = process.env[`GITHUB_${command}`]; @@ -1134,6 +1134,652 @@ exports.toCommandProperties = toCommandProperties; /***/ }), +/***/ 8974: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "v1", ({ + enumerable: true, + get: function () { + return _v.default; + } +})); +Object.defineProperty(exports, "v3", ({ + enumerable: true, + get: function () { + return _v2.default; + } +})); +Object.defineProperty(exports, "v4", ({ + enumerable: true, + get: function () { + return _v3.default; + } +})); +Object.defineProperty(exports, "v5", ({ + enumerable: true, + get: function () { + return _v4.default; + } +})); +Object.defineProperty(exports, "NIL", ({ + enumerable: true, + get: function () { + return _nil.default; + } +})); +Object.defineProperty(exports, "version", ({ + enumerable: true, + get: function () { + return _version.default; + } +})); +Object.defineProperty(exports, "validate", ({ + enumerable: true, + get: function () { + return _validate.default; + } +})); +Object.defineProperty(exports, "stringify", ({ + enumerable: true, + get: function () { + return _stringify.default; + } +})); +Object.defineProperty(exports, "parse", ({ + enumerable: true, + get: function () { + return _parse.default; + } +})); + +var _v = _interopRequireDefault(__nccwpck_require__(1595)); + +var _v2 = _interopRequireDefault(__nccwpck_require__(6993)); + +var _v3 = _interopRequireDefault(__nccwpck_require__(1472)); + +var _v4 = _interopRequireDefault(__nccwpck_require__(6217)); + +var _nil = _interopRequireDefault(__nccwpck_require__(2381)); + +var _version = _interopRequireDefault(__nccwpck_require__(427)); + +var _validate = _interopRequireDefault(__nccwpck_require__(2609)); + +var _stringify = _interopRequireDefault(__nccwpck_require__(1458)); + +var _parse = _interopRequireDefault(__nccwpck_require__(6385)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ 5842: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function md5(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8'); + } + + return _crypto.default.createHash('md5').update(bytes).digest(); +} + +var _default = md5; +exports["default"] = _default; + +/***/ }), + +/***/ 2381: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _default = '00000000-0000-0000-0000-000000000000'; +exports["default"] = _default; + +/***/ }), + +/***/ 6385: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _validate = _interopRequireDefault(__nccwpck_require__(2609)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function parse(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError('Invalid UUID'); + } + + let v; + const arr = new Uint8Array(16); // Parse ########-....-....-....-............ + + arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; + arr[1] = v >>> 16 & 0xff; + arr[2] = v >>> 8 & 0xff; + arr[3] = v & 0xff; // Parse ........-####-....-....-............ + + arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; + arr[5] = v & 0xff; // Parse ........-....-####-....-............ + + arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; + arr[7] = v & 0xff; // Parse ........-....-....-####-............ + + arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; + arr[9] = v & 0xff; // Parse ........-....-....-....-############ + // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) + + arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; + arr[11] = v / 0x100000000 & 0xff; + arr[12] = v >>> 24 & 0xff; + arr[13] = v >>> 16 & 0xff; + arr[14] = v >>> 8 & 0xff; + arr[15] = v & 0xff; + return arr; +} + +var _default = parse; +exports["default"] = _default; + +/***/ }), + +/***/ 6230: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; +exports["default"] = _default; + +/***/ }), + +/***/ 9784: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = rng; + +var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate + +let poolPtr = rnds8Pool.length; + +function rng() { + if (poolPtr > rnds8Pool.length - 16) { + _crypto.default.randomFillSync(rnds8Pool); + + poolPtr = 0; + } + + return rnds8Pool.slice(poolPtr, poolPtr += 16); +} + +/***/ }), + +/***/ 8844: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function sha1(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8'); + } + + return _crypto.default.createHash('sha1').update(bytes).digest(); +} + +var _default = sha1; +exports["default"] = _default; + +/***/ }), + +/***/ 1458: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _validate = _interopRequireDefault(__nccwpck_require__(2609)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Convert array of 16 byte values to UUID string format of the form: + * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX + */ +const byteToHex = []; + +for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 0x100).toString(16).substr(1)); +} + +function stringify(arr, offset = 0) { + // Note: Be careful editing this code! It's been tuned for performance + // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 + const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one + // of the following: + // - One or more input array values don't map to a hex octet (leading to + // "undefined" in the uuid) + // - Invalid input values for the RFC `version` or `variant` fields + + if (!(0, _validate.default)(uuid)) { + throw TypeError('Stringified UUID is invalid'); + } + + return uuid; +} + +var _default = stringify; +exports["default"] = _default; + +/***/ }), + +/***/ 1595: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _rng = _interopRequireDefault(__nccwpck_require__(9784)); + +var _stringify = _interopRequireDefault(__nccwpck_require__(1458)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// **`v1()` - Generate time-based UUID** +// +// Inspired by https://github.com/LiosK/UUID.js +// and http://docs.python.org/library/uuid.html +let _nodeId; + +let _clockseq; // Previous uuid creation time + + +let _lastMSecs = 0; +let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details + +function v1(options, buf, offset) { + let i = buf && offset || 0; + const b = buf || new Array(16); + options = options || {}; + let node = options.node || _nodeId; + let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not + // specified. We do this lazily to minimize issues related to insufficient + // system entropy. See #189 + + if (node == null || clockseq == null) { + const seedBytes = options.random || (options.rng || _rng.default)(); + + if (node == null) { + // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) + node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; + } + + if (clockseq == null) { + // Per 4.2.2, randomize (14 bit) clockseq + clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; + } + } // UUID timestamps are 100 nano-second units since the Gregorian epoch, + // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so + // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' + // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + + + let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock + // cycle to simulate higher resolution clock + + let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) + + const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression + + if (dt < 0 && options.clockseq === undefined) { + clockseq = clockseq + 1 & 0x3fff; + } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new + // time interval + + + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { + nsecs = 0; + } // Per 4.2.1.2 Throw error if too many uuids are requested + + + if (nsecs >= 10000) { + throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); + } + + _lastMSecs = msecs; + _lastNSecs = nsecs; + _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + + msecs += 12219292800000; // `time_low` + + const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; + b[i++] = tl >>> 24 & 0xff; + b[i++] = tl >>> 16 & 0xff; + b[i++] = tl >>> 8 & 0xff; + b[i++] = tl & 0xff; // `time_mid` + + const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; + b[i++] = tmh >>> 8 & 0xff; + b[i++] = tmh & 0xff; // `time_high_and_version` + + b[i++] = tmh >>> 24 & 0xf | 0x10; // include version + + b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + + b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` + + b[i++] = clockseq & 0xff; // `node` + + for (let n = 0; n < 6; ++n) { + b[i + n] = node[n]; + } + + return buf || (0, _stringify.default)(b); +} + +var _default = v1; +exports["default"] = _default; + +/***/ }), + +/***/ 6993: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _v = _interopRequireDefault(__nccwpck_require__(5920)); + +var _md = _interopRequireDefault(__nccwpck_require__(5842)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const v3 = (0, _v.default)('v3', 0x30, _md.default); +var _default = v3; +exports["default"] = _default; + +/***/ }), + +/***/ 5920: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = _default; +exports.URL = exports.DNS = void 0; + +var _stringify = _interopRequireDefault(__nccwpck_require__(1458)); + +var _parse = _interopRequireDefault(__nccwpck_require__(6385)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function stringToBytes(str) { + str = unescape(encodeURIComponent(str)); // UTF8 escape + + const bytes = []; + + for (let i = 0; i < str.length; ++i) { + bytes.push(str.charCodeAt(i)); + } + + return bytes; +} + +const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; +exports.DNS = DNS; +const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; +exports.URL = URL; + +function _default(name, version, hashfunc) { + function generateUUID(value, namespace, buf, offset) { + if (typeof value === 'string') { + value = stringToBytes(value); + } + + if (typeof namespace === 'string') { + namespace = (0, _parse.default)(namespace); + } + + if (namespace.length !== 16) { + throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); + } // Compute hash of namespace and value, Per 4.3 + // Future: Use spread syntax when supported on all platforms, e.g. `bytes = + // hashfunc([...namespace, ... value])` + + + let bytes = new Uint8Array(16 + value.length); + bytes.set(namespace); + bytes.set(value, namespace.length); + bytes = hashfunc(bytes); + bytes[6] = bytes[6] & 0x0f | version; + bytes[8] = bytes[8] & 0x3f | 0x80; + + if (buf) { + offset = offset || 0; + + for (let i = 0; i < 16; ++i) { + buf[offset + i] = bytes[i]; + } + + return buf; + } + + return (0, _stringify.default)(bytes); + } // Function#name is not settable on some platforms (#270) + + + try { + generateUUID.name = name; // eslint-disable-next-line no-empty + } catch (err) {} // For CommonJS default export support + + + generateUUID.DNS = DNS; + generateUUID.URL = URL; + return generateUUID; +} + +/***/ }), + +/***/ 1472: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _rng = _interopRequireDefault(__nccwpck_require__(9784)); + +var _stringify = _interopRequireDefault(__nccwpck_require__(1458)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function v4(options, buf, offset) { + options = options || {}; + + const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + + + rnds[6] = rnds[6] & 0x0f | 0x40; + rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided + + if (buf) { + offset = offset || 0; + + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i]; + } + + return buf; + } + + return (0, _stringify.default)(rnds); +} + +var _default = v4; +exports["default"] = _default; + +/***/ }), + +/***/ 6217: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _v = _interopRequireDefault(__nccwpck_require__(5920)); + +var _sha = _interopRequireDefault(__nccwpck_require__(8844)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const v5 = (0, _v.default)('v5', 0x50, _sha.default); +var _default = v5; +exports["default"] = _default; + +/***/ }), + +/***/ 2609: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _regex = _interopRequireDefault(__nccwpck_require__(6230)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function validate(uuid) { + return typeof uuid === 'string' && _regex.default.test(uuid); +} + +var _default = validate; +exports["default"] = _default; + +/***/ }), + +/***/ 427: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _validate = _interopRequireDefault(__nccwpck_require__(2609)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function version(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError('Invalid UUID'); + } + + return parseInt(uuid.substr(14, 1), 16); +} + +var _default = version; +exports["default"] = _default; + +/***/ }), + /***/ 5526: /***/ (function(__unused_webpack_module, exports) { @@ -2203,652 +2849,6 @@ if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { exports.debug = debug; // for test -/***/ }), - -/***/ 5840: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -Object.defineProperty(exports, "v1", ({ - enumerable: true, - get: function () { - return _v.default; - } -})); -Object.defineProperty(exports, "v3", ({ - enumerable: true, - get: function () { - return _v2.default; - } -})); -Object.defineProperty(exports, "v4", ({ - enumerable: true, - get: function () { - return _v3.default; - } -})); -Object.defineProperty(exports, "v5", ({ - enumerable: true, - get: function () { - return _v4.default; - } -})); -Object.defineProperty(exports, "NIL", ({ - enumerable: true, - get: function () { - return _nil.default; - } -})); -Object.defineProperty(exports, "version", ({ - enumerable: true, - get: function () { - return _version.default; - } -})); -Object.defineProperty(exports, "validate", ({ - enumerable: true, - get: function () { - return _validate.default; - } -})); -Object.defineProperty(exports, "stringify", ({ - enumerable: true, - get: function () { - return _stringify.default; - } -})); -Object.defineProperty(exports, "parse", ({ - enumerable: true, - get: function () { - return _parse.default; - } -})); - -var _v = _interopRequireDefault(__nccwpck_require__(8628)); - -var _v2 = _interopRequireDefault(__nccwpck_require__(6409)); - -var _v3 = _interopRequireDefault(__nccwpck_require__(5122)); - -var _v4 = _interopRequireDefault(__nccwpck_require__(9120)); - -var _nil = _interopRequireDefault(__nccwpck_require__(5332)); - -var _version = _interopRequireDefault(__nccwpck_require__(1595)); - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ 4569: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function md5(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } - - return _crypto.default.createHash('md5').update(bytes).digest(); -} - -var _default = md5; -exports["default"] = _default; - -/***/ }), - -/***/ 5332: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = '00000000-0000-0000-0000-000000000000'; -exports["default"] = _default; - -/***/ }), - -/***/ 2746: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function parse(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } - - let v; - const arr = new Uint8Array(16); // Parse ########-....-....-....-............ - - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 0xff; - arr[2] = v >>> 8 & 0xff; - arr[3] = v & 0xff; // Parse ........-####-....-....-............ - - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 0xff; // Parse ........-....-####-....-............ - - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 0xff; // Parse ........-....-....-####-............ - - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 0xff; // Parse ........-....-....-....-############ - // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) - - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; - arr[11] = v / 0x100000000 & 0xff; - arr[12] = v >>> 24 & 0xff; - arr[13] = v >>> 16 & 0xff; - arr[14] = v >>> 8 & 0xff; - arr[15] = v & 0xff; - return arr; -} - -var _default = parse; -exports["default"] = _default; - -/***/ }), - -/***/ 814: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; -exports["default"] = _default; - -/***/ }), - -/***/ 807: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = rng; - -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate - -let poolPtr = rnds8Pool.length; - -function rng() { - if (poolPtr > rnds8Pool.length - 16) { - _crypto.default.randomFillSync(rnds8Pool); - - poolPtr = 0; - } - - return rnds8Pool.slice(poolPtr, poolPtr += 16); -} - -/***/ }), - -/***/ 5274: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function sha1(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } - - return _crypto.default.createHash('sha1').update(bytes).digest(); -} - -var _default = sha1; -exports["default"] = _default; - -/***/ }), - -/***/ 8950: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -const byteToHex = []; - -for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 0x100).toString(16).substr(1)); -} - -function stringify(arr, offset = 0) { - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields - - if (!(0, _validate.default)(uuid)) { - throw TypeError('Stringified UUID is invalid'); - } - - return uuid; -} - -var _default = stringify; -exports["default"] = _default; - -/***/ }), - -/***/ 8628: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _rng = _interopRequireDefault(__nccwpck_require__(807)); - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html -let _nodeId; - -let _clockseq; // Previous uuid creation time - - -let _lastMSecs = 0; -let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details - -function v1(options, buf, offset) { - let i = buf && offset || 0; - const b = buf || new Array(16); - options = options || {}; - let node = options.node || _nodeId; - let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 - - if (node == null || clockseq == null) { - const seedBytes = options.random || (options.rng || _rng.default)(); - - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; - } - - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; - } - } // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. - - - let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock - - let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) - - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression - - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval - - - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } // Per 4.2.1.2 Throw error if too many uuids are requested - - - if (nsecs >= 10000) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); - } - - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch - - msecs += 12219292800000; // `time_low` - - const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; // `time_mid` - - const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; // `time_high_and_version` - - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version - - b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) - - b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` - - b[i++] = clockseq & 0xff; // `node` - - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]; - } - - return buf || (0, _stringify.default)(b); -} - -var _default = v1; -exports["default"] = _default; - -/***/ }), - -/***/ 6409: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _v = _interopRequireDefault(__nccwpck_require__(5998)); - -var _md = _interopRequireDefault(__nccwpck_require__(4569)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const v3 = (0, _v.default)('v3', 0x30, _md.default); -var _default = v3; -exports["default"] = _default; - -/***/ }), - -/***/ 5998: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = _default; -exports.URL = exports.DNS = void 0; - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); // UTF8 escape - - const bytes = []; - - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } - - return bytes; -} - -const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; -exports.DNS = DNS; -const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; -exports.URL = URL; - -function _default(name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - if (typeof value === 'string') { - value = stringToBytes(value); - } - - if (typeof namespace === 'string') { - namespace = (0, _parse.default)(namespace); - } - - if (namespace.length !== 16) { - throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); - } // Compute hash of namespace and value, Per 4.3 - // Future: Use spread syntax when supported on all platforms, e.g. `bytes = - // hashfunc([...namespace, ... value])` - - - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 0x0f | version; - bytes[8] = bytes[8] & 0x3f | 0x80; - - if (buf) { - offset = offset || 0; - - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; - } - - return buf; - } - - return (0, _stringify.default)(bytes); - } // Function#name is not settable on some platforms (#270) - - - try { - generateUUID.name = name; // eslint-disable-next-line no-empty - } catch (err) {} // For CommonJS default export support - - - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; -} - -/***/ }), - -/***/ 5122: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _rng = _interopRequireDefault(__nccwpck_require__(807)); - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function v4(options, buf, offset) { - options = options || {}; - - const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - - - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided - - if (buf) { - offset = offset || 0; - - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; - } - - return buf; - } - - return (0, _stringify.default)(rnds); -} - -var _default = v4; -exports["default"] = _default; - -/***/ }), - -/***/ 9120: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _v = _interopRequireDefault(__nccwpck_require__(5998)); - -var _sha = _interopRequireDefault(__nccwpck_require__(5274)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const v5 = (0, _v.default)('v5', 0x50, _sha.default); -var _default = v5; -exports["default"] = _default; - -/***/ }), - -/***/ 6900: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _regex = _interopRequireDefault(__nccwpck_require__(814)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function validate(uuid) { - return typeof uuid === 'string' && _regex.default.test(uuid); -} - -var _default = validate; -exports["default"] = _default; - -/***/ }), - -/***/ 1595: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function version(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } - - return parseInt(uuid.substr(14, 1), 16); -} - -var _default = version; -exports["default"] = _default; - /***/ }), /***/ 1452: diff --git a/dist/index.js.map b/dist/index.js.map index 3acb0f36..1db24d53 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpnIA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AChDA;;ACAA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACzPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvCA;;ACAA;;ACAA;;ACAA;;ACAA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC1QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5IA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACRA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACnVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACRA;AACA;AACA;AACA;AACA;;;;;ACJA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACNA;AACA;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AErCA;AACA;AACA;AACA","sources":["../webpack://webhook-action/./dist/http.js","../webpack://webhook-action/./dist/main.js","../webpack://webhook-action/./node_modules/@actions/core/lib/command.js","../webpack://webhook-action/./node_modules/@actions/core/lib/core.js","../webpack://webhook-action/./node_modules/@actions/core/lib/file-command.js","../webpack://webhook-action/./node_modules/@actions/core/lib/oidc-utils.js","../webpack://webhook-action/./node_modules/@actions/core/lib/path-utils.js","../webpack://webhook-action/./node_modules/@actions/core/lib/summary.js","../webpack://webhook-action/./node_modules/@actions/core/lib/utils.js","../webpack://webhook-action/./node_modules/@actions/http-client/lib/auth.js","../webpack://webhook-action/./node_modules/@actions/http-client/lib/index.js","../webpack://webhook-action/./node_modules/@actions/http-client/lib/proxy.js","../webpack://webhook-action/./node_modules/node-domexception/index.js","../webpack://webhook-action/./node_modules/tunnel/index.js","../webpack://webhook-action/./node_modules/tunnel/lib/tunnel.js","../webpack://webhook-action/./node_modules/uuid/dist/index.js","../webpack://webhook-action/./node_modules/uuid/dist/md5.js","../webpack://webhook-action/./node_modules/uuid/dist/nil.js","../webpack://webhook-action/./node_modules/uuid/dist/parse.js","../webpack://webhook-action/./node_modules/uuid/dist/regex.js","../webpack://webhook-action/./node_modules/uuid/dist/rng.js","../webpack://webhook-action/./node_modules/uuid/dist/sha1.js","../webpack://webhook-action/./node_modules/uuid/dist/stringify.js","../webpack://webhook-action/./node_modules/uuid/dist/v1.js","../webpack://webhook-action/./node_modules/uuid/dist/v3.js","../webpack://webhook-action/./node_modules/uuid/dist/v35.js","../webpack://webhook-action/./node_modules/uuid/dist/v4.js","../webpack://webhook-action/./node_modules/uuid/dist/v5.js","../webpack://webhook-action/./node_modules/uuid/dist/validate.js","../webpack://webhook-action/./node_modules/uuid/dist/version.js","../webpack://webhook-action/./node_modules/web-streams-polyfill/dist/ponyfill.es2018.js","../webpack://webhook-action/external node-commonjs \"assert\"","../webpack://webhook-action/external node-commonjs \"buffer\"","../webpack://webhook-action/external node-commonjs \"crypto\"","../webpack://webhook-action/external node-commonjs \"events\"","../webpack://webhook-action/external node-commonjs \"fs\"","../webpack://webhook-action/external node-commonjs \"http\"","../webpack://webhook-action/external node-commonjs \"https\"","../webpack://webhook-action/external node-commonjs \"net\"","../webpack://webhook-action/external node-commonjs \"node:process\"","../webpack://webhook-action/external node-commonjs \"node:stream/web\"","../webpack://webhook-action/external node-commonjs \"os\"","../webpack://webhook-action/external node-commonjs \"path\"","../webpack://webhook-action/external node-commonjs \"tls\"","../webpack://webhook-action/external node-commonjs \"util\"","../webpack://webhook-action/external node-commonjs \"worker_threads\"","../webpack://webhook-action/./node_modules/fetch-blob/streams.cjs","../webpack://webhook-action/./node_modules/fetch-blob/file.js","../webpack://webhook-action/external node-commonjs \"node:fs\"","../webpack://webhook-action/external node-commonjs \"node:path\"","../webpack://webhook-action/./node_modules/fetch-blob/from.js","../webpack://webhook-action/./node_modules/fetch-blob/index.js","../webpack://webhook-action/./node_modules/formdata-polyfill/esm.min.js","../webpack://webhook-action/external node-commonjs \"node:http\"","../webpack://webhook-action/external node-commonjs \"node:https\"","../webpack://webhook-action/external node-commonjs \"node:zlib\"","../webpack://webhook-action/external node-commonjs \"node:stream\"","../webpack://webhook-action/external node-commonjs \"node:buffer\"","../webpack://webhook-action/./node_modules/data-uri-to-buffer/dist/index.js","../webpack://webhook-action/external node-commonjs \"node:util\"","../webpack://webhook-action/./node_modules/node-fetch/src/errors/base.js","../webpack://webhook-action/./node_modules/node-fetch/src/errors/fetch-error.js","../webpack://webhook-action/./node_modules/node-fetch/src/utils/is.js","../webpack://webhook-action/./node_modules/node-fetch/src/body.js","../webpack://webhook-action/./node_modules/node-fetch/src/headers.js","../webpack://webhook-action/./node_modules/node-fetch/src/utils/is-redirect.js","../webpack://webhook-action/./node_modules/node-fetch/src/response.js","../webpack://webhook-action/external node-commonjs \"node:url\"","../webpack://webhook-action/./node_modules/node-fetch/src/utils/get-search.js","../webpack://webhook-action/external node-commonjs \"node:net\"","../webpack://webhook-action/./node_modules/node-fetch/src/utils/referrer.js","../webpack://webhook-action/./node_modules/node-fetch/src/request.js","../webpack://webhook-action/./node_modules/node-fetch/src/errors/abort-error.js","../webpack://webhook-action/./node_modules/node-fetch/src/index.js","../webpack://webhook-action/webpack/bootstrap","../webpack://webhook-action/webpack/runtime/define property getters","../webpack://webhook-action/webpack/runtime/ensure chunk","../webpack://webhook-action/webpack/runtime/get javascript chunk filename","../webpack://webhook-action/webpack/runtime/hasOwnProperty shorthand","../webpack://webhook-action/webpack/runtime/make namespace object","../webpack://webhook-action/webpack/runtime/compat","../webpack://webhook-action/webpack/runtime/require chunk loading","../webpack://webhook-action/webpack/before-startup","../webpack://webhook-action/webpack/startup","../webpack://webhook-action/webpack/after-startup"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.http = void 0;\nvar fetch = require('node-fetch');\nvar https = require('https');\nvar Http = (function () {\n function Http() {\n }\n Http.prototype.make = function (url, headers, body, ignoreCertificate) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n fetch(url, _this.getOptions('post', headers, body, ignoreCertificate)).then(function (res) { return resolve(res); });\n });\n };\n Http.prototype.getOptions = function (method, headers, body, ignoreCertificate) {\n var options = {\n headers: headers ? JSON.parse(headers) : {},\n method: method\n };\n if (body) {\n options.body = body;\n }\n if (ignoreCertificate) {\n options.agent = new https.Agent({ rejectUnauthorized: false });\n }\n options.headers['content-type'] = 'application/json';\n return options;\n };\n return Http;\n}());\nexports.http = new Http();\n//# sourceMappingURL=http.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar core = require(\"@actions/core\");\nvar http_1 = require(\"./http\");\nfunction run() {\n return __awaiter(this, void 0, void 0, function () {\n var url, headers, body, insecure;\n return __generator(this, function (_a) {\n url = core.getInput('url')\n ? core.getInput('url')\n : process.env.WEBHOOK_URL\n ? process.env.WEBHOOK_URL\n : '';\n headers = core.getInput('headers')\n ? core.getInput('headers')\n : process.env.headers\n ? process.env.headers\n : null;\n body = core.getInput('body')\n ? core.getInput('body')\n : process.env.data\n ? process.env.data\n : null;\n insecure = core.getInput('insecure')\n ? core.getInput('insecure') == 'true'\n : process.env.insecure\n ? process.env.insecure == 'true'\n : false;\n if (!url) {\n core.setFailed('A url is required to run this action.');\n throw new Error('A url is required to run this action.');\n }\n core.info(\"Sending webhook request to \".concat(url));\n core.debug(new Date().toTimeString());\n http_1.http\n .make(url, headers, body, insecure)\n .then(function (res) {\n if (res.status >= 400) {\n error(res.status);\n return;\n }\n core.info(\"Received status code: \".concat(res.status));\n core.info(new Date().toTimeString());\n })\n .catch(function (err) {\n error(err.status);\n return;\n });\n return [2];\n });\n });\n}\nfunction error(statusCode) {\n core.setFailed(\"Received status code: \".concat(statusCode));\n throw new Error(\"Request failed with status code: \".concat(statusCode));\n}\nrun();\n//# sourceMappingURL=main.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val));\n }\n command_1.issueCommand('set-env', { name }, convertedVal);\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueFileCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n if (options && options.trimWhitespace === false) {\n return inputs;\n }\n return inputs.map(input => input.trim());\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n const filePath = process.env['GITHUB_OUTPUT'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value));\n }\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value));\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n const filePath = process.env['GITHUB_STATE'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value));\n }\n command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value));\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n/**\n * Summary exports\n */\nvar summary_1 = require(\"./summary\");\nObject.defineProperty(exports, \"summary\", { enumerable: true, get: function () { return summary_1.summary; } });\n/**\n * @deprecated use core.summary\n */\nvar summary_2 = require(\"./summary\");\nObject.defineProperty(exports, \"markdownSummary\", { enumerable: true, get: function () { return summary_2.markdownSummary; } });\n/**\n * Path exports\n */\nvar path_utils_1 = require(\"./path-utils\");\nObject.defineProperty(exports, \"toPosixPath\", { enumerable: true, get: function () { return path_utils_1.toPosixPath; } });\nObject.defineProperty(exports, \"toWin32Path\", { enumerable: true, get: function () { return path_utils_1.toWin32Path; } });\nObject.defineProperty(exports, \"toPlatformPath\", { enumerable: true, get: function () { return path_utils_1.toPlatformPath; } });\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareKeyValueMessage = exports.issueFileCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst uuid_1 = require(\"uuid\");\nconst utils_1 = require(\"./utils\");\nfunction issueFileCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueFileCommand = issueFileCommand;\nfunction prepareKeyValueMessage(key, value) {\n const delimiter = `ghadelimiter_${uuid_1.v4()}`;\n const convertedValue = utils_1.toCommandValue(value);\n // These should realistically never happen, but just in case someone finds a\n // way to exploit uuid generation let's not allow keys or values that contain\n // the delimiter.\n if (key.includes(delimiter)) {\n throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n }\n if (convertedValue.includes(delimiter)) {\n throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n }\n return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`;\n}\nexports.prepareKeyValueMessage = prepareKeyValueMessage;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/lib/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.result.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n core_1.debug(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n core_1.setSecret(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0;\nconst path = __importStar(require(\"path\"));\n/**\n * toPosixPath converts the given path to the posix form. On Windows, \\\\ will be\n * replaced with /.\n *\n * @param pth. Path to transform.\n * @return string Posix path.\n */\nfunction toPosixPath(pth) {\n return pth.replace(/[\\\\]/g, '/');\n}\nexports.toPosixPath = toPosixPath;\n/**\n * toWin32Path converts the given path to the win32 form. On Linux, / will be\n * replaced with \\\\.\n *\n * @param pth. Path to transform.\n * @return string Win32 path.\n */\nfunction toWin32Path(pth) {\n return pth.replace(/[/]/g, '\\\\');\n}\nexports.toWin32Path = toWin32Path;\n/**\n * toPlatformPath converts the given path to a platform-specific path. It does\n * this by replacing instances of / and \\ with the platform-specific path\n * separator.\n *\n * @param pth The path to platformize.\n * @return string The platform-specific path.\n */\nfunction toPlatformPath(pth) {\n return pth.replace(/[/\\\\]/g, path.sep);\n}\nexports.toPlatformPath = toPlatformPath;\n//# sourceMappingURL=path-utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0;\nconst os_1 = require(\"os\");\nconst fs_1 = require(\"fs\");\nconst { access, appendFile, writeFile } = fs_1.promises;\nexports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY';\nexports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary';\nclass Summary {\n constructor() {\n this._buffer = '';\n }\n /**\n * Finds the summary file path from the environment, rejects if env var is not found or file does not exist\n * Also checks r/w permissions.\n *\n * @returns step summary file path\n */\n filePath() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._filePath) {\n return this._filePath;\n }\n const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR];\n if (!pathFromEnv) {\n throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);\n }\n try {\n yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK);\n }\n catch (_a) {\n throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);\n }\n this._filePath = pathFromEnv;\n return this._filePath;\n });\n }\n /**\n * Wraps content in an HTML tag, adding any HTML attributes\n *\n * @param {string} tag HTML tag to wrap\n * @param {string | null} content content within the tag\n * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add\n *\n * @returns {string} content wrapped in HTML element\n */\n wrap(tag, content, attrs = {}) {\n const htmlAttrs = Object.entries(attrs)\n .map(([key, value]) => ` ${key}=\"${value}\"`)\n .join('');\n if (!content) {\n return `<${tag}${htmlAttrs}>`;\n }\n return `<${tag}${htmlAttrs}>${content}`;\n }\n /**\n * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.\n *\n * @param {SummaryWriteOptions} [options] (optional) options for write operation\n *\n * @returns {Promise} summary instance\n */\n write(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);\n const filePath = yield this.filePath();\n const writeFunc = overwrite ? writeFile : appendFile;\n yield writeFunc(filePath, this._buffer, { encoding: 'utf8' });\n return this.emptyBuffer();\n });\n }\n /**\n * Clears the summary buffer and wipes the summary file\n *\n * @returns {Summary} summary instance\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.emptyBuffer().write({ overwrite: true });\n });\n }\n /**\n * Returns the current summary buffer as a string\n *\n * @returns {string} string of summary buffer\n */\n stringify() {\n return this._buffer;\n }\n /**\n * If the summary buffer is empty\n *\n * @returns {boolen} true if the buffer is empty\n */\n isEmptyBuffer() {\n return this._buffer.length === 0;\n }\n /**\n * Resets the summary buffer without writing to summary file\n *\n * @returns {Summary} summary instance\n */\n emptyBuffer() {\n this._buffer = '';\n return this;\n }\n /**\n * Adds raw text to the summary buffer\n *\n * @param {string} text content to add\n * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)\n *\n * @returns {Summary} summary instance\n */\n addRaw(text, addEOL = false) {\n this._buffer += text;\n return addEOL ? this.addEOL() : this;\n }\n /**\n * Adds the operating system-specific end-of-line marker to the buffer\n *\n * @returns {Summary} summary instance\n */\n addEOL() {\n return this.addRaw(os_1.EOL);\n }\n /**\n * Adds an HTML codeblock to the summary buffer\n *\n * @param {string} code content to render within fenced code block\n * @param {string} lang (optional) language to syntax highlight code\n *\n * @returns {Summary} summary instance\n */\n addCodeBlock(code, lang) {\n const attrs = Object.assign({}, (lang && { lang }));\n const element = this.wrap('pre', this.wrap('code', code), attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML list to the summary buffer\n *\n * @param {string[]} items list of items to render\n * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)\n *\n * @returns {Summary} summary instance\n */\n addList(items, ordered = false) {\n const tag = ordered ? 'ol' : 'ul';\n const listItems = items.map(item => this.wrap('li', item)).join('');\n const element = this.wrap(tag, listItems);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML table to the summary buffer\n *\n * @param {SummaryTableCell[]} rows table rows\n *\n * @returns {Summary} summary instance\n */\n addTable(rows) {\n const tableBody = rows\n .map(row => {\n const cells = row\n .map(cell => {\n if (typeof cell === 'string') {\n return this.wrap('td', cell);\n }\n const { header, data, colspan, rowspan } = cell;\n const tag = header ? 'th' : 'td';\n const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan }));\n return this.wrap(tag, data, attrs);\n })\n .join('');\n return this.wrap('tr', cells);\n })\n .join('');\n const element = this.wrap('table', tableBody);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds a collapsable HTML details element to the summary buffer\n *\n * @param {string} label text for the closed state\n * @param {string} content collapsable content\n *\n * @returns {Summary} summary instance\n */\n addDetails(label, content) {\n const element = this.wrap('details', this.wrap('summary', label) + content);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML image tag to the summary buffer\n *\n * @param {string} src path to the image you to embed\n * @param {string} alt text description of the image\n * @param {SummaryImageOptions} options (optional) addition image attributes\n *\n * @returns {Summary} summary instance\n */\n addImage(src, alt, options) {\n const { width, height } = options || {};\n const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height }));\n const element = this.wrap('img', null, Object.assign({ src, alt }, attrs));\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML section heading element\n *\n * @param {string} text heading text\n * @param {number | string} [level=1] (optional) the heading level, default: 1\n *\n * @returns {Summary} summary instance\n */\n addHeading(text, level) {\n const tag = `h${level}`;\n const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag)\n ? tag\n : 'h1';\n const element = this.wrap(allowedTag, text);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML thematic break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addSeparator() {\n const element = this.wrap('hr', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML line break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addBreak() {\n const element = this.wrap('br', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML blockquote to the summary buffer\n *\n * @param {string} text quote text\n * @param {string} cite (optional) citation url\n *\n * @returns {Summary} summary instance\n */\n addQuote(text, cite) {\n const attrs = Object.assign({}, (cite && { cite }));\n const element = this.wrap('blockquote', text, attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML anchor tag to the summary buffer\n *\n * @param {string} text link text/content\n * @param {string} href hyperlink\n *\n * @returns {Summary} summary instance\n */\n addLink(text, href) {\n const element = this.wrap('a', text, { href });\n return this.addRaw(element).addEOL();\n }\n}\nconst _summary = new Summary();\n/**\n * @deprecated use `core.summary`\n */\nexports.markdownSummary = _summary;\nexports.summary = _summary;\n//# sourceMappingURL=summary.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0;\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Bearer ${this.token}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n//# sourceMappingURL=auth.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n return new URL(proxyVar);\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n//# sourceMappingURL=proxy.js.map","/*! node-domexception. MIT License. Jimmy Wärting */\n\nif (!globalThis.DOMException) {\n try {\n const { MessageChannel } = require('worker_threads'),\n port = new MessageChannel().port1,\n ab = new ArrayBuffer()\n port.postMessage(ab, [ab, ab])\n } catch (err) {\n err.constructor.name === 'DOMException' && (\n globalThis.DOMException = err.constructor\n )\n }\n}\n\nmodule.exports = globalThis.DOMException\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nvar _default = version;\nexports.default = _default;","/**\n * web-streams-polyfill v3.2.1\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.WebStreamsPolyfill = {}));\n}(this, (function (exports) { 'use strict';\n\n /// \n const SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ?\n Symbol :\n description => `Symbol(${description})`;\n\n /// \n function noop() {\n return undefined;\n }\n function getGlobals() {\n if (typeof self !== 'undefined') {\n return self;\n }\n else if (typeof window !== 'undefined') {\n return window;\n }\n else if (typeof global !== 'undefined') {\n return global;\n }\n return undefined;\n }\n const globals = getGlobals();\n\n function typeIsObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n }\n const rethrowAssertionErrorRejection = noop;\n\n const originalPromise = Promise;\n const originalPromiseThen = Promise.prototype.then;\n const originalPromiseResolve = Promise.resolve.bind(originalPromise);\n const originalPromiseReject = Promise.reject.bind(originalPromise);\n function newPromise(executor) {\n return new originalPromise(executor);\n }\n function promiseResolvedWith(value) {\n return originalPromiseResolve(value);\n }\n function promiseRejectedWith(reason) {\n return originalPromiseReject(reason);\n }\n function PerformPromiseThen(promise, onFulfilled, onRejected) {\n // There doesn't appear to be any way to correctly emulate the behaviour from JavaScript, so this is just an\n // approximation.\n return originalPromiseThen.call(promise, onFulfilled, onRejected);\n }\n function uponPromise(promise, onFulfilled, onRejected) {\n PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection);\n }\n function uponFulfillment(promise, onFulfilled) {\n uponPromise(promise, onFulfilled);\n }\n function uponRejection(promise, onRejected) {\n uponPromise(promise, undefined, onRejected);\n }\n function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) {\n return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler);\n }\n function setPromiseIsHandledToTrue(promise) {\n PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection);\n }\n const queueMicrotask = (() => {\n const globalQueueMicrotask = globals && globals.queueMicrotask;\n if (typeof globalQueueMicrotask === 'function') {\n return globalQueueMicrotask;\n }\n const resolvedPromise = promiseResolvedWith(undefined);\n return (fn) => PerformPromiseThen(resolvedPromise, fn);\n })();\n function reflectCall(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n return Function.prototype.apply.call(F, V, args);\n }\n function promiseCall(F, V, args) {\n try {\n return promiseResolvedWith(reflectCall(F, V, args));\n }\n catch (value) {\n return promiseRejectedWith(value);\n }\n }\n\n // Original from Chromium\n // https://chromium.googlesource.com/chromium/src/+/0aee4434a4dba42a42abaea9bfbc0cd196a63bc1/third_party/blink/renderer/core/streams/SimpleQueue.js\n const QUEUE_MAX_ARRAY_SIZE = 16384;\n /**\n * Simple queue structure.\n *\n * Avoids scalability issues with using a packed array directly by using\n * multiple arrays in a linked list and keeping the array size bounded.\n */\n class SimpleQueue {\n constructor() {\n this._cursor = 0;\n this._size = 0;\n // _front and _back are always defined.\n this._front = {\n _elements: [],\n _next: undefined\n };\n this._back = this._front;\n // The cursor is used to avoid calling Array.shift().\n // It contains the index of the front element of the array inside the\n // front-most node. It is always in the range [0, QUEUE_MAX_ARRAY_SIZE).\n this._cursor = 0;\n // When there is only one node, size === elements.length - cursor.\n this._size = 0;\n }\n get length() {\n return this._size;\n }\n // For exception safety, this method is structured in order:\n // 1. Read state\n // 2. Calculate required state mutations\n // 3. Perform state mutations\n push(element) {\n const oldBack = this._back;\n let newBack = oldBack;\n if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {\n newBack = {\n _elements: [],\n _next: undefined\n };\n }\n // push() is the mutation most likely to throw an exception, so it\n // goes first.\n oldBack._elements.push(element);\n if (newBack !== oldBack) {\n this._back = newBack;\n oldBack._next = newBack;\n }\n ++this._size;\n }\n // Like push(), shift() follows the read -> calculate -> mutate pattern for\n // exception safety.\n shift() { // must not be called on an empty queue\n const oldFront = this._front;\n let newFront = oldFront;\n const oldCursor = this._cursor;\n let newCursor = oldCursor + 1;\n const elements = oldFront._elements;\n const element = elements[oldCursor];\n if (newCursor === QUEUE_MAX_ARRAY_SIZE) {\n newFront = oldFront._next;\n newCursor = 0;\n }\n // No mutations before this point.\n --this._size;\n this._cursor = newCursor;\n if (oldFront !== newFront) {\n this._front = newFront;\n }\n // Permit shifted element to be garbage collected.\n elements[oldCursor] = undefined;\n return element;\n }\n // The tricky thing about forEach() is that it can be called\n // re-entrantly. The queue may be mutated inside the callback. It is easy to\n // see that push() within the callback has no negative effects since the end\n // of the queue is checked for on every iteration. If shift() is called\n // repeatedly within the callback then the next iteration may return an\n // element that has been removed. In this case the callback will be called\n // with undefined values until we either \"catch up\" with elements that still\n // exist or reach the back of the queue.\n forEach(callback) {\n let i = this._cursor;\n let node = this._front;\n let elements = node._elements;\n while (i !== elements.length || node._next !== undefined) {\n if (i === elements.length) {\n node = node._next;\n elements = node._elements;\n i = 0;\n if (elements.length === 0) {\n break;\n }\n }\n callback(elements[i]);\n ++i;\n }\n }\n // Return the element that would be returned if shift() was called now,\n // without modifying the queue.\n peek() { // must not be called on an empty queue\n const front = this._front;\n const cursor = this._cursor;\n return front._elements[cursor];\n }\n }\n\n function ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\n if (stream._state === 'readable') {\n defaultReaderClosedPromiseInitialize(reader);\n }\n else if (stream._state === 'closed') {\n defaultReaderClosedPromiseInitializeAsResolved(reader);\n }\n else {\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n }\n }\n // A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\n // check.\n function ReadableStreamReaderGenericCancel(reader, reason) {\n const stream = reader._ownerReadableStream;\n return ReadableStreamCancel(stream, reason);\n }\n function ReadableStreamReaderGenericRelease(reader) {\n if (reader._ownerReadableStream._state === 'readable') {\n defaultReaderClosedPromiseReject(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`));\n }\n else {\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`));\n }\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n }\n // Helper functions for the readers.\n function readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n }\n // Helper functions for the ReadableStreamDefaultReader.\n function defaultReaderClosedPromiseInitialize(reader) {\n reader._closedPromise = newPromise((resolve, reject) => {\n reader._closedPromise_resolve = resolve;\n reader._closedPromise_reject = reject;\n });\n }\n function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseReject(reader, reason);\n }\n function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseResolve(reader);\n }\n function defaultReaderClosedPromiseReject(reader, reason) {\n if (reader._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(reader._closedPromise);\n reader._closedPromise_reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n defaultReaderClosedPromiseInitializeAsRejected(reader, reason);\n }\n function defaultReaderClosedPromiseResolve(reader) {\n if (reader._closedPromise_resolve === undefined) {\n return;\n }\n reader._closedPromise_resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n\n const AbortSteps = SymbolPolyfill('[[AbortSteps]]');\n const ErrorSteps = SymbolPolyfill('[[ErrorSteps]]');\n const CancelSteps = SymbolPolyfill('[[CancelSteps]]');\n const PullSteps = SymbolPolyfill('[[PullSteps]]');\n\n /// \n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite#Polyfill\n const NumberIsFinite = Number.isFinite || function (x) {\n return typeof x === 'number' && isFinite(x);\n };\n\n /// \n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc#Polyfill\n const MathTrunc = Math.trunc || function (v) {\n return v < 0 ? Math.ceil(v) : Math.floor(v);\n };\n\n // https://heycam.github.io/webidl/#idl-dictionaries\n function isDictionary(x) {\n return typeof x === 'object' || typeof x === 'function';\n }\n function assertDictionary(obj, context) {\n if (obj !== undefined && !isDictionary(obj)) {\n throw new TypeError(`${context} is not an object.`);\n }\n }\n // https://heycam.github.io/webidl/#idl-callback-functions\n function assertFunction(x, context) {\n if (typeof x !== 'function') {\n throw new TypeError(`${context} is not a function.`);\n }\n }\n // https://heycam.github.io/webidl/#idl-object\n function isObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n }\n function assertObject(x, context) {\n if (!isObject(x)) {\n throw new TypeError(`${context} is not an object.`);\n }\n }\n function assertRequiredArgument(x, position, context) {\n if (x === undefined) {\n throw new TypeError(`Parameter ${position} is required in '${context}'.`);\n }\n }\n function assertRequiredField(x, field, context) {\n if (x === undefined) {\n throw new TypeError(`${field} is required in '${context}'.`);\n }\n }\n // https://heycam.github.io/webidl/#idl-unrestricted-double\n function convertUnrestrictedDouble(value) {\n return Number(value);\n }\n function censorNegativeZero(x) {\n return x === 0 ? 0 : x;\n }\n function integerPart(x) {\n return censorNegativeZero(MathTrunc(x));\n }\n // https://heycam.github.io/webidl/#idl-unsigned-long-long\n function convertUnsignedLongLongWithEnforceRange(value, context) {\n const lowerBound = 0;\n const upperBound = Number.MAX_SAFE_INTEGER;\n let x = Number(value);\n x = censorNegativeZero(x);\n if (!NumberIsFinite(x)) {\n throw new TypeError(`${context} is not a finite number`);\n }\n x = integerPart(x);\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(`${context} is outside the accepted range of ${lowerBound} to ${upperBound}, inclusive`);\n }\n if (!NumberIsFinite(x) || x === 0) {\n return 0;\n }\n // TODO Use BigInt if supported?\n // let xBigInt = BigInt(integerPart(x));\n // xBigInt = BigInt.asUintN(64, xBigInt);\n // return Number(xBigInt);\n return x;\n }\n\n function assertReadableStream(x, context) {\n if (!IsReadableStream(x)) {\n throw new TypeError(`${context} is not a ReadableStream.`);\n }\n }\n\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamAddReadRequest(stream, readRequest) {\n stream._reader._readRequests.push(readRequest);\n }\n function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n const reader = stream._reader;\n const readRequest = reader._readRequests.shift();\n if (done) {\n readRequest._closeSteps();\n }\n else {\n readRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n }\n function ReadableStreamHasDefaultReader(stream) {\n const reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamDefaultReader(reader)) {\n return false;\n }\n return true;\n }\n /**\n * A default reader vended by a {@link ReadableStream}.\n *\n * @public\n */\n class ReadableStreamDefaultReader {\n constructor(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamDefaultReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readRequests = new SimpleQueue();\n }\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed,\n * or rejected if the stream ever errors or the reader's lock is released before the stream finishes closing.\n */\n get closed() {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n /**\n * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n */\n cancel(reason = undefined) {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n /**\n * Returns a promise that allows access to the next chunk from the stream's internal queue, if available.\n *\n * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n */\n read() {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('read'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n let resolvePromise;\n let rejectPromise;\n const promise = newPromise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n const readRequest = {\n _chunkSteps: chunk => resolvePromise({ value: chunk, done: false }),\n _closeSteps: () => resolvePromise({ value: undefined, done: true }),\n _errorSteps: e => rejectPromise(e)\n };\n ReadableStreamDefaultReaderRead(this, readRequest);\n return promise;\n }\n /**\n * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n * from now on; otherwise, the reader will appear closed.\n *\n * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n * the reader's {@link ReadableStreamDefaultReader.read | read()} method has not yet been settled. Attempting to\n * do so will throw a `TypeError` and leave the reader locked to the stream.\n */\n releaseLock() {\n if (!IsReadableStreamDefaultReader(this)) {\n throw defaultReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n }\n }\n Object.defineProperties(ReadableStreamDefaultReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultReader',\n configurable: true\n });\n }\n // Abstract operations for the readers.\n function IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n return x instanceof ReadableStreamDefaultReader;\n }\n function ReadableStreamDefaultReaderRead(reader, readRequest) {\n const stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'closed') {\n readRequest._closeSteps();\n }\n else if (stream._state === 'errored') {\n readRequest._errorSteps(stream._storedError);\n }\n else {\n stream._readableStreamController[PullSteps](readRequest);\n }\n }\n // Helper functions for the ReadableStreamDefaultReader.\n function defaultReaderBrandCheckException(name) {\n return new TypeError(`ReadableStreamDefaultReader.prototype.${name} can only be used on a ReadableStreamDefaultReader`);\n }\n\n /// \n /* eslint-disable @typescript-eslint/no-empty-function */\n const AsyncIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf(async function* () { }).prototype);\n\n /// \n class ReadableStreamAsyncIteratorImpl {\n constructor(reader, preventCancel) {\n this._ongoingPromise = undefined;\n this._isFinished = false;\n this._reader = reader;\n this._preventCancel = preventCancel;\n }\n next() {\n const nextSteps = () => this._nextSteps();\n this._ongoingPromise = this._ongoingPromise ?\n transformPromiseWith(this._ongoingPromise, nextSteps, nextSteps) :\n nextSteps();\n return this._ongoingPromise;\n }\n return(value) {\n const returnSteps = () => this._returnSteps(value);\n return this._ongoingPromise ?\n transformPromiseWith(this._ongoingPromise, returnSteps, returnSteps) :\n returnSteps();\n }\n _nextSteps() {\n if (this._isFinished) {\n return Promise.resolve({ value: undefined, done: true });\n }\n const reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('iterate'));\n }\n let resolvePromise;\n let rejectPromise;\n const promise = newPromise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n const readRequest = {\n _chunkSteps: chunk => {\n this._ongoingPromise = undefined;\n // This needs to be delayed by one microtask, otherwise we stop pulling too early which breaks a test.\n // FIXME Is this a bug in the specification, or in the test?\n queueMicrotask(() => resolvePromise({ value: chunk, done: false }));\n },\n _closeSteps: () => {\n this._ongoingPromise = undefined;\n this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n resolvePromise({ value: undefined, done: true });\n },\n _errorSteps: reason => {\n this._ongoingPromise = undefined;\n this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n rejectPromise(reason);\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promise;\n }\n _returnSteps(value) {\n if (this._isFinished) {\n return Promise.resolve({ value, done: true });\n }\n this._isFinished = true;\n const reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('finish iterating'));\n }\n if (!this._preventCancel) {\n const result = ReadableStreamReaderGenericCancel(reader, value);\n ReadableStreamReaderGenericRelease(reader);\n return transformPromiseWith(result, () => ({ value, done: true }));\n }\n ReadableStreamReaderGenericRelease(reader);\n return promiseResolvedWith({ value, done: true });\n }\n }\n const ReadableStreamAsyncIteratorPrototype = {\n next() {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\n }\n return this._asyncIteratorImpl.next();\n },\n return(value) {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('return'));\n }\n return this._asyncIteratorImpl.return(value);\n }\n };\n if (AsyncIteratorPrototype !== undefined) {\n Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);\n }\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamAsyncIterator(stream, preventCancel) {\n const reader = AcquireReadableStreamDefaultReader(stream);\n const impl = new ReadableStreamAsyncIteratorImpl(reader, preventCancel);\n const iterator = Object.create(ReadableStreamAsyncIteratorPrototype);\n iterator._asyncIteratorImpl = impl;\n return iterator;\n }\n function IsReadableStreamAsyncIterator(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorImpl')) {\n return false;\n }\n try {\n // noinspection SuspiciousTypeOfGuard\n return x._asyncIteratorImpl instanceof\n ReadableStreamAsyncIteratorImpl;\n }\n catch (_a) {\n return false;\n }\n }\n // Helper functions for the ReadableStream.\n function streamAsyncIteratorBrandCheckException(name) {\n return new TypeError(`ReadableStreamAsyncIterator.${name} can only be used on a ReadableSteamAsyncIterator`);\n }\n\n /// \n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#Polyfill\n const NumberIsNaN = Number.isNaN || function (x) {\n // eslint-disable-next-line no-self-compare\n return x !== x;\n };\n\n function CreateArrayFromList(elements) {\n // We use arrays to represent lists, so this is basically a no-op.\n // Do a slice though just in case we happen to depend on the unique-ness.\n return elements.slice();\n }\n function CopyDataBlockBytes(dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n }\n // Not implemented correctly\n function TransferArrayBuffer(O) {\n return O;\n }\n // Not implemented correctly\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function IsDetachedBuffer(O) {\n return false;\n }\n function ArrayBufferSlice(buffer, begin, end) {\n // ArrayBuffer.prototype.slice is not available on IE10\n // https://www.caniuse.com/mdn-javascript_builtins_arraybuffer_slice\n if (buffer.slice) {\n return buffer.slice(begin, end);\n }\n const length = end - begin;\n const slice = new ArrayBuffer(length);\n CopyDataBlockBytes(slice, 0, buffer, begin, length);\n return slice;\n }\n\n function IsNonNegativeNumber(v) {\n if (typeof v !== 'number') {\n return false;\n }\n if (NumberIsNaN(v)) {\n return false;\n }\n if (v < 0) {\n return false;\n }\n return true;\n }\n function CloneAsUint8Array(O) {\n const buffer = ArrayBufferSlice(O.buffer, O.byteOffset, O.byteOffset + O.byteLength);\n return new Uint8Array(buffer);\n }\n\n function DequeueValue(container) {\n const pair = container._queue.shift();\n container._queueTotalSize -= pair.size;\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n return pair.value;\n }\n function EnqueueValueWithSize(container, value, size) {\n if (!IsNonNegativeNumber(size) || size === Infinity) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n container._queue.push({ value, size });\n container._queueTotalSize += size;\n }\n function PeekQueueValue(container) {\n const pair = container._queue.peek();\n return pair.value;\n }\n function ResetQueue(container) {\n container._queue = new SimpleQueue();\n container._queueTotalSize = 0;\n }\n\n /**\n * A pull-into request in a {@link ReadableByteStreamController}.\n *\n * @public\n */\n class ReadableStreamBYOBRequest {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the view for writing in to, or `null` if the BYOB request has already been responded to.\n */\n get view() {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('view');\n }\n return this._view;\n }\n respond(bytesWritten) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respond');\n }\n assertRequiredArgument(bytesWritten, 1, 'respond');\n bytesWritten = convertUnsignedLongLongWithEnforceRange(bytesWritten, 'First parameter');\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(this._view.buffer)) ;\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n }\n respondWithNewView(view) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respondWithNewView');\n }\n assertRequiredArgument(view, 1, 'respondWithNewView');\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(view.buffer)) ;\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n }\n }\n Object.defineProperties(ReadableStreamBYOBRequest.prototype, {\n respond: { enumerable: true },\n respondWithNewView: { enumerable: true },\n view: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBRequest.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBRequest',\n configurable: true\n });\n }\n /**\n * Allows control of a {@link ReadableStream | readable byte stream}'s state and internal queue.\n *\n * @public\n */\n class ReadableByteStreamController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the current BYOB pull request, or `null` if there isn't one.\n */\n get byobRequest() {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('byobRequest');\n }\n return ReadableByteStreamControllerGetBYOBRequest(this);\n }\n /**\n * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n * over-full. An underlying byte source ought to use this information to determine when and how to apply backpressure.\n */\n get desiredSize() {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('desiredSize');\n }\n return ReadableByteStreamControllerGetDesiredSize(this);\n }\n /**\n * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n * the stream, but once those are read, the stream will become closed.\n */\n close() {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('close');\n }\n if (this._closeRequested) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n const state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(`The stream (in ${state} state) is not in the readable state and cannot be closed`);\n }\n ReadableByteStreamControllerClose(this);\n }\n enqueue(chunk) {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n assertRequiredArgument(chunk, 1, 'enqueue');\n if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('chunk must be an array buffer view');\n }\n if (chunk.byteLength === 0) {\n throw new TypeError('chunk must have non-zero byteLength');\n }\n if (chunk.buffer.byteLength === 0) {\n throw new TypeError(`chunk's buffer must have non-zero byteLength`);\n }\n if (this._closeRequested) {\n throw new TypeError('stream is closed or draining');\n }\n const state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(`The stream (in ${state} state) is not in the readable state and cannot be enqueued to`);\n }\n ReadableByteStreamControllerEnqueue(this, chunk);\n }\n /**\n * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n */\n error(e = undefined) {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('error');\n }\n ReadableByteStreamControllerError(this, e);\n }\n /** @internal */\n [CancelSteps](reason) {\n ReadableByteStreamControllerClearPendingPullIntos(this);\n ResetQueue(this);\n const result = this._cancelAlgorithm(reason);\n ReadableByteStreamControllerClearAlgorithms(this);\n return result;\n }\n /** @internal */\n [PullSteps](readRequest) {\n const stream = this._controlledReadableByteStream;\n if (this._queueTotalSize > 0) {\n const entry = this._queue.shift();\n this._queueTotalSize -= entry.byteLength;\n ReadableByteStreamControllerHandleQueueDrain(this);\n const view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n readRequest._chunkSteps(view);\n return;\n }\n const autoAllocateChunkSize = this._autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n let buffer;\n try {\n buffer = new ArrayBuffer(autoAllocateChunkSize);\n }\n catch (bufferE) {\n readRequest._errorSteps(bufferE);\n return;\n }\n const pullIntoDescriptor = {\n buffer,\n bufferByteLength: autoAllocateChunkSize,\n byteOffset: 0,\n byteLength: autoAllocateChunkSize,\n bytesFilled: 0,\n elementSize: 1,\n viewConstructor: Uint8Array,\n readerType: 'default'\n };\n this._pendingPullIntos.push(pullIntoDescriptor);\n }\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableByteStreamControllerCallPullIfNeeded(this);\n }\n }\n Object.defineProperties(ReadableByteStreamController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n byobRequest: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableByteStreamController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableByteStreamController',\n configurable: true\n });\n }\n // Abstract operations for the ReadableByteStreamController.\n function IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {\n return false;\n }\n return x instanceof ReadableByteStreamController;\n }\n function IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n return x instanceof ReadableStreamBYOBRequest;\n }\n function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n const shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n // TODO: Test controller argument\n const pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, () => {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }, e => {\n ReadableByteStreamControllerError(controller, e);\n });\n }\n function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = new SimpleQueue();\n }\n function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n let done = false;\n if (stream._state === 'closed') {\n done = true;\n }\n const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n if (pullIntoDescriptor.readerType === 'default') {\n ReadableStreamFulfillReadRequest(stream, filledView, done);\n }\n else {\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n }\n }\n function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n const bytesFilled = pullIntoDescriptor.bytesFilled;\n const elementSize = pullIntoDescriptor.elementSize;\n return new pullIntoDescriptor.viewConstructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n }\n function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({ buffer, byteOffset, byteLength });\n controller._queueTotalSize += byteLength;\n }\n function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n const elementSize = pullIntoDescriptor.elementSize;\n const currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n const maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n const maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n const maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n let totalBytesToCopyRemaining = maxBytesToCopy;\n let ready = false;\n if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n const queue = controller._queue;\n while (totalBytesToCopyRemaining > 0) {\n const headOfQueue = queue.peek();\n const bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n const destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n CopyDataBlockBytes(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n }\n else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n controller._queueTotalSize -= bytesToCopy;\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n totalBytesToCopyRemaining -= bytesToCopy;\n }\n return ready;\n }\n function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n pullIntoDescriptor.bytesFilled += size;\n }\n function ReadableByteStreamControllerHandleQueueDrain(controller) {\n if (controller._queueTotalSize === 0 && controller._closeRequested) {\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(controller._controlledReadableByteStream);\n }\n else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }\n function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === null) {\n return;\n }\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = null;\n controller._byobRequest = null;\n }\n function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n const pullIntoDescriptor = controller._pendingPullIntos.peek();\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerPullInto(controller, view, readIntoRequest) {\n const stream = controller._controlledReadableByteStream;\n let elementSize = 1;\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\n }\n const ctor = view.constructor;\n // try {\n const buffer = TransferArrayBuffer(view.buffer);\n // } catch (e) {\n // readIntoRequest._errorSteps(e);\n // return;\n // }\n const pullIntoDescriptor = {\n buffer,\n bufferByteLength: buffer.byteLength,\n byteOffset: view.byteOffset,\n byteLength: view.byteLength,\n bytesFilled: 0,\n elementSize,\n viewConstructor: ctor,\n readerType: 'byob'\n };\n if (controller._pendingPullIntos.length > 0) {\n controller._pendingPullIntos.push(pullIntoDescriptor);\n // No ReadableByteStreamControllerCallPullIfNeeded() call since:\n // - No change happens on desiredSize\n // - The source has already been notified of that there's at least 1 pending read(view)\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n return;\n }\n if (stream._state === 'closed') {\n const emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n readIntoRequest._closeSteps(emptyView);\n return;\n }\n if (controller._queueTotalSize > 0) {\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n ReadableByteStreamControllerHandleQueueDrain(controller);\n readIntoRequest._chunkSteps(filledView);\n return;\n }\n if (controller._closeRequested) {\n const e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n readIntoRequest._errorSteps(e);\n return;\n }\n }\n controller._pendingPullIntos.push(pullIntoDescriptor);\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n const stream = controller._controlledReadableByteStream;\n if (ReadableStreamHasBYOBReader(stream)) {\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n const pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n return;\n }\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n const remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n if (remainderSize > 0) {\n const end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n const remainder = ArrayBufferSlice(pullIntoDescriptor.buffer, end - remainderSize, end);\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n }\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n const state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n ReadableByteStreamControllerRespondInClosedState(controller);\n }\n else {\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n const descriptor = controller._pendingPullIntos.shift();\n return descriptor;\n }\n function ReadableByteStreamControllerShouldCallPull(controller) {\n const stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return false;\n }\n if (controller._closeRequested) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (ReadableStreamHasDefaultReader(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n if (ReadableStreamHasBYOBReader(stream) && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n const desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableByteStreamControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n }\n // A client of ReadableByteStreamController may use these functions directly to bypass state check.\n function ReadableByteStreamControllerClose(controller) {\n const stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n return;\n }\n if (controller._pendingPullIntos.length > 0) {\n const firstPendingPullInto = controller._pendingPullIntos.peek();\n if (firstPendingPullInto.bytesFilled > 0) {\n const e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n throw e;\n }\n }\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n function ReadableByteStreamControllerEnqueue(controller, chunk) {\n const stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n const buffer = chunk.buffer;\n const byteOffset = chunk.byteOffset;\n const byteLength = chunk.byteLength;\n const transferredBuffer = TransferArrayBuffer(buffer);\n if (controller._pendingPullIntos.length > 0) {\n const firstPendingPullInto = controller._pendingPullIntos.peek();\n if (IsDetachedBuffer(firstPendingPullInto.buffer)) ;\n firstPendingPullInto.buffer = TransferArrayBuffer(firstPendingPullInto.buffer);\n }\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n if (ReadableStreamHasDefaultReader(stream)) {\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n else {\n if (controller._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n }\n const transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\n }\n }\n else if (ReadableStreamHasBYOBReader(stream)) {\n // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n else {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerError(controller, e) {\n const stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return;\n }\n ReadableByteStreamControllerClearPendingPullIntos(controller);\n ResetQueue(controller);\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableByteStreamControllerGetBYOBRequest(controller) {\n if (controller._byobRequest === null && controller._pendingPullIntos.length > 0) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n const view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n const byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);\n SetUpReadableStreamBYOBRequest(byobRequest, controller, view);\n controller._byobRequest = byobRequest;\n }\n return controller._byobRequest;\n }\n function ReadableByteStreamControllerGetDesiredSize(controller) {\n const state = controller._controlledReadableByteStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n const state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (bytesWritten !== 0) {\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n }\n }\n else {\n if (bytesWritten === 0) {\n throw new TypeError('bytesWritten must be greater than 0 when calling respond() on a readable stream');\n }\n if (firstDescriptor.bytesFilled + bytesWritten > firstDescriptor.byteLength) {\n throw new RangeError('bytesWritten out of range');\n }\n }\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n }\n function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n const state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (view.byteLength !== 0) {\n throw new TypeError('The view\\'s length must be 0 when calling respondWithNewView() on a closed stream');\n }\n }\n else {\n if (view.byteLength === 0) {\n throw new TypeError('The view\\'s length must be greater than 0 when calling respondWithNewView() on a readable stream');\n }\n }\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n throw new RangeError('The region specified by view does not match byobRequest');\n }\n if (firstDescriptor.bufferByteLength !== view.buffer.byteLength) {\n throw new RangeError('The buffer of view has different capacity than byobRequest');\n }\n if (firstDescriptor.bytesFilled + view.byteLength > firstDescriptor.byteLength) {\n throw new RangeError('The region specified by view is larger than byobRequest');\n }\n const viewByteLength = view.byteLength;\n firstDescriptor.buffer = TransferArrayBuffer(view.buffer);\n ReadableByteStreamControllerRespondInternal(controller, viewByteLength);\n }\n function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {\n controller._controlledReadableByteStream = stream;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._byobRequest = null;\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n controller._queue = controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._closeRequested = false;\n controller._started = false;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n controller._autoAllocateChunkSize = autoAllocateChunkSize;\n controller._pendingPullIntos = new SimpleQueue();\n stream._readableStreamController = controller;\n const startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), () => {\n controller._started = true;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }, r => {\n ReadableByteStreamControllerError(controller, r);\n });\n }\n function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {\n const controller = Object.create(ReadableByteStreamController.prototype);\n let startAlgorithm = () => undefined;\n let pullAlgorithm = () => promiseResolvedWith(undefined);\n let cancelAlgorithm = () => promiseResolvedWith(undefined);\n if (underlyingByteSource.start !== undefined) {\n startAlgorithm = () => underlyingByteSource.start(controller);\n }\n if (underlyingByteSource.pull !== undefined) {\n pullAlgorithm = () => underlyingByteSource.pull(controller);\n }\n if (underlyingByteSource.cancel !== undefined) {\n cancelAlgorithm = reason => underlyingByteSource.cancel(reason);\n }\n const autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n if (autoAllocateChunkSize === 0) {\n throw new TypeError('autoAllocateChunkSize must be greater than 0');\n }\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);\n }\n function SetUpReadableStreamBYOBRequest(request, controller, view) {\n request._associatedReadableByteStreamController = controller;\n request._view = view;\n }\n // Helper functions for the ReadableStreamBYOBRequest.\n function byobRequestBrandCheckException(name) {\n return new TypeError(`ReadableStreamBYOBRequest.prototype.${name} can only be used on a ReadableStreamBYOBRequest`);\n }\n // Helper functions for the ReadableByteStreamController.\n function byteStreamControllerBrandCheckException(name) {\n return new TypeError(`ReadableByteStreamController.prototype.${name} can only be used on a ReadableByteStreamController`);\n }\n\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamAddReadIntoRequest(stream, readIntoRequest) {\n stream._reader._readIntoRequests.push(readIntoRequest);\n }\n function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n const reader = stream._reader;\n const readIntoRequest = reader._readIntoRequests.shift();\n if (done) {\n readIntoRequest._closeSteps(chunk);\n }\n else {\n readIntoRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n }\n function ReadableStreamHasBYOBReader(stream) {\n const reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamBYOBReader(reader)) {\n return false;\n }\n return true;\n }\n /**\n * A BYOB reader vended by a {@link ReadableStream}.\n *\n * @public\n */\n class ReadableStreamBYOBReader {\n constructor(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamBYOBReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n if (!IsReadableByteStreamController(stream._readableStreamController)) {\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' +\n 'source');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readIntoRequests = new SimpleQueue();\n }\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n * the reader's lock is released before the stream finishes closing.\n */\n get closed() {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n /**\n * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n */\n cancel(reason = undefined) {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n /**\n * Attempts to reads bytes into view, and returns a promise resolved with the result.\n *\n * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n */\n read(view) {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('read'));\n }\n if (!ArrayBuffer.isView(view)) {\n return promiseRejectedWith(new TypeError('view must be an array buffer view'));\n }\n if (view.byteLength === 0) {\n return promiseRejectedWith(new TypeError('view must have non-zero byteLength'));\n }\n if (view.buffer.byteLength === 0) {\n return promiseRejectedWith(new TypeError(`view's buffer must have non-zero byteLength`));\n }\n if (IsDetachedBuffer(view.buffer)) ;\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n let resolvePromise;\n let rejectPromise;\n const promise = newPromise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n const readIntoRequest = {\n _chunkSteps: chunk => resolvePromise({ value: chunk, done: false }),\n _closeSteps: chunk => resolvePromise({ value: chunk, done: true }),\n _errorSteps: e => rejectPromise(e)\n };\n ReadableStreamBYOBReaderRead(this, view, readIntoRequest);\n return promise;\n }\n /**\n * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n * from now on; otherwise, the reader will appear closed.\n *\n * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n * the reader's {@link ReadableStreamBYOBReader.read | read()} method has not yet been settled. Attempting to\n * do so will throw a `TypeError` and leave the reader locked to the stream.\n */\n releaseLock() {\n if (!IsReadableStreamBYOBReader(this)) {\n throw byobReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readIntoRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n }\n }\n Object.defineProperties(ReadableStreamBYOBReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBReader',\n configurable: true\n });\n }\n // Abstract operations for the readers.\n function IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n return x instanceof ReadableStreamBYOBReader;\n }\n function ReadableStreamBYOBReaderRead(reader, view, readIntoRequest) {\n const stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'errored') {\n readIntoRequest._errorSteps(stream._storedError);\n }\n else {\n ReadableByteStreamControllerPullInto(stream._readableStreamController, view, readIntoRequest);\n }\n }\n // Helper functions for the ReadableStreamBYOBReader.\n function byobReaderBrandCheckException(name) {\n return new TypeError(`ReadableStreamBYOBReader.prototype.${name} can only be used on a ReadableStreamBYOBReader`);\n }\n\n function ExtractHighWaterMark(strategy, defaultHWM) {\n const { highWaterMark } = strategy;\n if (highWaterMark === undefined) {\n return defaultHWM;\n }\n if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {\n throw new RangeError('Invalid highWaterMark');\n }\n return highWaterMark;\n }\n function ExtractSizeAlgorithm(strategy) {\n const { size } = strategy;\n if (!size) {\n return () => 1;\n }\n return size;\n }\n\n function convertQueuingStrategy(init, context) {\n assertDictionary(init, context);\n const highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n const size = init === null || init === void 0 ? void 0 : init.size;\n return {\n highWaterMark: highWaterMark === undefined ? undefined : convertUnrestrictedDouble(highWaterMark),\n size: size === undefined ? undefined : convertQueuingStrategySize(size, `${context} has member 'size' that`)\n };\n }\n function convertQueuingStrategySize(fn, context) {\n assertFunction(fn, context);\n return chunk => convertUnrestrictedDouble(fn(chunk));\n }\n\n function convertUnderlyingSink(original, context) {\n assertDictionary(original, context);\n const abort = original === null || original === void 0 ? void 0 : original.abort;\n const close = original === null || original === void 0 ? void 0 : original.close;\n const start = original === null || original === void 0 ? void 0 : original.start;\n const type = original === null || original === void 0 ? void 0 : original.type;\n const write = original === null || original === void 0 ? void 0 : original.write;\n return {\n abort: abort === undefined ?\n undefined :\n convertUnderlyingSinkAbortCallback(abort, original, `${context} has member 'abort' that`),\n close: close === undefined ?\n undefined :\n convertUnderlyingSinkCloseCallback(close, original, `${context} has member 'close' that`),\n start: start === undefined ?\n undefined :\n convertUnderlyingSinkStartCallback(start, original, `${context} has member 'start' that`),\n write: write === undefined ?\n undefined :\n convertUnderlyingSinkWriteCallback(write, original, `${context} has member 'write' that`),\n type\n };\n }\n function convertUnderlyingSinkAbortCallback(fn, original, context) {\n assertFunction(fn, context);\n return (reason) => promiseCall(fn, original, [reason]);\n }\n function convertUnderlyingSinkCloseCallback(fn, original, context) {\n assertFunction(fn, context);\n return () => promiseCall(fn, original, []);\n }\n function convertUnderlyingSinkStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => reflectCall(fn, original, [controller]);\n }\n function convertUnderlyingSinkWriteCallback(fn, original, context) {\n assertFunction(fn, context);\n return (chunk, controller) => promiseCall(fn, original, [chunk, controller]);\n }\n\n function assertWritableStream(x, context) {\n if (!IsWritableStream(x)) {\n throw new TypeError(`${context} is not a WritableStream.`);\n }\n }\n\n function isAbortSignal(value) {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n try {\n return typeof value.aborted === 'boolean';\n }\n catch (_a) {\n // AbortSignal.prototype.aborted throws if its brand check fails\n return false;\n }\n }\n const supportsAbortController = typeof AbortController === 'function';\n /**\n * Construct a new AbortController, if supported by the platform.\n *\n * @internal\n */\n function createAbortController() {\n if (supportsAbortController) {\n return new AbortController();\n }\n return undefined;\n }\n\n /**\n * A writable stream represents a destination for data, into which you can write.\n *\n * @public\n */\n class WritableStream {\n constructor(rawUnderlyingSink = {}, rawStrategy = {}) {\n if (rawUnderlyingSink === undefined) {\n rawUnderlyingSink = null;\n }\n else {\n assertObject(rawUnderlyingSink, 'First parameter');\n }\n const strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n const underlyingSink = convertUnderlyingSink(rawUnderlyingSink, 'First parameter');\n InitializeWritableStream(this);\n const type = underlyingSink.type;\n if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n const sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n const highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);\n }\n /**\n * Returns whether or not the writable stream is locked to a writer.\n */\n get locked() {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException$2('locked');\n }\n return IsWritableStreamLocked(this);\n }\n /**\n * Aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be\n * immediately moved to an errored state, with any queued-up writes discarded. This will also execute any abort\n * mechanism of the underlying sink.\n *\n * The returned promise will fulfill if the stream shuts down successfully, or reject if the underlying sink signaled\n * that there was an error doing so. Additionally, it will reject with a `TypeError` (without attempting to cancel\n * the stream) if the stream is currently locked.\n */\n abort(reason = undefined) {\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$2('abort'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer'));\n }\n return WritableStreamAbort(this, reason);\n }\n /**\n * Closes the stream. The underlying sink will finish processing any previously-written chunks, before invoking its\n * close behavior. During this time any further attempts to write will fail (without erroring the stream).\n *\n * The method returns a promise that will fulfill if all remaining chunks are successfully written and the stream\n * successfully closes, or rejects if an error is encountered during this process. Additionally, it will reject with\n * a `TypeError` (without attempting to cancel the stream) if the stream is currently locked.\n */\n close() {\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$2('close'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer'));\n }\n if (WritableStreamCloseQueuedOrInFlight(this)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamClose(this);\n }\n /**\n * Creates a {@link WritableStreamDefaultWriter | writer} and locks the stream to the new writer. While the stream\n * is locked, no other writer can be acquired until this one is released.\n *\n * This functionality is especially useful for creating abstractions that desire the ability to write to a stream\n * without interruption or interleaving. By getting a writer for the stream, you can ensure nobody else can write at\n * the same time, which would cause the resulting written data to be unpredictable and probably useless.\n */\n getWriter() {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException$2('getWriter');\n }\n return AcquireWritableStreamDefaultWriter(this);\n }\n }\n Object.defineProperties(WritableStream.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n getWriter: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStream',\n configurable: true\n });\n }\n // Abstract operations for the WritableStream.\n function AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n }\n // Throws if and only if startAlgorithm throws.\n function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) {\n const stream = Object.create(WritableStream.prototype);\n InitializeWritableStream(stream);\n const controller = Object.create(WritableStreamDefaultController.prototype);\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n function InitializeWritableStream(stream) {\n stream._state = 'writable';\n // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\n // 'erroring' or 'errored'. May be set to an undefined value.\n stream._storedError = undefined;\n stream._writer = undefined;\n // Initialize to undefined first because the constructor of the controller checks this\n // variable to validate the caller.\n stream._writableStreamController = undefined;\n // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\n // producer without waiting for the queued writes to finish.\n stream._writeRequests = new SimpleQueue();\n // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\n // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\n stream._inFlightWriteRequest = undefined;\n // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\n // has been detached.\n stream._closeRequest = undefined;\n // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\n // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\n stream._inFlightCloseRequest = undefined;\n // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\n stream._pendingAbortRequest = undefined;\n // The backpressure signal set by the controller.\n stream._backpressure = false;\n }\n function IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n return x instanceof WritableStream;\n }\n function IsWritableStreamLocked(stream) {\n if (stream._writer === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamAbort(stream, reason) {\n var _a;\n if (stream._state === 'closed' || stream._state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n stream._writableStreamController._abortReason = reason;\n (_a = stream._writableStreamController._abortController) === null || _a === void 0 ? void 0 : _a.abort();\n // TypeScript narrows the type of `stream._state` down to 'writable' | 'erroring',\n // but it doesn't know that signaling abort runs author code that might have changed the state.\n // Widen the type again by casting to WritableStreamState.\n const state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n if (stream._pendingAbortRequest !== undefined) {\n return stream._pendingAbortRequest._promise;\n }\n let wasAlreadyErroring = false;\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n // reason will not be used, so don't keep a reference to it.\n reason = undefined;\n }\n const promise = newPromise((resolve, reject) => {\n stream._pendingAbortRequest = {\n _promise: undefined,\n _resolve: resolve,\n _reject: reject,\n _reason: reason,\n _wasAlreadyErroring: wasAlreadyErroring\n };\n });\n stream._pendingAbortRequest._promise = promise;\n if (!wasAlreadyErroring) {\n WritableStreamStartErroring(stream, reason);\n }\n return promise;\n }\n function WritableStreamClose(stream) {\n const state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseRejectedWith(new TypeError(`The stream (in ${state} state) is not in the writable state and cannot be closed`));\n }\n const promise = newPromise((resolve, reject) => {\n const closeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._closeRequest = closeRequest;\n });\n const writer = stream._writer;\n if (writer !== undefined && stream._backpressure && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n return promise;\n }\n // WritableStream API exposed for controllers.\n function WritableStreamAddWriteRequest(stream) {\n const promise = newPromise((resolve, reject) => {\n const writeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._writeRequests.push(writeRequest);\n });\n return promise;\n }\n function WritableStreamDealWithRejection(stream, error) {\n const state = stream._state;\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n WritableStreamFinishErroring(stream);\n }\n function WritableStreamStartErroring(stream, reason) {\n const controller = stream._writableStreamController;\n stream._state = 'erroring';\n stream._storedError = reason;\n const writer = stream._writer;\n if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n if (!WritableStreamHasOperationMarkedInFlight(stream) && controller._started) {\n WritableStreamFinishErroring(stream);\n }\n }\n function WritableStreamFinishErroring(stream) {\n stream._state = 'errored';\n stream._writableStreamController[ErrorSteps]();\n const storedError = stream._storedError;\n stream._writeRequests.forEach(writeRequest => {\n writeRequest._reject(storedError);\n });\n stream._writeRequests = new SimpleQueue();\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n const abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n if (abortRequest._wasAlreadyErroring) {\n abortRequest._reject(storedError);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n const promise = stream._writableStreamController[AbortSteps](abortRequest._reason);\n uponPromise(promise, () => {\n abortRequest._resolve();\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n }, (reason) => {\n abortRequest._reject(reason);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n });\n }\n function WritableStreamFinishInFlightWrite(stream) {\n stream._inFlightWriteRequest._resolve(undefined);\n stream._inFlightWriteRequest = undefined;\n }\n function WritableStreamFinishInFlightWriteWithError(stream, error) {\n stream._inFlightWriteRequest._reject(error);\n stream._inFlightWriteRequest = undefined;\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamFinishInFlightClose(stream) {\n stream._inFlightCloseRequest._resolve(undefined);\n stream._inFlightCloseRequest = undefined;\n const state = stream._state;\n if (state === 'erroring') {\n // The error was too late to do anything, so it is ignored.\n stream._storedError = undefined;\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n stream._pendingAbortRequest = undefined;\n }\n }\n stream._state = 'closed';\n const writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n }\n function WritableStreamFinishInFlightCloseWithError(stream, error) {\n stream._inFlightCloseRequest._reject(error);\n stream._inFlightCloseRequest = undefined;\n // Never execute sink abort() after sink close().\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n stream._pendingAbortRequest = undefined;\n }\n WritableStreamDealWithRejection(stream, error);\n }\n // TODO(ricea): Fix alphabetical order.\n function WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamMarkCloseRequestInFlight(stream) {\n stream._inFlightCloseRequest = stream._closeRequest;\n stream._closeRequest = undefined;\n }\n function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n stream._inFlightWriteRequest = stream._writeRequests.shift();\n }\n function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n if (stream._closeRequest !== undefined) {\n stream._closeRequest._reject(stream._storedError);\n stream._closeRequest = undefined;\n }\n const writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseReject(writer, stream._storedError);\n }\n }\n function WritableStreamUpdateBackpressure(stream, backpressure) {\n const writer = stream._writer;\n if (writer !== undefined && backpressure !== stream._backpressure) {\n if (backpressure) {\n defaultWriterReadyPromiseReset(writer);\n }\n else {\n defaultWriterReadyPromiseResolve(writer);\n }\n }\n stream._backpressure = backpressure;\n }\n /**\n * A default writer vended by a {@link WritableStream}.\n *\n * @public\n */\n class WritableStreamDefaultWriter {\n constructor(stream) {\n assertRequiredArgument(stream, 1, 'WritableStreamDefaultWriter');\n assertWritableStream(stream, 'First parameter');\n if (IsWritableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n }\n this._ownerWritableStream = stream;\n stream._writer = this;\n const state = stream._state;\n if (state === 'writable') {\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._backpressure) {\n defaultWriterReadyPromiseInitialize(this);\n }\n else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\n defaultWriterClosedPromiseInitialize(this);\n }\n else if (state === 'erroring') {\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n defaultWriterClosedPromiseInitialize(this);\n }\n else if (state === 'closed') {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n defaultWriterClosedPromiseInitializeAsResolved(this);\n }\n else {\n const storedError = stream._storedError;\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n }\n }\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n * the writer’s lock is released before the stream finishes closing.\n */\n get closed() {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n /**\n * Returns the desired size to fill the stream’s internal queue. It can be negative, if the queue is over-full.\n * A producer can use this information to determine the right amount of data to write.\n *\n * It will be `null` if the stream cannot be successfully written to (due to either being errored, or having an abort\n * queued up). It will return zero if the stream is closed. And the getter will throw an exception if invoked when\n * the writer’s lock is released.\n */\n get desiredSize() {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\n }\n return WritableStreamDefaultWriterGetDesiredSize(this);\n }\n /**\n * Returns a promise that will be fulfilled when the desired size to fill the stream’s internal queue transitions\n * from non-positive to positive, signaling that it is no longer applying backpressure. Once the desired size dips\n * back to zero or below, the getter will return a new promise that stays pending until the next transition.\n *\n * If the stream becomes errored or aborted, or the writer’s lock is released, the returned promise will become\n * rejected.\n */\n get ready() {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('ready'));\n }\n return this._readyPromise;\n }\n /**\n * If the reader is active, behaves the same as {@link WritableStream.abort | stream.abort(reason)}.\n */\n abort(reason = undefined) {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('abort'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('abort'));\n }\n return WritableStreamDefaultWriterAbort(this, reason);\n }\n /**\n * If the reader is active, behaves the same as {@link WritableStream.close | stream.close()}.\n */\n close() {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('close'));\n }\n const stream = this._ownerWritableStream;\n if (stream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('close'));\n }\n if (WritableStreamCloseQueuedOrInFlight(stream)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamDefaultWriterClose(this);\n }\n /**\n * Releases the writer’s lock on the corresponding stream. After the lock is released, the writer is no longer active.\n * If the associated stream is errored when the lock is released, the writer will appear errored in the same way from\n * now on; otherwise, the writer will appear closed.\n *\n * Note that the lock can still be released even if some ongoing writes have not yet finished (i.e. even if the\n * promises returned from previous calls to {@link WritableStreamDefaultWriter.write | write()} have not yet settled).\n * It’s not necessary to hold the lock on the writer for the duration of the write; the lock instead simply prevents\n * other producers from writing in an interleaved manner.\n */\n releaseLock() {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('releaseLock');\n }\n const stream = this._ownerWritableStream;\n if (stream === undefined) {\n return;\n }\n WritableStreamDefaultWriterRelease(this);\n }\n write(chunk = undefined) {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('write'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n return WritableStreamDefaultWriterWrite(this, chunk);\n }\n }\n Object.defineProperties(WritableStreamDefaultWriter.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n releaseLock: { enumerable: true },\n write: { enumerable: true },\n closed: { enumerable: true },\n desiredSize: { enumerable: true },\n ready: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultWriter.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultWriter',\n configurable: true\n });\n }\n // Abstract operations for the WritableStreamDefaultWriter.\n function IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n return x instanceof WritableStreamDefaultWriter;\n }\n // A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\n function WritableStreamDefaultWriterAbort(writer, reason) {\n const stream = writer._ownerWritableStream;\n return WritableStreamAbort(stream, reason);\n }\n function WritableStreamDefaultWriterClose(writer) {\n const stream = writer._ownerWritableStream;\n return WritableStreamClose(stream);\n }\n function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n const stream = writer._ownerWritableStream;\n const state = stream._state;\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n return WritableStreamDefaultWriterClose(writer);\n }\n function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n if (writer._closedPromiseState === 'pending') {\n defaultWriterClosedPromiseReject(writer, error);\n }\n else {\n defaultWriterClosedPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n if (writer._readyPromiseState === 'pending') {\n defaultWriterReadyPromiseReject(writer, error);\n }\n else {\n defaultWriterReadyPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterGetDesiredSize(writer) {\n const stream = writer._ownerWritableStream;\n const state = stream._state;\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n }\n function WritableStreamDefaultWriterRelease(writer) {\n const stream = writer._ownerWritableStream;\n const releasedError = new TypeError(`Writer was released and can no longer be used to monitor the stream's closedness`);\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\n // rejected until afterwards. This means that simply testing state will not work.\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n stream._writer = undefined;\n writer._ownerWritableStream = undefined;\n }\n function WritableStreamDefaultWriterWrite(writer, chunk) {\n const stream = writer._ownerWritableStream;\n const controller = stream._writableStreamController;\n const chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n if (stream !== writer._ownerWritableStream) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n const state = stream._state;\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to'));\n }\n if (state === 'erroring') {\n return promiseRejectedWith(stream._storedError);\n }\n const promise = WritableStreamAddWriteRequest(stream);\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n return promise;\n }\n const closeSentinel = {};\n /**\n * Allows control of a {@link WritableStream | writable stream}'s state and internal queue.\n *\n * @public\n */\n class WritableStreamDefaultController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * The reason which was passed to `WritableStream.abort(reason)` when the stream was aborted.\n *\n * @deprecated\n * This property has been removed from the specification, see https://github.com/whatwg/streams/pull/1177.\n * Use {@link WritableStreamDefaultController.signal}'s `reason` instead.\n */\n get abortReason() {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('abortReason');\n }\n return this._abortReason;\n }\n /**\n * An `AbortSignal` that can be used to abort the pending write or close operation when the stream is aborted.\n */\n get signal() {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('signal');\n }\n if (this._abortController === undefined) {\n // Older browsers or older Node versions may not support `AbortController` or `AbortSignal`.\n // We don't want to bundle and ship an `AbortController` polyfill together with our polyfill,\n // so instead we only implement support for `signal` if we find a global `AbortController` constructor.\n throw new TypeError('WritableStreamDefaultController.prototype.signal is not supported');\n }\n return this._abortController.signal;\n }\n /**\n * Closes the controlled writable stream, making all future interactions with it fail with the given error `e`.\n *\n * This method is rarely used, since usually it suffices to return a rejected promise from one of the underlying\n * sink's methods. However, it can be useful for suddenly shutting down a stream in response to an event outside the\n * normal lifecycle of interactions with the underlying sink.\n */\n error(e = undefined) {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('error');\n }\n const state = this._controlledWritableStream._state;\n if (state !== 'writable') {\n // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\n // just treat it as a no-op.\n return;\n }\n WritableStreamDefaultControllerError(this, e);\n }\n /** @internal */\n [AbortSteps](reason) {\n const result = this._abortAlgorithm(reason);\n WritableStreamDefaultControllerClearAlgorithms(this);\n return result;\n }\n /** @internal */\n [ErrorSteps]() {\n ResetQueue(this);\n }\n }\n Object.defineProperties(WritableStreamDefaultController.prototype, {\n abortReason: { enumerable: true },\n signal: { enumerable: true },\n error: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultController',\n configurable: true\n });\n }\n // Abstract operations implementing interface required by the WritableStream.\n function IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {\n return false;\n }\n return x instanceof WritableStreamDefaultController;\n }\n function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledWritableStream = stream;\n stream._writableStreamController = controller;\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._abortReason = undefined;\n controller._abortController = createAbortController();\n controller._started = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._writeAlgorithm = writeAlgorithm;\n controller._closeAlgorithm = closeAlgorithm;\n controller._abortAlgorithm = abortAlgorithm;\n const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n const startResult = startAlgorithm();\n const startPromise = promiseResolvedWith(startResult);\n uponPromise(startPromise, () => {\n controller._started = true;\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, r => {\n controller._started = true;\n WritableStreamDealWithRejection(stream, r);\n });\n }\n function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {\n const controller = Object.create(WritableStreamDefaultController.prototype);\n let startAlgorithm = () => undefined;\n let writeAlgorithm = () => promiseResolvedWith(undefined);\n let closeAlgorithm = () => promiseResolvedWith(undefined);\n let abortAlgorithm = () => promiseResolvedWith(undefined);\n if (underlyingSink.start !== undefined) {\n startAlgorithm = () => underlyingSink.start(controller);\n }\n if (underlyingSink.write !== undefined) {\n writeAlgorithm = chunk => underlyingSink.write(chunk, controller);\n }\n if (underlyingSink.close !== undefined) {\n closeAlgorithm = () => underlyingSink.close();\n }\n if (underlyingSink.abort !== undefined) {\n abortAlgorithm = reason => underlyingSink.abort(reason);\n }\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n }\n // ClearAlgorithms may be called twice. Erroring the same stream in multiple ways will often result in redundant calls.\n function WritableStreamDefaultControllerClearAlgorithms(controller) {\n controller._writeAlgorithm = undefined;\n controller._closeAlgorithm = undefined;\n controller._abortAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n function WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, closeSentinel, 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n try {\n return controller._strategySizeAlgorithm(chunk);\n }\n catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n }\n function WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n }\n catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\n const stream = controller._controlledWritableStream;\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._state === 'writable') {\n const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n // Abstract operations for the WritableStreamDefaultController.\n function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n const stream = controller._controlledWritableStream;\n if (!controller._started) {\n return;\n }\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\n const state = stream._state;\n if (state === 'erroring') {\n WritableStreamFinishErroring(stream);\n return;\n }\n if (controller._queue.length === 0) {\n return;\n }\n const value = PeekQueueValue(controller);\n if (value === closeSentinel) {\n WritableStreamDefaultControllerProcessClose(controller);\n }\n else {\n WritableStreamDefaultControllerProcessWrite(controller, value);\n }\n }\n function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\n }\n }\n function WritableStreamDefaultControllerProcessClose(controller) {\n const stream = controller._controlledWritableStream;\n WritableStreamMarkCloseRequestInFlight(stream);\n DequeueValue(controller);\n const sinkClosePromise = controller._closeAlgorithm();\n WritableStreamDefaultControllerClearAlgorithms(controller);\n uponPromise(sinkClosePromise, () => {\n WritableStreamFinishInFlightClose(stream);\n }, reason => {\n WritableStreamFinishInFlightCloseWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n const stream = controller._controlledWritableStream;\n WritableStreamMarkFirstWriteRequestInFlight(stream);\n const sinkWritePromise = controller._writeAlgorithm(chunk);\n uponPromise(sinkWritePromise, () => {\n WritableStreamFinishInFlightWrite(stream);\n const state = stream._state;\n DequeueValue(controller);\n if (!WritableStreamCloseQueuedOrInFlight(stream) && state === 'writable') {\n const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, reason => {\n if (stream._state === 'writable') {\n WritableStreamDefaultControllerClearAlgorithms(controller);\n }\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerGetBackpressure(controller) {\n const desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n }\n // A client of WritableStreamDefaultController may use these functions directly to bypass state check.\n function WritableStreamDefaultControllerError(controller, error) {\n const stream = controller._controlledWritableStream;\n WritableStreamDefaultControllerClearAlgorithms(controller);\n WritableStreamStartErroring(stream, error);\n }\n // Helper functions for the WritableStream.\n function streamBrandCheckException$2(name) {\n return new TypeError(`WritableStream.prototype.${name} can only be used on a WritableStream`);\n }\n // Helper functions for the WritableStreamDefaultController.\n function defaultControllerBrandCheckException$2(name) {\n return new TypeError(`WritableStreamDefaultController.prototype.${name} can only be used on a WritableStreamDefaultController`);\n }\n // Helper functions for the WritableStreamDefaultWriter.\n function defaultWriterBrandCheckException(name) {\n return new TypeError(`WritableStreamDefaultWriter.prototype.${name} can only be used on a WritableStreamDefaultWriter`);\n }\n function defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\n }\n function defaultWriterClosedPromiseInitialize(writer) {\n writer._closedPromise = newPromise((resolve, reject) => {\n writer._closedPromise_resolve = resolve;\n writer._closedPromise_reject = reject;\n writer._closedPromiseState = 'pending';\n });\n }\n function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseReject(writer, reason);\n }\n function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseResolve(writer);\n }\n function defaultWriterClosedPromiseReject(writer, reason) {\n if (writer._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._closedPromise);\n writer._closedPromise_reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n defaultWriterClosedPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterClosedPromiseResolve(writer) {\n if (writer._closedPromise_resolve === undefined) {\n return;\n }\n writer._closedPromise_resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n function defaultWriterReadyPromiseInitialize(writer) {\n writer._readyPromise = newPromise((resolve, reject) => {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseReject(writer, reason);\n }\n function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseResolve(writer);\n }\n function defaultWriterReadyPromiseReject(writer, reason) {\n if (writer._readyPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._readyPromise);\n writer._readyPromise_reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseReset(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n }\n function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n defaultWriterReadyPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterReadyPromiseResolve(writer) {\n if (writer._readyPromise_resolve === undefined) {\n return;\n }\n writer._readyPromise_resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n\n /// \n const NativeDOMException = typeof DOMException !== 'undefined' ? DOMException : undefined;\n\n /// \n function isDOMExceptionConstructor(ctor) {\n if (!(typeof ctor === 'function' || typeof ctor === 'object')) {\n return false;\n }\n try {\n new ctor();\n return true;\n }\n catch (_a) {\n return false;\n }\n }\n function createDOMExceptionPolyfill() {\n // eslint-disable-next-line no-shadow\n const ctor = function DOMException(message, name) {\n this.message = message || '';\n this.name = name || 'Error';\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n };\n ctor.prototype = Object.create(Error.prototype);\n Object.defineProperty(ctor.prototype, 'constructor', { value: ctor, writable: true, configurable: true });\n return ctor;\n }\n // eslint-disable-next-line no-redeclare\n const DOMException$1 = isDOMExceptionConstructor(NativeDOMException) ? NativeDOMException : createDOMExceptionPolyfill();\n\n function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {\n const reader = AcquireReadableStreamDefaultReader(source);\n const writer = AcquireWritableStreamDefaultWriter(dest);\n source._disturbed = true;\n let shuttingDown = false;\n // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\n let currentWrite = promiseResolvedWith(undefined);\n return newPromise((resolve, reject) => {\n let abortAlgorithm;\n if (signal !== undefined) {\n abortAlgorithm = () => {\n const error = new DOMException$1('Aborted', 'AbortError');\n const actions = [];\n if (!preventAbort) {\n actions.push(() => {\n if (dest._state === 'writable') {\n return WritableStreamAbort(dest, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n if (!preventCancel) {\n actions.push(() => {\n if (source._state === 'readable') {\n return ReadableStreamCancel(source, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n shutdownWithAction(() => Promise.all(actions.map(action => action())), true, error);\n };\n if (signal.aborted) {\n abortAlgorithm();\n return;\n }\n signal.addEventListener('abort', abortAlgorithm);\n }\n // Using reader and writer, read all chunks from this and write them to dest\n // - Backpressure must be enforced\n // - Shutdown must stop all activity\n function pipeLoop() {\n return newPromise((resolveLoop, rejectLoop) => {\n function next(done) {\n if (done) {\n resolveLoop();\n }\n else {\n // Use `PerformPromiseThen` instead of `uponPromise` to avoid\n // adding unnecessary `.catch(rethrowAssertionErrorRejection)` handlers\n PerformPromiseThen(pipeStep(), next, rejectLoop);\n }\n }\n next(false);\n });\n }\n function pipeStep() {\n if (shuttingDown) {\n return promiseResolvedWith(true);\n }\n return PerformPromiseThen(writer._readyPromise, () => {\n return newPromise((resolveRead, rejectRead) => {\n ReadableStreamDefaultReaderRead(reader, {\n _chunkSteps: chunk => {\n currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, chunk), undefined, noop);\n resolveRead(false);\n },\n _closeSteps: () => resolveRead(true),\n _errorSteps: rejectRead\n });\n });\n });\n }\n // Errors must be propagated forward\n isOrBecomesErrored(source, reader._closedPromise, storedError => {\n if (!preventAbort) {\n shutdownWithAction(() => WritableStreamAbort(dest, storedError), true, storedError);\n }\n else {\n shutdown(true, storedError);\n }\n });\n // Errors must be propagated backward\n isOrBecomesErrored(dest, writer._closedPromise, storedError => {\n if (!preventCancel) {\n shutdownWithAction(() => ReadableStreamCancel(source, storedError), true, storedError);\n }\n else {\n shutdown(true, storedError);\n }\n });\n // Closing must be propagated forward\n isOrBecomesClosed(source, reader._closedPromise, () => {\n if (!preventClose) {\n shutdownWithAction(() => WritableStreamDefaultWriterCloseWithErrorPropagation(writer));\n }\n else {\n shutdown();\n }\n });\n // Closing must be propagated backward\n if (WritableStreamCloseQueuedOrInFlight(dest) || dest._state === 'closed') {\n const destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');\n if (!preventCancel) {\n shutdownWithAction(() => ReadableStreamCancel(source, destClosed), true, destClosed);\n }\n else {\n shutdown(true, destClosed);\n }\n }\n setPromiseIsHandledToTrue(pipeLoop());\n function waitForWritesToFinish() {\n // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\n // for that too.\n const oldCurrentWrite = currentWrite;\n return PerformPromiseThen(currentWrite, () => oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined);\n }\n function isOrBecomesErrored(stream, promise, action) {\n if (stream._state === 'errored') {\n action(stream._storedError);\n }\n else {\n uponRejection(promise, action);\n }\n }\n function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n }\n else {\n uponFulfillment(promise, action);\n }\n }\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), doTheRest);\n }\n else {\n doTheRest();\n }\n function doTheRest() {\n uponPromise(action(), () => finalize(originalIsError, originalError), newError => finalize(true, newError));\n }\n }\n function shutdown(isError, error) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), () => finalize(isError, error));\n }\n else {\n finalize(isError, error);\n }\n }\n function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\n if (signal !== undefined) {\n signal.removeEventListener('abort', abortAlgorithm);\n }\n if (isError) {\n reject(error);\n }\n else {\n resolve(undefined);\n }\n }\n });\n }\n\n /**\n * Allows control of a {@link ReadableStream | readable stream}'s state and internal queue.\n *\n * @public\n */\n class ReadableStreamDefaultController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n * over-full. An underlying source ought to use this information to determine when and how to apply backpressure.\n */\n get desiredSize() {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('desiredSize');\n }\n return ReadableStreamDefaultControllerGetDesiredSize(this);\n }\n /**\n * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n * the stream, but once those are read, the stream will become closed.\n */\n close() {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('close');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits close');\n }\n ReadableStreamDefaultControllerClose(this);\n }\n enqueue(chunk = undefined) {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('enqueue');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits enqueue');\n }\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\n }\n /**\n * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n */\n error(e = undefined) {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('error');\n }\n ReadableStreamDefaultControllerError(this, e);\n }\n /** @internal */\n [CancelSteps](reason) {\n ResetQueue(this);\n const result = this._cancelAlgorithm(reason);\n ReadableStreamDefaultControllerClearAlgorithms(this);\n return result;\n }\n /** @internal */\n [PullSteps](readRequest) {\n const stream = this._controlledReadableStream;\n if (this._queue.length > 0) {\n const chunk = DequeueValue(this);\n if (this._closeRequested && this._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(this);\n ReadableStreamClose(stream);\n }\n else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n readRequest._chunkSteps(chunk);\n }\n else {\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n }\n }\n Object.defineProperties(ReadableStreamDefaultController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultController',\n configurable: true\n });\n }\n // Abstract operations for the ReadableStreamDefaultController.\n function IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {\n return false;\n }\n return x instanceof ReadableStreamDefaultController;\n }\n function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n const shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n const pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, () => {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n }, e => {\n ReadableStreamDefaultControllerError(controller, e);\n });\n }\n function ReadableStreamDefaultControllerShouldCallPull(controller) {\n const stream = controller._controlledReadableStream;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n const desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableStreamDefaultControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n // A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\n function ReadableStreamDefaultControllerClose(controller) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n const stream = controller._controlledReadableStream;\n controller._closeRequested = true;\n if (controller._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n }\n function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n const stream = controller._controlledReadableStream;\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n }\n else {\n let chunkSize;\n try {\n chunkSize = controller._strategySizeAlgorithm(chunk);\n }\n catch (chunkSizeE) {\n ReadableStreamDefaultControllerError(controller, chunkSizeE);\n throw chunkSizeE;\n }\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n }\n catch (enqueueE) {\n ReadableStreamDefaultControllerError(controller, enqueueE);\n throw enqueueE;\n }\n }\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n function ReadableStreamDefaultControllerError(controller, e) {\n const stream = controller._controlledReadableStream;\n if (stream._state !== 'readable') {\n return;\n }\n ResetQueue(controller);\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n const state = controller._controlledReadableStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n // This is used in the implementation of TransformStream.\n function ReadableStreamDefaultControllerHasBackpressure(controller) {\n if (ReadableStreamDefaultControllerShouldCallPull(controller)) {\n return false;\n }\n return true;\n }\n function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {\n const state = controller._controlledReadableStream._state;\n if (!controller._closeRequested && state === 'readable') {\n return true;\n }\n return false;\n }\n function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledReadableStream = stream;\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._started = false;\n controller._closeRequested = false;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n stream._readableStreamController = controller;\n const startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), () => {\n controller._started = true;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }, r => {\n ReadableStreamDefaultControllerError(controller, r);\n });\n }\n function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {\n const controller = Object.create(ReadableStreamDefaultController.prototype);\n let startAlgorithm = () => undefined;\n let pullAlgorithm = () => promiseResolvedWith(undefined);\n let cancelAlgorithm = () => promiseResolvedWith(undefined);\n if (underlyingSource.start !== undefined) {\n startAlgorithm = () => underlyingSource.start(controller);\n }\n if (underlyingSource.pull !== undefined) {\n pullAlgorithm = () => underlyingSource.pull(controller);\n }\n if (underlyingSource.cancel !== undefined) {\n cancelAlgorithm = reason => underlyingSource.cancel(reason);\n }\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n }\n // Helper functions for the ReadableStreamDefaultController.\n function defaultControllerBrandCheckException$1(name) {\n return new TypeError(`ReadableStreamDefaultController.prototype.${name} can only be used on a ReadableStreamDefaultController`);\n }\n\n function ReadableStreamTee(stream, cloneForBranch2) {\n if (IsReadableByteStreamController(stream._readableStreamController)) {\n return ReadableByteStreamTee(stream);\n }\n return ReadableStreamDefaultTee(stream);\n }\n function ReadableStreamDefaultTee(stream, cloneForBranch2) {\n const reader = AcquireReadableStreamDefaultReader(stream);\n let reading = false;\n let readAgain = false;\n let canceled1 = false;\n let canceled2 = false;\n let reason1;\n let reason2;\n let branch1;\n let branch2;\n let resolveCancelPromise;\n const cancelPromise = newPromise(resolve => {\n resolveCancelPromise = resolve;\n });\n function pullAlgorithm() {\n if (reading) {\n readAgain = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n const readRequest = {\n _chunkSteps: chunk => {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(() => {\n readAgain = false;\n const chunk1 = chunk;\n const chunk2 = chunk;\n // There is no way to access the cloning code right now in the reference implementation.\n // If we add one then we'll need an implementation for serializable objects.\n // if (!canceled2 && cloneForBranch2) {\n // chunk2 = StructuredDeserialize(StructuredSerialize(chunk2));\n // }\n if (!canceled1) {\n ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, chunk1);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, chunk2);\n }\n reading = false;\n if (readAgain) {\n pullAlgorithm();\n }\n });\n },\n _closeSteps: () => {\n reading = false;\n if (!canceled1) {\n ReadableStreamDefaultControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerClose(branch2._readableStreamController);\n }\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: () => {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n // do nothing\n }\n branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);\n branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);\n uponRejection(reader._closedPromise, (r) => {\n ReadableStreamDefaultControllerError(branch1._readableStreamController, r);\n ReadableStreamDefaultControllerError(branch2._readableStreamController, r);\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n });\n return [branch1, branch2];\n }\n function ReadableByteStreamTee(stream) {\n let reader = AcquireReadableStreamDefaultReader(stream);\n let reading = false;\n let readAgainForBranch1 = false;\n let readAgainForBranch2 = false;\n let canceled1 = false;\n let canceled2 = false;\n let reason1;\n let reason2;\n let branch1;\n let branch2;\n let resolveCancelPromise;\n const cancelPromise = newPromise(resolve => {\n resolveCancelPromise = resolve;\n });\n function forwardReaderError(thisReader) {\n uponRejection(thisReader._closedPromise, r => {\n if (thisReader !== reader) {\n return;\n }\n ReadableByteStreamControllerError(branch1._readableStreamController, r);\n ReadableByteStreamControllerError(branch2._readableStreamController, r);\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n });\n }\n function pullWithDefaultReader() {\n if (IsReadableStreamBYOBReader(reader)) {\n ReadableStreamReaderGenericRelease(reader);\n reader = AcquireReadableStreamDefaultReader(stream);\n forwardReaderError(reader);\n }\n const readRequest = {\n _chunkSteps: chunk => {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(() => {\n readAgainForBranch1 = false;\n readAgainForBranch2 = false;\n const chunk1 = chunk;\n let chunk2 = chunk;\n if (!canceled1 && !canceled2) {\n try {\n chunk2 = CloneAsUint8Array(chunk);\n }\n catch (cloneE) {\n ReadableByteStreamControllerError(branch1._readableStreamController, cloneE);\n ReadableByteStreamControllerError(branch2._readableStreamController, cloneE);\n resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n return;\n }\n }\n if (!canceled1) {\n ReadableByteStreamControllerEnqueue(branch1._readableStreamController, chunk1);\n }\n if (!canceled2) {\n ReadableByteStreamControllerEnqueue(branch2._readableStreamController, chunk2);\n }\n reading = false;\n if (readAgainForBranch1) {\n pull1Algorithm();\n }\n else if (readAgainForBranch2) {\n pull2Algorithm();\n }\n });\n },\n _closeSteps: () => {\n reading = false;\n if (!canceled1) {\n ReadableByteStreamControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableByteStreamControllerClose(branch2._readableStreamController);\n }\n if (branch1._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(branch1._readableStreamController, 0);\n }\n if (branch2._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(branch2._readableStreamController, 0);\n }\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: () => {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n }\n function pullWithBYOBReader(view, forBranch2) {\n if (IsReadableStreamDefaultReader(reader)) {\n ReadableStreamReaderGenericRelease(reader);\n reader = AcquireReadableStreamBYOBReader(stream);\n forwardReaderError(reader);\n }\n const byobBranch = forBranch2 ? branch2 : branch1;\n const otherBranch = forBranch2 ? branch1 : branch2;\n const readIntoRequest = {\n _chunkSteps: chunk => {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(() => {\n readAgainForBranch1 = false;\n readAgainForBranch2 = false;\n const byobCanceled = forBranch2 ? canceled2 : canceled1;\n const otherCanceled = forBranch2 ? canceled1 : canceled2;\n if (!otherCanceled) {\n let clonedChunk;\n try {\n clonedChunk = CloneAsUint8Array(chunk);\n }\n catch (cloneE) {\n ReadableByteStreamControllerError(byobBranch._readableStreamController, cloneE);\n ReadableByteStreamControllerError(otherBranch._readableStreamController, cloneE);\n resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n return;\n }\n if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n ReadableByteStreamControllerEnqueue(otherBranch._readableStreamController, clonedChunk);\n }\n else if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n reading = false;\n if (readAgainForBranch1) {\n pull1Algorithm();\n }\n else if (readAgainForBranch2) {\n pull2Algorithm();\n }\n });\n },\n _closeSteps: chunk => {\n reading = false;\n const byobCanceled = forBranch2 ? canceled2 : canceled1;\n const otherCanceled = forBranch2 ? canceled1 : canceled2;\n if (!byobCanceled) {\n ReadableByteStreamControllerClose(byobBranch._readableStreamController);\n }\n if (!otherCanceled) {\n ReadableByteStreamControllerClose(otherBranch._readableStreamController);\n }\n if (chunk !== undefined) {\n if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n if (!otherCanceled && otherBranch._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(otherBranch._readableStreamController, 0);\n }\n }\n if (!byobCanceled || !otherCanceled) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: () => {\n reading = false;\n }\n };\n ReadableStreamBYOBReaderRead(reader, view, readIntoRequest);\n }\n function pull1Algorithm() {\n if (reading) {\n readAgainForBranch1 = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch1._readableStreamController);\n if (byobRequest === null) {\n pullWithDefaultReader();\n }\n else {\n pullWithBYOBReader(byobRequest._view, false);\n }\n return promiseResolvedWith(undefined);\n }\n function pull2Algorithm() {\n if (reading) {\n readAgainForBranch2 = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch2._readableStreamController);\n if (byobRequest === null) {\n pullWithDefaultReader();\n }\n else {\n pullWithBYOBReader(byobRequest._view, true);\n }\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n return;\n }\n branch1 = CreateReadableByteStream(startAlgorithm, pull1Algorithm, cancel1Algorithm);\n branch2 = CreateReadableByteStream(startAlgorithm, pull2Algorithm, cancel2Algorithm);\n forwardReaderError(reader);\n return [branch1, branch2];\n }\n\n function convertUnderlyingDefaultOrByteSource(source, context) {\n assertDictionary(source, context);\n const original = source;\n const autoAllocateChunkSize = original === null || original === void 0 ? void 0 : original.autoAllocateChunkSize;\n const cancel = original === null || original === void 0 ? void 0 : original.cancel;\n const pull = original === null || original === void 0 ? void 0 : original.pull;\n const start = original === null || original === void 0 ? void 0 : original.start;\n const type = original === null || original === void 0 ? void 0 : original.type;\n return {\n autoAllocateChunkSize: autoAllocateChunkSize === undefined ?\n undefined :\n convertUnsignedLongLongWithEnforceRange(autoAllocateChunkSize, `${context} has member 'autoAllocateChunkSize' that`),\n cancel: cancel === undefined ?\n undefined :\n convertUnderlyingSourceCancelCallback(cancel, original, `${context} has member 'cancel' that`),\n pull: pull === undefined ?\n undefined :\n convertUnderlyingSourcePullCallback(pull, original, `${context} has member 'pull' that`),\n start: start === undefined ?\n undefined :\n convertUnderlyingSourceStartCallback(start, original, `${context} has member 'start' that`),\n type: type === undefined ? undefined : convertReadableStreamType(type, `${context} has member 'type' that`)\n };\n }\n function convertUnderlyingSourceCancelCallback(fn, original, context) {\n assertFunction(fn, context);\n return (reason) => promiseCall(fn, original, [reason]);\n }\n function convertUnderlyingSourcePullCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => promiseCall(fn, original, [controller]);\n }\n function convertUnderlyingSourceStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => reflectCall(fn, original, [controller]);\n }\n function convertReadableStreamType(type, context) {\n type = `${type}`;\n if (type !== 'bytes') {\n throw new TypeError(`${context} '${type}' is not a valid enumeration value for ReadableStreamType`);\n }\n return type;\n }\n\n function convertReaderOptions(options, context) {\n assertDictionary(options, context);\n const mode = options === null || options === void 0 ? void 0 : options.mode;\n return {\n mode: mode === undefined ? undefined : convertReadableStreamReaderMode(mode, `${context} has member 'mode' that`)\n };\n }\n function convertReadableStreamReaderMode(mode, context) {\n mode = `${mode}`;\n if (mode !== 'byob') {\n throw new TypeError(`${context} '${mode}' is not a valid enumeration value for ReadableStreamReaderMode`);\n }\n return mode;\n }\n\n function convertIteratorOptions(options, context) {\n assertDictionary(options, context);\n const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n return { preventCancel: Boolean(preventCancel) };\n }\n\n function convertPipeOptions(options, context) {\n assertDictionary(options, context);\n const preventAbort = options === null || options === void 0 ? void 0 : options.preventAbort;\n const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n const preventClose = options === null || options === void 0 ? void 0 : options.preventClose;\n const signal = options === null || options === void 0 ? void 0 : options.signal;\n if (signal !== undefined) {\n assertAbortSignal(signal, `${context} has member 'signal' that`);\n }\n return {\n preventAbort: Boolean(preventAbort),\n preventCancel: Boolean(preventCancel),\n preventClose: Boolean(preventClose),\n signal\n };\n }\n function assertAbortSignal(signal, context) {\n if (!isAbortSignal(signal)) {\n throw new TypeError(`${context} is not an AbortSignal.`);\n }\n }\n\n function convertReadableWritablePair(pair, context) {\n assertDictionary(pair, context);\n const readable = pair === null || pair === void 0 ? void 0 : pair.readable;\n assertRequiredField(readable, 'readable', 'ReadableWritablePair');\n assertReadableStream(readable, `${context} has member 'readable' that`);\n const writable = pair === null || pair === void 0 ? void 0 : pair.writable;\n assertRequiredField(writable, 'writable', 'ReadableWritablePair');\n assertWritableStream(writable, `${context} has member 'writable' that`);\n return { readable, writable };\n }\n\n /**\n * A readable stream represents a source of data, from which you can read.\n *\n * @public\n */\n class ReadableStream {\n constructor(rawUnderlyingSource = {}, rawStrategy = {}) {\n if (rawUnderlyingSource === undefined) {\n rawUnderlyingSource = null;\n }\n else {\n assertObject(rawUnderlyingSource, 'First parameter');\n }\n const strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n const underlyingSource = convertUnderlyingDefaultOrByteSource(rawUnderlyingSource, 'First parameter');\n InitializeReadableStream(this);\n if (underlyingSource.type === 'bytes') {\n if (strategy.size !== undefined) {\n throw new RangeError('The strategy for a byte stream cannot have a size function');\n }\n const highWaterMark = ExtractHighWaterMark(strategy, 0);\n SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);\n }\n else {\n const sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n const highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);\n }\n }\n /**\n * Whether or not the readable stream is locked to a {@link ReadableStreamDefaultReader | reader}.\n */\n get locked() {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('locked');\n }\n return IsReadableStreamLocked(this);\n }\n /**\n * Cancels the stream, signaling a loss of interest in the stream by a consumer.\n *\n * The supplied `reason` argument will be given to the underlying source's {@link UnderlyingSource.cancel | cancel()}\n * method, which might or might not use it.\n */\n cancel(reason = undefined) {\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('cancel'));\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader'));\n }\n return ReadableStreamCancel(this, reason);\n }\n getReader(rawOptions = undefined) {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('getReader');\n }\n const options = convertReaderOptions(rawOptions, 'First parameter');\n if (options.mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n return AcquireReadableStreamBYOBReader(this);\n }\n pipeThrough(rawTransform, rawOptions = {}) {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('pipeThrough');\n }\n assertRequiredArgument(rawTransform, 1, 'pipeThrough');\n const transform = convertReadableWritablePair(rawTransform, 'First parameter');\n const options = convertPipeOptions(rawOptions, 'Second parameter');\n if (IsReadableStreamLocked(this)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');\n }\n if (IsWritableStreamLocked(transform.writable)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');\n }\n const promise = ReadableStreamPipeTo(this, transform.writable, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n setPromiseIsHandledToTrue(promise);\n return transform.readable;\n }\n pipeTo(destination, rawOptions = {}) {\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('pipeTo'));\n }\n if (destination === undefined) {\n return promiseRejectedWith(`Parameter 1 is required in 'pipeTo'.`);\n }\n if (!IsWritableStream(destination)) {\n return promiseRejectedWith(new TypeError(`ReadableStream.prototype.pipeTo's first argument must be a WritableStream`));\n }\n let options;\n try {\n options = convertPipeOptions(rawOptions, 'Second parameter');\n }\n catch (e) {\n return promiseRejectedWith(e);\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n }\n if (IsWritableStreamLocked(destination)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n }\n return ReadableStreamPipeTo(this, destination, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n }\n /**\n * Tees this readable stream, returning a two-element array containing the two resulting branches as\n * new {@link ReadableStream} instances.\n *\n * Teeing a stream will lock it, preventing any other consumer from acquiring a reader.\n * To cancel the stream, cancel both of the resulting branches; a composite cancellation reason will then be\n * propagated to the stream's underlying source.\n *\n * Note that the chunks seen in each branch will be the same object. If the chunks are not immutable,\n * this could allow interference between the two branches.\n */\n tee() {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('tee');\n }\n const branches = ReadableStreamTee(this);\n return CreateArrayFromList(branches);\n }\n values(rawOptions = undefined) {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('values');\n }\n const options = convertIteratorOptions(rawOptions, 'First parameter');\n return AcquireReadableStreamAsyncIterator(this, options.preventCancel);\n }\n }\n Object.defineProperties(ReadableStream.prototype, {\n cancel: { enumerable: true },\n getReader: { enumerable: true },\n pipeThrough: { enumerable: true },\n pipeTo: { enumerable: true },\n tee: { enumerable: true },\n values: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStream',\n configurable: true\n });\n }\n if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, {\n value: ReadableStream.prototype.values,\n writable: true,\n configurable: true\n });\n }\n // Abstract operations for the ReadableStream.\n // Throws if and only if startAlgorithm throws.\n function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) {\n const stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n const controller = Object.create(ReadableStreamDefaultController.prototype);\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n // Throws if and only if startAlgorithm throws.\n function CreateReadableByteStream(startAlgorithm, pullAlgorithm, cancelAlgorithm) {\n const stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n const controller = Object.create(ReadableByteStreamController.prototype);\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, 0, undefined);\n return stream;\n }\n function InitializeReadableStream(stream) {\n stream._state = 'readable';\n stream._reader = undefined;\n stream._storedError = undefined;\n stream._disturbed = false;\n }\n function IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n return x instanceof ReadableStream;\n }\n function IsReadableStreamLocked(stream) {\n if (stream._reader === undefined) {\n return false;\n }\n return true;\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n if (stream._state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (stream._state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n ReadableStreamClose(stream);\n const reader = stream._reader;\n if (reader !== undefined && IsReadableStreamBYOBReader(reader)) {\n reader._readIntoRequests.forEach(readIntoRequest => {\n readIntoRequest._closeSteps(undefined);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n const sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);\n return transformPromiseWith(sourceCancelPromise, noop);\n }\n function ReadableStreamClose(stream) {\n stream._state = 'closed';\n const reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n defaultReaderClosedPromiseResolve(reader);\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(readRequest => {\n readRequest._closeSteps();\n });\n reader._readRequests = new SimpleQueue();\n }\n }\n function ReadableStreamError(stream, e) {\n stream._state = 'errored';\n stream._storedError = e;\n const reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n defaultReaderClosedPromiseReject(reader, e);\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(readRequest => {\n readRequest._errorSteps(e);\n });\n reader._readRequests = new SimpleQueue();\n }\n else {\n reader._readIntoRequests.forEach(readIntoRequest => {\n readIntoRequest._errorSteps(e);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n }\n // Helper functions for the ReadableStream.\n function streamBrandCheckException$1(name) {\n return new TypeError(`ReadableStream.prototype.${name} can only be used on a ReadableStream`);\n }\n\n function convertQueuingStrategyInit(init, context) {\n assertDictionary(init, context);\n const highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n assertRequiredField(highWaterMark, 'highWaterMark', 'QueuingStrategyInit');\n return {\n highWaterMark: convertUnrestrictedDouble(highWaterMark)\n };\n }\n\n // The size function must not have a prototype property nor be a constructor\n const byteLengthSizeFunction = (chunk) => {\n return chunk.byteLength;\n };\n try {\n Object.defineProperty(byteLengthSizeFunction, 'name', {\n value: 'size',\n configurable: true\n });\n }\n catch (_a) {\n // This property is non-configurable in older browsers, so ignore if this throws.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility\n }\n /**\n * A queuing strategy that counts the number of bytes in each chunk.\n *\n * @public\n */\n class ByteLengthQueuingStrategy {\n constructor(options) {\n assertRequiredArgument(options, 1, 'ByteLengthQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._byteLengthQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n /**\n * Returns the high water mark provided to the constructor.\n */\n get highWaterMark() {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('highWaterMark');\n }\n return this._byteLengthQueuingStrategyHighWaterMark;\n }\n /**\n * Measures the size of `chunk` by returning the value of its `byteLength` property.\n */\n get size() {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('size');\n }\n return byteLengthSizeFunction;\n }\n }\n Object.defineProperties(ByteLengthQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ByteLengthQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'ByteLengthQueuingStrategy',\n configurable: true\n });\n }\n // Helper functions for the ByteLengthQueuingStrategy.\n function byteLengthBrandCheckException(name) {\n return new TypeError(`ByteLengthQueuingStrategy.prototype.${name} can only be used on a ByteLengthQueuingStrategy`);\n }\n function IsByteLengthQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_byteLengthQueuingStrategyHighWaterMark')) {\n return false;\n }\n return x instanceof ByteLengthQueuingStrategy;\n }\n\n // The size function must not have a prototype property nor be a constructor\n const countSizeFunction = () => {\n return 1;\n };\n try {\n Object.defineProperty(countSizeFunction, 'name', {\n value: 'size',\n configurable: true\n });\n }\n catch (_a) {\n // This property is non-configurable in older browsers, so ignore if this throws.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility\n }\n /**\n * A queuing strategy that counts the number of chunks.\n *\n * @public\n */\n class CountQueuingStrategy {\n constructor(options) {\n assertRequiredArgument(options, 1, 'CountQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._countQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n /**\n * Returns the high water mark provided to the constructor.\n */\n get highWaterMark() {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('highWaterMark');\n }\n return this._countQueuingStrategyHighWaterMark;\n }\n /**\n * Measures the size of `chunk` by always returning 1.\n * This ensures that the total queue size is a count of the number of chunks in the queue.\n */\n get size() {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('size');\n }\n return countSizeFunction;\n }\n }\n Object.defineProperties(CountQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(CountQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'CountQueuingStrategy',\n configurable: true\n });\n }\n // Helper functions for the CountQueuingStrategy.\n function countBrandCheckException(name) {\n return new TypeError(`CountQueuingStrategy.prototype.${name} can only be used on a CountQueuingStrategy`);\n }\n function IsCountQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_countQueuingStrategyHighWaterMark')) {\n return false;\n }\n return x instanceof CountQueuingStrategy;\n }\n\n function convertTransformer(original, context) {\n assertDictionary(original, context);\n const flush = original === null || original === void 0 ? void 0 : original.flush;\n const readableType = original === null || original === void 0 ? void 0 : original.readableType;\n const start = original === null || original === void 0 ? void 0 : original.start;\n const transform = original === null || original === void 0 ? void 0 : original.transform;\n const writableType = original === null || original === void 0 ? void 0 : original.writableType;\n return {\n flush: flush === undefined ?\n undefined :\n convertTransformerFlushCallback(flush, original, `${context} has member 'flush' that`),\n readableType,\n start: start === undefined ?\n undefined :\n convertTransformerStartCallback(start, original, `${context} has member 'start' that`),\n transform: transform === undefined ?\n undefined :\n convertTransformerTransformCallback(transform, original, `${context} has member 'transform' that`),\n writableType\n };\n }\n function convertTransformerFlushCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => promiseCall(fn, original, [controller]);\n }\n function convertTransformerStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => reflectCall(fn, original, [controller]);\n }\n function convertTransformerTransformCallback(fn, original, context) {\n assertFunction(fn, context);\n return (chunk, controller) => promiseCall(fn, original, [chunk, controller]);\n }\n\n // Class TransformStream\n /**\n * A transform stream consists of a pair of streams: a {@link WritableStream | writable stream},\n * known as its writable side, and a {@link ReadableStream | readable stream}, known as its readable side.\n * In a manner specific to the transform stream in question, writes to the writable side result in new data being\n * made available for reading from the readable side.\n *\n * @public\n */\n class TransformStream {\n constructor(rawTransformer = {}, rawWritableStrategy = {}, rawReadableStrategy = {}) {\n if (rawTransformer === undefined) {\n rawTransformer = null;\n }\n const writableStrategy = convertQueuingStrategy(rawWritableStrategy, 'Second parameter');\n const readableStrategy = convertQueuingStrategy(rawReadableStrategy, 'Third parameter');\n const transformer = convertTransformer(rawTransformer, 'First parameter');\n if (transformer.readableType !== undefined) {\n throw new RangeError('Invalid readableType specified');\n }\n if (transformer.writableType !== undefined) {\n throw new RangeError('Invalid writableType specified');\n }\n const readableHighWaterMark = ExtractHighWaterMark(readableStrategy, 0);\n const readableSizeAlgorithm = ExtractSizeAlgorithm(readableStrategy);\n const writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1);\n const writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy);\n let startPromise_resolve;\n const startPromise = newPromise(resolve => {\n startPromise_resolve = resolve;\n });\n InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);\n if (transformer.start !== undefined) {\n startPromise_resolve(transformer.start(this._transformStreamController));\n }\n else {\n startPromise_resolve(undefined);\n }\n }\n /**\n * The readable side of the transform stream.\n */\n get readable() {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException('readable');\n }\n return this._readable;\n }\n /**\n * The writable side of the transform stream.\n */\n get writable() {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException('writable');\n }\n return this._writable;\n }\n }\n Object.defineProperties(TransformStream.prototype, {\n readable: { enumerable: true },\n writable: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStream',\n configurable: true\n });\n }\n function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {\n function startAlgorithm() {\n return startPromise;\n }\n function writeAlgorithm(chunk) {\n return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);\n }\n function abortAlgorithm(reason) {\n return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);\n }\n function closeAlgorithm() {\n return TransformStreamDefaultSinkCloseAlgorithm(stream);\n }\n stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);\n function pullAlgorithm() {\n return TransformStreamDefaultSourcePullAlgorithm(stream);\n }\n function cancelAlgorithm(reason) {\n TransformStreamErrorWritableAndUnblockWrite(stream, reason);\n return promiseResolvedWith(undefined);\n }\n stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n // The [[backpressure]] slot is set to undefined so that it can be initialised by TransformStreamSetBackpressure.\n stream._backpressure = undefined;\n stream._backpressureChangePromise = undefined;\n stream._backpressureChangePromise_resolve = undefined;\n TransformStreamSetBackpressure(stream, true);\n stream._transformStreamController = undefined;\n }\n function IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n return x instanceof TransformStream;\n }\n // This is a no-op if both sides are already errored.\n function TransformStreamError(stream, e) {\n ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n }\n function TransformStreamErrorWritableAndUnblockWrite(stream, e) {\n TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);\n WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);\n if (stream._backpressure) {\n // Pretend that pull() was called to permit any pending write() calls to complete. TransformStreamSetBackpressure()\n // cannot be called from enqueue() or pull() once the ReadableStream is errored, so this will will be the final time\n // _backpressure is set.\n TransformStreamSetBackpressure(stream, false);\n }\n }\n function TransformStreamSetBackpressure(stream, backpressure) {\n // Passes also when called during construction.\n if (stream._backpressureChangePromise !== undefined) {\n stream._backpressureChangePromise_resolve();\n }\n stream._backpressureChangePromise = newPromise(resolve => {\n stream._backpressureChangePromise_resolve = resolve;\n });\n stream._backpressure = backpressure;\n }\n // Class TransformStreamDefaultController\n /**\n * Allows control of the {@link ReadableStream} and {@link WritableStream} of the associated {@link TransformStream}.\n *\n * @public\n */\n class TransformStreamDefaultController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the desired size to fill the readable side’s internal queue. It can be negative, if the queue is over-full.\n */\n get desiredSize() {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n const readableController = this._controlledTransformStream._readable._readableStreamController;\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n }\n enqueue(chunk = undefined) {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n TransformStreamDefaultControllerEnqueue(this, chunk);\n }\n /**\n * Errors both the readable side and the writable side of the controlled transform stream, making all future\n * interactions with it fail with the given error `e`. Any chunks queued for transformation will be discarded.\n */\n error(reason = undefined) {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('error');\n }\n TransformStreamDefaultControllerError(this, reason);\n }\n /**\n * Closes the readable side and errors the writable side of the controlled transform stream. This is useful when the\n * transformer only needs to consume a portion of the chunks written to the writable side.\n */\n terminate() {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('terminate');\n }\n TransformStreamDefaultControllerTerminate(this);\n }\n }\n Object.defineProperties(TransformStreamDefaultController.prototype, {\n enqueue: { enumerable: true },\n error: { enumerable: true },\n terminate: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStreamDefaultController',\n configurable: true\n });\n }\n // Transform Stream Default Controller Abstract Operations\n function IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n return x instanceof TransformStreamDefaultController;\n }\n function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) {\n controller._controlledTransformStream = stream;\n stream._transformStreamController = controller;\n controller._transformAlgorithm = transformAlgorithm;\n controller._flushAlgorithm = flushAlgorithm;\n }\n function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {\n const controller = Object.create(TransformStreamDefaultController.prototype);\n let transformAlgorithm = (chunk) => {\n try {\n TransformStreamDefaultControllerEnqueue(controller, chunk);\n return promiseResolvedWith(undefined);\n }\n catch (transformResultE) {\n return promiseRejectedWith(transformResultE);\n }\n };\n let flushAlgorithm = () => promiseResolvedWith(undefined);\n if (transformer.transform !== undefined) {\n transformAlgorithm = chunk => transformer.transform(chunk, controller);\n }\n if (transformer.flush !== undefined) {\n flushAlgorithm = () => transformer.flush(controller);\n }\n SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);\n }\n function TransformStreamDefaultControllerClearAlgorithms(controller) {\n controller._transformAlgorithm = undefined;\n controller._flushAlgorithm = undefined;\n }\n function TransformStreamDefaultControllerEnqueue(controller, chunk) {\n const stream = controller._controlledTransformStream;\n const readableController = stream._readable._readableStreamController;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController)) {\n throw new TypeError('Readable side is not in a state that permits enqueue');\n }\n // We throttle transform invocations based on the backpressure of the ReadableStream, but we still\n // accept TransformStreamDefaultControllerEnqueue() calls.\n try {\n ReadableStreamDefaultControllerEnqueue(readableController, chunk);\n }\n catch (e) {\n // This happens when readableStrategy.size() throws.\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n throw stream._readable._storedError;\n }\n const backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);\n if (backpressure !== stream._backpressure) {\n TransformStreamSetBackpressure(stream, true);\n }\n }\n function TransformStreamDefaultControllerError(controller, e) {\n TransformStreamError(controller._controlledTransformStream, e);\n }\n function TransformStreamDefaultControllerPerformTransform(controller, chunk) {\n const transformPromise = controller._transformAlgorithm(chunk);\n return transformPromiseWith(transformPromise, undefined, r => {\n TransformStreamError(controller._controlledTransformStream, r);\n throw r;\n });\n }\n function TransformStreamDefaultControllerTerminate(controller) {\n const stream = controller._controlledTransformStream;\n const readableController = stream._readable._readableStreamController;\n ReadableStreamDefaultControllerClose(readableController);\n const error = new TypeError('TransformStream terminated');\n TransformStreamErrorWritableAndUnblockWrite(stream, error);\n }\n // TransformStreamDefaultSink Algorithms\n function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {\n const controller = stream._transformStreamController;\n if (stream._backpressure) {\n const backpressureChangePromise = stream._backpressureChangePromise;\n return transformPromiseWith(backpressureChangePromise, () => {\n const writable = stream._writable;\n const state = writable._state;\n if (state === 'erroring') {\n throw writable._storedError;\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n });\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n }\n function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {\n // abort() is not called synchronously, so it is possible for abort() to be called when the stream is already\n // errored.\n TransformStreamError(stream, reason);\n return promiseResolvedWith(undefined);\n }\n function TransformStreamDefaultSinkCloseAlgorithm(stream) {\n // stream._readable cannot change after construction, so caching it across a call to user code is safe.\n const readable = stream._readable;\n const controller = stream._transformStreamController;\n const flushPromise = controller._flushAlgorithm();\n TransformStreamDefaultControllerClearAlgorithms(controller);\n // Return a promise that is fulfilled with undefined on success.\n return transformPromiseWith(flushPromise, () => {\n if (readable._state === 'errored') {\n throw readable._storedError;\n }\n ReadableStreamDefaultControllerClose(readable._readableStreamController);\n }, r => {\n TransformStreamError(stream, r);\n throw readable._storedError;\n });\n }\n // TransformStreamDefaultSource Algorithms\n function TransformStreamDefaultSourcePullAlgorithm(stream) {\n // Invariant. Enforced by the promises returned by start() and pull().\n TransformStreamSetBackpressure(stream, false);\n // Prevent the next pull() call until there is backpressure.\n return stream._backpressureChangePromise;\n }\n // Helper functions for the TransformStreamDefaultController.\n function defaultControllerBrandCheckException(name) {\n return new TypeError(`TransformStreamDefaultController.prototype.${name} can only be used on a TransformStreamDefaultController`);\n }\n // Helper functions for the TransformStream.\n function streamBrandCheckException(name) {\n return new TypeError(`TransformStream.prototype.${name} can only be used on a TransformStream`);\n }\n\n exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy;\n exports.CountQueuingStrategy = CountQueuingStrategy;\n exports.ReadableByteStreamController = ReadableByteStreamController;\n exports.ReadableStream = ReadableStream;\n exports.ReadableStreamBYOBReader = ReadableStreamBYOBReader;\n exports.ReadableStreamBYOBRequest = ReadableStreamBYOBRequest;\n exports.ReadableStreamDefaultController = ReadableStreamDefaultController;\n exports.ReadableStreamDefaultReader = ReadableStreamDefaultReader;\n exports.TransformStream = TransformStream;\n exports.TransformStreamDefaultController = TransformStreamDefaultController;\n exports.WritableStream = WritableStream;\n exports.WritableStreamDefaultController = WritableStreamDefaultController;\n exports.WritableStreamDefaultWriter = WritableStreamDefaultWriter;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=ponyfill.es2018.js.map\n","module.exports = require(\"assert\");","module.exports = require(\"buffer\");","module.exports = require(\"crypto\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"node:process\");","module.exports = require(\"node:stream/web\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"tls\");","module.exports = require(\"util\");","module.exports = require(\"worker_threads\");","/* c8 ignore start */\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\nif (!globalThis.ReadableStream) {\n // `node:stream/web` got introduced in v16.5.0 as experimental\n // and it's preferred over the polyfilled version. So we also\n // suppress the warning that gets emitted by NodeJS for using it.\n try {\n const process = require('node:process')\n const { emitWarning } = process\n try {\n process.emitWarning = () => {}\n Object.assign(globalThis, require('node:stream/web'))\n process.emitWarning = emitWarning\n } catch (error) {\n process.emitWarning = emitWarning\n throw error\n }\n } catch (error) {\n // fallback to polyfill implementation\n Object.assign(globalThis, require('web-streams-polyfill/dist/ponyfill.es2018.js'))\n }\n}\n\ntry {\n // Don't use node: prefix for this, require+node: is not supported until node v14.14\n // Only `import()` can use prefix in 12.20 and later\n const { Blob } = require('buffer')\n if (Blob && !Blob.prototype.stream) {\n Blob.prototype.stream = function name (params) {\n let position = 0\n const blob = this\n\n return new ReadableStream({\n type: 'bytes',\n async pull (ctrl) {\n const chunk = blob.slice(position, Math.min(blob.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n ctrl.enqueue(new Uint8Array(buffer))\n\n if (position === blob.size) {\n ctrl.close()\n }\n }\n })\n }\n }\n} catch (error) {}\n/* c8 ignore end */\n","import Blob from './index.js'\n\nconst _File = class File extends Blob {\n #lastModified = 0\n #name = ''\n\n /**\n * @param {*[]} fileBits\n * @param {string} fileName\n * @param {{lastModified?: number, type?: string}} options\n */// @ts-ignore\n constructor (fileBits, fileName, options = {}) {\n if (arguments.length < 2) {\n throw new TypeError(`Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`)\n }\n super(fileBits, options)\n\n if (options === null) options = {}\n\n // Simulate WebIDL type casting for NaN value in lastModified option.\n const lastModified = options.lastModified === undefined ? Date.now() : Number(options.lastModified)\n if (!Number.isNaN(lastModified)) {\n this.#lastModified = lastModified\n }\n\n this.#name = String(fileName)\n }\n\n get name () {\n return this.#name\n }\n\n get lastModified () {\n return this.#lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n\n static [Symbol.hasInstance] (object) {\n return !!object && object instanceof Blob &&\n /^(File)$/.test(object[Symbol.toStringTag])\n }\n}\n\n/** @type {typeof globalThis.File} */// @ts-ignore\nexport const File = _File\nexport default File\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:fs\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:path\");","import { statSync, createReadStream, promises as fs } from 'node:fs'\nimport { basename } from 'node:path'\nimport DOMException from 'node-domexception'\n\nimport File from './file.js'\nimport Blob from './index.js'\n\nconst { stat } = fs\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n */\nconst blobFromSync = (path, type) => fromBlob(statSync(path), path, type)\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n * @returns {Promise}\n */\nconst blobFrom = (path, type) => stat(path).then(stat => fromBlob(stat, path, type))\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n * @returns {Promise}\n */\nconst fileFrom = (path, type) => stat(path).then(stat => fromFile(stat, path, type))\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n */\nconst fileFromSync = (path, type) => fromFile(statSync(path), path, type)\n\n// @ts-ignore\nconst fromBlob = (stat, path, type = '') => new Blob([new BlobDataItem({\n path,\n size: stat.size,\n lastModified: stat.mtimeMs,\n start: 0\n})], { type })\n\n// @ts-ignore\nconst fromFile = (stat, path, type = '') => new File([new BlobDataItem({\n path,\n size: stat.size,\n lastModified: stat.mtimeMs,\n start: 0\n})], basename(path), { type, lastModified: stat.mtimeMs })\n\n/**\n * This is a blob backed up by a file on the disk\n * with minium requirement. Its wrapped around a Blob as a blobPart\n * so you have no direct access to this.\n *\n * @private\n */\nclass BlobDataItem {\n #path\n #start\n\n constructor (options) {\n this.#path = options.path\n this.#start = options.start\n this.size = options.size\n this.lastModified = options.lastModified\n }\n\n /**\n * Slicing arguments is first validated and formatted\n * to not be out of range by Blob.prototype.slice\n */\n slice (start, end) {\n return new BlobDataItem({\n path: this.#path,\n lastModified: this.lastModified,\n size: end - start,\n start: this.#start + start\n })\n }\n\n async * stream () {\n const { mtimeMs } = await stat(this.#path)\n if (mtimeMs > this.lastModified) {\n throw new DOMException('The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.', 'NotReadableError')\n }\n yield * createReadStream(this.#path, {\n start: this.#start,\n end: this.#start + this.size - 1\n })\n }\n\n get [Symbol.toStringTag] () {\n return 'Blob'\n }\n}\n\nexport default blobFromSync\nexport { File, Blob, blobFrom, blobFromSync, fileFrom, fileFromSync }\n","/*! fetch-blob. MIT License. Jimmy Wärting */\n\n// TODO (jimmywarting): in the feature use conditional loading with top level await (requires 14.x)\n// Node has recently added whatwg stream into core\n\nimport './streams.cjs'\n\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\n/** @param {(Blob | Uint8Array)[]} parts */\nasync function * toIterator (parts, clone = true) {\n for (const part of parts) {\n if ('stream' in part) {\n yield * (/** @type {AsyncIterableIterator} */ (part.stream()))\n } else if (ArrayBuffer.isView(part)) {\n if (clone) {\n let position = part.byteOffset\n const end = part.byteOffset + part.byteLength\n while (position !== end) {\n const size = Math.min(end - position, POOL_SIZE)\n const chunk = part.buffer.slice(position, position + size)\n position += chunk.byteLength\n yield new Uint8Array(chunk)\n }\n } else {\n yield part\n }\n /* c8 ignore next 10 */\n } else {\n // For blobs that have arrayBuffer but no stream method (nodes buffer.Blob)\n let position = 0, b = (/** @type {Blob} */ (part))\n while (position !== b.size) {\n const chunk = b.slice(position, Math.min(b.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n yield new Uint8Array(buffer)\n }\n }\n }\n}\n\nconst _Blob = class Blob {\n /** @type {Array.<(Blob|Uint8Array)>} */\n #parts = []\n #type = ''\n #size = 0\n #endings = 'transparent'\n\n /**\n * The Blob() constructor returns a new Blob object. The content\n * of the blob consists of the concatenation of the values given\n * in the parameter array.\n *\n * @param {*} blobParts\n * @param {{ type?: string, endings?: string }} [options]\n */\n constructor (blobParts = [], options = {}) {\n if (typeof blobParts !== 'object' || blobParts === null) {\n throw new TypeError('Failed to construct \\'Blob\\': The provided value cannot be converted to a sequence.')\n }\n\n if (typeof blobParts[Symbol.iterator] !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': The object must have a callable @@iterator property.')\n }\n\n if (typeof options !== 'object' && typeof options !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': parameter 2 cannot convert to dictionary.')\n }\n\n if (options === null) options = {}\n\n const encoder = new TextEncoder()\n for (const element of blobParts) {\n let part\n if (ArrayBuffer.isView(element)) {\n part = new Uint8Array(element.buffer.slice(element.byteOffset, element.byteOffset + element.byteLength))\n } else if (element instanceof ArrayBuffer) {\n part = new Uint8Array(element.slice(0))\n } else if (element instanceof Blob) {\n part = element\n } else {\n part = encoder.encode(`${element}`)\n }\n\n this.#size += ArrayBuffer.isView(part) ? part.byteLength : part.size\n this.#parts.push(part)\n }\n\n this.#endings = `${options.endings === undefined ? 'transparent' : options.endings}`\n const type = options.type === undefined ? '' : String(options.type)\n this.#type = /^[\\x20-\\x7E]*$/.test(type) ? type : ''\n }\n\n /**\n * The Blob interface's size property returns the\n * size of the Blob in bytes.\n */\n get size () {\n return this.#size\n }\n\n /**\n * The type property of a Blob object returns the MIME type of the file.\n */\n get type () {\n return this.#type\n }\n\n /**\n * The text() method in the Blob interface returns a Promise\n * that resolves with a string containing the contents of\n * the blob, interpreted as UTF-8.\n *\n * @return {Promise}\n */\n async text () {\n // More optimized than using this.arrayBuffer()\n // that requires twice as much ram\n const decoder = new TextDecoder()\n let str = ''\n for await (const part of toIterator(this.#parts, false)) {\n str += decoder.decode(part, { stream: true })\n }\n // Remaining\n str += decoder.decode()\n return str\n }\n\n /**\n * The arrayBuffer() method in the Blob interface returns a\n * Promise that resolves with the contents of the blob as\n * binary data contained in an ArrayBuffer.\n *\n * @return {Promise}\n */\n async arrayBuffer () {\n // Easier way... Just a unnecessary overhead\n // const view = new Uint8Array(this.size);\n // await this.stream().getReader({mode: 'byob'}).read(view);\n // return view.buffer;\n\n const data = new Uint8Array(this.size)\n let offset = 0\n for await (const chunk of toIterator(this.#parts, false)) {\n data.set(chunk, offset)\n offset += chunk.length\n }\n\n return data.buffer\n }\n\n stream () {\n const it = toIterator(this.#parts, true)\n\n return new globalThis.ReadableStream({\n // @ts-ignore\n type: 'bytes',\n async pull (ctrl) {\n const chunk = await it.next()\n chunk.done ? ctrl.close() : ctrl.enqueue(chunk.value)\n },\n\n async cancel () {\n await it.return()\n }\n })\n }\n\n /**\n * The Blob interface's slice() method creates and returns a\n * new Blob object which contains data from a subset of the\n * blob on which it's called.\n *\n * @param {number} [start]\n * @param {number} [end]\n * @param {string} [type]\n */\n slice (start = 0, end = this.size, type = '') {\n const { size } = this\n\n let relativeStart = start < 0 ? Math.max(size + start, 0) : Math.min(start, size)\n let relativeEnd = end < 0 ? Math.max(size + end, 0) : Math.min(end, size)\n\n const span = Math.max(relativeEnd - relativeStart, 0)\n const parts = this.#parts\n const blobParts = []\n let added = 0\n\n for (const part of parts) {\n // don't add the overflow to new blobParts\n if (added >= span) {\n break\n }\n\n const size = ArrayBuffer.isView(part) ? part.byteLength : part.size\n if (relativeStart && size <= relativeStart) {\n // Skip the beginning and change the relative\n // start & end position as we skip the unwanted parts\n relativeStart -= size\n relativeEnd -= size\n } else {\n let chunk\n if (ArrayBuffer.isView(part)) {\n chunk = part.subarray(relativeStart, Math.min(size, relativeEnd))\n added += chunk.byteLength\n } else {\n chunk = part.slice(relativeStart, Math.min(size, relativeEnd))\n added += chunk.size\n }\n relativeEnd -= size\n blobParts.push(chunk)\n relativeStart = 0 // All next sequential parts should start at 0\n }\n }\n\n const blob = new Blob([], { type: String(type).toLowerCase() })\n blob.#size = span\n blob.#parts = blobParts\n\n return blob\n }\n\n get [Symbol.toStringTag] () {\n return 'Blob'\n }\n\n static [Symbol.hasInstance] (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.constructor === 'function' &&\n (\n typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function'\n ) &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n }\n}\n\nObject.defineProperties(_Blob.prototype, {\n size: { enumerable: true },\n type: { enumerable: true },\n slice: { enumerable: true }\n})\n\n/** @type {typeof globalThis.Blob} */\nexport const Blob = _Blob\nexport default Blob\n","/*! formdata-polyfill. MIT License. Jimmy Wärting */\n\nimport C from 'fetch-blob'\nimport F from 'fetch-blob/file.js'\n\nvar {toStringTag:t,iterator:i,hasInstance:h}=Symbol,\nr=Math.random,\nm='append,set,get,getAll,delete,keys,values,entries,forEach,constructor'.split(','),\nf=(a,b,c)=>(a+='',/^(Blob|File)$/.test(b && b[t])?[(c=c!==void 0?c+'':b[t]=='File'?b.name:'blob',a),b.name!==c||b[t]=='blob'?new F([b],c,b):b]:[a,b+'']),\ne=(c,f)=>(f?c:c.replace(/\\r?\\n|\\r/g,'\\r\\n')).replace(/\\n/g,'%0A').replace(/\\r/g,'%0D').replace(/\"/g,'%22'),\nx=(n, a, e)=>{if(a.lengthtypeof o[m]!='function')}\nappend(...a){x('append',arguments,2);this.#d.push(f(...a))}\ndelete(a){x('delete',arguments,1);a+='';this.#d=this.#d.filter(([b])=>b!==a)}\nget(a){x('get',arguments,1);a+='';for(var b=this.#d,l=b.length,c=0;cc[0]===a&&b.push(c[1]));return b}\nhas(a){x('has',arguments,1);a+='';return this.#d.some(b=>b[0]===a)}\nforEach(a,b){x('forEach',arguments,1);for(var [c,d]of this)a.call(b,d,c,this)}\nset(...a){x('set',arguments,2);var b=[],c=!0;a=f(...a);this.#d.forEach(d=>{d[0]===a[0]?c&&(c=!b.push(a)):b.push(d)});c&&b.push(a);this.#d=b}\n*entries(){yield*this.#d}\n*keys(){for(var[a]of this)yield a}\n*values(){for(var[,a]of this)yield a}}\n\n/** @param {FormData} F */\nexport function formDataToBlob (F,B=C){\nvar b=`${r()}${r()}`.replace(/\\./g, '').slice(-28).padStart(32, '-'),c=[],p=`--${b}\\r\\nContent-Disposition: form-data; name=\"`\nF.forEach((v,n)=>typeof v=='string'\n?c.push(p+e(n)+`\"\\r\\n\\r\\n${v.replace(/\\r(?!\\n)|(? {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object.append === 'function' &&\n\t\ttypeof object.delete === 'function' &&\n\t\ttypeof object.get === 'function' &&\n\t\ttypeof object.getAll === 'function' &&\n\t\ttypeof object.has === 'function' &&\n\t\ttypeof object.set === 'function' &&\n\t\ttypeof object.sort === 'function' &&\n\t\tobject[NAME] === 'URLSearchParams'\n\t);\n};\n\n/**\n * Check if `object` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isBlob = object => {\n\treturn (\n\t\tobject &&\n\t\ttypeof object === 'object' &&\n\t\ttypeof object.arrayBuffer === 'function' &&\n\t\ttypeof object.type === 'string' &&\n\t\ttypeof object.stream === 'function' &&\n\t\ttypeof object.constructor === 'function' &&\n\t\t/^(Blob|File)$/.test(object[NAME])\n\t);\n};\n\n/**\n * Check if `obj` is an instance of AbortSignal.\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isAbortSignal = object => {\n\treturn (\n\t\ttypeof object === 'object' && (\n\t\t\tobject[NAME] === 'AbortSignal' ||\n\t\t\tobject[NAME] === 'EventTarget'\n\t\t)\n\t);\n};\n\n/**\n * isDomainOrSubdomain reports whether sub is a subdomain (or exact match) of\n * the parent domain.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nexport const isDomainOrSubdomain = (destination, original) => {\n\tconst orig = new URL(original).hostname;\n\tconst dest = new URL(destination).hostname;\n\n\treturn orig === dest || orig.endsWith(`.${dest}`);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nexport const isSameProtocol = (destination, original) => {\n\tconst orig = new URL(original).protocol;\n\tconst dest = new URL(destination).protocol;\n\n\treturn orig === dest;\n};\n","\n/**\n * Body.js\n *\n * Body interface provides common methods for Request and Response\n */\n\nimport Stream, {PassThrough} from 'node:stream';\nimport {types, deprecate, promisify} from 'node:util';\nimport {Buffer} from 'node:buffer';\n\nimport Blob from 'fetch-blob';\nimport {FormData, formDataToBlob} from 'formdata-polyfill/esm.min.js';\n\nimport {FetchError} from './errors/fetch-error.js';\nimport {FetchBaseError} from './errors/base.js';\nimport {isBlob, isURLSearchParameters} from './utils/is.js';\n\nconst pipeline = promisify(Stream.pipeline);\nconst INTERNALS = Symbol('Body internals');\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nexport default class Body {\n\tconstructor(body, {\n\t\tsize = 0\n\t} = {}) {\n\t\tlet boundary = null;\n\n\t\tif (body === null) {\n\t\t\t// Body is undefined or null\n\t\t\tbody = null;\n\t\t} else if (isURLSearchParameters(body)) {\n\t\t\t// Body is a URLSearchParams\n\t\t\tbody = Buffer.from(body.toString());\n\t\t} else if (isBlob(body)) {\n\t\t\t// Body is blob\n\t\t} else if (Buffer.isBuffer(body)) {\n\t\t\t// Body is Buffer\n\t\t} else if (types.isAnyArrayBuffer(body)) {\n\t\t\t// Body is ArrayBuffer\n\t\t\tbody = Buffer.from(body);\n\t\t} else if (ArrayBuffer.isView(body)) {\n\t\t\t// Body is ArrayBufferView\n\t\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t\t} else if (body instanceof Stream) {\n\t\t\t// Body is stream\n\t\t} else if (body instanceof FormData) {\n\t\t\t// Body is FormData\n\t\t\tbody = formDataToBlob(body);\n\t\t\tboundary = body.type.split('=')[1];\n\t\t} else {\n\t\t\t// None of the above\n\t\t\t// coerce to string then buffer\n\t\t\tbody = Buffer.from(String(body));\n\t\t}\n\n\t\tlet stream = body;\n\n\t\tif (Buffer.isBuffer(body)) {\n\t\t\tstream = Stream.Readable.from(body);\n\t\t} else if (isBlob(body)) {\n\t\t\tstream = Stream.Readable.from(body.stream());\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tbody,\n\t\t\tstream,\n\t\t\tboundary,\n\t\t\tdisturbed: false,\n\t\t\terror: null\n\t\t};\n\t\tthis.size = size;\n\n\t\tif (body instanceof Stream) {\n\t\t\tbody.on('error', error_ => {\n\t\t\t\tconst error = error_ instanceof FetchBaseError ?\n\t\t\t\t\terror_ :\n\t\t\t\t\tnew FetchError(`Invalid response body while trying to fetch ${this.url}: ${error_.message}`, 'system', error_);\n\t\t\t\tthis[INTERNALS].error = error;\n\t\t\t});\n\t\t}\n\t}\n\n\tget body() {\n\t\treturn this[INTERNALS].stream;\n\t}\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t}\n\n\t/**\n\t * Decode response as ArrayBuffer\n\t *\n\t * @return Promise\n\t */\n\tasync arrayBuffer() {\n\t\tconst {buffer, byteOffset, byteLength} = await consumeBody(this);\n\t\treturn buffer.slice(byteOffset, byteOffset + byteLength);\n\t}\n\n\tasync formData() {\n\t\tconst ct = this.headers.get('content-type');\n\n\t\tif (ct.startsWith('application/x-www-form-urlencoded')) {\n\t\t\tconst formData = new FormData();\n\t\t\tconst parameters = new URLSearchParams(await this.text());\n\n\t\t\tfor (const [name, value] of parameters) {\n\t\t\t\tformData.append(name, value);\n\t\t\t}\n\n\t\t\treturn formData;\n\t\t}\n\n\t\tconst {toFormData} = await import('./utils/multipart-parser.js');\n\t\treturn toFormData(this.body, ct);\n\t}\n\n\t/**\n\t * Return raw response as Blob\n\t *\n\t * @return Promise\n\t */\n\tasync blob() {\n\t\tconst ct = (this.headers && this.headers.get('content-type')) || (this[INTERNALS].body && this[INTERNALS].body.type) || '';\n\t\tconst buf = await this.arrayBuffer();\n\n\t\treturn new Blob([buf], {\n\t\t\ttype: ct\n\t\t});\n\t}\n\n\t/**\n\t * Decode response as json\n\t *\n\t * @return Promise\n\t */\n\tasync json() {\n\t\tconst text = await this.text();\n\t\treturn JSON.parse(text);\n\t}\n\n\t/**\n\t * Decode response as text\n\t *\n\t * @return Promise\n\t */\n\tasync text() {\n\t\tconst buffer = await consumeBody(this);\n\t\treturn new TextDecoder().decode(buffer);\n\t}\n\n\t/**\n\t * Decode response as buffer (non-spec api)\n\t *\n\t * @return Promise\n\t */\n\tbuffer() {\n\t\treturn consumeBody(this);\n\t}\n}\n\nBody.prototype.buffer = deprecate(Body.prototype.buffer, 'Please use \\'response.arrayBuffer()\\' instead of \\'response.buffer()\\'', 'node-fetch#buffer');\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: {enumerable: true},\n\tbodyUsed: {enumerable: true},\n\tarrayBuffer: {enumerable: true},\n\tblob: {enumerable: true},\n\tjson: {enumerable: true},\n\ttext: {enumerable: true},\n\tdata: {get: deprecate(() => {},\n\t\t'data doesn\\'t exist, use json(), text(), arrayBuffer(), or body instead',\n\t\t'https://github.com/node-fetch/node-fetch/issues/1000 (response)')}\n});\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nasync function consumeBody(data) {\n\tif (data[INTERNALS].disturbed) {\n\t\tthrow new TypeError(`body used already for: ${data.url}`);\n\t}\n\n\tdata[INTERNALS].disturbed = true;\n\n\tif (data[INTERNALS].error) {\n\t\tthrow data[INTERNALS].error;\n\t}\n\n\tconst {body} = data;\n\n\t// Body is null\n\tif (body === null) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t/* c8 ignore next 3 */\n\tif (!(body instanceof Stream)) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t// Body is stream\n\t// get ready to actually consume the body\n\tconst accum = [];\n\tlet accumBytes = 0;\n\n\ttry {\n\t\tfor await (const chunk of body) {\n\t\t\tif (data.size > 0 && accumBytes + chunk.length > data.size) {\n\t\t\t\tconst error = new FetchError(`content size at ${data.url} over limit: ${data.size}`, 'max-size');\n\t\t\t\tbody.destroy(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t}\n\t} catch (error) {\n\t\tconst error_ = error instanceof FetchBaseError ? error : new FetchError(`Invalid response body while trying to fetch ${data.url}: ${error.message}`, 'system', error);\n\t\tthrow error_;\n\t}\n\n\tif (body.readableEnded === true || body._readableState.ended === true) {\n\t\ttry {\n\t\t\tif (accum.every(c => typeof c === 'string')) {\n\t\t\t\treturn Buffer.from(accum.join(''));\n\t\t\t}\n\n\t\t\treturn Buffer.concat(accum, accumBytes);\n\t\t} catch (error) {\n\t\t\tthrow new FetchError(`Could not create Buffer from response body for ${data.url}: ${error.message}`, 'system', error);\n\t\t}\n\t} else {\n\t\tthrow new FetchError(`Premature close of server response while trying to fetch ${data.url}`);\n\t}\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @param String highWaterMark highWaterMark for both PassThrough body streams\n * @return Mixed\n */\nexport const clone = (instance, highWaterMark) => {\n\tlet p1;\n\tlet p2;\n\tlet {body} = instance[INTERNALS];\n\n\t// Don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// Check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif ((body instanceof Stream) && (typeof body.getBoundary !== 'function')) {\n\t\t// Tee instance body\n\t\tp1 = new PassThrough({highWaterMark});\n\t\tp2 = new PassThrough({highWaterMark});\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// Set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].stream = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n};\n\nconst getNonSpecFormDataBoundary = deprecate(\n\tbody => body.getBoundary(),\n\t'form-data doesn\\'t follow the spec and requires special treatment. Use alternative package',\n\t'https://github.com/node-fetch/node-fetch/issues/1167'\n);\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param {any} body Any options.body input\n * @returns {string | null}\n */\nexport const extractContentType = (body, request) => {\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn null;\n\t}\n\n\t// Body is string\n\tif (typeof body === 'string') {\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n\n\t// Body is a URLSearchParams\n\tif (isURLSearchParameters(body)) {\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t}\n\n\t// Body is blob\n\tif (isBlob(body)) {\n\t\treturn body.type || null;\n\t}\n\n\t// Body is a Buffer (Buffer, ArrayBuffer or ArrayBufferView)\n\tif (Buffer.isBuffer(body) || types.isAnyArrayBuffer(body) || ArrayBuffer.isView(body)) {\n\t\treturn null;\n\t}\n\n\tif (body instanceof FormData) {\n\t\treturn `multipart/form-data; boundary=${request[INTERNALS].boundary}`;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getBoundary === 'function') {\n\t\treturn `multipart/form-data;boundary=${getNonSpecFormDataBoundary(body)}`;\n\t}\n\n\t// Body is stream - can't really do much about this\n\tif (body instanceof Stream) {\n\t\treturn null;\n\t}\n\n\t// Body constructor defaults other things to string\n\treturn 'text/plain;charset=UTF-8';\n};\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param {any} obj.body Body object from the Body instance.\n * @returns {number | null}\n */\nexport const getTotalBytes = request => {\n\tconst {body} = request[INTERNALS];\n\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn 0;\n\t}\n\n\t// Body is Blob\n\tif (isBlob(body)) {\n\t\treturn body.size;\n\t}\n\n\t// Body is Buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn body.length;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getLengthSync === 'function') {\n\t\treturn body.hasKnownLength && body.hasKnownLength() ? body.getLengthSync() : null;\n\t}\n\n\t// Body is stream\n\treturn null;\n};\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param {Stream.Writable} dest The stream to write to.\n * @param obj.body Body object from the Body instance.\n * @returns {Promise}\n */\nexport const writeToStream = async (dest, {body}) => {\n\tif (body === null) {\n\t\t// Body is null\n\t\tdest.end();\n\t} else {\n\t\t// Body is stream\n\t\tawait pipeline(body, dest);\n\t}\n};\n","/**\n * Headers.js\n *\n * Headers class offers convenient helpers\n */\n\nimport {types} from 'node:util';\nimport http from 'node:http';\n\n/* c8 ignore next 9 */\nconst validateHeaderName = typeof http.validateHeaderName === 'function' ?\n\thttp.validateHeaderName :\n\tname => {\n\t\tif (!/^[\\^`\\-\\w!#$%&'*+.|~]+$/.test(name)) {\n\t\t\tconst error = new TypeError(`Header name must be a valid HTTP token [${name}]`);\n\t\t\tObject.defineProperty(error, 'code', {value: 'ERR_INVALID_HTTP_TOKEN'});\n\t\t\tthrow error;\n\t\t}\n\t};\n\n/* c8 ignore next 9 */\nconst validateHeaderValue = typeof http.validateHeaderValue === 'function' ?\n\thttp.validateHeaderValue :\n\t(name, value) => {\n\t\tif (/[^\\t\\u0020-\\u007E\\u0080-\\u00FF]/.test(value)) {\n\t\t\tconst error = new TypeError(`Invalid character in header content [\"${name}\"]`);\n\t\t\tObject.defineProperty(error, 'code', {value: 'ERR_INVALID_CHAR'});\n\t\t\tthrow error;\n\t\t}\n\t};\n\n/**\n * @typedef {Headers | Record | Iterable | Iterable>} HeadersInit\n */\n\n/**\n * This Fetch API interface allows you to perform various actions on HTTP request and response headers.\n * These actions include retrieving, setting, adding to, and removing.\n * A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs.\n * You can add to this using methods like append() (see Examples.)\n * In all methods of this interface, header names are matched by case-insensitive byte sequence.\n *\n */\nexport default class Headers extends URLSearchParams {\n\t/**\n\t * Headers class\n\t *\n\t * @constructor\n\t * @param {HeadersInit} [init] - Response headers\n\t */\n\tconstructor(init) {\n\t\t// Validate and normalize init object in [name, value(s)][]\n\t\t/** @type {string[][]} */\n\t\tlet result = [];\n\t\tif (init instanceof Headers) {\n\t\t\tconst raw = init.raw();\n\t\t\tfor (const [name, values] of Object.entries(raw)) {\n\t\t\t\tresult.push(...values.map(value => [name, value]));\n\t\t\t}\n\t\t} else if (init == null) { // eslint-disable-line no-eq-null, eqeqeq\n\t\t\t// No op\n\t\t} else if (typeof init === 'object' && !types.isBoxedPrimitive(init)) {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\t\tif (method == null) {\n\t\t\t\t// Record\n\t\t\t\tresult.push(...Object.entries(init));\n\t\t\t} else {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// Sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tresult = [...init]\n\t\t\t\t\t.map(pair => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttypeof pair !== 'object' || types.isBoxedPrimitive(pair)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tthrow new TypeError('Each header pair must be an iterable object');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [...pair];\n\t\t\t\t\t}).map(pair => {\n\t\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [...pair];\n\t\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Failed to construct \\'Headers\\': The provided value is not of type \\'(sequence> or record)');\n\t\t}\n\n\t\t// Validate and lowercase\n\t\tresult =\n\t\t\tresult.length > 0 ?\n\t\t\t\tresult.map(([name, value]) => {\n\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\treturn [String(name).toLowerCase(), String(value)];\n\t\t\t\t}) :\n\t\t\t\tundefined;\n\n\t\tsuper(result);\n\n\t\t// Returning a Proxy that will lowercase key names, validate parameters and sort keys\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn new Proxy(this, {\n\t\t\tget(target, p, receiver) {\n\t\t\t\tswitch (p) {\n\t\t\t\t\tcase 'append':\n\t\t\t\t\tcase 'set':\n\t\t\t\t\t\treturn (name, value) => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tString(name).toLowerCase(),\n\t\t\t\t\t\t\t\tString(value)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'delete':\n\t\t\t\t\tcase 'has':\n\t\t\t\t\tcase 'getAll':\n\t\t\t\t\t\treturn name => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tString(name).toLowerCase()\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'keys':\n\t\t\t\t\t\treturn () => {\n\t\t\t\t\t\t\ttarget.sort();\n\t\t\t\t\t\t\treturn new Set(URLSearchParams.prototype.keys.call(target)).keys();\n\t\t\t\t\t\t};\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn Reflect.get(target, p, receiver);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t/* c8 ignore next */\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn this.constructor.name;\n\t}\n\n\ttoString() {\n\t\treturn Object.prototype.toString.call(this);\n\t}\n\n\tget(name) {\n\t\tconst values = this.getAll(name);\n\t\tif (values.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet value = values.join(', ');\n\t\tif (/^content-encoding$/i.test(name)) {\n\t\t\tvalue = value.toLowerCase();\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tforEach(callback, thisArg = undefined) {\n\t\tfor (const name of this.keys()) {\n\t\t\tReflect.apply(callback, thisArg, [this.get(name), name, this]);\n\t\t}\n\t}\n\n\t* values() {\n\t\tfor (const name of this.keys()) {\n\t\t\tyield this.get(name);\n\t\t}\n\t}\n\n\t/**\n\t * @type {() => IterableIterator<[string, string]>}\n\t */\n\t* entries() {\n\t\tfor (const name of this.keys()) {\n\t\t\tyield [name, this.get(name)];\n\t\t}\n\t}\n\n\t[Symbol.iterator]() {\n\t\treturn this.entries();\n\t}\n\n\t/**\n\t * Node-fetch non-spec method\n\t * returning all headers and their values as array\n\t * @returns {Record}\n\t */\n\traw() {\n\t\treturn [...this.keys()].reduce((result, key) => {\n\t\t\tresult[key] = this.getAll(key);\n\t\t\treturn result;\n\t\t}, {});\n\t}\n\n\t/**\n\t * For better console.log(headers) and also to convert Headers into Node.js Request compatible format\n\t */\n\t[Symbol.for('nodejs.util.inspect.custom')]() {\n\t\treturn [...this.keys()].reduce((result, key) => {\n\t\t\tconst values = this.getAll(key);\n\t\t\t// Http.request() only supports string as Host header.\n\t\t\t// This hack makes specifying custom Host header possible.\n\t\t\tif (key === 'host') {\n\t\t\t\tresult[key] = values[0];\n\t\t\t} else {\n\t\t\t\tresult[key] = values.length > 1 ? values : values[0];\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}, {});\n\t}\n}\n\n/**\n * Re-shaping object for Web IDL tests\n * Only need to do it for overridden methods\n */\nObject.defineProperties(\n\tHeaders.prototype,\n\t['get', 'entries', 'forEach', 'values'].reduce((result, property) => {\n\t\tresult[property] = {enumerable: true};\n\t\treturn result;\n\t}, {})\n);\n\n/**\n * Create a Headers object from an http.IncomingMessage.rawHeaders, ignoring those that do\n * not conform to HTTP grammar productions.\n * @param {import('http').IncomingMessage['rawHeaders']} headers\n */\nexport function fromRawHeaders(headers = []) {\n\treturn new Headers(\n\t\theaders\n\t\t\t// Split into pairs\n\t\t\t.reduce((result, value, index, array) => {\n\t\t\t\tif (index % 2 === 0) {\n\t\t\t\t\tresult.push(array.slice(index, index + 2));\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}, [])\n\t\t\t.filter(([name, value]) => {\n\t\t\t\ttry {\n\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\treturn true;\n\t\t\t\t} catch {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t})\n\n\t);\n}\n","const redirectStatus = new Set([301, 302, 303, 307, 308]);\n\n/**\n * Redirect code matching\n *\n * @param {number} code - Status code\n * @return {boolean}\n */\nexport const isRedirect = code => {\n\treturn redirectStatus.has(code);\n};\n","/**\n * Response.js\n *\n * Response class provides content decoding\n */\n\nimport Headers from './headers.js';\nimport Body, {clone, extractContentType} from './body.js';\nimport {isRedirect} from './utils/is-redirect.js';\n\nconst INTERNALS = Symbol('Response internals');\n\n/**\n * Response class\n *\n * Ref: https://fetch.spec.whatwg.org/#response-class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nexport default class Response extends Body {\n\tconstructor(body = null, options = {}) {\n\t\tsuper(body, options);\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq, no-negated-condition\n\t\tconst status = options.status != null ? options.status : 200;\n\n\t\tconst headers = new Headers(options.headers);\n\n\t\tif (body !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body, this);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\ttype: 'default',\n\t\t\turl: options.url,\n\t\t\tstatus,\n\t\t\tstatusText: options.statusText || '',\n\t\t\theaders,\n\t\t\tcounter: options.counter,\n\t\t\thighWaterMark: options.highWaterMark\n\t\t};\n\t}\n\n\tget type() {\n\t\treturn this[INTERNALS].type;\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS].status;\n\t}\n\n\t/**\n\t * Convenience property representing if the request ended normally\n\t */\n\tget ok() {\n\t\treturn this[INTERNALS].status >= 200 && this[INTERNALS].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS].headers;\n\t}\n\n\tget highWaterMark() {\n\t\treturn this[INTERNALS].highWaterMark;\n\t}\n\n\t/**\n\t * Clone this response\n\t *\n\t * @return Response\n\t */\n\tclone() {\n\t\treturn new Response(clone(this, this.highWaterMark), {\n\t\t\ttype: this.type,\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected,\n\t\t\tsize: this.size,\n\t\t\thighWaterMark: this.highWaterMark\n\t\t});\n\t}\n\n\t/**\n\t * @param {string} url The URL that the new response is to originate from.\n\t * @param {number} status An optional status code for the response (e.g., 302.)\n\t * @returns {Response} A Response object.\n\t */\n\tstatic redirect(url, status = 302) {\n\t\tif (!isRedirect(status)) {\n\t\t\tthrow new RangeError('Failed to execute \"redirect\" on \"response\": Invalid status code');\n\t\t}\n\n\t\treturn new Response(null, {\n\t\t\theaders: {\n\t\t\t\tlocation: new URL(url).toString()\n\t\t\t},\n\t\t\tstatus\n\t\t});\n\t}\n\n\tstatic error() {\n\t\tconst response = new Response(null, {status: 0, statusText: ''});\n\t\tresponse[INTERNALS].type = 'error';\n\t\treturn response;\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Response';\n\t}\n}\n\nObject.defineProperties(Response.prototype, {\n\ttype: {enumerable: true},\n\turl: {enumerable: true},\n\tstatus: {enumerable: true},\n\tok: {enumerable: true},\n\tredirected: {enumerable: true},\n\tstatusText: {enumerable: true},\n\theaders: {enumerable: true},\n\tclone: {enumerable: true}\n});\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:url\");","export const getSearch = parsedURL => {\n\tif (parsedURL.search) {\n\t\treturn parsedURL.search;\n\t}\n\n\tconst lastOffset = parsedURL.href.length - 1;\n\tconst hash = parsedURL.hash || (parsedURL.href[lastOffset] === '#' ? '#' : '');\n\treturn parsedURL.href[lastOffset - hash.length] === '?' ? '?' : '';\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:net\");","import {isIP} from 'node:net';\n\n/**\n * @external URL\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/URL|URL}\n */\n\n/**\n * @module utils/referrer\n * @private\n */\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#strip-url|Referrer Policy §8.4. Strip url for use as a referrer}\n * @param {string} URL\n * @param {boolean} [originOnly=false]\n */\nexport function stripURLForUseAsAReferrer(url, originOnly = false) {\n\t// 1. If url is null, return no referrer.\n\tif (url == null) { // eslint-disable-line no-eq-null, eqeqeq\n\t\treturn 'no-referrer';\n\t}\n\n\turl = new URL(url);\n\n\t// 2. If url's scheme is a local scheme, then return no referrer.\n\tif (/^(about|blob|data):$/.test(url.protocol)) {\n\t\treturn 'no-referrer';\n\t}\n\n\t// 3. Set url's username to the empty string.\n\turl.username = '';\n\n\t// 4. Set url's password to null.\n\t// Note: `null` appears to be a mistake as this actually results in the password being `\"null\"`.\n\turl.password = '';\n\n\t// 5. Set url's fragment to null.\n\t// Note: `null` appears to be a mistake as this actually results in the fragment being `\"#null\"`.\n\turl.hash = '';\n\n\t// 6. If the origin-only flag is true, then:\n\tif (originOnly) {\n\t\t// 6.1. Set url's path to null.\n\t\t// Note: `null` appears to be a mistake as this actually results in the path being `\"/null\"`.\n\t\turl.pathname = '';\n\n\t\t// 6.2. Set url's query to null.\n\t\t// Note: `null` appears to be a mistake as this actually results in the query being `\"?null\"`.\n\t\turl.search = '';\n\t}\n\n\t// 7. Return url.\n\treturn url;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#enumdef-referrerpolicy|enum ReferrerPolicy}\n */\nexport const ReferrerPolicy = new Set([\n\t'',\n\t'no-referrer',\n\t'no-referrer-when-downgrade',\n\t'same-origin',\n\t'origin',\n\t'strict-origin',\n\t'origin-when-cross-origin',\n\t'strict-origin-when-cross-origin',\n\t'unsafe-url'\n]);\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#default-referrer-policy|default referrer policy}\n */\nexport const DEFAULT_REFERRER_POLICY = 'strict-origin-when-cross-origin';\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#referrer-policies|Referrer Policy §3. Referrer Policies}\n * @param {string} referrerPolicy\n * @returns {string} referrerPolicy\n */\nexport function validateReferrerPolicy(referrerPolicy) {\n\tif (!ReferrerPolicy.has(referrerPolicy)) {\n\t\tthrow new TypeError(`Invalid referrerPolicy: ${referrerPolicy}`);\n\t}\n\n\treturn referrerPolicy;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-origin-trustworthy|Referrer Policy §3.2. Is origin potentially trustworthy?}\n * @param {external:URL} url\n * @returns `true`: \"Potentially Trustworthy\", `false`: \"Not Trustworthy\"\n */\nexport function isOriginPotentiallyTrustworthy(url) {\n\t// 1. If origin is an opaque origin, return \"Not Trustworthy\".\n\t// Not applicable\n\n\t// 2. Assert: origin is a tuple origin.\n\t// Not for implementations\n\n\t// 3. If origin's scheme is either \"https\" or \"wss\", return \"Potentially Trustworthy\".\n\tif (/^(http|ws)s:$/.test(url.protocol)) {\n\t\treturn true;\n\t}\n\n\t// 4. If origin's host component matches one of the CIDR notations 127.0.0.0/8 or ::1/128 [RFC4632], return \"Potentially Trustworthy\".\n\tconst hostIp = url.host.replace(/(^\\[)|(]$)/g, '');\n\tconst hostIPVersion = isIP(hostIp);\n\n\tif (hostIPVersion === 4 && /^127\\./.test(hostIp)) {\n\t\treturn true;\n\t}\n\n\tif (hostIPVersion === 6 && /^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(hostIp)) {\n\t\treturn true;\n\t}\n\n\t// 5. If origin's host component is \"localhost\" or falls within \".localhost\", and the user agent conforms to the name resolution rules in [let-localhost-be-localhost], return \"Potentially Trustworthy\".\n\t// We are returning FALSE here because we cannot ensure conformance to\n\t// let-localhost-be-loalhost (https://tools.ietf.org/html/draft-west-let-localhost-be-localhost)\n\tif (url.host === 'localhost' || url.host.endsWith('.localhost')) {\n\t\treturn false;\n\t}\n\n\t// 6. If origin's scheme component is file, return \"Potentially Trustworthy\".\n\tif (url.protocol === 'file:') {\n\t\treturn true;\n\t}\n\n\t// 7. If origin's scheme component is one which the user agent considers to be authenticated, return \"Potentially Trustworthy\".\n\t// Not supported\n\n\t// 8. If origin has been configured as a trustworthy origin, return \"Potentially Trustworthy\".\n\t// Not supported\n\n\t// 9. Return \"Not Trustworthy\".\n\treturn false;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-url-trustworthy|Referrer Policy §3.3. Is url potentially trustworthy?}\n * @param {external:URL} url\n * @returns `true`: \"Potentially Trustworthy\", `false`: \"Not Trustworthy\"\n */\nexport function isUrlPotentiallyTrustworthy(url) {\n\t// 1. If url is \"about:blank\" or \"about:srcdoc\", return \"Potentially Trustworthy\".\n\tif (/^about:(blank|srcdoc)$/.test(url)) {\n\t\treturn true;\n\t}\n\n\t// 2. If url's scheme is \"data\", return \"Potentially Trustworthy\".\n\tif (url.protocol === 'data:') {\n\t\treturn true;\n\t}\n\n\t// Note: The origin of blob: and filesystem: URLs is the origin of the context in which they were\n\t// created. Therefore, blobs created in a trustworthy origin will themselves be potentially\n\t// trustworthy.\n\tif (/^(blob|filesystem):$/.test(url.protocol)) {\n\t\treturn true;\n\t}\n\n\t// 3. Return the result of executing §3.2 Is origin potentially trustworthy? on url's origin.\n\treturn isOriginPotentiallyTrustworthy(url);\n}\n\n/**\n * Modifies the referrerURL to enforce any extra security policy considerations.\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}, step 7\n * @callback module:utils/referrer~referrerURLCallback\n * @param {external:URL} referrerURL\n * @returns {external:URL} modified referrerURL\n */\n\n/**\n * Modifies the referrerOrigin to enforce any extra security policy considerations.\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}, step 7\n * @callback module:utils/referrer~referrerOriginCallback\n * @param {external:URL} referrerOrigin\n * @returns {external:URL} modified referrerOrigin\n */\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}\n * @param {Request} request\n * @param {object} o\n * @param {module:utils/referrer~referrerURLCallback} o.referrerURLCallback\n * @param {module:utils/referrer~referrerOriginCallback} o.referrerOriginCallback\n * @returns {external:URL} Request's referrer\n */\nexport function determineRequestsReferrer(request, {referrerURLCallback, referrerOriginCallback} = {}) {\n\t// There are 2 notes in the specification about invalid pre-conditions. We return null, here, for\n\t// these cases:\n\t// > Note: If request's referrer is \"no-referrer\", Fetch will not call into this algorithm.\n\t// > Note: If request's referrer policy is the empty string, Fetch will not call into this\n\t// > algorithm.\n\tif (request.referrer === 'no-referrer' || request.referrerPolicy === '') {\n\t\treturn null;\n\t}\n\n\t// 1. Let policy be request's associated referrer policy.\n\tconst policy = request.referrerPolicy;\n\n\t// 2. Let environment be request's client.\n\t// not applicable to node.js\n\n\t// 3. Switch on request's referrer:\n\tif (request.referrer === 'about:client') {\n\t\treturn 'no-referrer';\n\t}\n\n\t// \"a URL\": Let referrerSource be request's referrer.\n\tconst referrerSource = request.referrer;\n\n\t// 4. Let request's referrerURL be the result of stripping referrerSource for use as a referrer.\n\tlet referrerURL = stripURLForUseAsAReferrer(referrerSource);\n\n\t// 5. Let referrerOrigin be the result of stripping referrerSource for use as a referrer, with the\n\t// origin-only flag set to true.\n\tlet referrerOrigin = stripURLForUseAsAReferrer(referrerSource, true);\n\n\t// 6. If the result of serializing referrerURL is a string whose length is greater than 4096, set\n\t// referrerURL to referrerOrigin.\n\tif (referrerURL.toString().length > 4096) {\n\t\treferrerURL = referrerOrigin;\n\t}\n\n\t// 7. The user agent MAY alter referrerURL or referrerOrigin at this point to enforce arbitrary\n\t// policy considerations in the interests of minimizing data leakage. For example, the user\n\t// agent could strip the URL down to an origin, modify its host, replace it with an empty\n\t// string, etc.\n\tif (referrerURLCallback) {\n\t\treferrerURL = referrerURLCallback(referrerURL);\n\t}\n\n\tif (referrerOriginCallback) {\n\t\treferrerOrigin = referrerOriginCallback(referrerOrigin);\n\t}\n\n\t// 8.Execute the statements corresponding to the value of policy:\n\tconst currentURL = new URL(request.url);\n\n\tswitch (policy) {\n\t\tcase 'no-referrer':\n\t\t\treturn 'no-referrer';\n\n\t\tcase 'origin':\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'unsafe-url':\n\t\t\treturn referrerURL;\n\n\t\tcase 'strict-origin':\n\t\t\t// 1. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 2. Return referrerOrigin.\n\t\t\treturn referrerOrigin.toString();\n\n\t\tcase 'strict-origin-when-cross-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// 2. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 3. Return referrerOrigin.\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'same-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// 2. Return no referrer.\n\t\t\treturn 'no-referrer';\n\n\t\tcase 'origin-when-cross-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// Return referrerOrigin.\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'no-referrer-when-downgrade':\n\t\t\t// 1. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 2. Return referrerURL.\n\t\t\treturn referrerURL;\n\n\t\tdefault:\n\t\t\tthrow new TypeError(`Invalid referrerPolicy: ${policy}`);\n\t}\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#parse-referrer-policy-from-header|Referrer Policy §8.1. Parse a referrer policy from a Referrer-Policy header}\n * @param {Headers} headers Response headers\n * @returns {string} policy\n */\nexport function parseReferrerPolicyFromHeader(headers) {\n\t// 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy`\n\t// and response’s header list.\n\tconst policyTokens = (headers.get('referrer-policy') || '').split(/[,\\s]+/);\n\n\t// 2. Let policy be the empty string.\n\tlet policy = '';\n\n\t// 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty\n\t// string, then set policy to token.\n\t// Note: This algorithm loops over multiple policy values to allow deployment of new policy\n\t// values with fallbacks for older user agents, as described in § 11.1 Unknown Policy Values.\n\tfor (const token of policyTokens) {\n\t\tif (token && ReferrerPolicy.has(token)) {\n\t\t\tpolicy = token;\n\t\t}\n\t}\n\n\t// 4. Return policy.\n\treturn policy;\n}\n","/**\n * Request.js\n *\n * Request class contains server only options\n *\n * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.\n */\n\nimport {format as formatUrl} from 'node:url';\nimport {deprecate} from 'node:util';\nimport Headers from './headers.js';\nimport Body, {clone, extractContentType, getTotalBytes} from './body.js';\nimport {isAbortSignal} from './utils/is.js';\nimport {getSearch} from './utils/get-search.js';\nimport {\n\tvalidateReferrerPolicy, determineRequestsReferrer, DEFAULT_REFERRER_POLICY\n} from './utils/referrer.js';\n\nconst INTERNALS = Symbol('Request internals');\n\n/**\n * Check if `obj` is an instance of Request.\n *\n * @param {*} object\n * @return {boolean}\n */\nconst isRequest = object => {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object[INTERNALS] === 'object'\n\t);\n};\n\nconst doBadDataWarn = deprecate(() => {},\n\t'.data is not a valid RequestInit property, use .body instead',\n\t'https://github.com/node-fetch/node-fetch/issues/1000 (request)');\n\n/**\n * Request class\n *\n * Ref: https://fetch.spec.whatwg.org/#request-class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nexport default class Request extends Body {\n\tconstructor(input, init = {}) {\n\t\tlet parsedURL;\n\n\t\t// Normalize input and force URL to be encoded as UTF-8 (https://github.com/node-fetch/node-fetch/issues/245)\n\t\tif (isRequest(input)) {\n\t\t\tparsedURL = new URL(input.url);\n\t\t} else {\n\t\t\tparsedURL = new URL(input);\n\t\t\tinput = {};\n\t\t}\n\n\t\tif (parsedURL.username !== '' || parsedURL.password !== '') {\n\t\t\tthrow new TypeError(`${parsedURL} is an url with embedded credentials.`);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tif (/^(delete|get|head|options|post|put)$/i.test(method)) {\n\t\t\tmethod = method.toUpperCase();\n\t\t}\n\n\t\tif (!isRequest(init) && 'data' in init) {\n\t\t\tdoBadDataWarn();\n\t\t}\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif ((init.body != null || (isRequest(input) && input.body !== null)) &&\n\t\t\t(method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tconst inputBody = init.body ?\n\t\t\tinit.body :\n\t\t\t(isRequest(input) && input.body !== null ?\n\t\t\t\tclone(input) :\n\t\t\t\tnull);\n\n\t\tsuper(inputBody, {\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody, this);\n\t\t\tif (contentType) {\n\t\t\t\theaders.set('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ?\n\t\t\tinput.signal :\n\t\t\tnull;\n\t\tif ('signal' in init) {\n\t\t\tsignal = init.signal;\n\t\t}\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal or EventTarget');\n\t\t}\n\n\t\t// §5.4, Request constructor steps, step 15.1\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tlet referrer = init.referrer == null ? input.referrer : init.referrer;\n\t\tif (referrer === '') {\n\t\t\t// §5.4, Request constructor steps, step 15.2\n\t\t\treferrer = 'no-referrer';\n\t\t} else if (referrer) {\n\t\t\t// §5.4, Request constructor steps, step 15.3.1, 15.3.2\n\t\t\tconst parsedReferrer = new URL(referrer);\n\t\t\t// §5.4, Request constructor steps, step 15.3.3, 15.3.4\n\t\t\treferrer = /^about:(\\/\\/)?client$/.test(parsedReferrer) ? 'client' : parsedReferrer;\n\t\t} else {\n\t\t\treferrer = undefined;\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal,\n\t\t\treferrer\n\t\t};\n\n\t\t// Node-fetch-only options\n\t\tthis.follow = init.follow === undefined ? (input.follow === undefined ? 20 : input.follow) : init.follow;\n\t\tthis.compress = init.compress === undefined ? (input.compress === undefined ? true : input.compress) : init.compress;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t\tthis.highWaterMark = init.highWaterMark || input.highWaterMark || 16384;\n\t\tthis.insecureHTTPParser = init.insecureHTTPParser || input.insecureHTTPParser || false;\n\n\t\t// §5.4, Request constructor steps, step 16.\n\t\t// Default is empty string per https://fetch.spec.whatwg.org/#concept-request-referrer-policy\n\t\tthis.referrerPolicy = init.referrerPolicy || input.referrerPolicy || '';\n\t}\n\n\t/** @returns {string} */\n\tget method() {\n\t\treturn this[INTERNALS].method;\n\t}\n\n\t/** @returns {string} */\n\tget url() {\n\t\treturn formatUrl(this[INTERNALS].parsedURL);\n\t}\n\n\t/** @returns {Headers} */\n\tget headers() {\n\t\treturn this[INTERNALS].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS].redirect;\n\t}\n\n\t/** @returns {AbortSignal} */\n\tget signal() {\n\t\treturn this[INTERNALS].signal;\n\t}\n\n\t// https://fetch.spec.whatwg.org/#dom-request-referrer\n\tget referrer() {\n\t\tif (this[INTERNALS].referrer === 'no-referrer') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (this[INTERNALS].referrer === 'client') {\n\t\t\treturn 'about:client';\n\t\t}\n\n\t\tif (this[INTERNALS].referrer) {\n\t\t\treturn this[INTERNALS].referrer.toString();\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget referrerPolicy() {\n\t\treturn this[INTERNALS].referrerPolicy;\n\t}\n\n\tset referrerPolicy(referrerPolicy) {\n\t\tthis[INTERNALS].referrerPolicy = validateReferrerPolicy(referrerPolicy);\n\t}\n\n\t/**\n\t * Clone this request\n\t *\n\t * @return Request\n\t */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Request';\n\t}\n}\n\nObject.defineProperties(Request.prototype, {\n\tmethod: {enumerable: true},\n\turl: {enumerable: true},\n\theaders: {enumerable: true},\n\tredirect: {enumerable: true},\n\tclone: {enumerable: true},\n\tsignal: {enumerable: true},\n\treferrer: {enumerable: true},\n\treferrerPolicy: {enumerable: true}\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param {Request} request - A Request instance\n * @return The options object to be passed to http.request\n */\nexport const getNodeRequestOptions = request => {\n\tconst {parsedURL} = request[INTERNALS];\n\tconst headers = new Headers(request[INTERNALS].headers);\n\n\t// Fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body === null && /^(post|put)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\n\tif (request.body !== null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\t// Set Content-Length if totalBytes is a number (that is not NaN)\n\t\tif (typeof totalBytes === 'number' && !Number.isNaN(totalBytes)) {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// 4.1. Main fetch, step 2.6\n\t// > If request's referrer policy is the empty string, then set request's referrer policy to the\n\t// > default referrer policy.\n\tif (request.referrerPolicy === '') {\n\t\trequest.referrerPolicy = DEFAULT_REFERRER_POLICY;\n\t}\n\n\t// 4.1. Main fetch, step 2.7\n\t// > If request's referrer is not \"no-referrer\", set request's referrer to the result of invoking\n\t// > determine request's referrer.\n\tif (request.referrer && request.referrer !== 'no-referrer') {\n\t\trequest[INTERNALS].referrer = determineRequestsReferrer(request);\n\t} else {\n\t\trequest[INTERNALS].referrer = 'no-referrer';\n\t}\n\n\t// 4.5. HTTP-network-or-cache fetch, step 6.9\n\t// > If httpRequest's referrer is a URL, then append `Referer`/httpRequest's referrer, serialized\n\t// > and isomorphic encoded, to httpRequest's header list.\n\tif (request[INTERNALS].referrer instanceof URL) {\n\t\theaders.set('Referer', request.referrer);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip, deflate, br');\n\t}\n\n\tlet {agent} = request;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\tconst search = getSearch(parsedURL);\n\n\t// Pass the full URL directly to request(), but overwrite the following\n\t// options:\n\tconst options = {\n\t\t// Overwrite search to retain trailing ? (issue #776)\n\t\tpath: parsedURL.pathname + search,\n\t\t// The following options are not expressed in the URL\n\t\tmethod: request.method,\n\t\theaders: headers[Symbol.for('nodejs.util.inspect.custom')](),\n\t\tinsecureHTTPParser: request.insecureHTTPParser,\n\t\tagent\n\t};\n\n\treturn {\n\t\t/** @type {URL} */\n\t\tparsedURL,\n\t\toptions\n\t};\n};\n","import {FetchBaseError} from './base.js';\n\n/**\n * AbortError interface for cancelled requests\n */\nexport class AbortError extends FetchBaseError {\n\tconstructor(message, type = 'aborted') {\n\t\tsuper(message, type);\n\t}\n}\n","/**\n * Index.js\n *\n * a request API compatible with window.fetch\n *\n * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.\n */\n\nimport http from 'node:http';\nimport https from 'node:https';\nimport zlib from 'node:zlib';\nimport Stream, {PassThrough, pipeline as pump} from 'node:stream';\nimport {Buffer} from 'node:buffer';\n\nimport dataUriToBuffer from 'data-uri-to-buffer';\n\nimport {writeToStream, clone} from './body.js';\nimport Response from './response.js';\nimport Headers, {fromRawHeaders} from './headers.js';\nimport Request, {getNodeRequestOptions} from './request.js';\nimport {FetchError} from './errors/fetch-error.js';\nimport {AbortError} from './errors/abort-error.js';\nimport {isRedirect} from './utils/is-redirect.js';\nimport {FormData} from 'formdata-polyfill/esm.min.js';\nimport {isDomainOrSubdomain, isSameProtocol} from './utils/is.js';\nimport {parseReferrerPolicyFromHeader} from './utils/referrer.js';\nimport {\n\tBlob,\n\tFile,\n\tfileFromSync,\n\tfileFrom,\n\tblobFromSync,\n\tblobFrom\n} from 'fetch-blob/from.js';\n\nexport {FormData, Headers, Request, Response, FetchError, AbortError, isRedirect};\nexport {Blob, File, fileFromSync, fileFrom, blobFromSync, blobFrom};\n\nconst supportedSchemas = new Set(['data:', 'http:', 'https:']);\n\n/**\n * Fetch function\n *\n * @param {string | URL | import('./request').default} url - Absolute url or Request instance\n * @param {*} [options_] - Fetch options\n * @return {Promise}\n */\nexport default async function fetch(url, options_) {\n\treturn new Promise((resolve, reject) => {\n\t\t// Build request object\n\t\tconst request = new Request(url, options_);\n\t\tconst {parsedURL, options} = getNodeRequestOptions(request);\n\t\tif (!supportedSchemas.has(parsedURL.protocol)) {\n\t\t\tthrow new TypeError(`node-fetch cannot load ${url}. URL scheme \"${parsedURL.protocol.replace(/:$/, '')}\" is not supported.`);\n\t\t}\n\n\t\tif (parsedURL.protocol === 'data:') {\n\t\t\tconst data = dataUriToBuffer(request.url);\n\t\t\tconst response = new Response(data, {headers: {'Content-Type': data.typeFull}});\n\t\t\tresolve(response);\n\t\t\treturn;\n\t\t}\n\n\t\t// Wrap http.request into fetch\n\t\tconst send = (parsedURL.protocol === 'https:' ? https : http).request;\n\t\tconst {signal} = request;\n\t\tlet response = null;\n\n\t\tconst abort = () => {\n\t\t\tconst error = new AbortError('The operation was aborted.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\n\t\t\tif (!response || !response.body) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = () => {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// Send request\n\t\tconst request_ = send(parsedURL.toString(), options);\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tconst finalize = () => {\n\t\t\trequest_.abort();\n\t\t\tif (signal) {\n\t\t\t\tsignal.removeEventListener('abort', abortAndFinalize);\n\t\t\t}\n\t\t};\n\n\t\trequest_.on('error', error => {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${error.message}`, 'system', error));\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(request_, error => {\n\t\t\tif (response && response.body) {\n\t\t\t\tresponse.body.destroy(error);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (process.version < 'v14') {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\trequest_.on('socket', s => {\n\t\t\t\tlet endedWithEventsCount;\n\t\t\t\ts.prependListener('end', () => {\n\t\t\t\t\tendedWithEventsCount = s._eventsCount;\n\t\t\t\t});\n\t\t\t\ts.prependListener('close', hadError => {\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && endedWithEventsCount < s._eventsCount && !hadError) {\n\t\t\t\t\t\tconst error = new Error('Premature close');\n\t\t\t\t\t\terror.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\trequest_.on('response', response_ => {\n\t\t\trequest_.setTimeout(0);\n\t\t\tconst headers = fromRawHeaders(response_.rawHeaders);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (isRedirect(response_.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL(location, request.url);\n\t\t\t\t} catch {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// Nothing to do\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow': {\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOptions = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: clone(request),\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\tsize: request.size,\n\t\t\t\t\t\t\treferrer: request.referrer,\n\t\t\t\t\t\t\treferrerPolicy: request.referrerPolicy\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// when forwarding sensitive headers like \"Authorization\",\n\t\t\t\t\t\t// \"WWW-Authenticate\", and \"Cookie\" to untrusted targets,\n\t\t\t\t\t\t// headers will be ignored when following a redirect to a domain\n\t\t\t\t\t\t// that is not a subdomain match or exact match of the initial domain.\n\t\t\t\t\t\t// For example, a redirect from \"foo.com\" to either \"foo.com\" or \"sub.foo.com\"\n\t\t\t\t\t\t// will forward the sensitive headers, but a redirect to \"bar.com\" will not.\n\t\t\t\t\t\t// headers will also be ignored when following a redirect to a domain using\n\t\t\t\t\t\t// a different protocol. For example, a redirect from \"https://foo.com\" to \"http://foo.com\"\n\t\t\t\t\t\t// will not forward the sensitive headers\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOptions.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (response_.statusCode !== 303 && request.body && options_.body instanceof Stream.Readable) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (response_.statusCode === 303 || ((response_.statusCode === 301 || response_.statusCode === 302) && request.method === 'POST')) {\n\t\t\t\t\t\t\trequestOptions.method = 'GET';\n\t\t\t\t\t\t\trequestOptions.body = undefined;\n\t\t\t\t\t\t\trequestOptions.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 14\n\t\t\t\t\t\tconst responseReferrerPolicy = parseReferrerPolicyFromHeader(headers);\n\t\t\t\t\t\tif (responseReferrerPolicy) {\n\t\t\t\t\t\t\trequestOptions.referrerPolicy = responseReferrerPolicy;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOptions)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn reject(new TypeError(`Redirect option '${request.redirect}' is not a valid value of RequestRedirect`));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Prepare response\n\t\t\tif (signal) {\n\t\t\t\tresponse_.once('end', () => {\n\t\t\t\t\tsignal.removeEventListener('abort', abortAndFinalize);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tlet body = pump(response_, new PassThrough(), error => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t});\n\t\t\t// see https://github.com/nodejs/node/pull/29376\n\t\t\t/* c8 ignore next 3 */\n\t\t\tif (process.version < 'v12.10') {\n\t\t\t\tresponse_.on('aborted', abortAndFinalize);\n\t\t\t}\n\n\t\t\tconst responseOptions = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: response_.statusCode,\n\t\t\t\tstatusText: response_.statusMessage,\n\t\t\t\theaders,\n\t\t\t\tsize: request.size,\n\t\t\t\tcounter: request.counter,\n\t\t\t\thighWaterMark: request.highWaterMark\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || response_.statusCode === 204 || response_.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// For gzip\n\t\t\tif (codings === 'gzip' || codings === 'x-gzip') {\n\t\t\t\tbody = pump(body, zlib.createGunzip(zlibOptions), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For deflate\n\t\t\tif (codings === 'deflate' || codings === 'x-deflate') {\n\t\t\t\t// Handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = pump(response_, new PassThrough(), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\traw.once('data', chunk => {\n\t\t\t\t\t// See http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflate(), error => {\n\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflateRaw(), error => {\n\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.once('end', () => {\n\t\t\t\t\t// Some old IIS servers return zero-length OK deflate responses, so\n\t\t\t\t\t// 'data' is never emitted. See https://github.com/node-fetch/node-fetch/pull/903\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For br\n\t\t\tif (codings === 'br') {\n\t\t\t\tbody = pump(body, zlib.createBrotliDecompress(), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Otherwise, use response as-is\n\t\t\tresponse = new Response(body, responseOptions);\n\t\t\tresolve(response);\n\t\t});\n\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\twriteToStream(request_, request).catch(reject);\n\t});\n}\n\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tconst LAST_CHUNK = Buffer.from('0\\r\\n\\r\\n');\n\n\tlet isChunkedTransfer = false;\n\tlet properLastChunkReceived = false;\n\tlet previousChunk;\n\n\trequest.on('response', response => {\n\t\tconst {headers} = response;\n\t\tisChunkedTransfer = headers['transfer-encoding'] === 'chunked' && !headers['content-length'];\n\t});\n\n\trequest.on('socket', socket => {\n\t\tconst onSocketClose = () => {\n\t\t\tif (isChunkedTransfer && !properLastChunkReceived) {\n\t\t\t\tconst error = new Error('Premature close');\n\t\t\t\terror.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\terrorCallback(error);\n\t\t\t}\n\t\t};\n\n\t\tconst onData = buf => {\n\t\t\tproperLastChunkReceived = Buffer.compare(buf.slice(-5), LAST_CHUNK) === 0;\n\n\t\t\t// Sometimes final 0-length chunk and end of message code are in separate packets\n\t\t\tif (!properLastChunkReceived && previousChunk) {\n\t\t\t\tproperLastChunkReceived = (\n\t\t\t\t\tBuffer.compare(previousChunk.slice(-3), LAST_CHUNK.slice(0, 3)) === 0 &&\n\t\t\t\t\tBuffer.compare(buf.slice(-2), LAST_CHUNK.slice(3)) === 0\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tpreviousChunk = buf;\n\t\t};\n\n\t\tsocket.prependListener('close', onSocketClose);\n\t\tsocket.on('data', onData);\n\n\t\trequest.on('close', () => {\n\t\t\tsocket.removeListener('close', onSocketClose);\n\t\t\tsocket.removeListener('data', onData);\n\t\t});\n\t});\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".index.js\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"loaded\", otherwise not loaded yet\nvar installedChunks = {\n\t179: 1\n};\n\n// no on chunks loaded\n\nvar installChunk = (chunk) => {\n\tvar moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\tfor(var i = 0; i < chunkIds.length; i++)\n\t\tinstalledChunks[chunkIds[i]] = 1;\n\n};\n\n// require() chunk loading for javascript\n__webpack_require__.f.require = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\tinstallChunk(require(\"./\" + __webpack_require__.u(chunkId)));\n\t\t} else installedChunks[chunkId] = 1;\n\t}\n};\n\n// no external install chunk\n\n// no HMR\n\n// no HMR manifest","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(9496);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/UA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACfA;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpnIA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;;ACAA;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AChDA;;ACAA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACzPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvCA;;ACAA;;ACAA;;ACAA;;ACAA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC1QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5IA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACRA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACnVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACRA;AACA;AACA;AACA;AACA;;;;;ACJA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACNA;AACA;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AErCA;AACA;AACA;AACA","sources":["../webpack://webhook-action/./dist/http.js","../webpack://webhook-action/./dist/main.js","../webpack://webhook-action/./node_modules/@actions/core/lib/command.js","../webpack://webhook-action/./node_modules/@actions/core/lib/core.js","../webpack://webhook-action/./node_modules/@actions/core/lib/file-command.js","../webpack://webhook-action/./node_modules/@actions/core/lib/oidc-utils.js","../webpack://webhook-action/./node_modules/@actions/core/lib/path-utils.js","../webpack://webhook-action/./node_modules/@actions/core/lib/summary.js","../webpack://webhook-action/./node_modules/@actions/core/lib/utils.js","../webpack://webhook-action/./node_modules/@actions/core/node_modules/uuid/dist/index.js","../webpack://webhook-action/./node_modules/@actions/core/node_modules/uuid/dist/md5.js","../webpack://webhook-action/./node_modules/@actions/core/node_modules/uuid/dist/nil.js","../webpack://webhook-action/./node_modules/@actions/core/node_modules/uuid/dist/parse.js","../webpack://webhook-action/./node_modules/@actions/core/node_modules/uuid/dist/regex.js","../webpack://webhook-action/./node_modules/@actions/core/node_modules/uuid/dist/rng.js","../webpack://webhook-action/./node_modules/@actions/core/node_modules/uuid/dist/sha1.js","../webpack://webhook-action/./node_modules/@actions/core/node_modules/uuid/dist/stringify.js","../webpack://webhook-action/./node_modules/@actions/core/node_modules/uuid/dist/v1.js","../webpack://webhook-action/./node_modules/@actions/core/node_modules/uuid/dist/v3.js","../webpack://webhook-action/./node_modules/@actions/core/node_modules/uuid/dist/v35.js","../webpack://webhook-action/./node_modules/@actions/core/node_modules/uuid/dist/v4.js","../webpack://webhook-action/./node_modules/@actions/core/node_modules/uuid/dist/v5.js","../webpack://webhook-action/./node_modules/@actions/core/node_modules/uuid/dist/validate.js","../webpack://webhook-action/./node_modules/@actions/core/node_modules/uuid/dist/version.js","../webpack://webhook-action/./node_modules/@actions/http-client/lib/auth.js","../webpack://webhook-action/./node_modules/@actions/http-client/lib/index.js","../webpack://webhook-action/./node_modules/@actions/http-client/lib/proxy.js","../webpack://webhook-action/./node_modules/node-domexception/index.js","../webpack://webhook-action/./node_modules/tunnel/index.js","../webpack://webhook-action/./node_modules/tunnel/lib/tunnel.js","../webpack://webhook-action/./node_modules/web-streams-polyfill/dist/ponyfill.es2018.js","../webpack://webhook-action/external node-commonjs \"assert\"","../webpack://webhook-action/external node-commonjs \"buffer\"","../webpack://webhook-action/external node-commonjs \"crypto\"","../webpack://webhook-action/external node-commonjs \"events\"","../webpack://webhook-action/external node-commonjs \"fs\"","../webpack://webhook-action/external node-commonjs \"http\"","../webpack://webhook-action/external node-commonjs \"https\"","../webpack://webhook-action/external node-commonjs \"net\"","../webpack://webhook-action/external node-commonjs \"node:process\"","../webpack://webhook-action/external node-commonjs \"node:stream/web\"","../webpack://webhook-action/external node-commonjs \"os\"","../webpack://webhook-action/external node-commonjs \"path\"","../webpack://webhook-action/external node-commonjs \"tls\"","../webpack://webhook-action/external node-commonjs \"util\"","../webpack://webhook-action/external node-commonjs \"worker_threads\"","../webpack://webhook-action/./node_modules/fetch-blob/streams.cjs","../webpack://webhook-action/./node_modules/fetch-blob/file.js","../webpack://webhook-action/external node-commonjs \"node:fs\"","../webpack://webhook-action/external node-commonjs \"node:path\"","../webpack://webhook-action/./node_modules/fetch-blob/from.js","../webpack://webhook-action/./node_modules/fetch-blob/index.js","../webpack://webhook-action/./node_modules/formdata-polyfill/esm.min.js","../webpack://webhook-action/external node-commonjs \"node:http\"","../webpack://webhook-action/external node-commonjs \"node:https\"","../webpack://webhook-action/external node-commonjs \"node:zlib\"","../webpack://webhook-action/external node-commonjs \"node:stream\"","../webpack://webhook-action/external node-commonjs \"node:buffer\"","../webpack://webhook-action/./node_modules/data-uri-to-buffer/dist/index.js","../webpack://webhook-action/external node-commonjs \"node:util\"","../webpack://webhook-action/./node_modules/node-fetch/src/errors/base.js","../webpack://webhook-action/./node_modules/node-fetch/src/errors/fetch-error.js","../webpack://webhook-action/./node_modules/node-fetch/src/utils/is.js","../webpack://webhook-action/./node_modules/node-fetch/src/body.js","../webpack://webhook-action/./node_modules/node-fetch/src/headers.js","../webpack://webhook-action/./node_modules/node-fetch/src/utils/is-redirect.js","../webpack://webhook-action/./node_modules/node-fetch/src/response.js","../webpack://webhook-action/external node-commonjs \"node:url\"","../webpack://webhook-action/./node_modules/node-fetch/src/utils/get-search.js","../webpack://webhook-action/external node-commonjs \"node:net\"","../webpack://webhook-action/./node_modules/node-fetch/src/utils/referrer.js","../webpack://webhook-action/./node_modules/node-fetch/src/request.js","../webpack://webhook-action/./node_modules/node-fetch/src/errors/abort-error.js","../webpack://webhook-action/./node_modules/node-fetch/src/index.js","../webpack://webhook-action/webpack/bootstrap","../webpack://webhook-action/webpack/runtime/define property getters","../webpack://webhook-action/webpack/runtime/ensure chunk","../webpack://webhook-action/webpack/runtime/get javascript chunk filename","../webpack://webhook-action/webpack/runtime/hasOwnProperty shorthand","../webpack://webhook-action/webpack/runtime/make namespace object","../webpack://webhook-action/webpack/runtime/compat","../webpack://webhook-action/webpack/runtime/require chunk loading","../webpack://webhook-action/webpack/before-startup","../webpack://webhook-action/webpack/startup","../webpack://webhook-action/webpack/after-startup"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.http = void 0;\nvar fetch = require('node-fetch');\nvar https = require('https');\nvar Http = (function () {\n function Http() {\n }\n Http.prototype.make = function (url, headers, body, ignoreCertificate) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n fetch(url, _this.getOptions('post', headers, body, ignoreCertificate)).then(function (res) { return resolve(res); });\n });\n };\n Http.prototype.getOptions = function (method, headers, body, ignoreCertificate) {\n var options = {\n headers: headers ? JSON.parse(headers) : {},\n method: method\n };\n if (body) {\n options.body = body;\n }\n if (ignoreCertificate) {\n options.agent = new https.Agent({ rejectUnauthorized: false });\n }\n options.headers['content-type'] = 'application/json';\n return options;\n };\n return Http;\n}());\nexports.http = new Http();\n//# sourceMappingURL=http.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar core = require(\"@actions/core\");\nvar http_1 = require(\"./http\");\nfunction run() {\n return __awaiter(this, void 0, void 0, function () {\n var url, headers, body, insecure;\n return __generator(this, function (_a) {\n url = core.getInput('url')\n ? core.getInput('url')\n : process.env.WEBHOOK_URL\n ? process.env.WEBHOOK_URL\n : '';\n headers = core.getInput('headers')\n ? core.getInput('headers')\n : process.env.headers\n ? process.env.headers\n : null;\n body = core.getInput('body')\n ? core.getInput('body')\n : process.env.data\n ? process.env.data\n : null;\n insecure = core.getInput('insecure')\n ? core.getInput('insecure') == 'true'\n : process.env.insecure\n ? process.env.insecure == 'true'\n : false;\n if (!url) {\n core.setFailed('A url is required to run this action.');\n throw new Error('A url is required to run this action.');\n }\n core.info(\"Sending webhook request to \".concat(url));\n core.debug(new Date().toTimeString());\n http_1.http\n .make(url, headers, body, insecure)\n .then(function (res) {\n if (res.status >= 400) {\n error(res.status);\n return;\n }\n core.info(\"Received status code: \".concat(res.status));\n core.info(new Date().toTimeString());\n })\n .catch(function (err) {\n error(err.status);\n return;\n });\n return [2];\n });\n });\n}\nfunction error(statusCode) {\n core.setFailed(\"Received status code: \".concat(statusCode));\n throw new Error(\"Request failed with status code: \".concat(statusCode));\n}\nrun();\n//# sourceMappingURL=main.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\nconst oidc_utils_1 = require(\"./oidc-utils\");\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val));\n }\n command_1.issueCommand('set-env', { name }, convertedVal);\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueFileCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n if (options && options.trimWhitespace === false) {\n return inputs;\n }\n return inputs.map(input => input.trim());\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n const filePath = process.env['GITHUB_OUTPUT'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value));\n }\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value));\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n const filePath = process.env['GITHUB_STATE'] || '';\n if (filePath) {\n return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value));\n }\n command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value));\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\nfunction getIDToken(aud) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield oidc_utils_1.OidcClient.getIDToken(aud);\n });\n}\nexports.getIDToken = getIDToken;\n/**\n * Summary exports\n */\nvar summary_1 = require(\"./summary\");\nObject.defineProperty(exports, \"summary\", { enumerable: true, get: function () { return summary_1.summary; } });\n/**\n * @deprecated use core.summary\n */\nvar summary_2 = require(\"./summary\");\nObject.defineProperty(exports, \"markdownSummary\", { enumerable: true, get: function () { return summary_2.markdownSummary; } });\n/**\n * Path exports\n */\nvar path_utils_1 = require(\"./path-utils\");\nObject.defineProperty(exports, \"toPosixPath\", { enumerable: true, get: function () { return path_utils_1.toPosixPath; } });\nObject.defineProperty(exports, \"toWin32Path\", { enumerable: true, get: function () { return path_utils_1.toWin32Path; } });\nObject.defineProperty(exports, \"toPlatformPath\", { enumerable: true, get: function () { return path_utils_1.toPlatformPath; } });\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareKeyValueMessage = exports.issueFileCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst uuid_1 = require(\"uuid\");\nconst utils_1 = require(\"./utils\");\nfunction issueFileCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueFileCommand = issueFileCommand;\nfunction prepareKeyValueMessage(key, value) {\n const delimiter = `ghadelimiter_${uuid_1.v4()}`;\n const convertedValue = utils_1.toCommandValue(value);\n // These should realistically never happen, but just in case someone finds a\n // way to exploit uuid generation let's not allow keys or values that contain\n // the delimiter.\n if (key.includes(delimiter)) {\n throw new Error(`Unexpected input: name should not contain the delimiter \"${delimiter}\"`);\n }\n if (convertedValue.includes(delimiter)) {\n throw new Error(`Unexpected input: value should not contain the delimiter \"${delimiter}\"`);\n }\n return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`;\n}\nexports.prepareKeyValueMessage = prepareKeyValueMessage;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OidcClient = void 0;\nconst http_client_1 = require(\"@actions/http-client\");\nconst auth_1 = require(\"@actions/http-client/lib/auth\");\nconst core_1 = require(\"./core\");\nclass OidcClient {\n static createHttpClient(allowRetry = true, maxRetry = 10) {\n const requestOptions = {\n allowRetries: allowRetry,\n maxRetries: maxRetry\n };\n return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions);\n }\n static getRequestToken() {\n const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN'];\n if (!token) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable');\n }\n return token;\n }\n static getIDTokenUrl() {\n const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL'];\n if (!runtimeUrl) {\n throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable');\n }\n return runtimeUrl;\n }\n static getCall(id_token_url) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const httpclient = OidcClient.createHttpClient();\n const res = yield httpclient\n .getJson(id_token_url)\n .catch(error => {\n throw new Error(`Failed to get ID Token. \\n \n Error Code : ${error.statusCode}\\n \n Error Message: ${error.result.message}`);\n });\n const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;\n if (!id_token) {\n throw new Error('Response json body do not have ID Token field');\n }\n return id_token;\n });\n }\n static getIDToken(audience) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // New ID Token is requested from action service\n let id_token_url = OidcClient.getIDTokenUrl();\n if (audience) {\n const encodedAudience = encodeURIComponent(audience);\n id_token_url = `${id_token_url}&audience=${encodedAudience}`;\n }\n core_1.debug(`ID token url is ${id_token_url}`);\n const id_token = yield OidcClient.getCall(id_token_url);\n core_1.setSecret(id_token);\n return id_token;\n }\n catch (error) {\n throw new Error(`Error message: ${error.message}`);\n }\n });\n }\n}\nexports.OidcClient = OidcClient;\n//# sourceMappingURL=oidc-utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0;\nconst path = __importStar(require(\"path\"));\n/**\n * toPosixPath converts the given path to the posix form. On Windows, \\\\ will be\n * replaced with /.\n *\n * @param pth. Path to transform.\n * @return string Posix path.\n */\nfunction toPosixPath(pth) {\n return pth.replace(/[\\\\]/g, '/');\n}\nexports.toPosixPath = toPosixPath;\n/**\n * toWin32Path converts the given path to the win32 form. On Linux, / will be\n * replaced with \\\\.\n *\n * @param pth. Path to transform.\n * @return string Win32 path.\n */\nfunction toWin32Path(pth) {\n return pth.replace(/[/]/g, '\\\\');\n}\nexports.toWin32Path = toWin32Path;\n/**\n * toPlatformPath converts the given path to a platform-specific path. It does\n * this by replacing instances of / and \\ with the platform-specific path\n * separator.\n *\n * @param pth The path to platformize.\n * @return string The platform-specific path.\n */\nfunction toPlatformPath(pth) {\n return pth.replace(/[/\\\\]/g, path.sep);\n}\nexports.toPlatformPath = toPlatformPath;\n//# sourceMappingURL=path-utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0;\nconst os_1 = require(\"os\");\nconst fs_1 = require(\"fs\");\nconst { access, appendFile, writeFile } = fs_1.promises;\nexports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY';\nexports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary';\nclass Summary {\n constructor() {\n this._buffer = '';\n }\n /**\n * Finds the summary file path from the environment, rejects if env var is not found or file does not exist\n * Also checks r/w permissions.\n *\n * @returns step summary file path\n */\n filePath() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._filePath) {\n return this._filePath;\n }\n const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR];\n if (!pathFromEnv) {\n throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`);\n }\n try {\n yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK);\n }\n catch (_a) {\n throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`);\n }\n this._filePath = pathFromEnv;\n return this._filePath;\n });\n }\n /**\n * Wraps content in an HTML tag, adding any HTML attributes\n *\n * @param {string} tag HTML tag to wrap\n * @param {string | null} content content within the tag\n * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add\n *\n * @returns {string} content wrapped in HTML element\n */\n wrap(tag, content, attrs = {}) {\n const htmlAttrs = Object.entries(attrs)\n .map(([key, value]) => ` ${key}=\"${value}\"`)\n .join('');\n if (!content) {\n return `<${tag}${htmlAttrs}>`;\n }\n return `<${tag}${htmlAttrs}>${content}`;\n }\n /**\n * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default.\n *\n * @param {SummaryWriteOptions} [options] (optional) options for write operation\n *\n * @returns {Promise} summary instance\n */\n write(options) {\n return __awaiter(this, void 0, void 0, function* () {\n const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite);\n const filePath = yield this.filePath();\n const writeFunc = overwrite ? writeFile : appendFile;\n yield writeFunc(filePath, this._buffer, { encoding: 'utf8' });\n return this.emptyBuffer();\n });\n }\n /**\n * Clears the summary buffer and wipes the summary file\n *\n * @returns {Summary} summary instance\n */\n clear() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.emptyBuffer().write({ overwrite: true });\n });\n }\n /**\n * Returns the current summary buffer as a string\n *\n * @returns {string} string of summary buffer\n */\n stringify() {\n return this._buffer;\n }\n /**\n * If the summary buffer is empty\n *\n * @returns {boolen} true if the buffer is empty\n */\n isEmptyBuffer() {\n return this._buffer.length === 0;\n }\n /**\n * Resets the summary buffer without writing to summary file\n *\n * @returns {Summary} summary instance\n */\n emptyBuffer() {\n this._buffer = '';\n return this;\n }\n /**\n * Adds raw text to the summary buffer\n *\n * @param {string} text content to add\n * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false)\n *\n * @returns {Summary} summary instance\n */\n addRaw(text, addEOL = false) {\n this._buffer += text;\n return addEOL ? this.addEOL() : this;\n }\n /**\n * Adds the operating system-specific end-of-line marker to the buffer\n *\n * @returns {Summary} summary instance\n */\n addEOL() {\n return this.addRaw(os_1.EOL);\n }\n /**\n * Adds an HTML codeblock to the summary buffer\n *\n * @param {string} code content to render within fenced code block\n * @param {string} lang (optional) language to syntax highlight code\n *\n * @returns {Summary} summary instance\n */\n addCodeBlock(code, lang) {\n const attrs = Object.assign({}, (lang && { lang }));\n const element = this.wrap('pre', this.wrap('code', code), attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML list to the summary buffer\n *\n * @param {string[]} items list of items to render\n * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false)\n *\n * @returns {Summary} summary instance\n */\n addList(items, ordered = false) {\n const tag = ordered ? 'ol' : 'ul';\n const listItems = items.map(item => this.wrap('li', item)).join('');\n const element = this.wrap(tag, listItems);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML table to the summary buffer\n *\n * @param {SummaryTableCell[]} rows table rows\n *\n * @returns {Summary} summary instance\n */\n addTable(rows) {\n const tableBody = rows\n .map(row => {\n const cells = row\n .map(cell => {\n if (typeof cell === 'string') {\n return this.wrap('td', cell);\n }\n const { header, data, colspan, rowspan } = cell;\n const tag = header ? 'th' : 'td';\n const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan }));\n return this.wrap(tag, data, attrs);\n })\n .join('');\n return this.wrap('tr', cells);\n })\n .join('');\n const element = this.wrap('table', tableBody);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds a collapsable HTML details element to the summary buffer\n *\n * @param {string} label text for the closed state\n * @param {string} content collapsable content\n *\n * @returns {Summary} summary instance\n */\n addDetails(label, content) {\n const element = this.wrap('details', this.wrap('summary', label) + content);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML image tag to the summary buffer\n *\n * @param {string} src path to the image you to embed\n * @param {string} alt text description of the image\n * @param {SummaryImageOptions} options (optional) addition image attributes\n *\n * @returns {Summary} summary instance\n */\n addImage(src, alt, options) {\n const { width, height } = options || {};\n const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height }));\n const element = this.wrap('img', null, Object.assign({ src, alt }, attrs));\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML section heading element\n *\n * @param {string} text heading text\n * @param {number | string} [level=1] (optional) the heading level, default: 1\n *\n * @returns {Summary} summary instance\n */\n addHeading(text, level) {\n const tag = `h${level}`;\n const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag)\n ? tag\n : 'h1';\n const element = this.wrap(allowedTag, text);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML thematic break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addSeparator() {\n const element = this.wrap('hr', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML line break (
) to the summary buffer\n *\n * @returns {Summary} summary instance\n */\n addBreak() {\n const element = this.wrap('br', null);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML blockquote to the summary buffer\n *\n * @param {string} text quote text\n * @param {string} cite (optional) citation url\n *\n * @returns {Summary} summary instance\n */\n addQuote(text, cite) {\n const attrs = Object.assign({}, (cite && { cite }));\n const element = this.wrap('blockquote', text, attrs);\n return this.addRaw(element).addEOL();\n }\n /**\n * Adds an HTML anchor tag to the summary buffer\n *\n * @param {string} text link text/content\n * @param {string} href hyperlink\n *\n * @returns {Summary} summary instance\n */\n addLink(text, href) {\n const element = this.wrap('a', text, { href });\n return this.addRaw(element).addEOL();\n }\n}\nconst _summary = new Summary();\n/**\n * @deprecated use `core.summary`\n */\nexports.markdownSummary = _summary;\nexports.summary = _summary;\n//# sourceMappingURL=summary.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n file: annotationProperties.file,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function () {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function () {\n return _version.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function () {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function () {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function () {\n return _parse.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction md5(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('md5').update(bytes).digest();\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\n\nfunction rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n _crypto.default.randomFillSync(rnds8Pool);\n\n poolPtr = 0;\n }\n\n return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _crypto = _interopRequireDefault(require(\"crypto\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction sha1(bytes) {\n if (Array.isArray(bytes)) {\n bytes = Buffer.from(bytes);\n } else if (typeof bytes === 'string') {\n bytes = Buffer.from(bytes, 'utf8');\n }\n\n return _crypto.default.createHash('sha1').update(bytes).digest();\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\nvar _default = version;\nexports.default = _default;","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0;\nclass BasicCredentialHandler {\n constructor(username, password) {\n this.username = username;\n this.password = password;\n }\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\nclass BearerCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Bearer ${this.token}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\nclass PersonalAccessTokenCredentialHandler {\n constructor(token) {\n this.token = token;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!options.headers) {\n throw Error('The request has no headers');\n }\n options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`;\n }\n // This handler cannot handle 401\n canHandleAuthentication() {\n return false;\n }\n handleAuthentication() {\n return __awaiter(this, void 0, void 0, function* () {\n throw new Error('not implemented');\n });\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n//# sourceMappingURL=auth.js.map","\"use strict\";\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0;\nconst http = __importStar(require(\"http\"));\nconst https = __importStar(require(\"https\"));\nconst pm = __importStar(require(\"./proxy\"));\nconst tunnel = __importStar(require(\"tunnel\"));\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n const proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n }));\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n const parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n });\n }\n get(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n });\n }\n del(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n });\n }\n post(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n });\n }\n patch(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n });\n }\n put(requestUrl, data, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n });\n }\n head(requestUrl, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n });\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return __awaiter(this, void 0, void 0, function* () {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n });\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n getJson(requestUrl, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n const res = yield this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n postJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n putJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n patchJson(requestUrl, obj, additionalHeaders = {}) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n const res = yield this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n });\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n const parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb)\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n do {\n response = yield this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (const handler of this.handlers) {\n if (handler.canHandleAuthentication(response)) {\n authenticationHandler = handler;\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (response.message.statusCode &&\n HttpRedirectCodes.includes(response.message.statusCode) &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n const parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol === 'https:' &&\n parsedUrl.protocol !== parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (const header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (!response.message.statusCode ||\n !HttpResponseRetryCodes.includes(response.message.statusCode)) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n } while (numTries < maxTries);\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => {\n function callbackForResult(err, res) {\n if (err) {\n reject(err);\n }\n else if (!res) {\n // If `err` is not passed, then `res` must be passed.\n reject(new Error('Unknown error'));\n }\n else {\n resolve(res);\n }\n }\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n if (typeof data === 'string') {\n if (!info.options.headers) {\n info.options.headers = {};\n }\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n function handleResult(err, res) {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n }\n const req = info.httpModule.request(info.options, (msg) => {\n const res = new HttpClientResponse(msg);\n handleResult(undefined, res);\n });\n let socket;\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error(`Request timeout: ${info.options.path}`));\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n const parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n for (const handler of this.handlers) {\n handler.prepareRequest(info.options);\n }\n }\n return info;\n }\n _mergeHeaders(headers) {\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {}));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n const proxyUrl = pm.getProxyUrl(parsedUrl);\n const useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis.\n if (proxyUrl && proxyUrl.hostname) {\n const agentOptions = {\n maxSockets,\n keepAlive: this._keepAlive,\n proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n })), { host: proxyUrl.hostname, port: proxyUrl.port })\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n });\n }\n _processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode || 0;\n const response = {\n statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode === HttpCodes.NotFound) {\n resolve(response);\n }\n // get the result from the body\n function dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n const a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n let obj;\n let contents;\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = `Failed request: (${statusCode})`;\n }\n const err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.HttpClient = HttpClient;\nconst lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkBypass = exports.getProxyUrl = void 0;\nfunction getProxyUrl(reqUrl) {\n const usingSsl = reqUrl.protocol === 'https:';\n if (checkBypass(reqUrl)) {\n return undefined;\n }\n const proxyVar = (() => {\n if (usingSsl) {\n return process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n return process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n })();\n if (proxyVar) {\n return new URL(proxyVar);\n }\n else {\n return undefined;\n }\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n const upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (const upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n//# sourceMappingURL=proxy.js.map","/*! node-domexception. MIT License. Jimmy Wärting */\n\nif (!globalThis.DOMException) {\n try {\n const { MessageChannel } = require('worker_threads'),\n port = new MessageChannel().port1,\n ab = new ArrayBuffer()\n port.postMessage(ab, [ab, ab])\n } catch (err) {\n err.constructor.name === 'DOMException' && (\n globalThis.DOMException = err.constructor\n )\n }\n}\n\nmodule.exports = globalThis.DOMException\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","/**\n * web-streams-polyfill v3.2.1\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.WebStreamsPolyfill = {}));\n}(this, (function (exports) { 'use strict';\n\n /// \n const SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ?\n Symbol :\n description => `Symbol(${description})`;\n\n /// \n function noop() {\n return undefined;\n }\n function getGlobals() {\n if (typeof self !== 'undefined') {\n return self;\n }\n else if (typeof window !== 'undefined') {\n return window;\n }\n else if (typeof global !== 'undefined') {\n return global;\n }\n return undefined;\n }\n const globals = getGlobals();\n\n function typeIsObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n }\n const rethrowAssertionErrorRejection = noop;\n\n const originalPromise = Promise;\n const originalPromiseThen = Promise.prototype.then;\n const originalPromiseResolve = Promise.resolve.bind(originalPromise);\n const originalPromiseReject = Promise.reject.bind(originalPromise);\n function newPromise(executor) {\n return new originalPromise(executor);\n }\n function promiseResolvedWith(value) {\n return originalPromiseResolve(value);\n }\n function promiseRejectedWith(reason) {\n return originalPromiseReject(reason);\n }\n function PerformPromiseThen(promise, onFulfilled, onRejected) {\n // There doesn't appear to be any way to correctly emulate the behaviour from JavaScript, so this is just an\n // approximation.\n return originalPromiseThen.call(promise, onFulfilled, onRejected);\n }\n function uponPromise(promise, onFulfilled, onRejected) {\n PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection);\n }\n function uponFulfillment(promise, onFulfilled) {\n uponPromise(promise, onFulfilled);\n }\n function uponRejection(promise, onRejected) {\n uponPromise(promise, undefined, onRejected);\n }\n function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) {\n return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler);\n }\n function setPromiseIsHandledToTrue(promise) {\n PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection);\n }\n const queueMicrotask = (() => {\n const globalQueueMicrotask = globals && globals.queueMicrotask;\n if (typeof globalQueueMicrotask === 'function') {\n return globalQueueMicrotask;\n }\n const resolvedPromise = promiseResolvedWith(undefined);\n return (fn) => PerformPromiseThen(resolvedPromise, fn);\n })();\n function reflectCall(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n return Function.prototype.apply.call(F, V, args);\n }\n function promiseCall(F, V, args) {\n try {\n return promiseResolvedWith(reflectCall(F, V, args));\n }\n catch (value) {\n return promiseRejectedWith(value);\n }\n }\n\n // Original from Chromium\n // https://chromium.googlesource.com/chromium/src/+/0aee4434a4dba42a42abaea9bfbc0cd196a63bc1/third_party/blink/renderer/core/streams/SimpleQueue.js\n const QUEUE_MAX_ARRAY_SIZE = 16384;\n /**\n * Simple queue structure.\n *\n * Avoids scalability issues with using a packed array directly by using\n * multiple arrays in a linked list and keeping the array size bounded.\n */\n class SimpleQueue {\n constructor() {\n this._cursor = 0;\n this._size = 0;\n // _front and _back are always defined.\n this._front = {\n _elements: [],\n _next: undefined\n };\n this._back = this._front;\n // The cursor is used to avoid calling Array.shift().\n // It contains the index of the front element of the array inside the\n // front-most node. It is always in the range [0, QUEUE_MAX_ARRAY_SIZE).\n this._cursor = 0;\n // When there is only one node, size === elements.length - cursor.\n this._size = 0;\n }\n get length() {\n return this._size;\n }\n // For exception safety, this method is structured in order:\n // 1. Read state\n // 2. Calculate required state mutations\n // 3. Perform state mutations\n push(element) {\n const oldBack = this._back;\n let newBack = oldBack;\n if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {\n newBack = {\n _elements: [],\n _next: undefined\n };\n }\n // push() is the mutation most likely to throw an exception, so it\n // goes first.\n oldBack._elements.push(element);\n if (newBack !== oldBack) {\n this._back = newBack;\n oldBack._next = newBack;\n }\n ++this._size;\n }\n // Like push(), shift() follows the read -> calculate -> mutate pattern for\n // exception safety.\n shift() { // must not be called on an empty queue\n const oldFront = this._front;\n let newFront = oldFront;\n const oldCursor = this._cursor;\n let newCursor = oldCursor + 1;\n const elements = oldFront._elements;\n const element = elements[oldCursor];\n if (newCursor === QUEUE_MAX_ARRAY_SIZE) {\n newFront = oldFront._next;\n newCursor = 0;\n }\n // No mutations before this point.\n --this._size;\n this._cursor = newCursor;\n if (oldFront !== newFront) {\n this._front = newFront;\n }\n // Permit shifted element to be garbage collected.\n elements[oldCursor] = undefined;\n return element;\n }\n // The tricky thing about forEach() is that it can be called\n // re-entrantly. The queue may be mutated inside the callback. It is easy to\n // see that push() within the callback has no negative effects since the end\n // of the queue is checked for on every iteration. If shift() is called\n // repeatedly within the callback then the next iteration may return an\n // element that has been removed. In this case the callback will be called\n // with undefined values until we either \"catch up\" with elements that still\n // exist or reach the back of the queue.\n forEach(callback) {\n let i = this._cursor;\n let node = this._front;\n let elements = node._elements;\n while (i !== elements.length || node._next !== undefined) {\n if (i === elements.length) {\n node = node._next;\n elements = node._elements;\n i = 0;\n if (elements.length === 0) {\n break;\n }\n }\n callback(elements[i]);\n ++i;\n }\n }\n // Return the element that would be returned if shift() was called now,\n // without modifying the queue.\n peek() { // must not be called on an empty queue\n const front = this._front;\n const cursor = this._cursor;\n return front._elements[cursor];\n }\n }\n\n function ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\n if (stream._state === 'readable') {\n defaultReaderClosedPromiseInitialize(reader);\n }\n else if (stream._state === 'closed') {\n defaultReaderClosedPromiseInitializeAsResolved(reader);\n }\n else {\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n }\n }\n // A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\n // check.\n function ReadableStreamReaderGenericCancel(reader, reason) {\n const stream = reader._ownerReadableStream;\n return ReadableStreamCancel(stream, reason);\n }\n function ReadableStreamReaderGenericRelease(reader) {\n if (reader._ownerReadableStream._state === 'readable') {\n defaultReaderClosedPromiseReject(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`));\n }\n else {\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`));\n }\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n }\n // Helper functions for the readers.\n function readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n }\n // Helper functions for the ReadableStreamDefaultReader.\n function defaultReaderClosedPromiseInitialize(reader) {\n reader._closedPromise = newPromise((resolve, reject) => {\n reader._closedPromise_resolve = resolve;\n reader._closedPromise_reject = reject;\n });\n }\n function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseReject(reader, reason);\n }\n function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n defaultReaderClosedPromiseInitialize(reader);\n defaultReaderClosedPromiseResolve(reader);\n }\n function defaultReaderClosedPromiseReject(reader, reason) {\n if (reader._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(reader._closedPromise);\n reader._closedPromise_reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n defaultReaderClosedPromiseInitializeAsRejected(reader, reason);\n }\n function defaultReaderClosedPromiseResolve(reader) {\n if (reader._closedPromise_resolve === undefined) {\n return;\n }\n reader._closedPromise_resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n }\n\n const AbortSteps = SymbolPolyfill('[[AbortSteps]]');\n const ErrorSteps = SymbolPolyfill('[[ErrorSteps]]');\n const CancelSteps = SymbolPolyfill('[[CancelSteps]]');\n const PullSteps = SymbolPolyfill('[[PullSteps]]');\n\n /// \n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite#Polyfill\n const NumberIsFinite = Number.isFinite || function (x) {\n return typeof x === 'number' && isFinite(x);\n };\n\n /// \n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc#Polyfill\n const MathTrunc = Math.trunc || function (v) {\n return v < 0 ? Math.ceil(v) : Math.floor(v);\n };\n\n // https://heycam.github.io/webidl/#idl-dictionaries\n function isDictionary(x) {\n return typeof x === 'object' || typeof x === 'function';\n }\n function assertDictionary(obj, context) {\n if (obj !== undefined && !isDictionary(obj)) {\n throw new TypeError(`${context} is not an object.`);\n }\n }\n // https://heycam.github.io/webidl/#idl-callback-functions\n function assertFunction(x, context) {\n if (typeof x !== 'function') {\n throw new TypeError(`${context} is not a function.`);\n }\n }\n // https://heycam.github.io/webidl/#idl-object\n function isObject(x) {\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\n }\n function assertObject(x, context) {\n if (!isObject(x)) {\n throw new TypeError(`${context} is not an object.`);\n }\n }\n function assertRequiredArgument(x, position, context) {\n if (x === undefined) {\n throw new TypeError(`Parameter ${position} is required in '${context}'.`);\n }\n }\n function assertRequiredField(x, field, context) {\n if (x === undefined) {\n throw new TypeError(`${field} is required in '${context}'.`);\n }\n }\n // https://heycam.github.io/webidl/#idl-unrestricted-double\n function convertUnrestrictedDouble(value) {\n return Number(value);\n }\n function censorNegativeZero(x) {\n return x === 0 ? 0 : x;\n }\n function integerPart(x) {\n return censorNegativeZero(MathTrunc(x));\n }\n // https://heycam.github.io/webidl/#idl-unsigned-long-long\n function convertUnsignedLongLongWithEnforceRange(value, context) {\n const lowerBound = 0;\n const upperBound = Number.MAX_SAFE_INTEGER;\n let x = Number(value);\n x = censorNegativeZero(x);\n if (!NumberIsFinite(x)) {\n throw new TypeError(`${context} is not a finite number`);\n }\n x = integerPart(x);\n if (x < lowerBound || x > upperBound) {\n throw new TypeError(`${context} is outside the accepted range of ${lowerBound} to ${upperBound}, inclusive`);\n }\n if (!NumberIsFinite(x) || x === 0) {\n return 0;\n }\n // TODO Use BigInt if supported?\n // let xBigInt = BigInt(integerPart(x));\n // xBigInt = BigInt.asUintN(64, xBigInt);\n // return Number(xBigInt);\n return x;\n }\n\n function assertReadableStream(x, context) {\n if (!IsReadableStream(x)) {\n throw new TypeError(`${context} is not a ReadableStream.`);\n }\n }\n\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamAddReadRequest(stream, readRequest) {\n stream._reader._readRequests.push(readRequest);\n }\n function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n const reader = stream._reader;\n const readRequest = reader._readRequests.shift();\n if (done) {\n readRequest._closeSteps();\n }\n else {\n readRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n }\n function ReadableStreamHasDefaultReader(stream) {\n const reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamDefaultReader(reader)) {\n return false;\n }\n return true;\n }\n /**\n * A default reader vended by a {@link ReadableStream}.\n *\n * @public\n */\n class ReadableStreamDefaultReader {\n constructor(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamDefaultReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readRequests = new SimpleQueue();\n }\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed,\n * or rejected if the stream ever errors or the reader's lock is released before the stream finishes closing.\n */\n get closed() {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n /**\n * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n */\n cancel(reason = undefined) {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n /**\n * Returns a promise that allows access to the next chunk from the stream's internal queue, if available.\n *\n * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n */\n read() {\n if (!IsReadableStreamDefaultReader(this)) {\n return promiseRejectedWith(defaultReaderBrandCheckException('read'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n let resolvePromise;\n let rejectPromise;\n const promise = newPromise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n const readRequest = {\n _chunkSteps: chunk => resolvePromise({ value: chunk, done: false }),\n _closeSteps: () => resolvePromise({ value: undefined, done: true }),\n _errorSteps: e => rejectPromise(e)\n };\n ReadableStreamDefaultReaderRead(this, readRequest);\n return promise;\n }\n /**\n * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n * from now on; otherwise, the reader will appear closed.\n *\n * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n * the reader's {@link ReadableStreamDefaultReader.read | read()} method has not yet been settled. Attempting to\n * do so will throw a `TypeError` and leave the reader locked to the stream.\n */\n releaseLock() {\n if (!IsReadableStreamDefaultReader(this)) {\n throw defaultReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n }\n }\n Object.defineProperties(ReadableStreamDefaultReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultReader',\n configurable: true\n });\n }\n // Abstract operations for the readers.\n function IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n return x instanceof ReadableStreamDefaultReader;\n }\n function ReadableStreamDefaultReaderRead(reader, readRequest) {\n const stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'closed') {\n readRequest._closeSteps();\n }\n else if (stream._state === 'errored') {\n readRequest._errorSteps(stream._storedError);\n }\n else {\n stream._readableStreamController[PullSteps](readRequest);\n }\n }\n // Helper functions for the ReadableStreamDefaultReader.\n function defaultReaderBrandCheckException(name) {\n return new TypeError(`ReadableStreamDefaultReader.prototype.${name} can only be used on a ReadableStreamDefaultReader`);\n }\n\n /// \n /* eslint-disable @typescript-eslint/no-empty-function */\n const AsyncIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf(async function* () { }).prototype);\n\n /// \n class ReadableStreamAsyncIteratorImpl {\n constructor(reader, preventCancel) {\n this._ongoingPromise = undefined;\n this._isFinished = false;\n this._reader = reader;\n this._preventCancel = preventCancel;\n }\n next() {\n const nextSteps = () => this._nextSteps();\n this._ongoingPromise = this._ongoingPromise ?\n transformPromiseWith(this._ongoingPromise, nextSteps, nextSteps) :\n nextSteps();\n return this._ongoingPromise;\n }\n return(value) {\n const returnSteps = () => this._returnSteps(value);\n return this._ongoingPromise ?\n transformPromiseWith(this._ongoingPromise, returnSteps, returnSteps) :\n returnSteps();\n }\n _nextSteps() {\n if (this._isFinished) {\n return Promise.resolve({ value: undefined, done: true });\n }\n const reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('iterate'));\n }\n let resolvePromise;\n let rejectPromise;\n const promise = newPromise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n const readRequest = {\n _chunkSteps: chunk => {\n this._ongoingPromise = undefined;\n // This needs to be delayed by one microtask, otherwise we stop pulling too early which breaks a test.\n // FIXME Is this a bug in the specification, or in the test?\n queueMicrotask(() => resolvePromise({ value: chunk, done: false }));\n },\n _closeSteps: () => {\n this._ongoingPromise = undefined;\n this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n resolvePromise({ value: undefined, done: true });\n },\n _errorSteps: reason => {\n this._ongoingPromise = undefined;\n this._isFinished = true;\n ReadableStreamReaderGenericRelease(reader);\n rejectPromise(reason);\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promise;\n }\n _returnSteps(value) {\n if (this._isFinished) {\n return Promise.resolve({ value, done: true });\n }\n this._isFinished = true;\n const reader = this._reader;\n if (reader._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('finish iterating'));\n }\n if (!this._preventCancel) {\n const result = ReadableStreamReaderGenericCancel(reader, value);\n ReadableStreamReaderGenericRelease(reader);\n return transformPromiseWith(result, () => ({ value, done: true }));\n }\n ReadableStreamReaderGenericRelease(reader);\n return promiseResolvedWith({ value, done: true });\n }\n }\n const ReadableStreamAsyncIteratorPrototype = {\n next() {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\n }\n return this._asyncIteratorImpl.next();\n },\n return(value) {\n if (!IsReadableStreamAsyncIterator(this)) {\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('return'));\n }\n return this._asyncIteratorImpl.return(value);\n }\n };\n if (AsyncIteratorPrototype !== undefined) {\n Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);\n }\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamAsyncIterator(stream, preventCancel) {\n const reader = AcquireReadableStreamDefaultReader(stream);\n const impl = new ReadableStreamAsyncIteratorImpl(reader, preventCancel);\n const iterator = Object.create(ReadableStreamAsyncIteratorPrototype);\n iterator._asyncIteratorImpl = impl;\n return iterator;\n }\n function IsReadableStreamAsyncIterator(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorImpl')) {\n return false;\n }\n try {\n // noinspection SuspiciousTypeOfGuard\n return x._asyncIteratorImpl instanceof\n ReadableStreamAsyncIteratorImpl;\n }\n catch (_a) {\n return false;\n }\n }\n // Helper functions for the ReadableStream.\n function streamAsyncIteratorBrandCheckException(name) {\n return new TypeError(`ReadableStreamAsyncIterator.${name} can only be used on a ReadableSteamAsyncIterator`);\n }\n\n /// \n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#Polyfill\n const NumberIsNaN = Number.isNaN || function (x) {\n // eslint-disable-next-line no-self-compare\n return x !== x;\n };\n\n function CreateArrayFromList(elements) {\n // We use arrays to represent lists, so this is basically a no-op.\n // Do a slice though just in case we happen to depend on the unique-ness.\n return elements.slice();\n }\n function CopyDataBlockBytes(dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n }\n // Not implemented correctly\n function TransferArrayBuffer(O) {\n return O;\n }\n // Not implemented correctly\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function IsDetachedBuffer(O) {\n return false;\n }\n function ArrayBufferSlice(buffer, begin, end) {\n // ArrayBuffer.prototype.slice is not available on IE10\n // https://www.caniuse.com/mdn-javascript_builtins_arraybuffer_slice\n if (buffer.slice) {\n return buffer.slice(begin, end);\n }\n const length = end - begin;\n const slice = new ArrayBuffer(length);\n CopyDataBlockBytes(slice, 0, buffer, begin, length);\n return slice;\n }\n\n function IsNonNegativeNumber(v) {\n if (typeof v !== 'number') {\n return false;\n }\n if (NumberIsNaN(v)) {\n return false;\n }\n if (v < 0) {\n return false;\n }\n return true;\n }\n function CloneAsUint8Array(O) {\n const buffer = ArrayBufferSlice(O.buffer, O.byteOffset, O.byteOffset + O.byteLength);\n return new Uint8Array(buffer);\n }\n\n function DequeueValue(container) {\n const pair = container._queue.shift();\n container._queueTotalSize -= pair.size;\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n return pair.value;\n }\n function EnqueueValueWithSize(container, value, size) {\n if (!IsNonNegativeNumber(size) || size === Infinity) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n container._queue.push({ value, size });\n container._queueTotalSize += size;\n }\n function PeekQueueValue(container) {\n const pair = container._queue.peek();\n return pair.value;\n }\n function ResetQueue(container) {\n container._queue = new SimpleQueue();\n container._queueTotalSize = 0;\n }\n\n /**\n * A pull-into request in a {@link ReadableByteStreamController}.\n *\n * @public\n */\n class ReadableStreamBYOBRequest {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the view for writing in to, or `null` if the BYOB request has already been responded to.\n */\n get view() {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('view');\n }\n return this._view;\n }\n respond(bytesWritten) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respond');\n }\n assertRequiredArgument(bytesWritten, 1, 'respond');\n bytesWritten = convertUnsignedLongLongWithEnforceRange(bytesWritten, 'First parameter');\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(this._view.buffer)) ;\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n }\n respondWithNewView(view) {\n if (!IsReadableStreamBYOBRequest(this)) {\n throw byobRequestBrandCheckException('respondWithNewView');\n }\n assertRequiredArgument(view, 1, 'respondWithNewView');\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n if (IsDetachedBuffer(view.buffer)) ;\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n }\n }\n Object.defineProperties(ReadableStreamBYOBRequest.prototype, {\n respond: { enumerable: true },\n respondWithNewView: { enumerable: true },\n view: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBRequest.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBRequest',\n configurable: true\n });\n }\n /**\n * Allows control of a {@link ReadableStream | readable byte stream}'s state and internal queue.\n *\n * @public\n */\n class ReadableByteStreamController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the current BYOB pull request, or `null` if there isn't one.\n */\n get byobRequest() {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('byobRequest');\n }\n return ReadableByteStreamControllerGetBYOBRequest(this);\n }\n /**\n * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n * over-full. An underlying byte source ought to use this information to determine when and how to apply backpressure.\n */\n get desiredSize() {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('desiredSize');\n }\n return ReadableByteStreamControllerGetDesiredSize(this);\n }\n /**\n * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n * the stream, but once those are read, the stream will become closed.\n */\n close() {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('close');\n }\n if (this._closeRequested) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\n const state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(`The stream (in ${state} state) is not in the readable state and cannot be closed`);\n }\n ReadableByteStreamControllerClose(this);\n }\n enqueue(chunk) {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n assertRequiredArgument(chunk, 1, 'enqueue');\n if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('chunk must be an array buffer view');\n }\n if (chunk.byteLength === 0) {\n throw new TypeError('chunk must have non-zero byteLength');\n }\n if (chunk.buffer.byteLength === 0) {\n throw new TypeError(`chunk's buffer must have non-zero byteLength`);\n }\n if (this._closeRequested) {\n throw new TypeError('stream is closed or draining');\n }\n const state = this._controlledReadableByteStream._state;\n if (state !== 'readable') {\n throw new TypeError(`The stream (in ${state} state) is not in the readable state and cannot be enqueued to`);\n }\n ReadableByteStreamControllerEnqueue(this, chunk);\n }\n /**\n * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n */\n error(e = undefined) {\n if (!IsReadableByteStreamController(this)) {\n throw byteStreamControllerBrandCheckException('error');\n }\n ReadableByteStreamControllerError(this, e);\n }\n /** @internal */\n [CancelSteps](reason) {\n ReadableByteStreamControllerClearPendingPullIntos(this);\n ResetQueue(this);\n const result = this._cancelAlgorithm(reason);\n ReadableByteStreamControllerClearAlgorithms(this);\n return result;\n }\n /** @internal */\n [PullSteps](readRequest) {\n const stream = this._controlledReadableByteStream;\n if (this._queueTotalSize > 0) {\n const entry = this._queue.shift();\n this._queueTotalSize -= entry.byteLength;\n ReadableByteStreamControllerHandleQueueDrain(this);\n const view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n readRequest._chunkSteps(view);\n return;\n }\n const autoAllocateChunkSize = this._autoAllocateChunkSize;\n if (autoAllocateChunkSize !== undefined) {\n let buffer;\n try {\n buffer = new ArrayBuffer(autoAllocateChunkSize);\n }\n catch (bufferE) {\n readRequest._errorSteps(bufferE);\n return;\n }\n const pullIntoDescriptor = {\n buffer,\n bufferByteLength: autoAllocateChunkSize,\n byteOffset: 0,\n byteLength: autoAllocateChunkSize,\n bytesFilled: 0,\n elementSize: 1,\n viewConstructor: Uint8Array,\n readerType: 'default'\n };\n this._pendingPullIntos.push(pullIntoDescriptor);\n }\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableByteStreamControllerCallPullIfNeeded(this);\n }\n }\n Object.defineProperties(ReadableByteStreamController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n byobRequest: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableByteStreamController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableByteStreamController',\n configurable: true\n });\n }\n // Abstract operations for the ReadableByteStreamController.\n function IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {\n return false;\n }\n return x instanceof ReadableByteStreamController;\n }\n function IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n return x instanceof ReadableStreamBYOBRequest;\n }\n function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n const shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n // TODO: Test controller argument\n const pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, () => {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }, e => {\n ReadableByteStreamControllerError(controller, e);\n });\n }\n function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = new SimpleQueue();\n }\n function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n let done = false;\n if (stream._state === 'closed') {\n done = true;\n }\n const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n if (pullIntoDescriptor.readerType === 'default') {\n ReadableStreamFulfillReadRequest(stream, filledView, done);\n }\n else {\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n }\n }\n function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n const bytesFilled = pullIntoDescriptor.bytesFilled;\n const elementSize = pullIntoDescriptor.elementSize;\n return new pullIntoDescriptor.viewConstructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n }\n function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({ buffer, byteOffset, byteLength });\n controller._queueTotalSize += byteLength;\n }\n function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n const elementSize = pullIntoDescriptor.elementSize;\n const currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n const maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n const maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n const maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n let totalBytesToCopyRemaining = maxBytesToCopy;\n let ready = false;\n if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n const queue = controller._queue;\n while (totalBytesToCopyRemaining > 0) {\n const headOfQueue = queue.peek();\n const bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n const destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n CopyDataBlockBytes(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n }\n else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n controller._queueTotalSize -= bytesToCopy;\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n totalBytesToCopyRemaining -= bytesToCopy;\n }\n return ready;\n }\n function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n pullIntoDescriptor.bytesFilled += size;\n }\n function ReadableByteStreamControllerHandleQueueDrain(controller) {\n if (controller._queueTotalSize === 0 && controller._closeRequested) {\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(controller._controlledReadableByteStream);\n }\n else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n }\n function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === null) {\n return;\n }\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = null;\n controller._byobRequest = null;\n }\n function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n const pullIntoDescriptor = controller._pendingPullIntos.peek();\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerPullInto(controller, view, readIntoRequest) {\n const stream = controller._controlledReadableByteStream;\n let elementSize = 1;\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\n }\n const ctor = view.constructor;\n // try {\n const buffer = TransferArrayBuffer(view.buffer);\n // } catch (e) {\n // readIntoRequest._errorSteps(e);\n // return;\n // }\n const pullIntoDescriptor = {\n buffer,\n bufferByteLength: buffer.byteLength,\n byteOffset: view.byteOffset,\n byteLength: view.byteLength,\n bytesFilled: 0,\n elementSize,\n viewConstructor: ctor,\n readerType: 'byob'\n };\n if (controller._pendingPullIntos.length > 0) {\n controller._pendingPullIntos.push(pullIntoDescriptor);\n // No ReadableByteStreamControllerCallPullIfNeeded() call since:\n // - No change happens on desiredSize\n // - The source has already been notified of that there's at least 1 pending read(view)\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n return;\n }\n if (stream._state === 'closed') {\n const emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n readIntoRequest._closeSteps(emptyView);\n return;\n }\n if (controller._queueTotalSize > 0) {\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n ReadableByteStreamControllerHandleQueueDrain(controller);\n readIntoRequest._chunkSteps(filledView);\n return;\n }\n if (controller._closeRequested) {\n const e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n readIntoRequest._errorSteps(e);\n return;\n }\n }\n controller._pendingPullIntos.push(pullIntoDescriptor);\n ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n const stream = controller._controlledReadableByteStream;\n if (ReadableStreamHasBYOBReader(stream)) {\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n const pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n }\n }\n }\n function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n return;\n }\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n const remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n if (remainderSize > 0) {\n const end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n const remainder = ArrayBufferSlice(pullIntoDescriptor.buffer, end - remainderSize, end);\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n }\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n const state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n ReadableByteStreamControllerRespondInClosedState(controller);\n }\n else {\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n const descriptor = controller._pendingPullIntos.shift();\n return descriptor;\n }\n function ReadableByteStreamControllerShouldCallPull(controller) {\n const stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return false;\n }\n if (controller._closeRequested) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (ReadableStreamHasDefaultReader(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n if (ReadableStreamHasBYOBReader(stream) && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n const desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableByteStreamControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n }\n // A client of ReadableByteStreamController may use these functions directly to bypass state check.\n function ReadableByteStreamControllerClose(controller) {\n const stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n return;\n }\n if (controller._pendingPullIntos.length > 0) {\n const firstPendingPullInto = controller._pendingPullIntos.peek();\n if (firstPendingPullInto.bytesFilled > 0) {\n const e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n ReadableByteStreamControllerError(controller, e);\n throw e;\n }\n }\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n function ReadableByteStreamControllerEnqueue(controller, chunk) {\n const stream = controller._controlledReadableByteStream;\n if (controller._closeRequested || stream._state !== 'readable') {\n return;\n }\n const buffer = chunk.buffer;\n const byteOffset = chunk.byteOffset;\n const byteLength = chunk.byteLength;\n const transferredBuffer = TransferArrayBuffer(buffer);\n if (controller._pendingPullIntos.length > 0) {\n const firstPendingPullInto = controller._pendingPullIntos.peek();\n if (IsDetachedBuffer(firstPendingPullInto.buffer)) ;\n firstPendingPullInto.buffer = TransferArrayBuffer(firstPendingPullInto.buffer);\n }\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n if (ReadableStreamHasDefaultReader(stream)) {\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n else {\n if (controller._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n }\n const transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\n }\n }\n else if (ReadableStreamHasBYOBReader(stream)) {\n // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n }\n else {\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n function ReadableByteStreamControllerError(controller, e) {\n const stream = controller._controlledReadableByteStream;\n if (stream._state !== 'readable') {\n return;\n }\n ReadableByteStreamControllerClearPendingPullIntos(controller);\n ResetQueue(controller);\n ReadableByteStreamControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableByteStreamControllerGetBYOBRequest(controller) {\n if (controller._byobRequest === null && controller._pendingPullIntos.length > 0) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n const view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n const byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);\n SetUpReadableStreamBYOBRequest(byobRequest, controller, view);\n controller._byobRequest = byobRequest;\n }\n return controller._byobRequest;\n }\n function ReadableByteStreamControllerGetDesiredSize(controller) {\n const state = controller._controlledReadableByteStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n const state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (bytesWritten !== 0) {\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n }\n }\n else {\n if (bytesWritten === 0) {\n throw new TypeError('bytesWritten must be greater than 0 when calling respond() on a readable stream');\n }\n if (firstDescriptor.bytesFilled + bytesWritten > firstDescriptor.byteLength) {\n throw new RangeError('bytesWritten out of range');\n }\n }\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n }\n function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n const firstDescriptor = controller._pendingPullIntos.peek();\n const state = controller._controlledReadableByteStream._state;\n if (state === 'closed') {\n if (view.byteLength !== 0) {\n throw new TypeError('The view\\'s length must be 0 when calling respondWithNewView() on a closed stream');\n }\n }\n else {\n if (view.byteLength === 0) {\n throw new TypeError('The view\\'s length must be greater than 0 when calling respondWithNewView() on a readable stream');\n }\n }\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n throw new RangeError('The region specified by view does not match byobRequest');\n }\n if (firstDescriptor.bufferByteLength !== view.buffer.byteLength) {\n throw new RangeError('The buffer of view has different capacity than byobRequest');\n }\n if (firstDescriptor.bytesFilled + view.byteLength > firstDescriptor.byteLength) {\n throw new RangeError('The region specified by view is larger than byobRequest');\n }\n const viewByteLength = view.byteLength;\n firstDescriptor.buffer = TransferArrayBuffer(view.buffer);\n ReadableByteStreamControllerRespondInternal(controller, viewByteLength);\n }\n function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {\n controller._controlledReadableByteStream = stream;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._byobRequest = null;\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n controller._queue = controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._closeRequested = false;\n controller._started = false;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n controller._autoAllocateChunkSize = autoAllocateChunkSize;\n controller._pendingPullIntos = new SimpleQueue();\n stream._readableStreamController = controller;\n const startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), () => {\n controller._started = true;\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }, r => {\n ReadableByteStreamControllerError(controller, r);\n });\n }\n function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {\n const controller = Object.create(ReadableByteStreamController.prototype);\n let startAlgorithm = () => undefined;\n let pullAlgorithm = () => promiseResolvedWith(undefined);\n let cancelAlgorithm = () => promiseResolvedWith(undefined);\n if (underlyingByteSource.start !== undefined) {\n startAlgorithm = () => underlyingByteSource.start(controller);\n }\n if (underlyingByteSource.pull !== undefined) {\n pullAlgorithm = () => underlyingByteSource.pull(controller);\n }\n if (underlyingByteSource.cancel !== undefined) {\n cancelAlgorithm = reason => underlyingByteSource.cancel(reason);\n }\n const autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n if (autoAllocateChunkSize === 0) {\n throw new TypeError('autoAllocateChunkSize must be greater than 0');\n }\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);\n }\n function SetUpReadableStreamBYOBRequest(request, controller, view) {\n request._associatedReadableByteStreamController = controller;\n request._view = view;\n }\n // Helper functions for the ReadableStreamBYOBRequest.\n function byobRequestBrandCheckException(name) {\n return new TypeError(`ReadableStreamBYOBRequest.prototype.${name} can only be used on a ReadableStreamBYOBRequest`);\n }\n // Helper functions for the ReadableByteStreamController.\n function byteStreamControllerBrandCheckException(name) {\n return new TypeError(`ReadableByteStreamController.prototype.${name} can only be used on a ReadableByteStreamController`);\n }\n\n // Abstract operations for the ReadableStream.\n function AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamAddReadIntoRequest(stream, readIntoRequest) {\n stream._reader._readIntoRequests.push(readIntoRequest);\n }\n function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n const reader = stream._reader;\n const readIntoRequest = reader._readIntoRequests.shift();\n if (done) {\n readIntoRequest._closeSteps(chunk);\n }\n else {\n readIntoRequest._chunkSteps(chunk);\n }\n }\n function ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n }\n function ReadableStreamHasBYOBReader(stream) {\n const reader = stream._reader;\n if (reader === undefined) {\n return false;\n }\n if (!IsReadableStreamBYOBReader(reader)) {\n return false;\n }\n return true;\n }\n /**\n * A BYOB reader vended by a {@link ReadableStream}.\n *\n * @public\n */\n class ReadableStreamBYOBReader {\n constructor(stream) {\n assertRequiredArgument(stream, 1, 'ReadableStreamBYOBReader');\n assertReadableStream(stream, 'First parameter');\n if (IsReadableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n }\n if (!IsReadableByteStreamController(stream._readableStreamController)) {\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' +\n 'source');\n }\n ReadableStreamReaderGenericInitialize(this, stream);\n this._readIntoRequests = new SimpleQueue();\n }\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n * the reader's lock is released before the stream finishes closing.\n */\n get closed() {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n /**\n * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n */\n cancel(reason = undefined) {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('cancel'));\n }\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('cancel'));\n }\n return ReadableStreamReaderGenericCancel(this, reason);\n }\n /**\n * Attempts to reads bytes into view, and returns a promise resolved with the result.\n *\n * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n */\n read(view) {\n if (!IsReadableStreamBYOBReader(this)) {\n return promiseRejectedWith(byobReaderBrandCheckException('read'));\n }\n if (!ArrayBuffer.isView(view)) {\n return promiseRejectedWith(new TypeError('view must be an array buffer view'));\n }\n if (view.byteLength === 0) {\n return promiseRejectedWith(new TypeError('view must have non-zero byteLength'));\n }\n if (view.buffer.byteLength === 0) {\n return promiseRejectedWith(new TypeError(`view's buffer must have non-zero byteLength`));\n }\n if (IsDetachedBuffer(view.buffer)) ;\n if (this._ownerReadableStream === undefined) {\n return promiseRejectedWith(readerLockException('read from'));\n }\n let resolvePromise;\n let rejectPromise;\n const promise = newPromise((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n const readIntoRequest = {\n _chunkSteps: chunk => resolvePromise({ value: chunk, done: false }),\n _closeSteps: chunk => resolvePromise({ value: chunk, done: true }),\n _errorSteps: e => rejectPromise(e)\n };\n ReadableStreamBYOBReaderRead(this, view, readIntoRequest);\n return promise;\n }\n /**\n * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n * from now on; otherwise, the reader will appear closed.\n *\n * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n * the reader's {@link ReadableStreamBYOBReader.read | read()} method has not yet been settled. Attempting to\n * do so will throw a `TypeError` and leave the reader locked to the stream.\n */\n releaseLock() {\n if (!IsReadableStreamBYOBReader(this)) {\n throw byobReaderBrandCheckException('releaseLock');\n }\n if (this._ownerReadableStream === undefined) {\n return;\n }\n if (this._readIntoRequests.length > 0) {\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n }\n ReadableStreamReaderGenericRelease(this);\n }\n }\n Object.defineProperties(ReadableStreamBYOBReader.prototype, {\n cancel: { enumerable: true },\n read: { enumerable: true },\n releaseLock: { enumerable: true },\n closed: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamBYOBReader.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamBYOBReader',\n configurable: true\n });\n }\n // Abstract operations for the readers.\n function IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n return x instanceof ReadableStreamBYOBReader;\n }\n function ReadableStreamBYOBReaderRead(reader, view, readIntoRequest) {\n const stream = reader._ownerReadableStream;\n stream._disturbed = true;\n if (stream._state === 'errored') {\n readIntoRequest._errorSteps(stream._storedError);\n }\n else {\n ReadableByteStreamControllerPullInto(stream._readableStreamController, view, readIntoRequest);\n }\n }\n // Helper functions for the ReadableStreamBYOBReader.\n function byobReaderBrandCheckException(name) {\n return new TypeError(`ReadableStreamBYOBReader.prototype.${name} can only be used on a ReadableStreamBYOBReader`);\n }\n\n function ExtractHighWaterMark(strategy, defaultHWM) {\n const { highWaterMark } = strategy;\n if (highWaterMark === undefined) {\n return defaultHWM;\n }\n if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {\n throw new RangeError('Invalid highWaterMark');\n }\n return highWaterMark;\n }\n function ExtractSizeAlgorithm(strategy) {\n const { size } = strategy;\n if (!size) {\n return () => 1;\n }\n return size;\n }\n\n function convertQueuingStrategy(init, context) {\n assertDictionary(init, context);\n const highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n const size = init === null || init === void 0 ? void 0 : init.size;\n return {\n highWaterMark: highWaterMark === undefined ? undefined : convertUnrestrictedDouble(highWaterMark),\n size: size === undefined ? undefined : convertQueuingStrategySize(size, `${context} has member 'size' that`)\n };\n }\n function convertQueuingStrategySize(fn, context) {\n assertFunction(fn, context);\n return chunk => convertUnrestrictedDouble(fn(chunk));\n }\n\n function convertUnderlyingSink(original, context) {\n assertDictionary(original, context);\n const abort = original === null || original === void 0 ? void 0 : original.abort;\n const close = original === null || original === void 0 ? void 0 : original.close;\n const start = original === null || original === void 0 ? void 0 : original.start;\n const type = original === null || original === void 0 ? void 0 : original.type;\n const write = original === null || original === void 0 ? void 0 : original.write;\n return {\n abort: abort === undefined ?\n undefined :\n convertUnderlyingSinkAbortCallback(abort, original, `${context} has member 'abort' that`),\n close: close === undefined ?\n undefined :\n convertUnderlyingSinkCloseCallback(close, original, `${context} has member 'close' that`),\n start: start === undefined ?\n undefined :\n convertUnderlyingSinkStartCallback(start, original, `${context} has member 'start' that`),\n write: write === undefined ?\n undefined :\n convertUnderlyingSinkWriteCallback(write, original, `${context} has member 'write' that`),\n type\n };\n }\n function convertUnderlyingSinkAbortCallback(fn, original, context) {\n assertFunction(fn, context);\n return (reason) => promiseCall(fn, original, [reason]);\n }\n function convertUnderlyingSinkCloseCallback(fn, original, context) {\n assertFunction(fn, context);\n return () => promiseCall(fn, original, []);\n }\n function convertUnderlyingSinkStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => reflectCall(fn, original, [controller]);\n }\n function convertUnderlyingSinkWriteCallback(fn, original, context) {\n assertFunction(fn, context);\n return (chunk, controller) => promiseCall(fn, original, [chunk, controller]);\n }\n\n function assertWritableStream(x, context) {\n if (!IsWritableStream(x)) {\n throw new TypeError(`${context} is not a WritableStream.`);\n }\n }\n\n function isAbortSignal(value) {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n try {\n return typeof value.aborted === 'boolean';\n }\n catch (_a) {\n // AbortSignal.prototype.aborted throws if its brand check fails\n return false;\n }\n }\n const supportsAbortController = typeof AbortController === 'function';\n /**\n * Construct a new AbortController, if supported by the platform.\n *\n * @internal\n */\n function createAbortController() {\n if (supportsAbortController) {\n return new AbortController();\n }\n return undefined;\n }\n\n /**\n * A writable stream represents a destination for data, into which you can write.\n *\n * @public\n */\n class WritableStream {\n constructor(rawUnderlyingSink = {}, rawStrategy = {}) {\n if (rawUnderlyingSink === undefined) {\n rawUnderlyingSink = null;\n }\n else {\n assertObject(rawUnderlyingSink, 'First parameter');\n }\n const strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n const underlyingSink = convertUnderlyingSink(rawUnderlyingSink, 'First parameter');\n InitializeWritableStream(this);\n const type = underlyingSink.type;\n if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n const sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n const highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);\n }\n /**\n * Returns whether or not the writable stream is locked to a writer.\n */\n get locked() {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException$2('locked');\n }\n return IsWritableStreamLocked(this);\n }\n /**\n * Aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be\n * immediately moved to an errored state, with any queued-up writes discarded. This will also execute any abort\n * mechanism of the underlying sink.\n *\n * The returned promise will fulfill if the stream shuts down successfully, or reject if the underlying sink signaled\n * that there was an error doing so. Additionally, it will reject with a `TypeError` (without attempting to cancel\n * the stream) if the stream is currently locked.\n */\n abort(reason = undefined) {\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$2('abort'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer'));\n }\n return WritableStreamAbort(this, reason);\n }\n /**\n * Closes the stream. The underlying sink will finish processing any previously-written chunks, before invoking its\n * close behavior. During this time any further attempts to write will fail (without erroring the stream).\n *\n * The method returns a promise that will fulfill if all remaining chunks are successfully written and the stream\n * successfully closes, or rejects if an error is encountered during this process. Additionally, it will reject with\n * a `TypeError` (without attempting to cancel the stream) if the stream is currently locked.\n */\n close() {\n if (!IsWritableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$2('close'));\n }\n if (IsWritableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer'));\n }\n if (WritableStreamCloseQueuedOrInFlight(this)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamClose(this);\n }\n /**\n * Creates a {@link WritableStreamDefaultWriter | writer} and locks the stream to the new writer. While the stream\n * is locked, no other writer can be acquired until this one is released.\n *\n * This functionality is especially useful for creating abstractions that desire the ability to write to a stream\n * without interruption or interleaving. By getting a writer for the stream, you can ensure nobody else can write at\n * the same time, which would cause the resulting written data to be unpredictable and probably useless.\n */\n getWriter() {\n if (!IsWritableStream(this)) {\n throw streamBrandCheckException$2('getWriter');\n }\n return AcquireWritableStreamDefaultWriter(this);\n }\n }\n Object.defineProperties(WritableStream.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n getWriter: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStream',\n configurable: true\n });\n }\n // Abstract operations for the WritableStream.\n function AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n }\n // Throws if and only if startAlgorithm throws.\n function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) {\n const stream = Object.create(WritableStream.prototype);\n InitializeWritableStream(stream);\n const controller = Object.create(WritableStreamDefaultController.prototype);\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n function InitializeWritableStream(stream) {\n stream._state = 'writable';\n // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\n // 'erroring' or 'errored'. May be set to an undefined value.\n stream._storedError = undefined;\n stream._writer = undefined;\n // Initialize to undefined first because the constructor of the controller checks this\n // variable to validate the caller.\n stream._writableStreamController = undefined;\n // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\n // producer without waiting for the queued writes to finish.\n stream._writeRequests = new SimpleQueue();\n // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\n // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\n stream._inFlightWriteRequest = undefined;\n // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\n // has been detached.\n stream._closeRequest = undefined;\n // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\n // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\n stream._inFlightCloseRequest = undefined;\n // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\n stream._pendingAbortRequest = undefined;\n // The backpressure signal set by the controller.\n stream._backpressure = false;\n }\n function IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n return x instanceof WritableStream;\n }\n function IsWritableStreamLocked(stream) {\n if (stream._writer === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamAbort(stream, reason) {\n var _a;\n if (stream._state === 'closed' || stream._state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n stream._writableStreamController._abortReason = reason;\n (_a = stream._writableStreamController._abortController) === null || _a === void 0 ? void 0 : _a.abort();\n // TypeScript narrows the type of `stream._state` down to 'writable' | 'erroring',\n // but it doesn't know that signaling abort runs author code that might have changed the state.\n // Widen the type again by casting to WritableStreamState.\n const state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseResolvedWith(undefined);\n }\n if (stream._pendingAbortRequest !== undefined) {\n return stream._pendingAbortRequest._promise;\n }\n let wasAlreadyErroring = false;\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n // reason will not be used, so don't keep a reference to it.\n reason = undefined;\n }\n const promise = newPromise((resolve, reject) => {\n stream._pendingAbortRequest = {\n _promise: undefined,\n _resolve: resolve,\n _reject: reject,\n _reason: reason,\n _wasAlreadyErroring: wasAlreadyErroring\n };\n });\n stream._pendingAbortRequest._promise = promise;\n if (!wasAlreadyErroring) {\n WritableStreamStartErroring(stream, reason);\n }\n return promise;\n }\n function WritableStreamClose(stream) {\n const state = stream._state;\n if (state === 'closed' || state === 'errored') {\n return promiseRejectedWith(new TypeError(`The stream (in ${state} state) is not in the writable state and cannot be closed`));\n }\n const promise = newPromise((resolve, reject) => {\n const closeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._closeRequest = closeRequest;\n });\n const writer = stream._writer;\n if (writer !== undefined && stream._backpressure && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n return promise;\n }\n // WritableStream API exposed for controllers.\n function WritableStreamAddWriteRequest(stream) {\n const promise = newPromise((resolve, reject) => {\n const writeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n stream._writeRequests.push(writeRequest);\n });\n return promise;\n }\n function WritableStreamDealWithRejection(stream, error) {\n const state = stream._state;\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n WritableStreamFinishErroring(stream);\n }\n function WritableStreamStartErroring(stream, reason) {\n const controller = stream._writableStreamController;\n stream._state = 'erroring';\n stream._storedError = reason;\n const writer = stream._writer;\n if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n if (!WritableStreamHasOperationMarkedInFlight(stream) && controller._started) {\n WritableStreamFinishErroring(stream);\n }\n }\n function WritableStreamFinishErroring(stream) {\n stream._state = 'errored';\n stream._writableStreamController[ErrorSteps]();\n const storedError = stream._storedError;\n stream._writeRequests.forEach(writeRequest => {\n writeRequest._reject(storedError);\n });\n stream._writeRequests = new SimpleQueue();\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n const abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n if (abortRequest._wasAlreadyErroring) {\n abortRequest._reject(storedError);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n const promise = stream._writableStreamController[AbortSteps](abortRequest._reason);\n uponPromise(promise, () => {\n abortRequest._resolve();\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n }, (reason) => {\n abortRequest._reject(reason);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n });\n }\n function WritableStreamFinishInFlightWrite(stream) {\n stream._inFlightWriteRequest._resolve(undefined);\n stream._inFlightWriteRequest = undefined;\n }\n function WritableStreamFinishInFlightWriteWithError(stream, error) {\n stream._inFlightWriteRequest._reject(error);\n stream._inFlightWriteRequest = undefined;\n WritableStreamDealWithRejection(stream, error);\n }\n function WritableStreamFinishInFlightClose(stream) {\n stream._inFlightCloseRequest._resolve(undefined);\n stream._inFlightCloseRequest = undefined;\n const state = stream._state;\n if (state === 'erroring') {\n // The error was too late to do anything, so it is ignored.\n stream._storedError = undefined;\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n stream._pendingAbortRequest = undefined;\n }\n }\n stream._state = 'closed';\n const writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n }\n function WritableStreamFinishInFlightCloseWithError(stream, error) {\n stream._inFlightCloseRequest._reject(error);\n stream._inFlightCloseRequest = undefined;\n // Never execute sink abort() after sink close().\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n stream._pendingAbortRequest = undefined;\n }\n WritableStreamDealWithRejection(stream, error);\n }\n // TODO(ricea): Fix alphabetical order.\n function WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n return true;\n }\n function WritableStreamMarkCloseRequestInFlight(stream) {\n stream._inFlightCloseRequest = stream._closeRequest;\n stream._closeRequest = undefined;\n }\n function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n stream._inFlightWriteRequest = stream._writeRequests.shift();\n }\n function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n if (stream._closeRequest !== undefined) {\n stream._closeRequest._reject(stream._storedError);\n stream._closeRequest = undefined;\n }\n const writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseReject(writer, stream._storedError);\n }\n }\n function WritableStreamUpdateBackpressure(stream, backpressure) {\n const writer = stream._writer;\n if (writer !== undefined && backpressure !== stream._backpressure) {\n if (backpressure) {\n defaultWriterReadyPromiseReset(writer);\n }\n else {\n defaultWriterReadyPromiseResolve(writer);\n }\n }\n stream._backpressure = backpressure;\n }\n /**\n * A default writer vended by a {@link WritableStream}.\n *\n * @public\n */\n class WritableStreamDefaultWriter {\n constructor(stream) {\n assertRequiredArgument(stream, 1, 'WritableStreamDefaultWriter');\n assertWritableStream(stream, 'First parameter');\n if (IsWritableStreamLocked(stream)) {\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n }\n this._ownerWritableStream = stream;\n stream._writer = this;\n const state = stream._state;\n if (state === 'writable') {\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._backpressure) {\n defaultWriterReadyPromiseInitialize(this);\n }\n else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\n defaultWriterClosedPromiseInitialize(this);\n }\n else if (state === 'erroring') {\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n defaultWriterClosedPromiseInitialize(this);\n }\n else if (state === 'closed') {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n defaultWriterClosedPromiseInitializeAsResolved(this);\n }\n else {\n const storedError = stream._storedError;\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n }\n }\n /**\n * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n * the writer’s lock is released before the stream finishes closing.\n */\n get closed() {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('closed'));\n }\n return this._closedPromise;\n }\n /**\n * Returns the desired size to fill the stream’s internal queue. It can be negative, if the queue is over-full.\n * A producer can use this information to determine the right amount of data to write.\n *\n * It will be `null` if the stream cannot be successfully written to (due to either being errored, or having an abort\n * queued up). It will return zero if the stream is closed. And the getter will throw an exception if invoked when\n * the writer’s lock is released.\n */\n get desiredSize() {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\n }\n return WritableStreamDefaultWriterGetDesiredSize(this);\n }\n /**\n * Returns a promise that will be fulfilled when the desired size to fill the stream’s internal queue transitions\n * from non-positive to positive, signaling that it is no longer applying backpressure. Once the desired size dips\n * back to zero or below, the getter will return a new promise that stays pending until the next transition.\n *\n * If the stream becomes errored or aborted, or the writer’s lock is released, the returned promise will become\n * rejected.\n */\n get ready() {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('ready'));\n }\n return this._readyPromise;\n }\n /**\n * If the reader is active, behaves the same as {@link WritableStream.abort | stream.abort(reason)}.\n */\n abort(reason = undefined) {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('abort'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('abort'));\n }\n return WritableStreamDefaultWriterAbort(this, reason);\n }\n /**\n * If the reader is active, behaves the same as {@link WritableStream.close | stream.close()}.\n */\n close() {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('close'));\n }\n const stream = this._ownerWritableStream;\n if (stream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('close'));\n }\n if (WritableStreamCloseQueuedOrInFlight(stream)) {\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n }\n return WritableStreamDefaultWriterClose(this);\n }\n /**\n * Releases the writer’s lock on the corresponding stream. After the lock is released, the writer is no longer active.\n * If the associated stream is errored when the lock is released, the writer will appear errored in the same way from\n * now on; otherwise, the writer will appear closed.\n *\n * Note that the lock can still be released even if some ongoing writes have not yet finished (i.e. even if the\n * promises returned from previous calls to {@link WritableStreamDefaultWriter.write | write()} have not yet settled).\n * It’s not necessary to hold the lock on the writer for the duration of the write; the lock instead simply prevents\n * other producers from writing in an interleaved manner.\n */\n releaseLock() {\n if (!IsWritableStreamDefaultWriter(this)) {\n throw defaultWriterBrandCheckException('releaseLock');\n }\n const stream = this._ownerWritableStream;\n if (stream === undefined) {\n return;\n }\n WritableStreamDefaultWriterRelease(this);\n }\n write(chunk = undefined) {\n if (!IsWritableStreamDefaultWriter(this)) {\n return promiseRejectedWith(defaultWriterBrandCheckException('write'));\n }\n if (this._ownerWritableStream === undefined) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n return WritableStreamDefaultWriterWrite(this, chunk);\n }\n }\n Object.defineProperties(WritableStreamDefaultWriter.prototype, {\n abort: { enumerable: true },\n close: { enumerable: true },\n releaseLock: { enumerable: true },\n write: { enumerable: true },\n closed: { enumerable: true },\n desiredSize: { enumerable: true },\n ready: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultWriter.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultWriter',\n configurable: true\n });\n }\n // Abstract operations for the WritableStreamDefaultWriter.\n function IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n return x instanceof WritableStreamDefaultWriter;\n }\n // A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\n function WritableStreamDefaultWriterAbort(writer, reason) {\n const stream = writer._ownerWritableStream;\n return WritableStreamAbort(stream, reason);\n }\n function WritableStreamDefaultWriterClose(writer) {\n const stream = writer._ownerWritableStream;\n return WritableStreamClose(stream);\n }\n function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n const stream = writer._ownerWritableStream;\n const state = stream._state;\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n return WritableStreamDefaultWriterClose(writer);\n }\n function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n if (writer._closedPromiseState === 'pending') {\n defaultWriterClosedPromiseReject(writer, error);\n }\n else {\n defaultWriterClosedPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n if (writer._readyPromiseState === 'pending') {\n defaultWriterReadyPromiseReject(writer, error);\n }\n else {\n defaultWriterReadyPromiseResetToRejected(writer, error);\n }\n }\n function WritableStreamDefaultWriterGetDesiredSize(writer) {\n const stream = writer._ownerWritableStream;\n const state = stream._state;\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n }\n function WritableStreamDefaultWriterRelease(writer) {\n const stream = writer._ownerWritableStream;\n const releasedError = new TypeError(`Writer was released and can no longer be used to monitor the stream's closedness`);\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\n // rejected until afterwards. This means that simply testing state will not work.\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n stream._writer = undefined;\n writer._ownerWritableStream = undefined;\n }\n function WritableStreamDefaultWriterWrite(writer, chunk) {\n const stream = writer._ownerWritableStream;\n const controller = stream._writableStreamController;\n const chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n if (stream !== writer._ownerWritableStream) {\n return promiseRejectedWith(defaultWriterLockException('write to'));\n }\n const state = stream._state;\n if (state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to'));\n }\n if (state === 'erroring') {\n return promiseRejectedWith(stream._storedError);\n }\n const promise = WritableStreamAddWriteRequest(stream);\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n return promise;\n }\n const closeSentinel = {};\n /**\n * Allows control of a {@link WritableStream | writable stream}'s state and internal queue.\n *\n * @public\n */\n class WritableStreamDefaultController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * The reason which was passed to `WritableStream.abort(reason)` when the stream was aborted.\n *\n * @deprecated\n * This property has been removed from the specification, see https://github.com/whatwg/streams/pull/1177.\n * Use {@link WritableStreamDefaultController.signal}'s `reason` instead.\n */\n get abortReason() {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('abortReason');\n }\n return this._abortReason;\n }\n /**\n * An `AbortSignal` that can be used to abort the pending write or close operation when the stream is aborted.\n */\n get signal() {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('signal');\n }\n if (this._abortController === undefined) {\n // Older browsers or older Node versions may not support `AbortController` or `AbortSignal`.\n // We don't want to bundle and ship an `AbortController` polyfill together with our polyfill,\n // so instead we only implement support for `signal` if we find a global `AbortController` constructor.\n throw new TypeError('WritableStreamDefaultController.prototype.signal is not supported');\n }\n return this._abortController.signal;\n }\n /**\n * Closes the controlled writable stream, making all future interactions with it fail with the given error `e`.\n *\n * This method is rarely used, since usually it suffices to return a rejected promise from one of the underlying\n * sink's methods. However, it can be useful for suddenly shutting down a stream in response to an event outside the\n * normal lifecycle of interactions with the underlying sink.\n */\n error(e = undefined) {\n if (!IsWritableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$2('error');\n }\n const state = this._controlledWritableStream._state;\n if (state !== 'writable') {\n // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\n // just treat it as a no-op.\n return;\n }\n WritableStreamDefaultControllerError(this, e);\n }\n /** @internal */\n [AbortSteps](reason) {\n const result = this._abortAlgorithm(reason);\n WritableStreamDefaultControllerClearAlgorithms(this);\n return result;\n }\n /** @internal */\n [ErrorSteps]() {\n ResetQueue(this);\n }\n }\n Object.defineProperties(WritableStreamDefaultController.prototype, {\n abortReason: { enumerable: true },\n signal: { enumerable: true },\n error: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(WritableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'WritableStreamDefaultController',\n configurable: true\n });\n }\n // Abstract operations implementing interface required by the WritableStream.\n function IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {\n return false;\n }\n return x instanceof WritableStreamDefaultController;\n }\n function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledWritableStream = stream;\n stream._writableStreamController = controller;\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._abortReason = undefined;\n controller._abortController = createAbortController();\n controller._started = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._writeAlgorithm = writeAlgorithm;\n controller._closeAlgorithm = closeAlgorithm;\n controller._abortAlgorithm = abortAlgorithm;\n const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n const startResult = startAlgorithm();\n const startPromise = promiseResolvedWith(startResult);\n uponPromise(startPromise, () => {\n controller._started = true;\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, r => {\n controller._started = true;\n WritableStreamDealWithRejection(stream, r);\n });\n }\n function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {\n const controller = Object.create(WritableStreamDefaultController.prototype);\n let startAlgorithm = () => undefined;\n let writeAlgorithm = () => promiseResolvedWith(undefined);\n let closeAlgorithm = () => promiseResolvedWith(undefined);\n let abortAlgorithm = () => promiseResolvedWith(undefined);\n if (underlyingSink.start !== undefined) {\n startAlgorithm = () => underlyingSink.start(controller);\n }\n if (underlyingSink.write !== undefined) {\n writeAlgorithm = chunk => underlyingSink.write(chunk, controller);\n }\n if (underlyingSink.close !== undefined) {\n closeAlgorithm = () => underlyingSink.close();\n }\n if (underlyingSink.abort !== undefined) {\n abortAlgorithm = reason => underlyingSink.abort(reason);\n }\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n }\n // ClearAlgorithms may be called twice. Erroring the same stream in multiple ways will often result in redundant calls.\n function WritableStreamDefaultControllerClearAlgorithms(controller) {\n controller._writeAlgorithm = undefined;\n controller._closeAlgorithm = undefined;\n controller._abortAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n function WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, closeSentinel, 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n try {\n return controller._strategySizeAlgorithm(chunk);\n }\n catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n }\n function WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n }\n function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n }\n catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\n const stream = controller._controlledWritableStream;\n if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._state === 'writable') {\n const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }\n // Abstract operations for the WritableStreamDefaultController.\n function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n const stream = controller._controlledWritableStream;\n if (!controller._started) {\n return;\n }\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\n const state = stream._state;\n if (state === 'erroring') {\n WritableStreamFinishErroring(stream);\n return;\n }\n if (controller._queue.length === 0) {\n return;\n }\n const value = PeekQueueValue(controller);\n if (value === closeSentinel) {\n WritableStreamDefaultControllerProcessClose(controller);\n }\n else {\n WritableStreamDefaultControllerProcessWrite(controller, value);\n }\n }\n function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\n }\n }\n function WritableStreamDefaultControllerProcessClose(controller) {\n const stream = controller._controlledWritableStream;\n WritableStreamMarkCloseRequestInFlight(stream);\n DequeueValue(controller);\n const sinkClosePromise = controller._closeAlgorithm();\n WritableStreamDefaultControllerClearAlgorithms(controller);\n uponPromise(sinkClosePromise, () => {\n WritableStreamFinishInFlightClose(stream);\n }, reason => {\n WritableStreamFinishInFlightCloseWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n const stream = controller._controlledWritableStream;\n WritableStreamMarkFirstWriteRequestInFlight(stream);\n const sinkWritePromise = controller._writeAlgorithm(chunk);\n uponPromise(sinkWritePromise, () => {\n WritableStreamFinishInFlightWrite(stream);\n const state = stream._state;\n DequeueValue(controller);\n if (!WritableStreamCloseQueuedOrInFlight(stream) && state === 'writable') {\n const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, reason => {\n if (stream._state === 'writable') {\n WritableStreamDefaultControllerClearAlgorithms(controller);\n }\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n });\n }\n function WritableStreamDefaultControllerGetBackpressure(controller) {\n const desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n }\n // A client of WritableStreamDefaultController may use these functions directly to bypass state check.\n function WritableStreamDefaultControllerError(controller, error) {\n const stream = controller._controlledWritableStream;\n WritableStreamDefaultControllerClearAlgorithms(controller);\n WritableStreamStartErroring(stream, error);\n }\n // Helper functions for the WritableStream.\n function streamBrandCheckException$2(name) {\n return new TypeError(`WritableStream.prototype.${name} can only be used on a WritableStream`);\n }\n // Helper functions for the WritableStreamDefaultController.\n function defaultControllerBrandCheckException$2(name) {\n return new TypeError(`WritableStreamDefaultController.prototype.${name} can only be used on a WritableStreamDefaultController`);\n }\n // Helper functions for the WritableStreamDefaultWriter.\n function defaultWriterBrandCheckException(name) {\n return new TypeError(`WritableStreamDefaultWriter.prototype.${name} can only be used on a WritableStreamDefaultWriter`);\n }\n function defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\n }\n function defaultWriterClosedPromiseInitialize(writer) {\n writer._closedPromise = newPromise((resolve, reject) => {\n writer._closedPromise_resolve = resolve;\n writer._closedPromise_reject = reject;\n writer._closedPromiseState = 'pending';\n });\n }\n function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseReject(writer, reason);\n }\n function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n defaultWriterClosedPromiseInitialize(writer);\n defaultWriterClosedPromiseResolve(writer);\n }\n function defaultWriterClosedPromiseReject(writer, reason) {\n if (writer._closedPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._closedPromise);\n writer._closedPromise_reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n }\n function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n defaultWriterClosedPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterClosedPromiseResolve(writer) {\n if (writer._closedPromise_resolve === undefined) {\n return;\n }\n writer._closedPromise_resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n }\n function defaultWriterReadyPromiseInitialize(writer) {\n writer._readyPromise = newPromise((resolve, reject) => {\n writer._readyPromise_resolve = resolve;\n writer._readyPromise_reject = reject;\n });\n writer._readyPromiseState = 'pending';\n }\n function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseReject(writer, reason);\n }\n function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n defaultWriterReadyPromiseResolve(writer);\n }\n function defaultWriterReadyPromiseReject(writer, reason) {\n if (writer._readyPromise_reject === undefined) {\n return;\n }\n setPromiseIsHandledToTrue(writer._readyPromise);\n writer._readyPromise_reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n }\n function defaultWriterReadyPromiseReset(writer) {\n defaultWriterReadyPromiseInitialize(writer);\n }\n function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n defaultWriterReadyPromiseInitializeAsRejected(writer, reason);\n }\n function defaultWriterReadyPromiseResolve(writer) {\n if (writer._readyPromise_resolve === undefined) {\n return;\n }\n writer._readyPromise_resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n }\n\n /// \n const NativeDOMException = typeof DOMException !== 'undefined' ? DOMException : undefined;\n\n /// \n function isDOMExceptionConstructor(ctor) {\n if (!(typeof ctor === 'function' || typeof ctor === 'object')) {\n return false;\n }\n try {\n new ctor();\n return true;\n }\n catch (_a) {\n return false;\n }\n }\n function createDOMExceptionPolyfill() {\n // eslint-disable-next-line no-shadow\n const ctor = function DOMException(message, name) {\n this.message = message || '';\n this.name = name || 'Error';\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n };\n ctor.prototype = Object.create(Error.prototype);\n Object.defineProperty(ctor.prototype, 'constructor', { value: ctor, writable: true, configurable: true });\n return ctor;\n }\n // eslint-disable-next-line no-redeclare\n const DOMException$1 = isDOMExceptionConstructor(NativeDOMException) ? NativeDOMException : createDOMExceptionPolyfill();\n\n function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {\n const reader = AcquireReadableStreamDefaultReader(source);\n const writer = AcquireWritableStreamDefaultWriter(dest);\n source._disturbed = true;\n let shuttingDown = false;\n // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\n let currentWrite = promiseResolvedWith(undefined);\n return newPromise((resolve, reject) => {\n let abortAlgorithm;\n if (signal !== undefined) {\n abortAlgorithm = () => {\n const error = new DOMException$1('Aborted', 'AbortError');\n const actions = [];\n if (!preventAbort) {\n actions.push(() => {\n if (dest._state === 'writable') {\n return WritableStreamAbort(dest, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n if (!preventCancel) {\n actions.push(() => {\n if (source._state === 'readable') {\n return ReadableStreamCancel(source, error);\n }\n return promiseResolvedWith(undefined);\n });\n }\n shutdownWithAction(() => Promise.all(actions.map(action => action())), true, error);\n };\n if (signal.aborted) {\n abortAlgorithm();\n return;\n }\n signal.addEventListener('abort', abortAlgorithm);\n }\n // Using reader and writer, read all chunks from this and write them to dest\n // - Backpressure must be enforced\n // - Shutdown must stop all activity\n function pipeLoop() {\n return newPromise((resolveLoop, rejectLoop) => {\n function next(done) {\n if (done) {\n resolveLoop();\n }\n else {\n // Use `PerformPromiseThen` instead of `uponPromise` to avoid\n // adding unnecessary `.catch(rethrowAssertionErrorRejection)` handlers\n PerformPromiseThen(pipeStep(), next, rejectLoop);\n }\n }\n next(false);\n });\n }\n function pipeStep() {\n if (shuttingDown) {\n return promiseResolvedWith(true);\n }\n return PerformPromiseThen(writer._readyPromise, () => {\n return newPromise((resolveRead, rejectRead) => {\n ReadableStreamDefaultReaderRead(reader, {\n _chunkSteps: chunk => {\n currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, chunk), undefined, noop);\n resolveRead(false);\n },\n _closeSteps: () => resolveRead(true),\n _errorSteps: rejectRead\n });\n });\n });\n }\n // Errors must be propagated forward\n isOrBecomesErrored(source, reader._closedPromise, storedError => {\n if (!preventAbort) {\n shutdownWithAction(() => WritableStreamAbort(dest, storedError), true, storedError);\n }\n else {\n shutdown(true, storedError);\n }\n });\n // Errors must be propagated backward\n isOrBecomesErrored(dest, writer._closedPromise, storedError => {\n if (!preventCancel) {\n shutdownWithAction(() => ReadableStreamCancel(source, storedError), true, storedError);\n }\n else {\n shutdown(true, storedError);\n }\n });\n // Closing must be propagated forward\n isOrBecomesClosed(source, reader._closedPromise, () => {\n if (!preventClose) {\n shutdownWithAction(() => WritableStreamDefaultWriterCloseWithErrorPropagation(writer));\n }\n else {\n shutdown();\n }\n });\n // Closing must be propagated backward\n if (WritableStreamCloseQueuedOrInFlight(dest) || dest._state === 'closed') {\n const destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');\n if (!preventCancel) {\n shutdownWithAction(() => ReadableStreamCancel(source, destClosed), true, destClosed);\n }\n else {\n shutdown(true, destClosed);\n }\n }\n setPromiseIsHandledToTrue(pipeLoop());\n function waitForWritesToFinish() {\n // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\n // for that too.\n const oldCurrentWrite = currentWrite;\n return PerformPromiseThen(currentWrite, () => oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined);\n }\n function isOrBecomesErrored(stream, promise, action) {\n if (stream._state === 'errored') {\n action(stream._storedError);\n }\n else {\n uponRejection(promise, action);\n }\n }\n function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n }\n else {\n uponFulfillment(promise, action);\n }\n }\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), doTheRest);\n }\n else {\n doTheRest();\n }\n function doTheRest() {\n uponPromise(action(), () => finalize(originalIsError, originalError), newError => finalize(true, newError));\n }\n }\n function shutdown(isError, error) {\n if (shuttingDown) {\n return;\n }\n shuttingDown = true;\n if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n uponFulfillment(waitForWritesToFinish(), () => finalize(isError, error));\n }\n else {\n finalize(isError, error);\n }\n }\n function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\n if (signal !== undefined) {\n signal.removeEventListener('abort', abortAlgorithm);\n }\n if (isError) {\n reject(error);\n }\n else {\n resolve(undefined);\n }\n }\n });\n }\n\n /**\n * Allows control of a {@link ReadableStream | readable stream}'s state and internal queue.\n *\n * @public\n */\n class ReadableStreamDefaultController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n * over-full. An underlying source ought to use this information to determine when and how to apply backpressure.\n */\n get desiredSize() {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('desiredSize');\n }\n return ReadableStreamDefaultControllerGetDesiredSize(this);\n }\n /**\n * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n * the stream, but once those are read, the stream will become closed.\n */\n close() {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('close');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits close');\n }\n ReadableStreamDefaultControllerClose(this);\n }\n enqueue(chunk = undefined) {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('enqueue');\n }\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n throw new TypeError('The stream is not in a state that permits enqueue');\n }\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\n }\n /**\n * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n */\n error(e = undefined) {\n if (!IsReadableStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException$1('error');\n }\n ReadableStreamDefaultControllerError(this, e);\n }\n /** @internal */\n [CancelSteps](reason) {\n ResetQueue(this);\n const result = this._cancelAlgorithm(reason);\n ReadableStreamDefaultControllerClearAlgorithms(this);\n return result;\n }\n /** @internal */\n [PullSteps](readRequest) {\n const stream = this._controlledReadableStream;\n if (this._queue.length > 0) {\n const chunk = DequeueValue(this);\n if (this._closeRequested && this._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(this);\n ReadableStreamClose(stream);\n }\n else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n readRequest._chunkSteps(chunk);\n }\n else {\n ReadableStreamAddReadRequest(stream, readRequest);\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n }\n }\n Object.defineProperties(ReadableStreamDefaultController.prototype, {\n close: { enumerable: true },\n enqueue: { enumerable: true },\n error: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStreamDefaultController',\n configurable: true\n });\n }\n // Abstract operations for the ReadableStreamDefaultController.\n function IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {\n return false;\n }\n return x instanceof ReadableStreamDefaultController;\n }\n function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n const shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n if (!shouldPull) {\n return;\n }\n if (controller._pulling) {\n controller._pullAgain = true;\n return;\n }\n controller._pulling = true;\n const pullPromise = controller._pullAlgorithm();\n uponPromise(pullPromise, () => {\n controller._pulling = false;\n if (controller._pullAgain) {\n controller._pullAgain = false;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n }, e => {\n ReadableStreamDefaultControllerError(controller, e);\n });\n }\n function ReadableStreamDefaultControllerShouldCallPull(controller) {\n const stream = controller._controlledReadableStream;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return false;\n }\n if (!controller._started) {\n return false;\n }\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n const desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n return false;\n }\n function ReadableStreamDefaultControllerClearAlgorithms(controller) {\n controller._pullAlgorithm = undefined;\n controller._cancelAlgorithm = undefined;\n controller._strategySizeAlgorithm = undefined;\n }\n // A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\n function ReadableStreamDefaultControllerClose(controller) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n const stream = controller._controlledReadableStream;\n controller._closeRequested = true;\n if (controller._queue.length === 0) {\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamClose(stream);\n }\n }\n function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n return;\n }\n const stream = controller._controlledReadableStream;\n if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n }\n else {\n let chunkSize;\n try {\n chunkSize = controller._strategySizeAlgorithm(chunk);\n }\n catch (chunkSizeE) {\n ReadableStreamDefaultControllerError(controller, chunkSizeE);\n throw chunkSizeE;\n }\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n }\n catch (enqueueE) {\n ReadableStreamDefaultControllerError(controller, enqueueE);\n throw enqueueE;\n }\n }\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }\n function ReadableStreamDefaultControllerError(controller, e) {\n const stream = controller._controlledReadableStream;\n if (stream._state !== 'readable') {\n return;\n }\n ResetQueue(controller);\n ReadableStreamDefaultControllerClearAlgorithms(controller);\n ReadableStreamError(stream, e);\n }\n function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n const state = controller._controlledReadableStream._state;\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n return controller._strategyHWM - controller._queueTotalSize;\n }\n // This is used in the implementation of TransformStream.\n function ReadableStreamDefaultControllerHasBackpressure(controller) {\n if (ReadableStreamDefaultControllerShouldCallPull(controller)) {\n return false;\n }\n return true;\n }\n function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {\n const state = controller._controlledReadableStream._state;\n if (!controller._closeRequested && state === 'readable') {\n return true;\n }\n return false;\n }\n function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n controller._controlledReadableStream = stream;\n controller._queue = undefined;\n controller._queueTotalSize = undefined;\n ResetQueue(controller);\n controller._started = false;\n controller._closeRequested = false;\n controller._pullAgain = false;\n controller._pulling = false;\n controller._strategySizeAlgorithm = sizeAlgorithm;\n controller._strategyHWM = highWaterMark;\n controller._pullAlgorithm = pullAlgorithm;\n controller._cancelAlgorithm = cancelAlgorithm;\n stream._readableStreamController = controller;\n const startResult = startAlgorithm();\n uponPromise(promiseResolvedWith(startResult), () => {\n controller._started = true;\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }, r => {\n ReadableStreamDefaultControllerError(controller, r);\n });\n }\n function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {\n const controller = Object.create(ReadableStreamDefaultController.prototype);\n let startAlgorithm = () => undefined;\n let pullAlgorithm = () => promiseResolvedWith(undefined);\n let cancelAlgorithm = () => promiseResolvedWith(undefined);\n if (underlyingSource.start !== undefined) {\n startAlgorithm = () => underlyingSource.start(controller);\n }\n if (underlyingSource.pull !== undefined) {\n pullAlgorithm = () => underlyingSource.pull(controller);\n }\n if (underlyingSource.cancel !== undefined) {\n cancelAlgorithm = reason => underlyingSource.cancel(reason);\n }\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n }\n // Helper functions for the ReadableStreamDefaultController.\n function defaultControllerBrandCheckException$1(name) {\n return new TypeError(`ReadableStreamDefaultController.prototype.${name} can only be used on a ReadableStreamDefaultController`);\n }\n\n function ReadableStreamTee(stream, cloneForBranch2) {\n if (IsReadableByteStreamController(stream._readableStreamController)) {\n return ReadableByteStreamTee(stream);\n }\n return ReadableStreamDefaultTee(stream);\n }\n function ReadableStreamDefaultTee(stream, cloneForBranch2) {\n const reader = AcquireReadableStreamDefaultReader(stream);\n let reading = false;\n let readAgain = false;\n let canceled1 = false;\n let canceled2 = false;\n let reason1;\n let reason2;\n let branch1;\n let branch2;\n let resolveCancelPromise;\n const cancelPromise = newPromise(resolve => {\n resolveCancelPromise = resolve;\n });\n function pullAlgorithm() {\n if (reading) {\n readAgain = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n const readRequest = {\n _chunkSteps: chunk => {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(() => {\n readAgain = false;\n const chunk1 = chunk;\n const chunk2 = chunk;\n // There is no way to access the cloning code right now in the reference implementation.\n // If we add one then we'll need an implementation for serializable objects.\n // if (!canceled2 && cloneForBranch2) {\n // chunk2 = StructuredDeserialize(StructuredSerialize(chunk2));\n // }\n if (!canceled1) {\n ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, chunk1);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, chunk2);\n }\n reading = false;\n if (readAgain) {\n pullAlgorithm();\n }\n });\n },\n _closeSteps: () => {\n reading = false;\n if (!canceled1) {\n ReadableStreamDefaultControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableStreamDefaultControllerClose(branch2._readableStreamController);\n }\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: () => {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n // do nothing\n }\n branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);\n branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);\n uponRejection(reader._closedPromise, (r) => {\n ReadableStreamDefaultControllerError(branch1._readableStreamController, r);\n ReadableStreamDefaultControllerError(branch2._readableStreamController, r);\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n });\n return [branch1, branch2];\n }\n function ReadableByteStreamTee(stream) {\n let reader = AcquireReadableStreamDefaultReader(stream);\n let reading = false;\n let readAgainForBranch1 = false;\n let readAgainForBranch2 = false;\n let canceled1 = false;\n let canceled2 = false;\n let reason1;\n let reason2;\n let branch1;\n let branch2;\n let resolveCancelPromise;\n const cancelPromise = newPromise(resolve => {\n resolveCancelPromise = resolve;\n });\n function forwardReaderError(thisReader) {\n uponRejection(thisReader._closedPromise, r => {\n if (thisReader !== reader) {\n return;\n }\n ReadableByteStreamControllerError(branch1._readableStreamController, r);\n ReadableByteStreamControllerError(branch2._readableStreamController, r);\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n });\n }\n function pullWithDefaultReader() {\n if (IsReadableStreamBYOBReader(reader)) {\n ReadableStreamReaderGenericRelease(reader);\n reader = AcquireReadableStreamDefaultReader(stream);\n forwardReaderError(reader);\n }\n const readRequest = {\n _chunkSteps: chunk => {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(() => {\n readAgainForBranch1 = false;\n readAgainForBranch2 = false;\n const chunk1 = chunk;\n let chunk2 = chunk;\n if (!canceled1 && !canceled2) {\n try {\n chunk2 = CloneAsUint8Array(chunk);\n }\n catch (cloneE) {\n ReadableByteStreamControllerError(branch1._readableStreamController, cloneE);\n ReadableByteStreamControllerError(branch2._readableStreamController, cloneE);\n resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n return;\n }\n }\n if (!canceled1) {\n ReadableByteStreamControllerEnqueue(branch1._readableStreamController, chunk1);\n }\n if (!canceled2) {\n ReadableByteStreamControllerEnqueue(branch2._readableStreamController, chunk2);\n }\n reading = false;\n if (readAgainForBranch1) {\n pull1Algorithm();\n }\n else if (readAgainForBranch2) {\n pull2Algorithm();\n }\n });\n },\n _closeSteps: () => {\n reading = false;\n if (!canceled1) {\n ReadableByteStreamControllerClose(branch1._readableStreamController);\n }\n if (!canceled2) {\n ReadableByteStreamControllerClose(branch2._readableStreamController);\n }\n if (branch1._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(branch1._readableStreamController, 0);\n }\n if (branch2._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(branch2._readableStreamController, 0);\n }\n if (!canceled1 || !canceled2) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: () => {\n reading = false;\n }\n };\n ReadableStreamDefaultReaderRead(reader, readRequest);\n }\n function pullWithBYOBReader(view, forBranch2) {\n if (IsReadableStreamDefaultReader(reader)) {\n ReadableStreamReaderGenericRelease(reader);\n reader = AcquireReadableStreamBYOBReader(stream);\n forwardReaderError(reader);\n }\n const byobBranch = forBranch2 ? branch2 : branch1;\n const otherBranch = forBranch2 ? branch1 : branch2;\n const readIntoRequest = {\n _chunkSteps: chunk => {\n // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n // successful synchronously-available reads get ahead of asynchronously-available errors.\n queueMicrotask(() => {\n readAgainForBranch1 = false;\n readAgainForBranch2 = false;\n const byobCanceled = forBranch2 ? canceled2 : canceled1;\n const otherCanceled = forBranch2 ? canceled1 : canceled2;\n if (!otherCanceled) {\n let clonedChunk;\n try {\n clonedChunk = CloneAsUint8Array(chunk);\n }\n catch (cloneE) {\n ReadableByteStreamControllerError(byobBranch._readableStreamController, cloneE);\n ReadableByteStreamControllerError(otherBranch._readableStreamController, cloneE);\n resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n return;\n }\n if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n ReadableByteStreamControllerEnqueue(otherBranch._readableStreamController, clonedChunk);\n }\n else if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n reading = false;\n if (readAgainForBranch1) {\n pull1Algorithm();\n }\n else if (readAgainForBranch2) {\n pull2Algorithm();\n }\n });\n },\n _closeSteps: chunk => {\n reading = false;\n const byobCanceled = forBranch2 ? canceled2 : canceled1;\n const otherCanceled = forBranch2 ? canceled1 : canceled2;\n if (!byobCanceled) {\n ReadableByteStreamControllerClose(byobBranch._readableStreamController);\n }\n if (!otherCanceled) {\n ReadableByteStreamControllerClose(otherBranch._readableStreamController);\n }\n if (chunk !== undefined) {\n if (!byobCanceled) {\n ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n }\n if (!otherCanceled && otherBranch._readableStreamController._pendingPullIntos.length > 0) {\n ReadableByteStreamControllerRespond(otherBranch._readableStreamController, 0);\n }\n }\n if (!byobCanceled || !otherCanceled) {\n resolveCancelPromise(undefined);\n }\n },\n _errorSteps: () => {\n reading = false;\n }\n };\n ReadableStreamBYOBReaderRead(reader, view, readIntoRequest);\n }\n function pull1Algorithm() {\n if (reading) {\n readAgainForBranch1 = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch1._readableStreamController);\n if (byobRequest === null) {\n pullWithDefaultReader();\n }\n else {\n pullWithBYOBReader(byobRequest._view, false);\n }\n return promiseResolvedWith(undefined);\n }\n function pull2Algorithm() {\n if (reading) {\n readAgainForBranch2 = true;\n return promiseResolvedWith(undefined);\n }\n reading = true;\n const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch2._readableStreamController);\n if (byobRequest === null) {\n pullWithDefaultReader();\n }\n else {\n pullWithBYOBReader(byobRequest._view, true);\n }\n return promiseResolvedWith(undefined);\n }\n function cancel1Algorithm(reason) {\n canceled1 = true;\n reason1 = reason;\n if (canceled2) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function cancel2Algorithm(reason) {\n canceled2 = true;\n reason2 = reason;\n if (canceled1) {\n const compositeReason = CreateArrayFromList([reason1, reason2]);\n const cancelResult = ReadableStreamCancel(stream, compositeReason);\n resolveCancelPromise(cancelResult);\n }\n return cancelPromise;\n }\n function startAlgorithm() {\n return;\n }\n branch1 = CreateReadableByteStream(startAlgorithm, pull1Algorithm, cancel1Algorithm);\n branch2 = CreateReadableByteStream(startAlgorithm, pull2Algorithm, cancel2Algorithm);\n forwardReaderError(reader);\n return [branch1, branch2];\n }\n\n function convertUnderlyingDefaultOrByteSource(source, context) {\n assertDictionary(source, context);\n const original = source;\n const autoAllocateChunkSize = original === null || original === void 0 ? void 0 : original.autoAllocateChunkSize;\n const cancel = original === null || original === void 0 ? void 0 : original.cancel;\n const pull = original === null || original === void 0 ? void 0 : original.pull;\n const start = original === null || original === void 0 ? void 0 : original.start;\n const type = original === null || original === void 0 ? void 0 : original.type;\n return {\n autoAllocateChunkSize: autoAllocateChunkSize === undefined ?\n undefined :\n convertUnsignedLongLongWithEnforceRange(autoAllocateChunkSize, `${context} has member 'autoAllocateChunkSize' that`),\n cancel: cancel === undefined ?\n undefined :\n convertUnderlyingSourceCancelCallback(cancel, original, `${context} has member 'cancel' that`),\n pull: pull === undefined ?\n undefined :\n convertUnderlyingSourcePullCallback(pull, original, `${context} has member 'pull' that`),\n start: start === undefined ?\n undefined :\n convertUnderlyingSourceStartCallback(start, original, `${context} has member 'start' that`),\n type: type === undefined ? undefined : convertReadableStreamType(type, `${context} has member 'type' that`)\n };\n }\n function convertUnderlyingSourceCancelCallback(fn, original, context) {\n assertFunction(fn, context);\n return (reason) => promiseCall(fn, original, [reason]);\n }\n function convertUnderlyingSourcePullCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => promiseCall(fn, original, [controller]);\n }\n function convertUnderlyingSourceStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => reflectCall(fn, original, [controller]);\n }\n function convertReadableStreamType(type, context) {\n type = `${type}`;\n if (type !== 'bytes') {\n throw new TypeError(`${context} '${type}' is not a valid enumeration value for ReadableStreamType`);\n }\n return type;\n }\n\n function convertReaderOptions(options, context) {\n assertDictionary(options, context);\n const mode = options === null || options === void 0 ? void 0 : options.mode;\n return {\n mode: mode === undefined ? undefined : convertReadableStreamReaderMode(mode, `${context} has member 'mode' that`)\n };\n }\n function convertReadableStreamReaderMode(mode, context) {\n mode = `${mode}`;\n if (mode !== 'byob') {\n throw new TypeError(`${context} '${mode}' is not a valid enumeration value for ReadableStreamReaderMode`);\n }\n return mode;\n }\n\n function convertIteratorOptions(options, context) {\n assertDictionary(options, context);\n const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n return { preventCancel: Boolean(preventCancel) };\n }\n\n function convertPipeOptions(options, context) {\n assertDictionary(options, context);\n const preventAbort = options === null || options === void 0 ? void 0 : options.preventAbort;\n const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n const preventClose = options === null || options === void 0 ? void 0 : options.preventClose;\n const signal = options === null || options === void 0 ? void 0 : options.signal;\n if (signal !== undefined) {\n assertAbortSignal(signal, `${context} has member 'signal' that`);\n }\n return {\n preventAbort: Boolean(preventAbort),\n preventCancel: Boolean(preventCancel),\n preventClose: Boolean(preventClose),\n signal\n };\n }\n function assertAbortSignal(signal, context) {\n if (!isAbortSignal(signal)) {\n throw new TypeError(`${context} is not an AbortSignal.`);\n }\n }\n\n function convertReadableWritablePair(pair, context) {\n assertDictionary(pair, context);\n const readable = pair === null || pair === void 0 ? void 0 : pair.readable;\n assertRequiredField(readable, 'readable', 'ReadableWritablePair');\n assertReadableStream(readable, `${context} has member 'readable' that`);\n const writable = pair === null || pair === void 0 ? void 0 : pair.writable;\n assertRequiredField(writable, 'writable', 'ReadableWritablePair');\n assertWritableStream(writable, `${context} has member 'writable' that`);\n return { readable, writable };\n }\n\n /**\n * A readable stream represents a source of data, from which you can read.\n *\n * @public\n */\n class ReadableStream {\n constructor(rawUnderlyingSource = {}, rawStrategy = {}) {\n if (rawUnderlyingSource === undefined) {\n rawUnderlyingSource = null;\n }\n else {\n assertObject(rawUnderlyingSource, 'First parameter');\n }\n const strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n const underlyingSource = convertUnderlyingDefaultOrByteSource(rawUnderlyingSource, 'First parameter');\n InitializeReadableStream(this);\n if (underlyingSource.type === 'bytes') {\n if (strategy.size !== undefined) {\n throw new RangeError('The strategy for a byte stream cannot have a size function');\n }\n const highWaterMark = ExtractHighWaterMark(strategy, 0);\n SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);\n }\n else {\n const sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n const highWaterMark = ExtractHighWaterMark(strategy, 1);\n SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);\n }\n }\n /**\n * Whether or not the readable stream is locked to a {@link ReadableStreamDefaultReader | reader}.\n */\n get locked() {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('locked');\n }\n return IsReadableStreamLocked(this);\n }\n /**\n * Cancels the stream, signaling a loss of interest in the stream by a consumer.\n *\n * The supplied `reason` argument will be given to the underlying source's {@link UnderlyingSource.cancel | cancel()}\n * method, which might or might not use it.\n */\n cancel(reason = undefined) {\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('cancel'));\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader'));\n }\n return ReadableStreamCancel(this, reason);\n }\n getReader(rawOptions = undefined) {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('getReader');\n }\n const options = convertReaderOptions(rawOptions, 'First parameter');\n if (options.mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n return AcquireReadableStreamBYOBReader(this);\n }\n pipeThrough(rawTransform, rawOptions = {}) {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('pipeThrough');\n }\n assertRequiredArgument(rawTransform, 1, 'pipeThrough');\n const transform = convertReadableWritablePair(rawTransform, 'First parameter');\n const options = convertPipeOptions(rawOptions, 'Second parameter');\n if (IsReadableStreamLocked(this)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');\n }\n if (IsWritableStreamLocked(transform.writable)) {\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');\n }\n const promise = ReadableStreamPipeTo(this, transform.writable, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n setPromiseIsHandledToTrue(promise);\n return transform.readable;\n }\n pipeTo(destination, rawOptions = {}) {\n if (!IsReadableStream(this)) {\n return promiseRejectedWith(streamBrandCheckException$1('pipeTo'));\n }\n if (destination === undefined) {\n return promiseRejectedWith(`Parameter 1 is required in 'pipeTo'.`);\n }\n if (!IsWritableStream(destination)) {\n return promiseRejectedWith(new TypeError(`ReadableStream.prototype.pipeTo's first argument must be a WritableStream`));\n }\n let options;\n try {\n options = convertPipeOptions(rawOptions, 'Second parameter');\n }\n catch (e) {\n return promiseRejectedWith(e);\n }\n if (IsReadableStreamLocked(this)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n }\n if (IsWritableStreamLocked(destination)) {\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n }\n return ReadableStreamPipeTo(this, destination, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n }\n /**\n * Tees this readable stream, returning a two-element array containing the two resulting branches as\n * new {@link ReadableStream} instances.\n *\n * Teeing a stream will lock it, preventing any other consumer from acquiring a reader.\n * To cancel the stream, cancel both of the resulting branches; a composite cancellation reason will then be\n * propagated to the stream's underlying source.\n *\n * Note that the chunks seen in each branch will be the same object. If the chunks are not immutable,\n * this could allow interference between the two branches.\n */\n tee() {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('tee');\n }\n const branches = ReadableStreamTee(this);\n return CreateArrayFromList(branches);\n }\n values(rawOptions = undefined) {\n if (!IsReadableStream(this)) {\n throw streamBrandCheckException$1('values');\n }\n const options = convertIteratorOptions(rawOptions, 'First parameter');\n return AcquireReadableStreamAsyncIterator(this, options.preventCancel);\n }\n }\n Object.defineProperties(ReadableStream.prototype, {\n cancel: { enumerable: true },\n getReader: { enumerable: true },\n pipeThrough: { enumerable: true },\n pipeTo: { enumerable: true },\n tee: { enumerable: true },\n values: { enumerable: true },\n locked: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'ReadableStream',\n configurable: true\n });\n }\n if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, {\n value: ReadableStream.prototype.values,\n writable: true,\n configurable: true\n });\n }\n // Abstract operations for the ReadableStream.\n // Throws if and only if startAlgorithm throws.\n function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) {\n const stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n const controller = Object.create(ReadableStreamDefaultController.prototype);\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n return stream;\n }\n // Throws if and only if startAlgorithm throws.\n function CreateReadableByteStream(startAlgorithm, pullAlgorithm, cancelAlgorithm) {\n const stream = Object.create(ReadableStream.prototype);\n InitializeReadableStream(stream);\n const controller = Object.create(ReadableByteStreamController.prototype);\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, 0, undefined);\n return stream;\n }\n function InitializeReadableStream(stream) {\n stream._state = 'readable';\n stream._reader = undefined;\n stream._storedError = undefined;\n stream._disturbed = false;\n }\n function IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n return x instanceof ReadableStream;\n }\n function IsReadableStreamLocked(stream) {\n if (stream._reader === undefined) {\n return false;\n }\n return true;\n }\n // ReadableStream API exposed for controllers.\n function ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n if (stream._state === 'closed') {\n return promiseResolvedWith(undefined);\n }\n if (stream._state === 'errored') {\n return promiseRejectedWith(stream._storedError);\n }\n ReadableStreamClose(stream);\n const reader = stream._reader;\n if (reader !== undefined && IsReadableStreamBYOBReader(reader)) {\n reader._readIntoRequests.forEach(readIntoRequest => {\n readIntoRequest._closeSteps(undefined);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n const sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);\n return transformPromiseWith(sourceCancelPromise, noop);\n }\n function ReadableStreamClose(stream) {\n stream._state = 'closed';\n const reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n defaultReaderClosedPromiseResolve(reader);\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(readRequest => {\n readRequest._closeSteps();\n });\n reader._readRequests = new SimpleQueue();\n }\n }\n function ReadableStreamError(stream, e) {\n stream._state = 'errored';\n stream._storedError = e;\n const reader = stream._reader;\n if (reader === undefined) {\n return;\n }\n defaultReaderClosedPromiseReject(reader, e);\n if (IsReadableStreamDefaultReader(reader)) {\n reader._readRequests.forEach(readRequest => {\n readRequest._errorSteps(e);\n });\n reader._readRequests = new SimpleQueue();\n }\n else {\n reader._readIntoRequests.forEach(readIntoRequest => {\n readIntoRequest._errorSteps(e);\n });\n reader._readIntoRequests = new SimpleQueue();\n }\n }\n // Helper functions for the ReadableStream.\n function streamBrandCheckException$1(name) {\n return new TypeError(`ReadableStream.prototype.${name} can only be used on a ReadableStream`);\n }\n\n function convertQueuingStrategyInit(init, context) {\n assertDictionary(init, context);\n const highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n assertRequiredField(highWaterMark, 'highWaterMark', 'QueuingStrategyInit');\n return {\n highWaterMark: convertUnrestrictedDouble(highWaterMark)\n };\n }\n\n // The size function must not have a prototype property nor be a constructor\n const byteLengthSizeFunction = (chunk) => {\n return chunk.byteLength;\n };\n try {\n Object.defineProperty(byteLengthSizeFunction, 'name', {\n value: 'size',\n configurable: true\n });\n }\n catch (_a) {\n // This property is non-configurable in older browsers, so ignore if this throws.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility\n }\n /**\n * A queuing strategy that counts the number of bytes in each chunk.\n *\n * @public\n */\n class ByteLengthQueuingStrategy {\n constructor(options) {\n assertRequiredArgument(options, 1, 'ByteLengthQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._byteLengthQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n /**\n * Returns the high water mark provided to the constructor.\n */\n get highWaterMark() {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('highWaterMark');\n }\n return this._byteLengthQueuingStrategyHighWaterMark;\n }\n /**\n * Measures the size of `chunk` by returning the value of its `byteLength` property.\n */\n get size() {\n if (!IsByteLengthQueuingStrategy(this)) {\n throw byteLengthBrandCheckException('size');\n }\n return byteLengthSizeFunction;\n }\n }\n Object.defineProperties(ByteLengthQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(ByteLengthQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'ByteLengthQueuingStrategy',\n configurable: true\n });\n }\n // Helper functions for the ByteLengthQueuingStrategy.\n function byteLengthBrandCheckException(name) {\n return new TypeError(`ByteLengthQueuingStrategy.prototype.${name} can only be used on a ByteLengthQueuingStrategy`);\n }\n function IsByteLengthQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_byteLengthQueuingStrategyHighWaterMark')) {\n return false;\n }\n return x instanceof ByteLengthQueuingStrategy;\n }\n\n // The size function must not have a prototype property nor be a constructor\n const countSizeFunction = () => {\n return 1;\n };\n try {\n Object.defineProperty(countSizeFunction, 'name', {\n value: 'size',\n configurable: true\n });\n }\n catch (_a) {\n // This property is non-configurable in older browsers, so ignore if this throws.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility\n }\n /**\n * A queuing strategy that counts the number of chunks.\n *\n * @public\n */\n class CountQueuingStrategy {\n constructor(options) {\n assertRequiredArgument(options, 1, 'CountQueuingStrategy');\n options = convertQueuingStrategyInit(options, 'First parameter');\n this._countQueuingStrategyHighWaterMark = options.highWaterMark;\n }\n /**\n * Returns the high water mark provided to the constructor.\n */\n get highWaterMark() {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('highWaterMark');\n }\n return this._countQueuingStrategyHighWaterMark;\n }\n /**\n * Measures the size of `chunk` by always returning 1.\n * This ensures that the total queue size is a count of the number of chunks in the queue.\n */\n get size() {\n if (!IsCountQueuingStrategy(this)) {\n throw countBrandCheckException('size');\n }\n return countSizeFunction;\n }\n }\n Object.defineProperties(CountQueuingStrategy.prototype, {\n highWaterMark: { enumerable: true },\n size: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(CountQueuingStrategy.prototype, SymbolPolyfill.toStringTag, {\n value: 'CountQueuingStrategy',\n configurable: true\n });\n }\n // Helper functions for the CountQueuingStrategy.\n function countBrandCheckException(name) {\n return new TypeError(`CountQueuingStrategy.prototype.${name} can only be used on a CountQueuingStrategy`);\n }\n function IsCountQueuingStrategy(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_countQueuingStrategyHighWaterMark')) {\n return false;\n }\n return x instanceof CountQueuingStrategy;\n }\n\n function convertTransformer(original, context) {\n assertDictionary(original, context);\n const flush = original === null || original === void 0 ? void 0 : original.flush;\n const readableType = original === null || original === void 0 ? void 0 : original.readableType;\n const start = original === null || original === void 0 ? void 0 : original.start;\n const transform = original === null || original === void 0 ? void 0 : original.transform;\n const writableType = original === null || original === void 0 ? void 0 : original.writableType;\n return {\n flush: flush === undefined ?\n undefined :\n convertTransformerFlushCallback(flush, original, `${context} has member 'flush' that`),\n readableType,\n start: start === undefined ?\n undefined :\n convertTransformerStartCallback(start, original, `${context} has member 'start' that`),\n transform: transform === undefined ?\n undefined :\n convertTransformerTransformCallback(transform, original, `${context} has member 'transform' that`),\n writableType\n };\n }\n function convertTransformerFlushCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => promiseCall(fn, original, [controller]);\n }\n function convertTransformerStartCallback(fn, original, context) {\n assertFunction(fn, context);\n return (controller) => reflectCall(fn, original, [controller]);\n }\n function convertTransformerTransformCallback(fn, original, context) {\n assertFunction(fn, context);\n return (chunk, controller) => promiseCall(fn, original, [chunk, controller]);\n }\n\n // Class TransformStream\n /**\n * A transform stream consists of a pair of streams: a {@link WritableStream | writable stream},\n * known as its writable side, and a {@link ReadableStream | readable stream}, known as its readable side.\n * In a manner specific to the transform stream in question, writes to the writable side result in new data being\n * made available for reading from the readable side.\n *\n * @public\n */\n class TransformStream {\n constructor(rawTransformer = {}, rawWritableStrategy = {}, rawReadableStrategy = {}) {\n if (rawTransformer === undefined) {\n rawTransformer = null;\n }\n const writableStrategy = convertQueuingStrategy(rawWritableStrategy, 'Second parameter');\n const readableStrategy = convertQueuingStrategy(rawReadableStrategy, 'Third parameter');\n const transformer = convertTransformer(rawTransformer, 'First parameter');\n if (transformer.readableType !== undefined) {\n throw new RangeError('Invalid readableType specified');\n }\n if (transformer.writableType !== undefined) {\n throw new RangeError('Invalid writableType specified');\n }\n const readableHighWaterMark = ExtractHighWaterMark(readableStrategy, 0);\n const readableSizeAlgorithm = ExtractSizeAlgorithm(readableStrategy);\n const writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1);\n const writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy);\n let startPromise_resolve;\n const startPromise = newPromise(resolve => {\n startPromise_resolve = resolve;\n });\n InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);\n if (transformer.start !== undefined) {\n startPromise_resolve(transformer.start(this._transformStreamController));\n }\n else {\n startPromise_resolve(undefined);\n }\n }\n /**\n * The readable side of the transform stream.\n */\n get readable() {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException('readable');\n }\n return this._readable;\n }\n /**\n * The writable side of the transform stream.\n */\n get writable() {\n if (!IsTransformStream(this)) {\n throw streamBrandCheckException('writable');\n }\n return this._writable;\n }\n }\n Object.defineProperties(TransformStream.prototype, {\n readable: { enumerable: true },\n writable: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStream.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStream',\n configurable: true\n });\n }\n function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {\n function startAlgorithm() {\n return startPromise;\n }\n function writeAlgorithm(chunk) {\n return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);\n }\n function abortAlgorithm(reason) {\n return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);\n }\n function closeAlgorithm() {\n return TransformStreamDefaultSinkCloseAlgorithm(stream);\n }\n stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);\n function pullAlgorithm() {\n return TransformStreamDefaultSourcePullAlgorithm(stream);\n }\n function cancelAlgorithm(reason) {\n TransformStreamErrorWritableAndUnblockWrite(stream, reason);\n return promiseResolvedWith(undefined);\n }\n stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n // The [[backpressure]] slot is set to undefined so that it can be initialised by TransformStreamSetBackpressure.\n stream._backpressure = undefined;\n stream._backpressureChangePromise = undefined;\n stream._backpressureChangePromise_resolve = undefined;\n TransformStreamSetBackpressure(stream, true);\n stream._transformStreamController = undefined;\n }\n function IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n return x instanceof TransformStream;\n }\n // This is a no-op if both sides are already errored.\n function TransformStreamError(stream, e) {\n ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n }\n function TransformStreamErrorWritableAndUnblockWrite(stream, e) {\n TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);\n WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);\n if (stream._backpressure) {\n // Pretend that pull() was called to permit any pending write() calls to complete. TransformStreamSetBackpressure()\n // cannot be called from enqueue() or pull() once the ReadableStream is errored, so this will will be the final time\n // _backpressure is set.\n TransformStreamSetBackpressure(stream, false);\n }\n }\n function TransformStreamSetBackpressure(stream, backpressure) {\n // Passes also when called during construction.\n if (stream._backpressureChangePromise !== undefined) {\n stream._backpressureChangePromise_resolve();\n }\n stream._backpressureChangePromise = newPromise(resolve => {\n stream._backpressureChangePromise_resolve = resolve;\n });\n stream._backpressure = backpressure;\n }\n // Class TransformStreamDefaultController\n /**\n * Allows control of the {@link ReadableStream} and {@link WritableStream} of the associated {@link TransformStream}.\n *\n * @public\n */\n class TransformStreamDefaultController {\n constructor() {\n throw new TypeError('Illegal constructor');\n }\n /**\n * Returns the desired size to fill the readable side’s internal queue. It can be negative, if the queue is over-full.\n */\n get desiredSize() {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('desiredSize');\n }\n const readableController = this._controlledTransformStream._readable._readableStreamController;\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n }\n enqueue(chunk = undefined) {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n TransformStreamDefaultControllerEnqueue(this, chunk);\n }\n /**\n * Errors both the readable side and the writable side of the controlled transform stream, making all future\n * interactions with it fail with the given error `e`. Any chunks queued for transformation will be discarded.\n */\n error(reason = undefined) {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('error');\n }\n TransformStreamDefaultControllerError(this, reason);\n }\n /**\n * Closes the readable side and errors the writable side of the controlled transform stream. This is useful when the\n * transformer only needs to consume a portion of the chunks written to the writable side.\n */\n terminate() {\n if (!IsTransformStreamDefaultController(this)) {\n throw defaultControllerBrandCheckException('terminate');\n }\n TransformStreamDefaultControllerTerminate(this);\n }\n }\n Object.defineProperties(TransformStreamDefaultController.prototype, {\n enqueue: { enumerable: true },\n error: { enumerable: true },\n terminate: { enumerable: true },\n desiredSize: { enumerable: true }\n });\n if (typeof SymbolPolyfill.toStringTag === 'symbol') {\n Object.defineProperty(TransformStreamDefaultController.prototype, SymbolPolyfill.toStringTag, {\n value: 'TransformStreamDefaultController',\n configurable: true\n });\n }\n // Transform Stream Default Controller Abstract Operations\n function IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n return x instanceof TransformStreamDefaultController;\n }\n function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) {\n controller._controlledTransformStream = stream;\n stream._transformStreamController = controller;\n controller._transformAlgorithm = transformAlgorithm;\n controller._flushAlgorithm = flushAlgorithm;\n }\n function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {\n const controller = Object.create(TransformStreamDefaultController.prototype);\n let transformAlgorithm = (chunk) => {\n try {\n TransformStreamDefaultControllerEnqueue(controller, chunk);\n return promiseResolvedWith(undefined);\n }\n catch (transformResultE) {\n return promiseRejectedWith(transformResultE);\n }\n };\n let flushAlgorithm = () => promiseResolvedWith(undefined);\n if (transformer.transform !== undefined) {\n transformAlgorithm = chunk => transformer.transform(chunk, controller);\n }\n if (transformer.flush !== undefined) {\n flushAlgorithm = () => transformer.flush(controller);\n }\n SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);\n }\n function TransformStreamDefaultControllerClearAlgorithms(controller) {\n controller._transformAlgorithm = undefined;\n controller._flushAlgorithm = undefined;\n }\n function TransformStreamDefaultControllerEnqueue(controller, chunk) {\n const stream = controller._controlledTransformStream;\n const readableController = stream._readable._readableStreamController;\n if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController)) {\n throw new TypeError('Readable side is not in a state that permits enqueue');\n }\n // We throttle transform invocations based on the backpressure of the ReadableStream, but we still\n // accept TransformStreamDefaultControllerEnqueue() calls.\n try {\n ReadableStreamDefaultControllerEnqueue(readableController, chunk);\n }\n catch (e) {\n // This happens when readableStrategy.size() throws.\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\n throw stream._readable._storedError;\n }\n const backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);\n if (backpressure !== stream._backpressure) {\n TransformStreamSetBackpressure(stream, true);\n }\n }\n function TransformStreamDefaultControllerError(controller, e) {\n TransformStreamError(controller._controlledTransformStream, e);\n }\n function TransformStreamDefaultControllerPerformTransform(controller, chunk) {\n const transformPromise = controller._transformAlgorithm(chunk);\n return transformPromiseWith(transformPromise, undefined, r => {\n TransformStreamError(controller._controlledTransformStream, r);\n throw r;\n });\n }\n function TransformStreamDefaultControllerTerminate(controller) {\n const stream = controller._controlledTransformStream;\n const readableController = stream._readable._readableStreamController;\n ReadableStreamDefaultControllerClose(readableController);\n const error = new TypeError('TransformStream terminated');\n TransformStreamErrorWritableAndUnblockWrite(stream, error);\n }\n // TransformStreamDefaultSink Algorithms\n function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {\n const controller = stream._transformStreamController;\n if (stream._backpressure) {\n const backpressureChangePromise = stream._backpressureChangePromise;\n return transformPromiseWith(backpressureChangePromise, () => {\n const writable = stream._writable;\n const state = writable._state;\n if (state === 'erroring') {\n throw writable._storedError;\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n });\n }\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n }\n function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {\n // abort() is not called synchronously, so it is possible for abort() to be called when the stream is already\n // errored.\n TransformStreamError(stream, reason);\n return promiseResolvedWith(undefined);\n }\n function TransformStreamDefaultSinkCloseAlgorithm(stream) {\n // stream._readable cannot change after construction, so caching it across a call to user code is safe.\n const readable = stream._readable;\n const controller = stream._transformStreamController;\n const flushPromise = controller._flushAlgorithm();\n TransformStreamDefaultControllerClearAlgorithms(controller);\n // Return a promise that is fulfilled with undefined on success.\n return transformPromiseWith(flushPromise, () => {\n if (readable._state === 'errored') {\n throw readable._storedError;\n }\n ReadableStreamDefaultControllerClose(readable._readableStreamController);\n }, r => {\n TransformStreamError(stream, r);\n throw readable._storedError;\n });\n }\n // TransformStreamDefaultSource Algorithms\n function TransformStreamDefaultSourcePullAlgorithm(stream) {\n // Invariant. Enforced by the promises returned by start() and pull().\n TransformStreamSetBackpressure(stream, false);\n // Prevent the next pull() call until there is backpressure.\n return stream._backpressureChangePromise;\n }\n // Helper functions for the TransformStreamDefaultController.\n function defaultControllerBrandCheckException(name) {\n return new TypeError(`TransformStreamDefaultController.prototype.${name} can only be used on a TransformStreamDefaultController`);\n }\n // Helper functions for the TransformStream.\n function streamBrandCheckException(name) {\n return new TypeError(`TransformStream.prototype.${name} can only be used on a TransformStream`);\n }\n\n exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy;\n exports.CountQueuingStrategy = CountQueuingStrategy;\n exports.ReadableByteStreamController = ReadableByteStreamController;\n exports.ReadableStream = ReadableStream;\n exports.ReadableStreamBYOBReader = ReadableStreamBYOBReader;\n exports.ReadableStreamBYOBRequest = ReadableStreamBYOBRequest;\n exports.ReadableStreamDefaultController = ReadableStreamDefaultController;\n exports.ReadableStreamDefaultReader = ReadableStreamDefaultReader;\n exports.TransformStream = TransformStream;\n exports.TransformStreamDefaultController = TransformStreamDefaultController;\n exports.WritableStream = WritableStream;\n exports.WritableStreamDefaultController = WritableStreamDefaultController;\n exports.WritableStreamDefaultWriter = WritableStreamDefaultWriter;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=ponyfill.es2018.js.map\n","module.exports = require(\"assert\");","module.exports = require(\"buffer\");","module.exports = require(\"crypto\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"node:process\");","module.exports = require(\"node:stream/web\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"tls\");","module.exports = require(\"util\");","module.exports = require(\"worker_threads\");","/* c8 ignore start */\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\nif (!globalThis.ReadableStream) {\n // `node:stream/web` got introduced in v16.5.0 as experimental\n // and it's preferred over the polyfilled version. So we also\n // suppress the warning that gets emitted by NodeJS for using it.\n try {\n const process = require('node:process')\n const { emitWarning } = process\n try {\n process.emitWarning = () => {}\n Object.assign(globalThis, require('node:stream/web'))\n process.emitWarning = emitWarning\n } catch (error) {\n process.emitWarning = emitWarning\n throw error\n }\n } catch (error) {\n // fallback to polyfill implementation\n Object.assign(globalThis, require('web-streams-polyfill/dist/ponyfill.es2018.js'))\n }\n}\n\ntry {\n // Don't use node: prefix for this, require+node: is not supported until node v14.14\n // Only `import()` can use prefix in 12.20 and later\n const { Blob } = require('buffer')\n if (Blob && !Blob.prototype.stream) {\n Blob.prototype.stream = function name (params) {\n let position = 0\n const blob = this\n\n return new ReadableStream({\n type: 'bytes',\n async pull (ctrl) {\n const chunk = blob.slice(position, Math.min(blob.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n ctrl.enqueue(new Uint8Array(buffer))\n\n if (position === blob.size) {\n ctrl.close()\n }\n }\n })\n }\n }\n} catch (error) {}\n/* c8 ignore end */\n","import Blob from './index.js'\n\nconst _File = class File extends Blob {\n #lastModified = 0\n #name = ''\n\n /**\n * @param {*[]} fileBits\n * @param {string} fileName\n * @param {{lastModified?: number, type?: string}} options\n */// @ts-ignore\n constructor (fileBits, fileName, options = {}) {\n if (arguments.length < 2) {\n throw new TypeError(`Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`)\n }\n super(fileBits, options)\n\n if (options === null) options = {}\n\n // Simulate WebIDL type casting for NaN value in lastModified option.\n const lastModified = options.lastModified === undefined ? Date.now() : Number(options.lastModified)\n if (!Number.isNaN(lastModified)) {\n this.#lastModified = lastModified\n }\n\n this.#name = String(fileName)\n }\n\n get name () {\n return this.#name\n }\n\n get lastModified () {\n return this.#lastModified\n }\n\n get [Symbol.toStringTag] () {\n return 'File'\n }\n\n static [Symbol.hasInstance] (object) {\n return !!object && object instanceof Blob &&\n /^(File)$/.test(object[Symbol.toStringTag])\n }\n}\n\n/** @type {typeof globalThis.File} */// @ts-ignore\nexport const File = _File\nexport default File\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:fs\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:path\");","import { statSync, createReadStream, promises as fs } from 'node:fs'\nimport { basename } from 'node:path'\nimport DOMException from 'node-domexception'\n\nimport File from './file.js'\nimport Blob from './index.js'\n\nconst { stat } = fs\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n */\nconst blobFromSync = (path, type) => fromBlob(statSync(path), path, type)\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n * @returns {Promise}\n */\nconst blobFrom = (path, type) => stat(path).then(stat => fromBlob(stat, path, type))\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n * @returns {Promise}\n */\nconst fileFrom = (path, type) => stat(path).then(stat => fromFile(stat, path, type))\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n */\nconst fileFromSync = (path, type) => fromFile(statSync(path), path, type)\n\n// @ts-ignore\nconst fromBlob = (stat, path, type = '') => new Blob([new BlobDataItem({\n path,\n size: stat.size,\n lastModified: stat.mtimeMs,\n start: 0\n})], { type })\n\n// @ts-ignore\nconst fromFile = (stat, path, type = '') => new File([new BlobDataItem({\n path,\n size: stat.size,\n lastModified: stat.mtimeMs,\n start: 0\n})], basename(path), { type, lastModified: stat.mtimeMs })\n\n/**\n * This is a blob backed up by a file on the disk\n * with minium requirement. Its wrapped around a Blob as a blobPart\n * so you have no direct access to this.\n *\n * @private\n */\nclass BlobDataItem {\n #path\n #start\n\n constructor (options) {\n this.#path = options.path\n this.#start = options.start\n this.size = options.size\n this.lastModified = options.lastModified\n }\n\n /**\n * Slicing arguments is first validated and formatted\n * to not be out of range by Blob.prototype.slice\n */\n slice (start, end) {\n return new BlobDataItem({\n path: this.#path,\n lastModified: this.lastModified,\n size: end - start,\n start: this.#start + start\n })\n }\n\n async * stream () {\n const { mtimeMs } = await stat(this.#path)\n if (mtimeMs > this.lastModified) {\n throw new DOMException('The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.', 'NotReadableError')\n }\n yield * createReadStream(this.#path, {\n start: this.#start,\n end: this.#start + this.size - 1\n })\n }\n\n get [Symbol.toStringTag] () {\n return 'Blob'\n }\n}\n\nexport default blobFromSync\nexport { File, Blob, blobFrom, blobFromSync, fileFrom, fileFromSync }\n","/*! fetch-blob. MIT License. Jimmy Wärting */\n\n// TODO (jimmywarting): in the feature use conditional loading with top level await (requires 14.x)\n// Node has recently added whatwg stream into core\n\nimport './streams.cjs'\n\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\n/** @param {(Blob | Uint8Array)[]} parts */\nasync function * toIterator (parts, clone = true) {\n for (const part of parts) {\n if ('stream' in part) {\n yield * (/** @type {AsyncIterableIterator} */ (part.stream()))\n } else if (ArrayBuffer.isView(part)) {\n if (clone) {\n let position = part.byteOffset\n const end = part.byteOffset + part.byteLength\n while (position !== end) {\n const size = Math.min(end - position, POOL_SIZE)\n const chunk = part.buffer.slice(position, position + size)\n position += chunk.byteLength\n yield new Uint8Array(chunk)\n }\n } else {\n yield part\n }\n /* c8 ignore next 10 */\n } else {\n // For blobs that have arrayBuffer but no stream method (nodes buffer.Blob)\n let position = 0, b = (/** @type {Blob} */ (part))\n while (position !== b.size) {\n const chunk = b.slice(position, Math.min(b.size, position + POOL_SIZE))\n const buffer = await chunk.arrayBuffer()\n position += buffer.byteLength\n yield new Uint8Array(buffer)\n }\n }\n }\n}\n\nconst _Blob = class Blob {\n /** @type {Array.<(Blob|Uint8Array)>} */\n #parts = []\n #type = ''\n #size = 0\n #endings = 'transparent'\n\n /**\n * The Blob() constructor returns a new Blob object. The content\n * of the blob consists of the concatenation of the values given\n * in the parameter array.\n *\n * @param {*} blobParts\n * @param {{ type?: string, endings?: string }} [options]\n */\n constructor (blobParts = [], options = {}) {\n if (typeof blobParts !== 'object' || blobParts === null) {\n throw new TypeError('Failed to construct \\'Blob\\': The provided value cannot be converted to a sequence.')\n }\n\n if (typeof blobParts[Symbol.iterator] !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': The object must have a callable @@iterator property.')\n }\n\n if (typeof options !== 'object' && typeof options !== 'function') {\n throw new TypeError('Failed to construct \\'Blob\\': parameter 2 cannot convert to dictionary.')\n }\n\n if (options === null) options = {}\n\n const encoder = new TextEncoder()\n for (const element of blobParts) {\n let part\n if (ArrayBuffer.isView(element)) {\n part = new Uint8Array(element.buffer.slice(element.byteOffset, element.byteOffset + element.byteLength))\n } else if (element instanceof ArrayBuffer) {\n part = new Uint8Array(element.slice(0))\n } else if (element instanceof Blob) {\n part = element\n } else {\n part = encoder.encode(`${element}`)\n }\n\n this.#size += ArrayBuffer.isView(part) ? part.byteLength : part.size\n this.#parts.push(part)\n }\n\n this.#endings = `${options.endings === undefined ? 'transparent' : options.endings}`\n const type = options.type === undefined ? '' : String(options.type)\n this.#type = /^[\\x20-\\x7E]*$/.test(type) ? type : ''\n }\n\n /**\n * The Blob interface's size property returns the\n * size of the Blob in bytes.\n */\n get size () {\n return this.#size\n }\n\n /**\n * The type property of a Blob object returns the MIME type of the file.\n */\n get type () {\n return this.#type\n }\n\n /**\n * The text() method in the Blob interface returns a Promise\n * that resolves with a string containing the contents of\n * the blob, interpreted as UTF-8.\n *\n * @return {Promise}\n */\n async text () {\n // More optimized than using this.arrayBuffer()\n // that requires twice as much ram\n const decoder = new TextDecoder()\n let str = ''\n for await (const part of toIterator(this.#parts, false)) {\n str += decoder.decode(part, { stream: true })\n }\n // Remaining\n str += decoder.decode()\n return str\n }\n\n /**\n * The arrayBuffer() method in the Blob interface returns a\n * Promise that resolves with the contents of the blob as\n * binary data contained in an ArrayBuffer.\n *\n * @return {Promise}\n */\n async arrayBuffer () {\n // Easier way... Just a unnecessary overhead\n // const view = new Uint8Array(this.size);\n // await this.stream().getReader({mode: 'byob'}).read(view);\n // return view.buffer;\n\n const data = new Uint8Array(this.size)\n let offset = 0\n for await (const chunk of toIterator(this.#parts, false)) {\n data.set(chunk, offset)\n offset += chunk.length\n }\n\n return data.buffer\n }\n\n stream () {\n const it = toIterator(this.#parts, true)\n\n return new globalThis.ReadableStream({\n // @ts-ignore\n type: 'bytes',\n async pull (ctrl) {\n const chunk = await it.next()\n chunk.done ? ctrl.close() : ctrl.enqueue(chunk.value)\n },\n\n async cancel () {\n await it.return()\n }\n })\n }\n\n /**\n * The Blob interface's slice() method creates and returns a\n * new Blob object which contains data from a subset of the\n * blob on which it's called.\n *\n * @param {number} [start]\n * @param {number} [end]\n * @param {string} [type]\n */\n slice (start = 0, end = this.size, type = '') {\n const { size } = this\n\n let relativeStart = start < 0 ? Math.max(size + start, 0) : Math.min(start, size)\n let relativeEnd = end < 0 ? Math.max(size + end, 0) : Math.min(end, size)\n\n const span = Math.max(relativeEnd - relativeStart, 0)\n const parts = this.#parts\n const blobParts = []\n let added = 0\n\n for (const part of parts) {\n // don't add the overflow to new blobParts\n if (added >= span) {\n break\n }\n\n const size = ArrayBuffer.isView(part) ? part.byteLength : part.size\n if (relativeStart && size <= relativeStart) {\n // Skip the beginning and change the relative\n // start & end position as we skip the unwanted parts\n relativeStart -= size\n relativeEnd -= size\n } else {\n let chunk\n if (ArrayBuffer.isView(part)) {\n chunk = part.subarray(relativeStart, Math.min(size, relativeEnd))\n added += chunk.byteLength\n } else {\n chunk = part.slice(relativeStart, Math.min(size, relativeEnd))\n added += chunk.size\n }\n relativeEnd -= size\n blobParts.push(chunk)\n relativeStart = 0 // All next sequential parts should start at 0\n }\n }\n\n const blob = new Blob([], { type: String(type).toLowerCase() })\n blob.#size = span\n blob.#parts = blobParts\n\n return blob\n }\n\n get [Symbol.toStringTag] () {\n return 'Blob'\n }\n\n static [Symbol.hasInstance] (object) {\n return (\n object &&\n typeof object === 'object' &&\n typeof object.constructor === 'function' &&\n (\n typeof object.stream === 'function' ||\n typeof object.arrayBuffer === 'function'\n ) &&\n /^(Blob|File)$/.test(object[Symbol.toStringTag])\n )\n }\n}\n\nObject.defineProperties(_Blob.prototype, {\n size: { enumerable: true },\n type: { enumerable: true },\n slice: { enumerable: true }\n})\n\n/** @type {typeof globalThis.Blob} */\nexport const Blob = _Blob\nexport default Blob\n","/*! formdata-polyfill. MIT License. Jimmy Wärting */\n\nimport C from 'fetch-blob'\nimport F from 'fetch-blob/file.js'\n\nvar {toStringTag:t,iterator:i,hasInstance:h}=Symbol,\nr=Math.random,\nm='append,set,get,getAll,delete,keys,values,entries,forEach,constructor'.split(','),\nf=(a,b,c)=>(a+='',/^(Blob|File)$/.test(b && b[t])?[(c=c!==void 0?c+'':b[t]=='File'?b.name:'blob',a),b.name!==c||b[t]=='blob'?new F([b],c,b):b]:[a,b+'']),\ne=(c,f)=>(f?c:c.replace(/\\r?\\n|\\r/g,'\\r\\n')).replace(/\\n/g,'%0A').replace(/\\r/g,'%0D').replace(/\"/g,'%22'),\nx=(n, a, e)=>{if(a.lengthtypeof o[m]!='function')}\nappend(...a){x('append',arguments,2);this.#d.push(f(...a))}\ndelete(a){x('delete',arguments,1);a+='';this.#d=this.#d.filter(([b])=>b!==a)}\nget(a){x('get',arguments,1);a+='';for(var b=this.#d,l=b.length,c=0;cc[0]===a&&b.push(c[1]));return b}\nhas(a){x('has',arguments,1);a+='';return this.#d.some(b=>b[0]===a)}\nforEach(a,b){x('forEach',arguments,1);for(var [c,d]of this)a.call(b,d,c,this)}\nset(...a){x('set',arguments,2);var b=[],c=!0;a=f(...a);this.#d.forEach(d=>{d[0]===a[0]?c&&(c=!b.push(a)):b.push(d)});c&&b.push(a);this.#d=b}\n*entries(){yield*this.#d}\n*keys(){for(var[a]of this)yield a}\n*values(){for(var[,a]of this)yield a}}\n\n/** @param {FormData} F */\nexport function formDataToBlob (F,B=C){\nvar b=`${r()}${r()}`.replace(/\\./g, '').slice(-28).padStart(32, '-'),c=[],p=`--${b}\\r\\nContent-Disposition: form-data; name=\"`\nF.forEach((v,n)=>typeof v=='string'\n?c.push(p+e(n)+`\"\\r\\n\\r\\n${v.replace(/\\r(?!\\n)|(? {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object.append === 'function' &&\n\t\ttypeof object.delete === 'function' &&\n\t\ttypeof object.get === 'function' &&\n\t\ttypeof object.getAll === 'function' &&\n\t\ttypeof object.has === 'function' &&\n\t\ttypeof object.set === 'function' &&\n\t\ttypeof object.sort === 'function' &&\n\t\tobject[NAME] === 'URLSearchParams'\n\t);\n};\n\n/**\n * Check if `object` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isBlob = object => {\n\treturn (\n\t\tobject &&\n\t\ttypeof object === 'object' &&\n\t\ttypeof object.arrayBuffer === 'function' &&\n\t\ttypeof object.type === 'string' &&\n\t\ttypeof object.stream === 'function' &&\n\t\ttypeof object.constructor === 'function' &&\n\t\t/^(Blob|File)$/.test(object[NAME])\n\t);\n};\n\n/**\n * Check if `obj` is an instance of AbortSignal.\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isAbortSignal = object => {\n\treturn (\n\t\ttypeof object === 'object' && (\n\t\t\tobject[NAME] === 'AbortSignal' ||\n\t\t\tobject[NAME] === 'EventTarget'\n\t\t)\n\t);\n};\n\n/**\n * isDomainOrSubdomain reports whether sub is a subdomain (or exact match) of\n * the parent domain.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nexport const isDomainOrSubdomain = (destination, original) => {\n\tconst orig = new URL(original).hostname;\n\tconst dest = new URL(destination).hostname;\n\n\treturn orig === dest || orig.endsWith(`.${dest}`);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nexport const isSameProtocol = (destination, original) => {\n\tconst orig = new URL(original).protocol;\n\tconst dest = new URL(destination).protocol;\n\n\treturn orig === dest;\n};\n","\n/**\n * Body.js\n *\n * Body interface provides common methods for Request and Response\n */\n\nimport Stream, {PassThrough} from 'node:stream';\nimport {types, deprecate, promisify} from 'node:util';\nimport {Buffer} from 'node:buffer';\n\nimport Blob from 'fetch-blob';\nimport {FormData, formDataToBlob} from 'formdata-polyfill/esm.min.js';\n\nimport {FetchError} from './errors/fetch-error.js';\nimport {FetchBaseError} from './errors/base.js';\nimport {isBlob, isURLSearchParameters} from './utils/is.js';\n\nconst pipeline = promisify(Stream.pipeline);\nconst INTERNALS = Symbol('Body internals');\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nexport default class Body {\n\tconstructor(body, {\n\t\tsize = 0\n\t} = {}) {\n\t\tlet boundary = null;\n\n\t\tif (body === null) {\n\t\t\t// Body is undefined or null\n\t\t\tbody = null;\n\t\t} else if (isURLSearchParameters(body)) {\n\t\t\t// Body is a URLSearchParams\n\t\t\tbody = Buffer.from(body.toString());\n\t\t} else if (isBlob(body)) {\n\t\t\t// Body is blob\n\t\t} else if (Buffer.isBuffer(body)) {\n\t\t\t// Body is Buffer\n\t\t} else if (types.isAnyArrayBuffer(body)) {\n\t\t\t// Body is ArrayBuffer\n\t\t\tbody = Buffer.from(body);\n\t\t} else if (ArrayBuffer.isView(body)) {\n\t\t\t// Body is ArrayBufferView\n\t\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t\t} else if (body instanceof Stream) {\n\t\t\t// Body is stream\n\t\t} else if (body instanceof FormData) {\n\t\t\t// Body is FormData\n\t\t\tbody = formDataToBlob(body);\n\t\t\tboundary = body.type.split('=')[1];\n\t\t} else {\n\t\t\t// None of the above\n\t\t\t// coerce to string then buffer\n\t\t\tbody = Buffer.from(String(body));\n\t\t}\n\n\t\tlet stream = body;\n\n\t\tif (Buffer.isBuffer(body)) {\n\t\t\tstream = Stream.Readable.from(body);\n\t\t} else if (isBlob(body)) {\n\t\t\tstream = Stream.Readable.from(body.stream());\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tbody,\n\t\t\tstream,\n\t\t\tboundary,\n\t\t\tdisturbed: false,\n\t\t\terror: null\n\t\t};\n\t\tthis.size = size;\n\n\t\tif (body instanceof Stream) {\n\t\t\tbody.on('error', error_ => {\n\t\t\t\tconst error = error_ instanceof FetchBaseError ?\n\t\t\t\t\terror_ :\n\t\t\t\t\tnew FetchError(`Invalid response body while trying to fetch ${this.url}: ${error_.message}`, 'system', error_);\n\t\t\t\tthis[INTERNALS].error = error;\n\t\t\t});\n\t\t}\n\t}\n\n\tget body() {\n\t\treturn this[INTERNALS].stream;\n\t}\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t}\n\n\t/**\n\t * Decode response as ArrayBuffer\n\t *\n\t * @return Promise\n\t */\n\tasync arrayBuffer() {\n\t\tconst {buffer, byteOffset, byteLength} = await consumeBody(this);\n\t\treturn buffer.slice(byteOffset, byteOffset + byteLength);\n\t}\n\n\tasync formData() {\n\t\tconst ct = this.headers.get('content-type');\n\n\t\tif (ct.startsWith('application/x-www-form-urlencoded')) {\n\t\t\tconst formData = new FormData();\n\t\t\tconst parameters = new URLSearchParams(await this.text());\n\n\t\t\tfor (const [name, value] of parameters) {\n\t\t\t\tformData.append(name, value);\n\t\t\t}\n\n\t\t\treturn formData;\n\t\t}\n\n\t\tconst {toFormData} = await import('./utils/multipart-parser.js');\n\t\treturn toFormData(this.body, ct);\n\t}\n\n\t/**\n\t * Return raw response as Blob\n\t *\n\t * @return Promise\n\t */\n\tasync blob() {\n\t\tconst ct = (this.headers && this.headers.get('content-type')) || (this[INTERNALS].body && this[INTERNALS].body.type) || '';\n\t\tconst buf = await this.arrayBuffer();\n\n\t\treturn new Blob([buf], {\n\t\t\ttype: ct\n\t\t});\n\t}\n\n\t/**\n\t * Decode response as json\n\t *\n\t * @return Promise\n\t */\n\tasync json() {\n\t\tconst text = await this.text();\n\t\treturn JSON.parse(text);\n\t}\n\n\t/**\n\t * Decode response as text\n\t *\n\t * @return Promise\n\t */\n\tasync text() {\n\t\tconst buffer = await consumeBody(this);\n\t\treturn new TextDecoder().decode(buffer);\n\t}\n\n\t/**\n\t * Decode response as buffer (non-spec api)\n\t *\n\t * @return Promise\n\t */\n\tbuffer() {\n\t\treturn consumeBody(this);\n\t}\n}\n\nBody.prototype.buffer = deprecate(Body.prototype.buffer, 'Please use \\'response.arrayBuffer()\\' instead of \\'response.buffer()\\'', 'node-fetch#buffer');\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: {enumerable: true},\n\tbodyUsed: {enumerable: true},\n\tarrayBuffer: {enumerable: true},\n\tblob: {enumerable: true},\n\tjson: {enumerable: true},\n\ttext: {enumerable: true},\n\tdata: {get: deprecate(() => {},\n\t\t'data doesn\\'t exist, use json(), text(), arrayBuffer(), or body instead',\n\t\t'https://github.com/node-fetch/node-fetch/issues/1000 (response)')}\n});\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nasync function consumeBody(data) {\n\tif (data[INTERNALS].disturbed) {\n\t\tthrow new TypeError(`body used already for: ${data.url}`);\n\t}\n\n\tdata[INTERNALS].disturbed = true;\n\n\tif (data[INTERNALS].error) {\n\t\tthrow data[INTERNALS].error;\n\t}\n\n\tconst {body} = data;\n\n\t// Body is null\n\tif (body === null) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t/* c8 ignore next 3 */\n\tif (!(body instanceof Stream)) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t// Body is stream\n\t// get ready to actually consume the body\n\tconst accum = [];\n\tlet accumBytes = 0;\n\n\ttry {\n\t\tfor await (const chunk of body) {\n\t\t\tif (data.size > 0 && accumBytes + chunk.length > data.size) {\n\t\t\t\tconst error = new FetchError(`content size at ${data.url} over limit: ${data.size}`, 'max-size');\n\t\t\t\tbody.destroy(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t}\n\t} catch (error) {\n\t\tconst error_ = error instanceof FetchBaseError ? error : new FetchError(`Invalid response body while trying to fetch ${data.url}: ${error.message}`, 'system', error);\n\t\tthrow error_;\n\t}\n\n\tif (body.readableEnded === true || body._readableState.ended === true) {\n\t\ttry {\n\t\t\tif (accum.every(c => typeof c === 'string')) {\n\t\t\t\treturn Buffer.from(accum.join(''));\n\t\t\t}\n\n\t\t\treturn Buffer.concat(accum, accumBytes);\n\t\t} catch (error) {\n\t\t\tthrow new FetchError(`Could not create Buffer from response body for ${data.url}: ${error.message}`, 'system', error);\n\t\t}\n\t} else {\n\t\tthrow new FetchError(`Premature close of server response while trying to fetch ${data.url}`);\n\t}\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @param String highWaterMark highWaterMark for both PassThrough body streams\n * @return Mixed\n */\nexport const clone = (instance, highWaterMark) => {\n\tlet p1;\n\tlet p2;\n\tlet {body} = instance[INTERNALS];\n\n\t// Don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// Check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif ((body instanceof Stream) && (typeof body.getBoundary !== 'function')) {\n\t\t// Tee instance body\n\t\tp1 = new PassThrough({highWaterMark});\n\t\tp2 = new PassThrough({highWaterMark});\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// Set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].stream = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n};\n\nconst getNonSpecFormDataBoundary = deprecate(\n\tbody => body.getBoundary(),\n\t'form-data doesn\\'t follow the spec and requires special treatment. Use alternative package',\n\t'https://github.com/node-fetch/node-fetch/issues/1167'\n);\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param {any} body Any options.body input\n * @returns {string | null}\n */\nexport const extractContentType = (body, request) => {\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn null;\n\t}\n\n\t// Body is string\n\tif (typeof body === 'string') {\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n\n\t// Body is a URLSearchParams\n\tif (isURLSearchParameters(body)) {\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t}\n\n\t// Body is blob\n\tif (isBlob(body)) {\n\t\treturn body.type || null;\n\t}\n\n\t// Body is a Buffer (Buffer, ArrayBuffer or ArrayBufferView)\n\tif (Buffer.isBuffer(body) || types.isAnyArrayBuffer(body) || ArrayBuffer.isView(body)) {\n\t\treturn null;\n\t}\n\n\tif (body instanceof FormData) {\n\t\treturn `multipart/form-data; boundary=${request[INTERNALS].boundary}`;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getBoundary === 'function') {\n\t\treturn `multipart/form-data;boundary=${getNonSpecFormDataBoundary(body)}`;\n\t}\n\n\t// Body is stream - can't really do much about this\n\tif (body instanceof Stream) {\n\t\treturn null;\n\t}\n\n\t// Body constructor defaults other things to string\n\treturn 'text/plain;charset=UTF-8';\n};\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param {any} obj.body Body object from the Body instance.\n * @returns {number | null}\n */\nexport const getTotalBytes = request => {\n\tconst {body} = request[INTERNALS];\n\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn 0;\n\t}\n\n\t// Body is Blob\n\tif (isBlob(body)) {\n\t\treturn body.size;\n\t}\n\n\t// Body is Buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn body.length;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getLengthSync === 'function') {\n\t\treturn body.hasKnownLength && body.hasKnownLength() ? body.getLengthSync() : null;\n\t}\n\n\t// Body is stream\n\treturn null;\n};\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param {Stream.Writable} dest The stream to write to.\n * @param obj.body Body object from the Body instance.\n * @returns {Promise}\n */\nexport const writeToStream = async (dest, {body}) => {\n\tif (body === null) {\n\t\t// Body is null\n\t\tdest.end();\n\t} else {\n\t\t// Body is stream\n\t\tawait pipeline(body, dest);\n\t}\n};\n","/**\n * Headers.js\n *\n * Headers class offers convenient helpers\n */\n\nimport {types} from 'node:util';\nimport http from 'node:http';\n\n/* c8 ignore next 9 */\nconst validateHeaderName = typeof http.validateHeaderName === 'function' ?\n\thttp.validateHeaderName :\n\tname => {\n\t\tif (!/^[\\^`\\-\\w!#$%&'*+.|~]+$/.test(name)) {\n\t\t\tconst error = new TypeError(`Header name must be a valid HTTP token [${name}]`);\n\t\t\tObject.defineProperty(error, 'code', {value: 'ERR_INVALID_HTTP_TOKEN'});\n\t\t\tthrow error;\n\t\t}\n\t};\n\n/* c8 ignore next 9 */\nconst validateHeaderValue = typeof http.validateHeaderValue === 'function' ?\n\thttp.validateHeaderValue :\n\t(name, value) => {\n\t\tif (/[^\\t\\u0020-\\u007E\\u0080-\\u00FF]/.test(value)) {\n\t\t\tconst error = new TypeError(`Invalid character in header content [\"${name}\"]`);\n\t\t\tObject.defineProperty(error, 'code', {value: 'ERR_INVALID_CHAR'});\n\t\t\tthrow error;\n\t\t}\n\t};\n\n/**\n * @typedef {Headers | Record | Iterable | Iterable>} HeadersInit\n */\n\n/**\n * This Fetch API interface allows you to perform various actions on HTTP request and response headers.\n * These actions include retrieving, setting, adding to, and removing.\n * A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs.\n * You can add to this using methods like append() (see Examples.)\n * In all methods of this interface, header names are matched by case-insensitive byte sequence.\n *\n */\nexport default class Headers extends URLSearchParams {\n\t/**\n\t * Headers class\n\t *\n\t * @constructor\n\t * @param {HeadersInit} [init] - Response headers\n\t */\n\tconstructor(init) {\n\t\t// Validate and normalize init object in [name, value(s)][]\n\t\t/** @type {string[][]} */\n\t\tlet result = [];\n\t\tif (init instanceof Headers) {\n\t\t\tconst raw = init.raw();\n\t\t\tfor (const [name, values] of Object.entries(raw)) {\n\t\t\t\tresult.push(...values.map(value => [name, value]));\n\t\t\t}\n\t\t} else if (init == null) { // eslint-disable-line no-eq-null, eqeqeq\n\t\t\t// No op\n\t\t} else if (typeof init === 'object' && !types.isBoxedPrimitive(init)) {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\t\tif (method == null) {\n\t\t\t\t// Record\n\t\t\t\tresult.push(...Object.entries(init));\n\t\t\t} else {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// Sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tresult = [...init]\n\t\t\t\t\t.map(pair => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttypeof pair !== 'object' || types.isBoxedPrimitive(pair)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tthrow new TypeError('Each header pair must be an iterable object');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [...pair];\n\t\t\t\t\t}).map(pair => {\n\t\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [...pair];\n\t\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Failed to construct \\'Headers\\': The provided value is not of type \\'(sequence> or record)');\n\t\t}\n\n\t\t// Validate and lowercase\n\t\tresult =\n\t\t\tresult.length > 0 ?\n\t\t\t\tresult.map(([name, value]) => {\n\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\treturn [String(name).toLowerCase(), String(value)];\n\t\t\t\t}) :\n\t\t\t\tundefined;\n\n\t\tsuper(result);\n\n\t\t// Returning a Proxy that will lowercase key names, validate parameters and sort keys\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn new Proxy(this, {\n\t\t\tget(target, p, receiver) {\n\t\t\t\tswitch (p) {\n\t\t\t\t\tcase 'append':\n\t\t\t\t\tcase 'set':\n\t\t\t\t\t\treturn (name, value) => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tString(name).toLowerCase(),\n\t\t\t\t\t\t\t\tString(value)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'delete':\n\t\t\t\t\tcase 'has':\n\t\t\t\t\tcase 'getAll':\n\t\t\t\t\t\treturn name => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tString(name).toLowerCase()\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'keys':\n\t\t\t\t\t\treturn () => {\n\t\t\t\t\t\t\ttarget.sort();\n\t\t\t\t\t\t\treturn new Set(URLSearchParams.prototype.keys.call(target)).keys();\n\t\t\t\t\t\t};\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn Reflect.get(target, p, receiver);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t/* c8 ignore next */\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn this.constructor.name;\n\t}\n\n\ttoString() {\n\t\treturn Object.prototype.toString.call(this);\n\t}\n\n\tget(name) {\n\t\tconst values = this.getAll(name);\n\t\tif (values.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet value = values.join(', ');\n\t\tif (/^content-encoding$/i.test(name)) {\n\t\t\tvalue = value.toLowerCase();\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tforEach(callback, thisArg = undefined) {\n\t\tfor (const name of this.keys()) {\n\t\t\tReflect.apply(callback, thisArg, [this.get(name), name, this]);\n\t\t}\n\t}\n\n\t* values() {\n\t\tfor (const name of this.keys()) {\n\t\t\tyield this.get(name);\n\t\t}\n\t}\n\n\t/**\n\t * @type {() => IterableIterator<[string, string]>}\n\t */\n\t* entries() {\n\t\tfor (const name of this.keys()) {\n\t\t\tyield [name, this.get(name)];\n\t\t}\n\t}\n\n\t[Symbol.iterator]() {\n\t\treturn this.entries();\n\t}\n\n\t/**\n\t * Node-fetch non-spec method\n\t * returning all headers and their values as array\n\t * @returns {Record}\n\t */\n\traw() {\n\t\treturn [...this.keys()].reduce((result, key) => {\n\t\t\tresult[key] = this.getAll(key);\n\t\t\treturn result;\n\t\t}, {});\n\t}\n\n\t/**\n\t * For better console.log(headers) and also to convert Headers into Node.js Request compatible format\n\t */\n\t[Symbol.for('nodejs.util.inspect.custom')]() {\n\t\treturn [...this.keys()].reduce((result, key) => {\n\t\t\tconst values = this.getAll(key);\n\t\t\t// Http.request() only supports string as Host header.\n\t\t\t// This hack makes specifying custom Host header possible.\n\t\t\tif (key === 'host') {\n\t\t\t\tresult[key] = values[0];\n\t\t\t} else {\n\t\t\t\tresult[key] = values.length > 1 ? values : values[0];\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}, {});\n\t}\n}\n\n/**\n * Re-shaping object for Web IDL tests\n * Only need to do it for overridden methods\n */\nObject.defineProperties(\n\tHeaders.prototype,\n\t['get', 'entries', 'forEach', 'values'].reduce((result, property) => {\n\t\tresult[property] = {enumerable: true};\n\t\treturn result;\n\t}, {})\n);\n\n/**\n * Create a Headers object from an http.IncomingMessage.rawHeaders, ignoring those that do\n * not conform to HTTP grammar productions.\n * @param {import('http').IncomingMessage['rawHeaders']} headers\n */\nexport function fromRawHeaders(headers = []) {\n\treturn new Headers(\n\t\theaders\n\t\t\t// Split into pairs\n\t\t\t.reduce((result, value, index, array) => {\n\t\t\t\tif (index % 2 === 0) {\n\t\t\t\t\tresult.push(array.slice(index, index + 2));\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}, [])\n\t\t\t.filter(([name, value]) => {\n\t\t\t\ttry {\n\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\treturn true;\n\t\t\t\t} catch {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t})\n\n\t);\n}\n","const redirectStatus = new Set([301, 302, 303, 307, 308]);\n\n/**\n * Redirect code matching\n *\n * @param {number} code - Status code\n * @return {boolean}\n */\nexport const isRedirect = code => {\n\treturn redirectStatus.has(code);\n};\n","/**\n * Response.js\n *\n * Response class provides content decoding\n */\n\nimport Headers from './headers.js';\nimport Body, {clone, extractContentType} from './body.js';\nimport {isRedirect} from './utils/is-redirect.js';\n\nconst INTERNALS = Symbol('Response internals');\n\n/**\n * Response class\n *\n * Ref: https://fetch.spec.whatwg.org/#response-class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nexport default class Response extends Body {\n\tconstructor(body = null, options = {}) {\n\t\tsuper(body, options);\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq, no-negated-condition\n\t\tconst status = options.status != null ? options.status : 200;\n\n\t\tconst headers = new Headers(options.headers);\n\n\t\tif (body !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body, this);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\ttype: 'default',\n\t\t\turl: options.url,\n\t\t\tstatus,\n\t\t\tstatusText: options.statusText || '',\n\t\t\theaders,\n\t\t\tcounter: options.counter,\n\t\t\thighWaterMark: options.highWaterMark\n\t\t};\n\t}\n\n\tget type() {\n\t\treturn this[INTERNALS].type;\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS].status;\n\t}\n\n\t/**\n\t * Convenience property representing if the request ended normally\n\t */\n\tget ok() {\n\t\treturn this[INTERNALS].status >= 200 && this[INTERNALS].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS].headers;\n\t}\n\n\tget highWaterMark() {\n\t\treturn this[INTERNALS].highWaterMark;\n\t}\n\n\t/**\n\t * Clone this response\n\t *\n\t * @return Response\n\t */\n\tclone() {\n\t\treturn new Response(clone(this, this.highWaterMark), {\n\t\t\ttype: this.type,\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected,\n\t\t\tsize: this.size,\n\t\t\thighWaterMark: this.highWaterMark\n\t\t});\n\t}\n\n\t/**\n\t * @param {string} url The URL that the new response is to originate from.\n\t * @param {number} status An optional status code for the response (e.g., 302.)\n\t * @returns {Response} A Response object.\n\t */\n\tstatic redirect(url, status = 302) {\n\t\tif (!isRedirect(status)) {\n\t\t\tthrow new RangeError('Failed to execute \"redirect\" on \"response\": Invalid status code');\n\t\t}\n\n\t\treturn new Response(null, {\n\t\t\theaders: {\n\t\t\t\tlocation: new URL(url).toString()\n\t\t\t},\n\t\t\tstatus\n\t\t});\n\t}\n\n\tstatic error() {\n\t\tconst response = new Response(null, {status: 0, statusText: ''});\n\t\tresponse[INTERNALS].type = 'error';\n\t\treturn response;\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Response';\n\t}\n}\n\nObject.defineProperties(Response.prototype, {\n\ttype: {enumerable: true},\n\turl: {enumerable: true},\n\tstatus: {enumerable: true},\n\tok: {enumerable: true},\n\tredirected: {enumerable: true},\n\tstatusText: {enumerable: true},\n\theaders: {enumerable: true},\n\tclone: {enumerable: true}\n});\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:url\");","export const getSearch = parsedURL => {\n\tif (parsedURL.search) {\n\t\treturn parsedURL.search;\n\t}\n\n\tconst lastOffset = parsedURL.href.length - 1;\n\tconst hash = parsedURL.hash || (parsedURL.href[lastOffset] === '#' ? '#' : '');\n\treturn parsedURL.href[lastOffset - hash.length] === '?' ? '?' : '';\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"node:net\");","import {isIP} from 'node:net';\n\n/**\n * @external URL\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/URL|URL}\n */\n\n/**\n * @module utils/referrer\n * @private\n */\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#strip-url|Referrer Policy §8.4. Strip url for use as a referrer}\n * @param {string} URL\n * @param {boolean} [originOnly=false]\n */\nexport function stripURLForUseAsAReferrer(url, originOnly = false) {\n\t// 1. If url is null, return no referrer.\n\tif (url == null) { // eslint-disable-line no-eq-null, eqeqeq\n\t\treturn 'no-referrer';\n\t}\n\n\turl = new URL(url);\n\n\t// 2. If url's scheme is a local scheme, then return no referrer.\n\tif (/^(about|blob|data):$/.test(url.protocol)) {\n\t\treturn 'no-referrer';\n\t}\n\n\t// 3. Set url's username to the empty string.\n\turl.username = '';\n\n\t// 4. Set url's password to null.\n\t// Note: `null` appears to be a mistake as this actually results in the password being `\"null\"`.\n\turl.password = '';\n\n\t// 5. Set url's fragment to null.\n\t// Note: `null` appears to be a mistake as this actually results in the fragment being `\"#null\"`.\n\turl.hash = '';\n\n\t// 6. If the origin-only flag is true, then:\n\tif (originOnly) {\n\t\t// 6.1. Set url's path to null.\n\t\t// Note: `null` appears to be a mistake as this actually results in the path being `\"/null\"`.\n\t\turl.pathname = '';\n\n\t\t// 6.2. Set url's query to null.\n\t\t// Note: `null` appears to be a mistake as this actually results in the query being `\"?null\"`.\n\t\turl.search = '';\n\t}\n\n\t// 7. Return url.\n\treturn url;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#enumdef-referrerpolicy|enum ReferrerPolicy}\n */\nexport const ReferrerPolicy = new Set([\n\t'',\n\t'no-referrer',\n\t'no-referrer-when-downgrade',\n\t'same-origin',\n\t'origin',\n\t'strict-origin',\n\t'origin-when-cross-origin',\n\t'strict-origin-when-cross-origin',\n\t'unsafe-url'\n]);\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#default-referrer-policy|default referrer policy}\n */\nexport const DEFAULT_REFERRER_POLICY = 'strict-origin-when-cross-origin';\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#referrer-policies|Referrer Policy §3. Referrer Policies}\n * @param {string} referrerPolicy\n * @returns {string} referrerPolicy\n */\nexport function validateReferrerPolicy(referrerPolicy) {\n\tif (!ReferrerPolicy.has(referrerPolicy)) {\n\t\tthrow new TypeError(`Invalid referrerPolicy: ${referrerPolicy}`);\n\t}\n\n\treturn referrerPolicy;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-origin-trustworthy|Referrer Policy §3.2. Is origin potentially trustworthy?}\n * @param {external:URL} url\n * @returns `true`: \"Potentially Trustworthy\", `false`: \"Not Trustworthy\"\n */\nexport function isOriginPotentiallyTrustworthy(url) {\n\t// 1. If origin is an opaque origin, return \"Not Trustworthy\".\n\t// Not applicable\n\n\t// 2. Assert: origin is a tuple origin.\n\t// Not for implementations\n\n\t// 3. If origin's scheme is either \"https\" or \"wss\", return \"Potentially Trustworthy\".\n\tif (/^(http|ws)s:$/.test(url.protocol)) {\n\t\treturn true;\n\t}\n\n\t// 4. If origin's host component matches one of the CIDR notations 127.0.0.0/8 or ::1/128 [RFC4632], return \"Potentially Trustworthy\".\n\tconst hostIp = url.host.replace(/(^\\[)|(]$)/g, '');\n\tconst hostIPVersion = isIP(hostIp);\n\n\tif (hostIPVersion === 4 && /^127\\./.test(hostIp)) {\n\t\treturn true;\n\t}\n\n\tif (hostIPVersion === 6 && /^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(hostIp)) {\n\t\treturn true;\n\t}\n\n\t// 5. If origin's host component is \"localhost\" or falls within \".localhost\", and the user agent conforms to the name resolution rules in [let-localhost-be-localhost], return \"Potentially Trustworthy\".\n\t// We are returning FALSE here because we cannot ensure conformance to\n\t// let-localhost-be-loalhost (https://tools.ietf.org/html/draft-west-let-localhost-be-localhost)\n\tif (url.host === 'localhost' || url.host.endsWith('.localhost')) {\n\t\treturn false;\n\t}\n\n\t// 6. If origin's scheme component is file, return \"Potentially Trustworthy\".\n\tif (url.protocol === 'file:') {\n\t\treturn true;\n\t}\n\n\t// 7. If origin's scheme component is one which the user agent considers to be authenticated, return \"Potentially Trustworthy\".\n\t// Not supported\n\n\t// 8. If origin has been configured as a trustworthy origin, return \"Potentially Trustworthy\".\n\t// Not supported\n\n\t// 9. Return \"Not Trustworthy\".\n\treturn false;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-url-trustworthy|Referrer Policy §3.3. Is url potentially trustworthy?}\n * @param {external:URL} url\n * @returns `true`: \"Potentially Trustworthy\", `false`: \"Not Trustworthy\"\n */\nexport function isUrlPotentiallyTrustworthy(url) {\n\t// 1. If url is \"about:blank\" or \"about:srcdoc\", return \"Potentially Trustworthy\".\n\tif (/^about:(blank|srcdoc)$/.test(url)) {\n\t\treturn true;\n\t}\n\n\t// 2. If url's scheme is \"data\", return \"Potentially Trustworthy\".\n\tif (url.protocol === 'data:') {\n\t\treturn true;\n\t}\n\n\t// Note: The origin of blob: and filesystem: URLs is the origin of the context in which they were\n\t// created. Therefore, blobs created in a trustworthy origin will themselves be potentially\n\t// trustworthy.\n\tif (/^(blob|filesystem):$/.test(url.protocol)) {\n\t\treturn true;\n\t}\n\n\t// 3. Return the result of executing §3.2 Is origin potentially trustworthy? on url's origin.\n\treturn isOriginPotentiallyTrustworthy(url);\n}\n\n/**\n * Modifies the referrerURL to enforce any extra security policy considerations.\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}, step 7\n * @callback module:utils/referrer~referrerURLCallback\n * @param {external:URL} referrerURL\n * @returns {external:URL} modified referrerURL\n */\n\n/**\n * Modifies the referrerOrigin to enforce any extra security policy considerations.\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}, step 7\n * @callback module:utils/referrer~referrerOriginCallback\n * @param {external:URL} referrerOrigin\n * @returns {external:URL} modified referrerOrigin\n */\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}\n * @param {Request} request\n * @param {object} o\n * @param {module:utils/referrer~referrerURLCallback} o.referrerURLCallback\n * @param {module:utils/referrer~referrerOriginCallback} o.referrerOriginCallback\n * @returns {external:URL} Request's referrer\n */\nexport function determineRequestsReferrer(request, {referrerURLCallback, referrerOriginCallback} = {}) {\n\t// There are 2 notes in the specification about invalid pre-conditions. We return null, here, for\n\t// these cases:\n\t// > Note: If request's referrer is \"no-referrer\", Fetch will not call into this algorithm.\n\t// > Note: If request's referrer policy is the empty string, Fetch will not call into this\n\t// > algorithm.\n\tif (request.referrer === 'no-referrer' || request.referrerPolicy === '') {\n\t\treturn null;\n\t}\n\n\t// 1. Let policy be request's associated referrer policy.\n\tconst policy = request.referrerPolicy;\n\n\t// 2. Let environment be request's client.\n\t// not applicable to node.js\n\n\t// 3. Switch on request's referrer:\n\tif (request.referrer === 'about:client') {\n\t\treturn 'no-referrer';\n\t}\n\n\t// \"a URL\": Let referrerSource be request's referrer.\n\tconst referrerSource = request.referrer;\n\n\t// 4. Let request's referrerURL be the result of stripping referrerSource for use as a referrer.\n\tlet referrerURL = stripURLForUseAsAReferrer(referrerSource);\n\n\t// 5. Let referrerOrigin be the result of stripping referrerSource for use as a referrer, with the\n\t// origin-only flag set to true.\n\tlet referrerOrigin = stripURLForUseAsAReferrer(referrerSource, true);\n\n\t// 6. If the result of serializing referrerURL is a string whose length is greater than 4096, set\n\t// referrerURL to referrerOrigin.\n\tif (referrerURL.toString().length > 4096) {\n\t\treferrerURL = referrerOrigin;\n\t}\n\n\t// 7. The user agent MAY alter referrerURL or referrerOrigin at this point to enforce arbitrary\n\t// policy considerations in the interests of minimizing data leakage. For example, the user\n\t// agent could strip the URL down to an origin, modify its host, replace it with an empty\n\t// string, etc.\n\tif (referrerURLCallback) {\n\t\treferrerURL = referrerURLCallback(referrerURL);\n\t}\n\n\tif (referrerOriginCallback) {\n\t\treferrerOrigin = referrerOriginCallback(referrerOrigin);\n\t}\n\n\t// 8.Execute the statements corresponding to the value of policy:\n\tconst currentURL = new URL(request.url);\n\n\tswitch (policy) {\n\t\tcase 'no-referrer':\n\t\t\treturn 'no-referrer';\n\n\t\tcase 'origin':\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'unsafe-url':\n\t\t\treturn referrerURL;\n\n\t\tcase 'strict-origin':\n\t\t\t// 1. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 2. Return referrerOrigin.\n\t\t\treturn referrerOrigin.toString();\n\n\t\tcase 'strict-origin-when-cross-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// 2. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 3. Return referrerOrigin.\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'same-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// 2. Return no referrer.\n\t\t\treturn 'no-referrer';\n\n\t\tcase 'origin-when-cross-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// Return referrerOrigin.\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'no-referrer-when-downgrade':\n\t\t\t// 1. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 2. Return referrerURL.\n\t\t\treturn referrerURL;\n\n\t\tdefault:\n\t\t\tthrow new TypeError(`Invalid referrerPolicy: ${policy}`);\n\t}\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#parse-referrer-policy-from-header|Referrer Policy §8.1. Parse a referrer policy from a Referrer-Policy header}\n * @param {Headers} headers Response headers\n * @returns {string} policy\n */\nexport function parseReferrerPolicyFromHeader(headers) {\n\t// 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy`\n\t// and response’s header list.\n\tconst policyTokens = (headers.get('referrer-policy') || '').split(/[,\\s]+/);\n\n\t// 2. Let policy be the empty string.\n\tlet policy = '';\n\n\t// 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty\n\t// string, then set policy to token.\n\t// Note: This algorithm loops over multiple policy values to allow deployment of new policy\n\t// values with fallbacks for older user agents, as described in § 11.1 Unknown Policy Values.\n\tfor (const token of policyTokens) {\n\t\tif (token && ReferrerPolicy.has(token)) {\n\t\t\tpolicy = token;\n\t\t}\n\t}\n\n\t// 4. Return policy.\n\treturn policy;\n}\n","/**\n * Request.js\n *\n * Request class contains server only options\n *\n * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.\n */\n\nimport {format as formatUrl} from 'node:url';\nimport {deprecate} from 'node:util';\nimport Headers from './headers.js';\nimport Body, {clone, extractContentType, getTotalBytes} from './body.js';\nimport {isAbortSignal} from './utils/is.js';\nimport {getSearch} from './utils/get-search.js';\nimport {\n\tvalidateReferrerPolicy, determineRequestsReferrer, DEFAULT_REFERRER_POLICY\n} from './utils/referrer.js';\n\nconst INTERNALS = Symbol('Request internals');\n\n/**\n * Check if `obj` is an instance of Request.\n *\n * @param {*} object\n * @return {boolean}\n */\nconst isRequest = object => {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object[INTERNALS] === 'object'\n\t);\n};\n\nconst doBadDataWarn = deprecate(() => {},\n\t'.data is not a valid RequestInit property, use .body instead',\n\t'https://github.com/node-fetch/node-fetch/issues/1000 (request)');\n\n/**\n * Request class\n *\n * Ref: https://fetch.spec.whatwg.org/#request-class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nexport default class Request extends Body {\n\tconstructor(input, init = {}) {\n\t\tlet parsedURL;\n\n\t\t// Normalize input and force URL to be encoded as UTF-8 (https://github.com/node-fetch/node-fetch/issues/245)\n\t\tif (isRequest(input)) {\n\t\t\tparsedURL = new URL(input.url);\n\t\t} else {\n\t\t\tparsedURL = new URL(input);\n\t\t\tinput = {};\n\t\t}\n\n\t\tif (parsedURL.username !== '' || parsedURL.password !== '') {\n\t\t\tthrow new TypeError(`${parsedURL} is an url with embedded credentials.`);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tif (/^(delete|get|head|options|post|put)$/i.test(method)) {\n\t\t\tmethod = method.toUpperCase();\n\t\t}\n\n\t\tif (!isRequest(init) && 'data' in init) {\n\t\t\tdoBadDataWarn();\n\t\t}\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif ((init.body != null || (isRequest(input) && input.body !== null)) &&\n\t\t\t(method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tconst inputBody = init.body ?\n\t\t\tinit.body :\n\t\t\t(isRequest(input) && input.body !== null ?\n\t\t\t\tclone(input) :\n\t\t\t\tnull);\n\n\t\tsuper(inputBody, {\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody, this);\n\t\t\tif (contentType) {\n\t\t\t\theaders.set('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ?\n\t\t\tinput.signal :\n\t\t\tnull;\n\t\tif ('signal' in init) {\n\t\t\tsignal = init.signal;\n\t\t}\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal or EventTarget');\n\t\t}\n\n\t\t// §5.4, Request constructor steps, step 15.1\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tlet referrer = init.referrer == null ? input.referrer : init.referrer;\n\t\tif (referrer === '') {\n\t\t\t// §5.4, Request constructor steps, step 15.2\n\t\t\treferrer = 'no-referrer';\n\t\t} else if (referrer) {\n\t\t\t// §5.4, Request constructor steps, step 15.3.1, 15.3.2\n\t\t\tconst parsedReferrer = new URL(referrer);\n\t\t\t// §5.4, Request constructor steps, step 15.3.3, 15.3.4\n\t\t\treferrer = /^about:(\\/\\/)?client$/.test(parsedReferrer) ? 'client' : parsedReferrer;\n\t\t} else {\n\t\t\treferrer = undefined;\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal,\n\t\t\treferrer\n\t\t};\n\n\t\t// Node-fetch-only options\n\t\tthis.follow = init.follow === undefined ? (input.follow === undefined ? 20 : input.follow) : init.follow;\n\t\tthis.compress = init.compress === undefined ? (input.compress === undefined ? true : input.compress) : init.compress;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t\tthis.highWaterMark = init.highWaterMark || input.highWaterMark || 16384;\n\t\tthis.insecureHTTPParser = init.insecureHTTPParser || input.insecureHTTPParser || false;\n\n\t\t// §5.4, Request constructor steps, step 16.\n\t\t// Default is empty string per https://fetch.spec.whatwg.org/#concept-request-referrer-policy\n\t\tthis.referrerPolicy = init.referrerPolicy || input.referrerPolicy || '';\n\t}\n\n\t/** @returns {string} */\n\tget method() {\n\t\treturn this[INTERNALS].method;\n\t}\n\n\t/** @returns {string} */\n\tget url() {\n\t\treturn formatUrl(this[INTERNALS].parsedURL);\n\t}\n\n\t/** @returns {Headers} */\n\tget headers() {\n\t\treturn this[INTERNALS].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS].redirect;\n\t}\n\n\t/** @returns {AbortSignal} */\n\tget signal() {\n\t\treturn this[INTERNALS].signal;\n\t}\n\n\t// https://fetch.spec.whatwg.org/#dom-request-referrer\n\tget referrer() {\n\t\tif (this[INTERNALS].referrer === 'no-referrer') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (this[INTERNALS].referrer === 'client') {\n\t\t\treturn 'about:client';\n\t\t}\n\n\t\tif (this[INTERNALS].referrer) {\n\t\t\treturn this[INTERNALS].referrer.toString();\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget referrerPolicy() {\n\t\treturn this[INTERNALS].referrerPolicy;\n\t}\n\n\tset referrerPolicy(referrerPolicy) {\n\t\tthis[INTERNALS].referrerPolicy = validateReferrerPolicy(referrerPolicy);\n\t}\n\n\t/**\n\t * Clone this request\n\t *\n\t * @return Request\n\t */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Request';\n\t}\n}\n\nObject.defineProperties(Request.prototype, {\n\tmethod: {enumerable: true},\n\turl: {enumerable: true},\n\theaders: {enumerable: true},\n\tredirect: {enumerable: true},\n\tclone: {enumerable: true},\n\tsignal: {enumerable: true},\n\treferrer: {enumerable: true},\n\treferrerPolicy: {enumerable: true}\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param {Request} request - A Request instance\n * @return The options object to be passed to http.request\n */\nexport const getNodeRequestOptions = request => {\n\tconst {parsedURL} = request[INTERNALS];\n\tconst headers = new Headers(request[INTERNALS].headers);\n\n\t// Fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body === null && /^(post|put)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\n\tif (request.body !== null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\t// Set Content-Length if totalBytes is a number (that is not NaN)\n\t\tif (typeof totalBytes === 'number' && !Number.isNaN(totalBytes)) {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// 4.1. Main fetch, step 2.6\n\t// > If request's referrer policy is the empty string, then set request's referrer policy to the\n\t// > default referrer policy.\n\tif (request.referrerPolicy === '') {\n\t\trequest.referrerPolicy = DEFAULT_REFERRER_POLICY;\n\t}\n\n\t// 4.1. Main fetch, step 2.7\n\t// > If request's referrer is not \"no-referrer\", set request's referrer to the result of invoking\n\t// > determine request's referrer.\n\tif (request.referrer && request.referrer !== 'no-referrer') {\n\t\trequest[INTERNALS].referrer = determineRequestsReferrer(request);\n\t} else {\n\t\trequest[INTERNALS].referrer = 'no-referrer';\n\t}\n\n\t// 4.5. HTTP-network-or-cache fetch, step 6.9\n\t// > If httpRequest's referrer is a URL, then append `Referer`/httpRequest's referrer, serialized\n\t// > and isomorphic encoded, to httpRequest's header list.\n\tif (request[INTERNALS].referrer instanceof URL) {\n\t\theaders.set('Referer', request.referrer);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip, deflate, br');\n\t}\n\n\tlet {agent} = request;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\tconst search = getSearch(parsedURL);\n\n\t// Pass the full URL directly to request(), but overwrite the following\n\t// options:\n\tconst options = {\n\t\t// Overwrite search to retain trailing ? (issue #776)\n\t\tpath: parsedURL.pathname + search,\n\t\t// The following options are not expressed in the URL\n\t\tmethod: request.method,\n\t\theaders: headers[Symbol.for('nodejs.util.inspect.custom')](),\n\t\tinsecureHTTPParser: request.insecureHTTPParser,\n\t\tagent\n\t};\n\n\treturn {\n\t\t/** @type {URL} */\n\t\tparsedURL,\n\t\toptions\n\t};\n};\n","import {FetchBaseError} from './base.js';\n\n/**\n * AbortError interface for cancelled requests\n */\nexport class AbortError extends FetchBaseError {\n\tconstructor(message, type = 'aborted') {\n\t\tsuper(message, type);\n\t}\n}\n","/**\n * Index.js\n *\n * a request API compatible with window.fetch\n *\n * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.\n */\n\nimport http from 'node:http';\nimport https from 'node:https';\nimport zlib from 'node:zlib';\nimport Stream, {PassThrough, pipeline as pump} from 'node:stream';\nimport {Buffer} from 'node:buffer';\n\nimport dataUriToBuffer from 'data-uri-to-buffer';\n\nimport {writeToStream, clone} from './body.js';\nimport Response from './response.js';\nimport Headers, {fromRawHeaders} from './headers.js';\nimport Request, {getNodeRequestOptions} from './request.js';\nimport {FetchError} from './errors/fetch-error.js';\nimport {AbortError} from './errors/abort-error.js';\nimport {isRedirect} from './utils/is-redirect.js';\nimport {FormData} from 'formdata-polyfill/esm.min.js';\nimport {isDomainOrSubdomain, isSameProtocol} from './utils/is.js';\nimport {parseReferrerPolicyFromHeader} from './utils/referrer.js';\nimport {\n\tBlob,\n\tFile,\n\tfileFromSync,\n\tfileFrom,\n\tblobFromSync,\n\tblobFrom\n} from 'fetch-blob/from.js';\n\nexport {FormData, Headers, Request, Response, FetchError, AbortError, isRedirect};\nexport {Blob, File, fileFromSync, fileFrom, blobFromSync, blobFrom};\n\nconst supportedSchemas = new Set(['data:', 'http:', 'https:']);\n\n/**\n * Fetch function\n *\n * @param {string | URL | import('./request').default} url - Absolute url or Request instance\n * @param {*} [options_] - Fetch options\n * @return {Promise}\n */\nexport default async function fetch(url, options_) {\n\treturn new Promise((resolve, reject) => {\n\t\t// Build request object\n\t\tconst request = new Request(url, options_);\n\t\tconst {parsedURL, options} = getNodeRequestOptions(request);\n\t\tif (!supportedSchemas.has(parsedURL.protocol)) {\n\t\t\tthrow new TypeError(`node-fetch cannot load ${url}. URL scheme \"${parsedURL.protocol.replace(/:$/, '')}\" is not supported.`);\n\t\t}\n\n\t\tif (parsedURL.protocol === 'data:') {\n\t\t\tconst data = dataUriToBuffer(request.url);\n\t\t\tconst response = new Response(data, {headers: {'Content-Type': data.typeFull}});\n\t\t\tresolve(response);\n\t\t\treturn;\n\t\t}\n\n\t\t// Wrap http.request into fetch\n\t\tconst send = (parsedURL.protocol === 'https:' ? https : http).request;\n\t\tconst {signal} = request;\n\t\tlet response = null;\n\n\t\tconst abort = () => {\n\t\t\tconst error = new AbortError('The operation was aborted.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\n\t\t\tif (!response || !response.body) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = () => {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// Send request\n\t\tconst request_ = send(parsedURL.toString(), options);\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tconst finalize = () => {\n\t\t\trequest_.abort();\n\t\t\tif (signal) {\n\t\t\t\tsignal.removeEventListener('abort', abortAndFinalize);\n\t\t\t}\n\t\t};\n\n\t\trequest_.on('error', error => {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${error.message}`, 'system', error));\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(request_, error => {\n\t\t\tif (response && response.body) {\n\t\t\t\tresponse.body.destroy(error);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (process.version < 'v14') {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\trequest_.on('socket', s => {\n\t\t\t\tlet endedWithEventsCount;\n\t\t\t\ts.prependListener('end', () => {\n\t\t\t\t\tendedWithEventsCount = s._eventsCount;\n\t\t\t\t});\n\t\t\t\ts.prependListener('close', hadError => {\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && endedWithEventsCount < s._eventsCount && !hadError) {\n\t\t\t\t\t\tconst error = new Error('Premature close');\n\t\t\t\t\t\terror.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\trequest_.on('response', response_ => {\n\t\t\trequest_.setTimeout(0);\n\t\t\tconst headers = fromRawHeaders(response_.rawHeaders);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (isRedirect(response_.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL(location, request.url);\n\t\t\t\t} catch {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// Nothing to do\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow': {\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOptions = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: clone(request),\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\tsize: request.size,\n\t\t\t\t\t\t\treferrer: request.referrer,\n\t\t\t\t\t\t\treferrerPolicy: request.referrerPolicy\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// when forwarding sensitive headers like \"Authorization\",\n\t\t\t\t\t\t// \"WWW-Authenticate\", and \"Cookie\" to untrusted targets,\n\t\t\t\t\t\t// headers will be ignored when following a redirect to a domain\n\t\t\t\t\t\t// that is not a subdomain match or exact match of the initial domain.\n\t\t\t\t\t\t// For example, a redirect from \"foo.com\" to either \"foo.com\" or \"sub.foo.com\"\n\t\t\t\t\t\t// will forward the sensitive headers, but a redirect to \"bar.com\" will not.\n\t\t\t\t\t\t// headers will also be ignored when following a redirect to a domain using\n\t\t\t\t\t\t// a different protocol. For example, a redirect from \"https://foo.com\" to \"http://foo.com\"\n\t\t\t\t\t\t// will not forward the sensitive headers\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOptions.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (response_.statusCode !== 303 && request.body && options_.body instanceof Stream.Readable) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (response_.statusCode === 303 || ((response_.statusCode === 301 || response_.statusCode === 302) && request.method === 'POST')) {\n\t\t\t\t\t\t\trequestOptions.method = 'GET';\n\t\t\t\t\t\t\trequestOptions.body = undefined;\n\t\t\t\t\t\t\trequestOptions.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 14\n\t\t\t\t\t\tconst responseReferrerPolicy = parseReferrerPolicyFromHeader(headers);\n\t\t\t\t\t\tif (responseReferrerPolicy) {\n\t\t\t\t\t\t\trequestOptions.referrerPolicy = responseReferrerPolicy;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOptions)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn reject(new TypeError(`Redirect option '${request.redirect}' is not a valid value of RequestRedirect`));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Prepare response\n\t\t\tif (signal) {\n\t\t\t\tresponse_.once('end', () => {\n\t\t\t\t\tsignal.removeEventListener('abort', abortAndFinalize);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tlet body = pump(response_, new PassThrough(), error => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t});\n\t\t\t// see https://github.com/nodejs/node/pull/29376\n\t\t\t/* c8 ignore next 3 */\n\t\t\tif (process.version < 'v12.10') {\n\t\t\t\tresponse_.on('aborted', abortAndFinalize);\n\t\t\t}\n\n\t\t\tconst responseOptions = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: response_.statusCode,\n\t\t\t\tstatusText: response_.statusMessage,\n\t\t\t\theaders,\n\t\t\t\tsize: request.size,\n\t\t\t\tcounter: request.counter,\n\t\t\t\thighWaterMark: request.highWaterMark\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || response_.statusCode === 204 || response_.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// For gzip\n\t\t\tif (codings === 'gzip' || codings === 'x-gzip') {\n\t\t\t\tbody = pump(body, zlib.createGunzip(zlibOptions), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For deflate\n\t\t\tif (codings === 'deflate' || codings === 'x-deflate') {\n\t\t\t\t// Handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = pump(response_, new PassThrough(), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\traw.once('data', chunk => {\n\t\t\t\t\t// See http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflate(), error => {\n\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflateRaw(), error => {\n\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.once('end', () => {\n\t\t\t\t\t// Some old IIS servers return zero-length OK deflate responses, so\n\t\t\t\t\t// 'data' is never emitted. See https://github.com/node-fetch/node-fetch/pull/903\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For br\n\t\t\tif (codings === 'br') {\n\t\t\t\tbody = pump(body, zlib.createBrotliDecompress(), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Otherwise, use response as-is\n\t\t\tresponse = new Response(body, responseOptions);\n\t\t\tresolve(response);\n\t\t});\n\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\twriteToStream(request_, request).catch(reject);\n\t});\n}\n\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tconst LAST_CHUNK = Buffer.from('0\\r\\n\\r\\n');\n\n\tlet isChunkedTransfer = false;\n\tlet properLastChunkReceived = false;\n\tlet previousChunk;\n\n\trequest.on('response', response => {\n\t\tconst {headers} = response;\n\t\tisChunkedTransfer = headers['transfer-encoding'] === 'chunked' && !headers['content-length'];\n\t});\n\n\trequest.on('socket', socket => {\n\t\tconst onSocketClose = () => {\n\t\t\tif (isChunkedTransfer && !properLastChunkReceived) {\n\t\t\t\tconst error = new Error('Premature close');\n\t\t\t\terror.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\terrorCallback(error);\n\t\t\t}\n\t\t};\n\n\t\tconst onData = buf => {\n\t\t\tproperLastChunkReceived = Buffer.compare(buf.slice(-5), LAST_CHUNK) === 0;\n\n\t\t\t// Sometimes final 0-length chunk and end of message code are in separate packets\n\t\t\tif (!properLastChunkReceived && previousChunk) {\n\t\t\t\tproperLastChunkReceived = (\n\t\t\t\t\tBuffer.compare(previousChunk.slice(-3), LAST_CHUNK.slice(0, 3)) === 0 &&\n\t\t\t\t\tBuffer.compare(buf.slice(-2), LAST_CHUNK.slice(3)) === 0\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tpreviousChunk = buf;\n\t\t};\n\n\t\tsocket.prependListener('close', onSocketClose);\n\t\tsocket.on('data', onData);\n\n\t\trequest.on('close', () => {\n\t\t\tsocket.removeListener('close', onSocketClose);\n\t\t\tsocket.removeListener('data', onData);\n\t\t});\n\t});\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".index.js\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"loaded\", otherwise not loaded yet\nvar installedChunks = {\n\t179: 1\n};\n\n// no on chunks loaded\n\nvar installChunk = (chunk) => {\n\tvar moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\tfor(var i = 0; i < chunkIds.length; i++)\n\t\tinstalledChunks[chunkIds[i]] = 1;\n\n};\n\n// require() chunk loading for javascript\n__webpack_require__.f.require = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\tinstallChunk(require(\"./\" + __webpack_require__.u(chunkId)));\n\t\t} else installedChunks[chunkId] = 1;\n\t}\n};\n\n// no external install chunk\n\n// no HMR\n\n// no HMR manifest","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(9496);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/node_modules/@vercel/ncc/dist/ncc/cli.js.cache b/node_modules/@vercel/ncc/dist/ncc/cli.js.cache index 9adb62b69f50b036528e6b93178713681f93dd18..d425899f9d266c86c64da45bf0533cb54afdc372 100644 GIT binary patch delta 7871 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 a&`rzQ^6K|xOqe|?{y1D(y>dKLg8mOG9RlnC delta 7871 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 Xn$Eg$QYOj{3A?`DTvr~#Y(W19=_=@2 diff --git a/node_modules/@vercel/ncc/dist/ncc/index.js.cache b/node_modules/@vercel/ncc/dist/ncc/index.js.cache index 485c994369de650d406dbcd9939c7c1eaecf2421..9ae4d27f549cf00feb5fed7acab353eaae2c2f29 100644 GIT binary patch delta 834679 zcma&P33!u56FB~EvT4$!X`8lb(vp<)q%BRM2 zS5Q{$EONnbd`Mt+&XR)qgIf4Kd2)V1q3dxX@ym85f22C<18GGid6k7w2w_K`5C2FF zurk;5%7QYNfSp{}_d?C-w^jaq$NVpt&l}$=l&vMcn&k!WT{1&fUj0NXvo8tB&ONx~ z$6>*|CObIP0B}GEu;#P(jt66|^*1d>rc*piBPx!zWiKe&(1;Avi;a5}Cj#h+tGP4S zq9EI-p$TuyCy@JTEDnz#Gd%7-!lny|3>))i@52b|?*$w8O}1SD?*;DmV_ARo|8}!` zLEqDL+x}S0z75Wxsoe|bG}=PW66*h!A&)&Y9*oeAoK}a(hI%18`}V!9h|KBY5z270 z8dw>g^w9_GerU&};`*f;6{h8uloi7_R#abEzgPpmD@vw~nqBHDN8acBygP-BHSs{m ztbU+XZ%{iRht!+!!QX3Ju~z0M0{1*P`6aS@a&AeUE4@PE!}c4EV=i=h_6kL)%UOXX zocQNy>?(LL0kMZ#XHLRiFLOEbMwLu+Atm_8nX%8|K{BxyYPSyRz)qQ?iUd@W5Emjj zo91xo;CHFBtlX73tF)v{ROm*641fm-#LRo5yC=3}&MNv>=0K5GLMC91GX@R1!5m>J zbo&9@c~%z|Mf};jVX1W9Hyd^~UJWx5x}8AyY_ z6xzr(C&tDKQCONSdbC(>q2xehF^CXy2K~LGfUS;Cpy8G~8Ej{QISy)$l75ab&05GxFB6B(>_IJS_cpUgA1U{J9 zXFx`8OnlNi(F6cMY|hRb@!yHFB3Mmy2s;%UriT1uo;Cl-0+NgdpaWhf{W)n~kAvC|#tY$pcTD)AOFZ^l$512m4o3OqBSSgyZ*{|PzKX}V8C@v_UI#iZJcz3`@ zN`nv9vGx1P5X3Rc8%Hky=q17FFU>LASxS6d74YSB;jXqQep6f(!%8a(N{Y+j1s(_f zvBHNwP&(jCNHUfO{E8ue+Yo=2Hw#eKpd%sKKdkmXCYN|u9}fW0ch33#s9|sju?}sl z2}?zp#FTJ?Wu|+h#C-1VidCet9d@HXqUg10(tDwhR8Y{;FqQ-^w2ss{k@8rt!p{_U=qT?1+^)E{t%x=U+Mh9KEl8nWsc^B&>7XwCwH}7DFu+x0WfJ8 ze6YXg%^7`@Elh~*CnKy+HmVR|r8mMP%nQV=S$OvwOdRXoOd9}zc0g5MyFkG{iHp_X z%f^1wQ(2xJUZCLC3(+Q46=%$q8@X%i?Zb#iOd0U)fRFSfd@%2xK0(i8;%sjUQap)Y z{@4c-=XfWk13*T6^fc?tY%xZm0grCH^%@(WU==SXmPGu)#>H86dX3=oojLq_c0Ms| z%$;I69Ja00R-HF=V0FaZ{^v-($ zlijna%-2`|U`^{2Rh%o{*G7yNa2@L-U?#d+QzoQ+D=dTV-M!c^hS^BS*G*?5BrckiVwxE zxcL0ySJ}%kR#EP9`GQ|@E}!a}HL4`5xWWOyrEK_s&_UjtkG@V|gOjbQMHvPs;is0U zx^l{-;ScVo%g{xeUuFe#a zx^e2f+l`k~!ib`is!`QpH6cCOx{fc<)ZP2vVD?U7^x;~=vut3eAL+`lB_+(>c{$yf z)aAcyf9K<5CtKX5f7K}F0JPFH_>jQC;x{&1y}^eT(RvayXbQYZLVLdZYplYi8Q_

`J0MI_aLWS@pgt@MzAx`)b}*r|L(1i<-3!@p^sX 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

Mh=76E`Wp&;x7Y%5io;l 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¥o70KP&zgAVl517Rw19ioXd94uxFZ=KV45ytkUBRcy8%j z>XVHR*XRK)8_Gwqyb&KvD=90(VNt85zF+Prh*+=3%d~esL)G}ueG>xE#p^Geex9~v z1IIV&0aXinFQ79Vuvrfnci_}3&3PzdK9AH@Do6qIY;vCt* zWmyvwlr4?)YK}}Yp*y=>&!yB%KRBkdx_Z!`ao#@ECs%rQzlgr$y~=cLu^oT?CbPl9 zZm<_n*MoimxCl3#Qs(pTN|>Q3yOYJ0aRdrFI9$CpSFWM4&wKg=9C%-+G6@GjWs=LZ z^&EAfPQhqaooUF|2I4)2?=h1v&y$v3D=>ePcBX| zW&unF&l@#G0JW_m0P+)2;SSD7%)j42>vCma$3jL_-pawgnGG%Jl+Jhvotse}q7K2= zP_IMyt#W)|FPJVpoZEN1u0`e*iasw5K%MxygDEK2t-JY&nTzP-jCO%EpfJQluNTU} zhI;#rLV47&DF3t=i}LshF<#_eA|ri3nwc&nqMSG`JZJ#*E0Hgv@9fPb@(XVq^{%P0 z?^__l47C4uA1`Mc3f@G&EtJPhmw`*$@cFb zl=}=y;w*Y;iL~g)(LY)O`U#()OXSGF3(mR>6H5aq9}nVbN5B>JQrTDOIg3^=m1;Z~ z4VLI&xH56UAmstbyD7Tz2zL!5AZCGea8PFiKTC#(d?T7Si z&mrW#Bf463+mz>U${6;bayJ{0(U7+XnM~5-k3d4ZYY}aG1jO-XiSJn^V>;^F#G8RK zxA{VK)c0m`%)r~%EtACt#jTu$naR;yqM}cwQ{ZP<48u@v+Y-&=5`pfJFT3(SP)$vb z%7^$%%W`?A_T?3P)$MagejOSEjI_M7H=n-*fzn2fN1Nt>!Q%?EWwg$nX*xCQ%OQQ! zcs36-*$+tU2JYcvW4Y35=~z#55vQ5jJB#x$F~Fs*EKX|<-rPG#X!fv<2`q+mdQ65D zaMk|vg>-uMIM^J)`P|OAE#?G4G_@2%cpAXvhhO;K(bn})7Qy((Y$JB=#y+?sW^3Lo zJJP13?WOiDkIDafp=Io=o|04l&2mKa8Zgo{&biMp3-HVoJwoI4e@c?XXLdq@zM zrB&_k5%f0?&F=M-^o*2I4bTSS|Gnz9D)XMH!9!mZ8}JN`AzJv1+{0O?JPR_^Ko!qo z>*7Qy88(1Ev9(x=+<+A40~Kz7kUsu8?cN~6$veg?oUUw;zBK)^f3Qib zRs%(EM75H~(!!0>LPZ0u!Sp_bd30RvDBX-&tu&2X8mnF!?)ti0gLss^d83Si!KmHj z^&ED?wAIyPZbA0J&&l@;@M{pzK%SdqSD3iagY0p%>G9LkTG463yMi}`Vt9&HmpZ`XoP@Z&`WZnFWR81!L~#vpUHH{fD^ zT*YA9Z0h@hO!EN)pe?+a&5d0f-jP6lCuQ$IP+B|JF55CzY z+L^r^{Y(H5;{oRq8sy=whMB^*vl$I^UZjqza zYtc$J2e$frn248rZM%r+foiwNf7`RYxCmPO%)LSW6cV7dretFIo)_w#yMZP!#G}2%d0Xpbh_>;QF{hhCHE{cD-+JXg(SzV_H#no+D7DDd#&yb}GG z3coRB78BP7iZ?@`DWEM!jy&tym4dcoInrlB)g|h)UDl1+i2`Q(8*bwiy1DS-IhI+Y ztC_X~(Zs4Q21AbdS*=qvvtCG?=Z9LXxJlDdjeRlp9SXN&Wwzq&72(v&E~WeMWbKvL zmM6PX7QZ@?`_xY~-;RY`-lMxO&@*-{{gjr+7t<$p85ApFsX&}ZkuFxiKgAV1T*KXh zTd7oF>fFpqErGNypnW^){JNCgfT;RXx;IqRlwifYl2z3v!+*7Av|E?C6n!t9emTpW zz_AK?;B^^#X9L>L=K6zlI`|_5A&s~5Dyv$@L4!C^q1a9!ilrGi3$?3{UYEUtbx%qS zwYD^b4*m%TGDK`8{4c0GWN6<8aT4DwL+CHKp{#xz8??4HY4){s1`%C;mQMGcW2OQ{ zD@6jnjp8iA=OC=zFG!kd=t%@eL36Vk{`bMnZdKdzRxct^EJid2X+awXiC9Gy1Pa3f zSgJS0bNK!Orybk-jVQ%Dtb*ix^?vrFNX=IJ)vrJef&+KA?lRMOUivQ=g9 z?zz9|RORF)P?hzSS|>eHW5WP+`V_aJyFS0O?3)z_Z_3_TE6^cU--*YqH^eCW=nrI- zp?w?0j3#YVKkCRLg|j%1EJDmr`PZU~m|`b0*vTkoPzWR5uW{ov2(vrpuDnfnKn2V2o!6wFa< zfBXq8fEzsG^5#(EVc9KQiMf5E+K;zKKk8hC!|7C0J?jzDitVnHlkft7yQFM85 zOvk^O15_HO(CNQah}SVK`PptH(S;*&uA;e{sGRD!$VVFxiBtSOr&4r|{2YvvO<>nUBfQUM&rV z);Rob+A#Lw!G&ea2{Jbu{E*sSsbM_;ABcqhjMf%uVZzNvI)$1DxVa z5!fh2p>&-dG(C4tw7!V*pyjFF;Z$P+8#F7uV3`)JG;GQ^kxck#Rlg<}#$BWdXu zvctqSsy8bGM3KK(Ia53^Q=AJBp*h0YU-;%gB}eqmVO<&59Pw6wSTs{~%MmfU(hM{W zpn(Cm^``?sz-(N!VFnDH2a3q`I4YQ5Xzy`cK4jz~yzvznai|k{e=Q?DSQ8;yJ0^oR zSvSx}QpVRZxMR?L3iLUkHKP;8zf1j3I!8D~qUyuNxclr+eJwo=obU@Lr33}U=tcIr zpy?3sy@|d$Dc=LBgVh4w_TuHF=K7rXvlc3D3-P~^-u^~*QlT*bRe|1Z#=E9Tz-#?g zfoxzV*bB2bT3O>FRvL*CPGQFs-Nu4+FeNJnL3tmXS&X|wXuj<~9|qI1Q?k8RsY6ST z<=tVkHR(i$HnWR32DHI38OXn&ezf<7#xKC1hrr@lD0h+X>LAq_O;ue=ai=9w#~0gq z($`laJun*_KP_XGru)cnM)te+Z<2x|Od&E(YEGmeRoBKY4Y&R1iWUT>|J`rWQI4Js z@mjPffMgZI@->6st)<#CGQlPDq=B7`MAE)9;GOfL?0=n+j|m{LeZ>#5P%&YQ7%UA< z&7f0_l-MkfSTT&)K_qL3ai2h!!^z~swjx-!lv_ReCpij?-Xd6rRqE!@!#_#23&yc| zor`&^Fb{WON9~|8j9D9&wbGs8wx``AoQ~oiE=+Uj=uh(9j=D>=)~(7~R+a$@=q}X) z@Wh8DKIOVWgMIJMvL!H&i&mS>GT~js!vbdxNaHF7+ZpU*aDu@_ z25$EOgfU2DFoHn_gT)M1G1$xCAcJcR+~(4d^YY#v;2^+nLZEs<^Cu)T7F6?6#-ZDG zSMF^6bh3Unnkijn-Caxlw&@>ph&n?$2_-RKFvn%6wuqdG@Yu1?T z0!Xd#%onFnm9+f;zsoNlQ<+-^3+>t)R611CpYZcL@evLB1#2zS#_*?T$}cj~=-S~4 zDCbD4Rel`SpVgq?k$q~)u=LS)PaQgZwv#i_PtM~c(N+rzV#&6V0H528F9-O2Hbz5i1n>cgi|fJi%T-Zw_c1u=wAr&^NoN}i8@+&30l?Z*Xh6| zIVEB=Uba?LpME+a8ed8HtzqSfiq8&%TGyZ7fza1_3 zwzVZ2MINHr5v5B2+8oi^ZvK9ED_Q}fjYO39ao6DBSk*N-Rl#Ao)LN^*{rolPnMD@2 zDVN?f-yt$zRe?Gt75yoby~_~oQ3UMA%}3sM{V7Kba!er_9jp9DI$t3wUvWWbVhz)< zx!i(4BLZN*qY6Uw;WuPH1c9&IkTF;iZ|&+F7|$!-G!OqTdBvMwoIg81s}MTua~1P4 zA%G3~k`VpeK*24tu4`4BeD#g>8GMGlXc-{w;t zx6Hx%r?6Cr@v>;SU%YaniWdGQ`x;MH>0)d8WVyxcuF0s+R4L~7%-UM*w)3E8tKcMQ zF5Ce%MnnWE%~g#(Bf8S8t&t|lpEa~{v6u<-LL!{vL%B7sR4KKM)e)UBpWC?bS_WsU z8uvv=burR{9u4N9rD%p2uy+W+Np03J+W_sNh-RZQPoaU`-L2%ML<}}G*zZvyybRXM z+qJZqNa$UA6nXLGg8GS*RkX+$F;1L7N7%nKM$A*Nxf0Sq8K#JMqAy^(xYiUAX~KbJ zQ8AESH$`L{OcZX8SQv={-Aq`gK6fBNzJ`TsZEkXz#2o5k!Ojb{9>lg zX}LKSn!PG<=tBdQrp5)0KOUSS`tS+gt!Fh6M!|Dm{i)3bn#H@J`GssY7?)-=sCe1$ z(;4@2A%lUj51fHZ5$osS)cSyS&MD> zza2M{=9H1JKde`b=X5z)P8EsTx4TFDV2A_`+EB1ItotA|Azx`$y(xEjMr{0-CDG$v z5t{2|UB&0*oO|}rA+Lxq#}0#&kx~tCQ+uk#%KEhtVa97m(AYagcyCygFvknt7q5Ef z_pg~Yl!bvzfk((EtMf1HQf)}9HDFTT>6jj@%&AH|&T=jo6 zt8}z2_e%5ATP|{6fJwQP8MG+0p4Z!5Yx47)j^4~VJ>j<2+Bq2w_`e(4AdnNcHOPk8 zgvTrMv<^eR2~5Y_aohv3rIeKE5!_y@2QU-|^IJ;}L~0q#F2k4tptR>#D+BBeJ`pb% z6%$Mq1Vr>wFmcZdhhG&F#xF>WUZCK%py$nO&Lw$#mC+(h)7xi_XX zF#_K#!{3n-BSObQ#!i%9N6`)%dU6@V#N{2H$YN?Gdz-|mKL-Pp!X3Q1_Jf^tG%zAk z^z@y#p8nvcL*M@J160Ezh^S+;WV=jK7#EMb!PMIPMO( zJKt|#5`;#IJT~tZKI^+s_r&V>tR(1UCp9brdxpeJu71{A(;2`LRrjAO(9GrG5q(@W zqi>M2WmD;=3M`^N?<43?c!cUb0{J(o0AJiNFs+2t|7D&Gex|A_PICsYF2$5K&N2P*D&;x}qRm0mb(_cTXUw@&Dc@ zH&34D_I77yXJ=<;cV}K^4@LV(Y;t#}ts$CAZKe#CRDFW zgG8fx20Pf*2RlrhOl3mr!%H213T;{F)X7h|$2g=MfMk3PHIgfI=B>JZ^tseL%v0#R z)Vw*U;%`!msf~RTm^$-{D4Gt-=TB{N$1qFAqAB_+4BCb@+rm?JICK~rs;xte%PPeh zSk7u-6x$=#z_Ll0Hax7#p>6A~1iT23RJ=<8swcL7j|-qfVOkwI_s_Nqc(~Iy263Br z%zgoZ#)jy_QqLBCtI0iF^R;+R!O77n6;a{Zdx`>DT&txmVb!mdi@R6F;@Vmh49`_i zGql*Uh6ZYZjSSQ-*3r6fw44T!TC`IhdlKMmQ*3Eyq_%={wXLfmgi*-|L@?@DSF4HX z^oY7z#DIlWayAC>Bgm1jzZyd^2O(J>++emIUUP^1G}LOk?D&(l1cZSA%NJMt+)z7$Jv=c{OX%IkT7>c#%-UGFA{4V_zDY&0Fnpu{e3W>)eYxLg)jocq!K%*BOv_nw{Q ztGxYUv~Eto-rD?6!o8iLr0MDUez)f{x*i85=o_sYIX29yRCJW73S9D};=hck zJaL(=z|oc3b81DK=d?NY>eBq5H_>Npw1^tHQx$M17T}s0yfeL}(f=IUYUkWw`qhK2 z>sz<5-_E0vLmf9THOC%h9fSk=QcOF|PnkNEI<(UogmmSmX5oRxf1o}UR$w2sU~&bu z(>f`f_~Hv%rx1*)JPPX!XW+;T#G^KJ&{Nd8gBGaRuBIU!v|!%t_p7UWxNeqqU=&at zggjS_@e-D#kWC>f1$oU)>e%>_vfHwU`>W zt;Fn%EctS4YY;Q7s}|cF*kDo&j1;|vpi!l98d&Jy#L3XWt-Xd-5ngdgh2@=hgniOg zi;IXs*_eB?ifGr-PA$jzepX~y74L&C_DJpcGOQ^GpP)5wiPqN}wJY-GE1%1NQe$

?gw0~_`oZb^^>)k`J%JuFeUE|vEh@FGz?mVzP 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

|ByjaHG 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

xWP6Ltg5je)-z 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

e4OW0c%xyL zbz-NxFNQ9hlpklEH2n9#ekN^H;{BKKMlzhRc=4>o8|qk786+4D0{Z6;Uoa_~+K$2= zyQ{m}`MMd+1O%l5Khrldg1Bu=Jej_g%0e`(sHLQHRE8)I>AqZ91@AOuM9{#W;2EI= zW1BFOnqReemzmhf$k8O(fp5X0n<-K@2o$-e>eJkKm`pH*57^nx!b2Nu0J{lA-A88u z6;PZ56z85fFh zWHDj!8&%WsbDEs(uoq2iix5v|{V_ymjOvshy#N*5e2H zm4Z&*{7D-iq+ubxb^Eur5)-K|ZiN{UH09R)E9dxlire9gFjZDbGQhAC^Bx_2$d(vd zsn6SDdYkzY3`iU<(QDA~e8=zT={kY)j-5>kEAMqym@$A#5%WqP_Xt>$bJk(Q$m~U7 zKedkZ6`p27T7ev7L~Ih47>wK={0}W_HVGsCh!hvVVG((xZB%QUN7muecOgy!V9hj0HRw6?I0UUjRc##5(|IS0O{#2T^hf=7oK&lsqy zF8_{jGj2LTY@E7w!8)UuG=Rs85YQAvqF{v`n9(5M8x|;p(G^|fB@}za%(4m2Hu{us z{Ax?s6FzfVZ<03)WFKJ=>hcy(7!djpb)pIJm^%b*xnG3^QKkv*4fxyW%mc9{z+tg+ z0C|}>JP)hnc#wQtC06kI9Ivn7>uAt249ROzl8b}8mwlHW7kjIXH->w#*~UY_{~v2_ z9v)S({12a*IobDpU&%7(kc2=0AwYoa2_%q&MYd#;5Fii|2uauzHX|Tg)>aS@kSziN zDiOS*pn`xb0^)`!DDjGlg347C?(b9GGhy)hecpfGd7eIVPIq;8^;T6~-PPS&Oi@Wn z@qP3f`sg)6ymAgtb)b2Q#lDY)Ct=5vYdqnY_o$0vZfJo;cNo)9ccNFA(3oCfHbaw) zN5jI%Zdt-Ikly~>< zHmBrD>LHkG%!JT%3kq-uo?3g>S|94^Z8AK{HZwj-mtiQw=Sv*xTHuGnu^$u4OlWws z;tz0KHkVx1^YfF9OdUos#-@!IB0m`m!4ihL3%$BNdhH=z1p@=FiIFRpM6hy9rdj6D zID1;6fMM`s{fxNt^>KbU=s6}3w;9pQ4JIbU6p11`vOiyNabO#mp0tVtr%9(Uq2Ykw zu&;IF)F_N0mNPXj+-Vp;6hUm%j+ki__R#luhknXNV-L-Cs*9)A!jc_Z8tLcxqPRTe zF(GlsCAKA3@8QOGgPBjT+Agu23;v!U8$!~cj_q@EAIQ&58$OJoi^mSPq5R!~4ZacS zZ7Q6`XvENql`qrB!KNO@QPkPF=#5e|+Es6+PR>ig22O~xg{b$%KE7vBoLkiwb2VK3 zM3Kmnn*XCrE5^7tt=94iPa9E~ zgC>bku)1zs23X%uCm%upPXF;@d7jvqN@{Krm(Rg?k!-kfJ#jFl$ur{8-#je=x%Kgc z{pqYPS342~WlA11N|Kl@sI#nNcV2+F)$oZU4nYB3wH)wrI#>%^ye=}x$XWw0aS_<6 zh4wv^i|$C=+R8L3=N!kpFb$EBF?^oEvs-!Tky!kA94aRliH#M&**szRKSiZdg(4kd zN$lEuy``g3A;9xaxFqO^kr{U;gUWea7@}?eR5@5?^Fgl zItA3G76K$%5V`_i#wszXz;+xfrk#&HAff@WqlAQ7IF{Zx{GXt_9=fn~{n$v7!hwdyST9bw!#~fz`QELv~?DT)O z=26~ZJZJ_9O@V1n%m=RJo^Xg5v=IS`QHtj-KgPBBBIs*)$ot^xd=po*_s#g zUxG%a2^viTw;JoSe2sC|22W~v;�LTK>1?K`RHBg>x!K)og5;_%y-BzH-HmlH-@y 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%0DRdG9F2l3(ig-&Iy@^Cm={;t|zbjL^q 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

n<=6R33@jB3e;mf{r! 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