From 4f2e10fcf7546913b58290d3a47ffb5013149766 Mon Sep 17 00:00:00 2001 From: coomdev Date: Wed, 14 Sep 2022 18:21:09 +0200 Subject: [PATCH] Remove requirement for blob: in userscript mode, remove dead code --- README.md | 3 +- chrome/dist/background.js | 41 +++++++++---- chrome/dist/main.js | 99 +++++++++++++++++++------------ chrome/manifest.json | 2 +- dist/main.js | 114 ++++++++++++++++++++++-------------- firefox/dist/background.js | 7 --- firefox/dist/main.js | 69 ++++++++++------------ firefox/manifest.json | 3 +- firefox_update.json | 2 +- main.meta.js | 2 +- main.user.js | 116 +++++++++++++++++++++++-------------- pngextraembedder-0.324.xpi | Bin 0 -> 549250 bytes src/main.ts | 71 ++++++++++++----------- src/platform.ts | 14 ++--- 14 files changed, 317 insertions(+), 226 deletions(-) create mode 100644 pngextraembedder-0.324.xpi diff --git a/README.md b/README.md index 12d3427..4b1d631 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ Note: 4chanX isn't a hard requirement, just recommended because it's overall a n - [Install ViolentMonkey](https://violentmonkey.github.io/get-it/) (it is preferable to TamperMonkey(closed source) and GreaseMonkey(abandonned shit)), use [ViolentMonkey Beta](https://violentmonkey.github.io/get-it/#beta-release) if you want to spite the b4k meanie admin (based & redpilled). Be sure to read the trouble shooting section to know how to set this up. - [Install 4chanX (recommended)](https://www.4chan-x.net/builds/4chan-X.user.js) - Use the prebuilt [main.user.js](https://git.coom.tech/coomdev/PEE/raw/branch/%E4%B8%AD%E5%87%BA%E3%81%97/main.user.js) +- Reorder PEE and 4chanX in the dashboard so that PEE runs BEFORE 4chanX (or add blob: to your 4chanX JS whitelist) ## The newer way (WIP) @@ -26,7 +27,7 @@ Also, use this if you plan to use b4k's archive. - [Install 4chanX (recommended)](https://www.4chan-x.net/builds/4chan-X.user.js) - [Install JKCS (recommended)](https://git.coom.tech/araragi/JKCS/src/branch/master/README.md) -- Install the correct WebExtension for your Browser ([Firefox](https://git.coom.tech/fuckjannies/lolipiss/raw/branch/%E4%B8%AD%E5%87%BA%E3%81%97/pngextraembedder-0.322.xpi) or Chrome-based (Down for "maintainance")) +- Install the correct WebExtension for your Browser ([Firefox](https://git.coom.tech/fuckjannies/lolipiss/raw/branch/%E4%B8%AD%E5%87%BA%E3%81%97/pngextraembedder-0.324.xpi) or Chrome-based (Down for "maintainance")) For FF users, the extension is signed so you can just drag and drop it on your about:addons tab. diff --git a/chrome/dist/background.js b/chrome/dist/background.js index b6eec3d..df5eb8d 100644 --- a/chrome/dist/background.js +++ b/chrome/dist/background.js @@ -1855,6 +1855,36 @@ "esbuild.inject.js"() { "use strict"; Buffer2 = require_buffer().Buffer; + if (false) { + if (false) { + const ocreate = unsafeWindow.document.createElement.bind(document); + unsafeWindow.document.createElement = (tag) => { + if (tag != "meta") + return ocreate(tag); + unsafeWindow.document.createElement = ocreate; + return unsafeWindow.document.createElement("link"); + }; + } + if (false) { + if (typeof cloneInto != "undefined") + console.log("CLONE INTO DEFINED"); + else + console.log("CLONE INTO NOT DEFINED"); + let a = 1; + console.log(a++); + const unsafeWindow2 = window; + console.log(a++); + const ocreate = unsafeWindow2.document.createElement.bind(document); + console.log(a++); + exportFunction((tag) => { + if (tag != "meta") + return ocreate(tag); + unsafeWindow2.document.createElement = ocreate; + return unsafeWindow2.document.createElement("link"); + }, window.document, { defineAs: "createElement" }); + console.log(a++); + } + } } }); @@ -1916,16 +1946,7 @@ for (const k of keys) ctor[k] = bridge(k, ctor[k]); }; - var popupport; - var pendingcmds = {}; - if (false) { - popupport = chrome.runtime.connect({ name: "popup" }); - popupport.onMessage.addListener((msg) => { - if (msg.id in pendingcmds) { - pendingcmds[msg.id](msg); - delete pendingcmds[msg.id]; - } - }); + if (true) { } var Platform = class { static async openInTab(src, opts) { diff --git a/chrome/dist/main.js b/chrome/dist/main.js index 1be071a..71b3dcd 100644 --- a/chrome/dist/main.js +++ b/chrome/dist/main.js @@ -73,7 +73,7 @@ var define_BUILD_VERSION_default; var init_define_BUILD_VERSION = __esm({ ""() { - define_BUILD_VERSION_default = [0, 323]; + define_BUILD_VERSION_default = [0, 324]; } }); @@ -1907,6 +1907,36 @@ "esbuild.inject.js"() { "use strict"; Buffer2 = require_buffer().Buffer; + if (true) { + if (false) { + const ocreate = unsafeWindow.document.createElement.bind(document); + unsafeWindow.document.createElement = (tag) => { + if (tag != "meta") + return ocreate(tag); + unsafeWindow.document.createElement = ocreate; + return unsafeWindow.document.createElement("link"); + }; + } + if (false) { + if (typeof cloneInto != "undefined") + console.log("CLONE INTO DEFINED"); + else + console.log("CLONE INTO NOT DEFINED"); + let a = 1; + console.log(a++); + const unsafeWindow2 = window; + console.log(a++); + const ocreate = unsafeWindow2.document.createElement.bind(document); + console.log(a++); + exportFunction((tag) => { + if (tag != "meta") + return ocreate(tag); + unsafeWindow2.document.createElement = ocreate; + return unsafeWindow2.document.createElement("link"); + }, window.document, { defineAs: "createElement" }); + console.log(a++); + } + } } }); @@ -8555,13 +8585,6 @@ var popupport; var pendingcmds = {}; if (true) { - popupport = chrome.runtime.connect({ name: "popup" }); - popupport.onMessage.addListener((msg) => { - if (msg.id in pendingcmds) { - pendingcmds[msg.id](msg); - delete pendingcmds[msg.id]; - } - }); } var Platform = class { static async openInTab(src, opts) { @@ -21632,7 +21655,7 @@ // src/processor.worker.ts function Worker2() { - return inlineWorker('var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));\nvar __decorateClass = (decorators, target, key2, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key2) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key2, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key2, result);\n return result;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError("Cannot " + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, "read from private field");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError("Cannot add the same private member more than once");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, "write to private field");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, "access private method");\n return method;\n};\nvar __toBinary = /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++)\n table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);\n for (var i2 = 0, j = 0; i2 < n; ) {\n var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n bytes[j++] = c0 << 2 | c1 >> 4;\n bytes[j++] = c1 << 4 | c2 >> 2;\n bytes[j++] = c2 << 6 | c3;\n }\n return bytes;\n };\n})();\n\n// \nvar init_define_BUILD_VERSION = __esm({\n ""() {\n }\n});\n\n// node_modules/base64-js/index.js\nvar require_base64_js = __commonJS({\n "node_modules/base64-js/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;\n var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\n for (i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n var i;\n var len;\n revLookup["-".charCodeAt(0)] = 62;\n revLookup["_".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error("Invalid string. Length must be a multiple of 4");\n }\n var validLen = b64.indexOf("=");\n if (validLen === -1)\n validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join("");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");\n }\n return parts.join("");\n }\n }\n});\n\n// node_modules/ieee754/index.js\nvar require_ieee754 = __commonJS({\n "node_modules/ieee754/index.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n});\n\n// node_modules/buffer/index.js\nvar require_buffer = __commonJS({\n "node_modules/buffer/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var base64 = require_base64_js();\n var ieee7542 = require_ieee754();\n var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null;\n exports.Buffer = Buffer13;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n Buffer13.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer13.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") {\n console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");\n }\n function typedArraySupport() {\n try {\n const arr = new Uint8Array(1);\n const proto = { foo: function() {\n return 42;\n } };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer13.prototype, "parent", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer13.prototype, "offset", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\'The value "\' + length + \'" is invalid for option "size"\');\n }\n const buf2 = new Uint8Array(length);\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function Buffer13(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n if (typeof encodingOrOffset === "string") {\n throw new TypeError(\'The "string" argument must be of type string. Received type number\');\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer13.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === "string") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === "number") {\n throw new TypeError(\'The "value" argument must not be of type number. Received type number\');\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer13.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b)\n return b;\n if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") {\n return Buffer13.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length);\n }\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n Buffer13.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer13.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer13, Uint8Array);\n function assertSize(size) {\n if (typeof size !== "number") {\n throw new TypeError(\'"size" argument must be of type number\');\n } else if (size < 0) {\n throw new RangeError(\'The value "\' + size + \'" is invalid for option "size"\');\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer13.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer13.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer13.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== "string" || encoding === "") {\n encoding = "utf8";\n }\n if (!Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf2 = createBuffer(length);\n const actual = buf2.write(string, encoding);\n if (actual !== length) {\n buf2 = buf2.slice(0, actual);\n }\n return buf2;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf2 = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf2[i] = array[i] & 255;\n }\n return buf2;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\'"offset" is outside of buffer bounds\');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\'"length" is outside of buffer bounds\');\n }\n let buf2;\n if (byteOffset === void 0 && length === void 0) {\n buf2 = new Uint8Array(array);\n } else if (length === void 0) {\n buf2 = new Uint8Array(array, byteOffset);\n } else {\n buf2 = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function fromObject(obj) {\n if (Buffer13.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf2 = createBuffer(len);\n if (buf2.length === 0) {\n return buf2;\n }\n obj.copy(buf2, 0, 0, len);\n return buf2;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== "number" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === "Buffer" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer13.alloc(+length);\n }\n Buffer13.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer13.prototype;\n };\n Buffer13.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array))\n a = Buffer13.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array))\n b = Buffer13.from(b, b.offset, b.byteLength);\n if (!Buffer13.isBuffer(a) || !Buffer13.isBuffer(b)) {\n throw new TypeError(\'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array\');\n }\n if (a === b)\n return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n Buffer13.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "latin1":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return true;\n default:\n return false;\n }\n };\n Buffer13.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n }\n if (list.length === 0) {\n return Buffer13.alloc(0);\n }\n let i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer13.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf2 = list[i];\n if (isInstance(buf2, Uint8Array)) {\n if (pos + buf2.length > buffer.length) {\n if (!Buffer13.isBuffer(buf2))\n buf2 = Buffer13.from(buf2);\n buf2.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf2, pos);\n }\n } else if (!Buffer13.isBuffer(buf2)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n } else {\n buf2.copy(buffer, pos);\n }\n pos += buf2.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer13.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== "string") {\n throw new TypeError(\'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type \' + typeof string);\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0)\n return 0;\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "ascii":\n case "latin1":\n case "binary":\n return len;\n case "utf8":\n case "utf-8":\n return utf8ToBytes(string).length;\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return len * 2;\n case "hex":\n return len >>> 1;\n case "base64":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length;\n }\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return "";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return "";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return "";\n }\n if (!encoding)\n encoding = "utf8";\n while (true) {\n switch (encoding) {\n case "hex":\n return hexSlice(this, start, end);\n case "utf8":\n case "utf-8":\n return utf8Slice(this, start, end);\n case "ascii":\n return asciiSlice(this, start, end);\n case "latin1":\n case "binary":\n return latin1Slice(this, start, end);\n case "base64":\n return base64Slice(this, start, end);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = (encoding + "").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer13.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 16-bits");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer13.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 32-bits");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer13.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 64-bits");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer13.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0)\n return "";\n if (arguments.length === 0)\n return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer13.prototype.toLocaleString = Buffer13.prototype.toString;\n Buffer13.prototype.equals = function equals(b) {\n if (!Buffer13.isBuffer(b))\n throw new TypeError("Argument must be a Buffer");\n if (this === b)\n return true;\n return Buffer13.compare(this, b) === 0;\n };\n Buffer13.prototype.inspect = function inspect() {\n let str = "";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim();\n if (this.length > max)\n str += " ... ";\n return "";\n };\n if (customInspectSymbol) {\n Buffer13.prototype[customInspectSymbol] = Buffer13.prototype.inspect;\n }\n Buffer13.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer13.from(target, target.offset, target.byteLength);\n }\n if (!Buffer13.isBuffer(target)) {\n throw new TypeError(\'The "target" argument must be one of type Buffer or Uint8Array. Received type \' + typeof target);\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError("out of range index");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target)\n return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0)\n return -1;\n if (typeof byteOffset === "string") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n if (byteOffset < 0)\n byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir)\n return -1;\n else\n byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir)\n byteOffset = 0;\n else\n return -1;\n }\n if (typeof val === "string") {\n val = Buffer13.from(val, encoding);\n }\n if (Buffer13.isBuffer(val)) {\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === "number") {\n val = val & 255;\n if (typeof Uint8Array.prototype.indexOf === "function") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError("val must be string, number or Buffer");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read2(buf2, i2) {\n if (indexSize === 1) {\n return buf2[i2];\n } else {\n return buf2.readUInt16BE(i2 * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read2(arr, i) === read2(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1)\n foundIndex = i;\n if (i - foundIndex + 1 === valLength)\n return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1)\n i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength)\n byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read2(arr, i + j) !== read2(val, j)) {\n found = false;\n break;\n }\n }\n if (found)\n return i;\n }\n }\n return -1;\n }\n Buffer13.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer13.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer13.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf2, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf2.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed))\n return i;\n buf2[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf2, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n function asciiWrite(buf2, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf2, offset, length);\n }\n function base64Write(buf2, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf2, offset, length);\n }\n function ucs2Write(buf2, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n Buffer13.prototype.write = function write2(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = "utf8";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === "string") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0)\n encoding = "utf8";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");\n }\n const remaining = this.length - offset;\n if (length === void 0 || length > remaining)\n length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError("Attempt to write outside buffer bounds");\n }\n if (!encoding)\n encoding = "utf8";\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "hex":\n return hexWrite(this, string, offset, length);\n case "utf8":\n case "utf-8":\n return utf8Write(this, string, offset, length);\n case "ascii":\n case "latin1":\n case "binary":\n return asciiWrite(this, string, offset, length);\n case "base64":\n return base64Write(this, string, offset, length);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer13.prototype.toJSON = function toJSON() {\n return {\n type: "Buffer",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf2, start, end) {\n if (start === 0 && end === buf2.length) {\n return base64.fromByteArray(buf2);\n } else {\n return base64.fromByteArray(buf2.slice(start, end));\n }\n }\n function utf8Slice(buf2, start, end) {\n end = Math.min(buf2.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf2[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf2[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n fourthByte = buf2[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = "";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i]);\n }\n return ret;\n }\n function hexSlice(buf2, start, end) {\n const len = buf2.length;\n if (!start || start < 0)\n start = 0;\n if (!end || end < 0 || end > len)\n end = len;\n let out = "";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf2[i]];\n }\n return out;\n }\n function utf16leSlice(buf2, start, end) {\n const bytes = buf2.slice(start, end);\n let res = "";\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer13.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0)\n start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0)\n end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start)\n end = start;\n const newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer13.prototype);\n return newBuf;\n };\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0)\n throw new RangeError("offset is not uint");\n if (offset + ext > length)\n throw new RangeError("Trying to access beyond buffer length");\n }\n Buffer13.prototype.readUintLE = Buffer13.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUintBE = Buffer13.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n let val = this[offset + --byteLength2];\n let mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUint8 = Buffer13.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer13.prototype.readUint16LE = Buffer13.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer13.prototype.readUint16BE = Buffer13.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer13.prototype.readUint32LE = Buffer13.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer13.prototype.readUint32BE = Buffer13.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer13.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer13.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer13.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let i = byteLength2;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128))\n return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer13.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer13.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer13.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer13.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer13.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, true, 23, 4);\n };\n Buffer13.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, false, 23, 4);\n };\n Buffer13.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, true, 52, 8);\n };\n Buffer13.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, false, 52, 8);\n };\n function checkInt(buf2, value, offset, ext, max, min) {\n if (!Buffer13.isBuffer(buf2))\n throw new TypeError(\'"buffer" argument must be a Buffer instance\');\n if (value > max || value < min)\n throw new RangeError(\'"value" argument is out of bounds\');\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n }\n Buffer13.prototype.writeUintLE = Buffer13.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUintBE = Buffer13.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUint8 = Buffer13.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeUint16LE = Buffer13.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeUint16BE = Buffer13.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeUint32LE = Buffer13.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeUint32BE = Buffer13.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset + 7] = lo;\n lo = lo >> 8;\n buf2[offset + 6] = lo;\n lo = lo >> 8;\n buf2[offset + 5] = lo;\n lo = lo >> 8;\n buf2[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset + 3] = hi;\n hi = hi >> 8;\n buf2[offset + 2] = hi;\n hi = hi >> 8;\n buf2[offset + 1] = hi;\n hi = hi >> 8;\n buf2[offset] = hi;\n return offset + 8;\n }\n Buffer13.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 127, -128);\n if (value < 0)\n value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer13.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0)\n value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n Buffer13.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n function checkIEEE754(buf2, value, offset, ext, max, min) {\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n if (offset < 0)\n throw new RangeError("Index out of range");\n }\n function writeFloat(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer13.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer13.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer13.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer13.isBuffer(target))\n throw new TypeError("argument should be a Buffer");\n if (!start)\n start = 0;\n if (!end && end !== 0)\n end = this.length;\n if (targetStart >= target.length)\n targetStart = target.length;\n if (!targetStart)\n targetStart = 0;\n if (end > 0 && end < start)\n end = start;\n if (end === start)\n return 0;\n if (target.length === 0 || this.length === 0)\n return 0;\n if (targetStart < 0) {\n throw new RangeError("targetStart out of bounds");\n }\n if (start < 0 || start >= this.length)\n throw new RangeError("Index out of range");\n if (end < 0)\n throw new RangeError("sourceEnd out of bounds");\n if (end > this.length)\n end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === "function") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n Buffer13.prototype.fill = function fill(val, start, end, encoding) {\n if (typeof val === "string") {\n if (typeof start === "string") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === "string") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== void 0 && typeof encoding !== "string") {\n throw new TypeError("encoding must be a string");\n }\n if (typeof encoding === "string" && !Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === "utf8" && code < 128 || encoding === "latin1") {\n val = code;\n }\n }\n } else if (typeof val === "number") {\n val = val & 255;\n } else if (typeof val === "boolean") {\n val = Number(val);\n }\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError("Out of range index");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val)\n val = 0;\n let i;\n if (typeof val === "number") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer13.isBuffer(val) ? val : Buffer13.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError(\'The value "\' + val + \'" is invalid for argument "value"\');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, "message", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n this.name = `${this.name} [${sym}]`;\n this.stack;\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, "code", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n return "Attempt to access memory outside buffer bounds";\n }, RangeError);\n E("ERR_INVALID_ARG_TYPE", function(name, actual) {\n return `The "${name}" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E("ERR_OUT_OF_RANGE", function(str, range, input) {\n let msg = `The value of "${str}" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === "bigint") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += "n";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n let res = "";\n let i = val.length;\n const start = val[0] === "-" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n function checkBounds(buf2, offset, byteLength2) {\n validateNumber(offset, "offset");\n if (buf2[offset] === void 0 || buf2[offset + byteLength2] === void 0) {\n boundsError(offset, buf2.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf2, offset, byteLength2) {\n if (value > max || value < min) {\n const n = typeof min === "bigint" ? "n" : "";\n let range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n throw new errors.ERR_OUT_OF_RANGE("value", range, value);\n }\n checkBounds(buf2, offset, byteLength2);\n }\n function validateNumber(value, name) {\n if (typeof value !== "number") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value);\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split("=")[0];\n str = str.trim().replace(INVALID_BASE64_RE, "");\n if (str.length < 2)\n return "";\n while (str.length % 4 !== 0) {\n str = str + "=";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error("Invalid code point");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0)\n break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length)\n break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n const alphabet = "0123456789abcdef";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error("BigInt not supported");\n }\n }\n});\n\n// esbuild.inject.js\nvar Buffer2;\nvar init_esbuild_inject = __esm({\n "esbuild.inject.js"() {\n "use strict";\n Buffer2 = require_buffer().Buffer;\n }\n});\n\n// node_modules/crc-32/crc32.js\nvar require_crc32 = __commonJS({\n "node_modules/crc-32/crc32.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var CRC32;\n (function(factory) {\n if (typeof DO_NOT_EXPORT_CRC === "undefined") {\n if (typeof exports === "object") {\n factory(exports);\n } else if (typeof define === "function" && define.amd) {\n define(function() {\n var module2 = {};\n factory(module2);\n return module2;\n });\n } else {\n factory(CRC32 = {});\n }\n } else {\n factory(CRC32 = {});\n }\n })(function(CRC322) {\n CRC322.version = "1.2.0";\n function signed_crc_table() {\n var c = 0, table = new Array(256);\n for (var n = 0; n != 256; ++n) {\n c = n;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n table[n] = c;\n }\n return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;\n }\n var T = signed_crc_table();\n function crc32_bstr(bstr, seed) {\n var C = seed ^ -1, L = bstr.length - 1;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n }\n if (i === L)\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i)) & 255];\n return C ^ -1;\n }\n function crc32_buf(buf2, seed) {\n if (buf2.length > 1e4)\n return crc32_buf_8(buf2, seed);\n var C = seed ^ -1, L = buf2.length - 3;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 3)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_buf_8(buf2, seed) {\n var C = seed ^ -1, L = buf2.length - 7;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 7)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_str(str, seed) {\n var C = seed ^ -1;\n for (var i = 0, L = str.length, c, d; i < L; ) {\n c = str.charCodeAt(i++);\n if (c < 128) {\n C = C >>> 8 ^ T[(C ^ c) & 255];\n } else if (c < 2048) {\n C = C >>> 8 ^ T[(C ^ (192 | c >> 6 & 31)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n } else if (c >= 55296 && c < 57344) {\n c = (c & 1023) + 64;\n d = str.charCodeAt(i++) & 1023;\n C = C >>> 8 ^ T[(C ^ (240 | c >> 8 & 7)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 2 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d & 63)) & 255];\n } else {\n C = C >>> 8 ^ T[(C ^ (224 | c >> 12 & 15)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 6 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n }\n }\n return C ^ -1;\n }\n CRC322.table = T;\n CRC322.bstr = crc32_bstr;\n CRC322.buf = crc32_buf;\n CRC322.str = crc32_str;\n });\n }\n});\n\n// node_modules/events/events.js\nvar require_events = __commonJS({\n "node_modules/events/events.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var R = typeof Reflect === "object" ? Reflect : null;\n var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === "function") {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn)\n console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = void 0;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = void 0;\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== "function") {\n throw new TypeError(\'The "listener" argument must be of type Function. Received type \' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, "defaultMaxListeners", {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError(\'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received \' + arg + ".");\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function() {\n if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || void 0;\n };\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {\n throw new RangeError(\'The value of "n" is out of range. It must be a non-negative number. Received \' + n + ".");\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === void 0)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++)\n args.push(arguments[i]);\n var doError = type === "error";\n var events = this._events;\n if (events !== void 0)\n doError = doError && events.error === void 0;\n else if (!doError)\n return false;\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n throw er;\n }\n var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));\n err.context = er;\n throw err;\n }\n var handler = events[type];\n if (handler === void 0)\n return false;\n if (typeof handler === "function") {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === void 0) {\n events = target._events = /* @__PURE__ */ Object.create(null);\n target._eventsCount = 0;\n } else {\n if (events.newListener !== void 0) {\n target.emit("newListener", type, listener.listener ? listener.listener : listener);\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === void 0) {\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === "function") {\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");\n w.name = "MaxListenersExceededWarning";\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: void 0, target, type, listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once2(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === void 0)\n return this;\n list = events[type];\n if (list === void 0)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit("removeListener", type, list.listener || listener);\n }\n } else if (typeof list !== "function") {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== void 0)\n this.emit("removeListener", type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === void 0)\n return this;\n if (events.removeListener === void 0) {\n if (arguments.length === 0) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== void 0) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key2;\n for (i = 0; i < keys.length; ++i) {\n key2 = keys[i];\n if (key2 === "removeListener")\n continue;\n this.removeAllListeners(key2);\n }\n this.removeAllListeners("removeListener");\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === "function") {\n this.removeListener(type, listeners);\n } else if (listeners !== void 0) {\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === void 0)\n return [];\n var evlistener = events[type];\n if (evlistener === void 0)\n return [];\n if (typeof evlistener === "function")\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === "function") {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== void 0) {\n var evlistener = events[type];\n if (typeof evlistener === "function") {\n return 1;\n } else if (evlistener !== void 0) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === "function") {\n emitter.removeListener("error", errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== "error") {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === "function") {\n eventTargetAgnosticAddListener(emitter, "error", handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === "function") {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === "function") {\n emitter.addEventListener(name, function wrapListener(arg) {\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError(\'The "emitter" argument must be of type EventEmitter. Received type \' + typeof emitter);\n }\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/stream-browser.js\nvar require_stream_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/stream-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = require_events().EventEmitter;\n }\n});\n\n// (disabled):node_modules/util/util.js\nvar require_util = __commonJS({\n "(disabled):node_modules/util/util.js"() {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/buffer_list.js\nvar require_buffer_list = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly)\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key2) {\n _defineProperty(target, key2, source[key2]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key2) {\n Object.defineProperty(target, key2, Object.getOwnPropertyDescriptor(source, key2));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require_buffer();\n var Buffer13 = _require.Buffer;\n var _require2 = require_util();\n var inspect = _require2.inspect;\n var custom = inspect && inspect.custom || "inspect";\n function copyBuffer(src, target, offset) {\n Buffer13.prototype.copy.call(src, target, offset);\n }\n module.exports = /* @__PURE__ */ function() {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: "push",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0)\n this.tail.next = entry;\n else\n this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: "unshift",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0)\n this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: "shift",\n value: function shift() {\n if (this.length === 0)\n return;\n var ret = this.head.data;\n if (this.length === 1)\n this.head = this.tail = null;\n else\n this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: "clear",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: "join",\n value: function join(s) {\n if (this.length === 0)\n return "";\n var p = this.head;\n var ret = "" + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: "concat",\n value: function concat(n) {\n if (this.length === 0)\n return Buffer13.alloc(0);\n var ret = Buffer13.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n }, {\n key: "consume",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n ret = this.shift();\n } else {\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: "first",\n value: function first() {\n return this.head.data;\n }\n }, {\n key: "_getString",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length)\n ret += str;\n else\n ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: "_getBuffer",\n value: function _getBuffer(n) {\n var ret = Buffer13.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf2 = p.data;\n var nb = n > buf2.length ? buf2.length : n;\n buf2.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf2.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf2.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n depth: 0,\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/destroy.js\nvar require_destroy = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function(err2) {\n if (!cb && err2) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self2, err) {\n emitErrorNT(self2, err);\n emitCloseNT(self2);\n }\n function emitCloseNT(self2) {\n if (self2._writableState && !self2._writableState.emitClose)\n return;\n if (self2._readableState && !self2._readableState.emitClose)\n return;\n self2.emit("close");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self2, err) {\n self2.emit("error", err);\n }\n function errorOrDestroy(stream, err) {\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy)\n stream.destroy(err);\n else\n stream.emit("error", err);\n }\n module.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n };\n }\n});\n\n// node_modules/readable-stream/errors-browser.js\nvar require_errors_browser = __commonJS({\n "node_modules/readable-stream/errors-browser.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n var codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === "string") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inheritsLoose(NodeError2, _Base);\n function NodeError2(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError2;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(", "), ", or ") + expected[len - 1];\n } else if (len === 2) {\n return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);\n } else {\n return "of ".concat(thing, " ").concat(expected[0]);\n }\n } else {\n return "of ".concat(thing, " ").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== "number") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) {\n return \'The value "\' + value + \'" is invalid for option "\' + name + \'"\';\n }, TypeError);\n createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) {\n var determiner;\n if (typeof expected === "string" && startsWith(expected, "not ")) {\n determiner = "must not be";\n expected = expected.replace(/^not /, "");\n } else {\n determiner = "must be";\n }\n var msg;\n if (endsWith(name, " argument")) {\n msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n } else {\n var type = includes(name, ".") ? "property" : "argument";\n msg = \'The "\'.concat(name, \'" \').concat(type, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n }\n msg += ". Received type ".concat(typeof actual);\n return msg;\n }, TypeError);\n createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");\n createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) {\n return "The " + name + " method is not implemented";\n });\n createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close");\n createErrorType("ERR_STREAM_DESTROYED", function(name) {\n return "Cannot call " + name + " after a stream was destroyed";\n });\n createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");\n createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");\n createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end");\n createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);\n createErrorType("ERR_UNKNOWN_ENCODING", function(arg) {\n return "Unknown encoding: " + arg;\n }, TypeError);\n createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");\n module.exports.codes = codes;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/state.js\nvar require_state = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/state.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : "highWaterMark";\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n return state.objectMode ? 16 : 16 * 1024;\n }\n module.exports = {\n getHighWaterMark\n };\n }\n});\n\n// node_modules/inherits/inherits_browser.js\nvar require_inherits_browser = __commonJS({\n "node_modules/inherits/inherits_browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n if (typeof Object.create === "function") {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n});\n\n// node_modules/util-deprecate/browser.js\nvar require_browser = __commonJS({\n "node_modules/util-deprecate/browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = deprecate;\n function deprecate(fn, msg) {\n if (config("noDeprecation")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config("throwDeprecation")) {\n throw new Error(msg);\n } else if (config("traceDeprecation")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n }\n function config(name) {\n try {\n if (!self.localStorage)\n return false;\n } catch (_) {\n return false;\n }\n var val = self.localStorage[name];\n if (val == null)\n return false;\n return String(val).toLowerCase() === "true";\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_writable.js\nvar require_stream_writable = __commonJS({\n "node_modules/readable-stream/lib/_stream_writable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Writable;\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function() {\n onCorkedFinish(_this, state);\n };\n }\n var Duplex;\n Writable.WritableState = WritableState;\n var internalUtil = {\n deprecate: require_browser()\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;\n var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;\n var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n require_inherits_browser()(Writable, Stream);\n function nop() {\n }\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.writableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex);\n this.finalCalled = false;\n this.needDrain = false;\n this.ending = false;\n this.ended = false;\n this.finished = false;\n this.destroyed = false;\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.length = 0;\n this.writing = false;\n this.corked = 0;\n this.sync = true;\n this.bufferProcessing = false;\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n this.writecb = null;\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n this.pendingcb = 0;\n this.prefinished = false;\n this.errorEmitted = false;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.bufferedRequestCount = 0;\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function() {\n try {\n Object.defineProperty(WritableState.prototype, "buffer", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")\n });\n } catch (_) {\n }\n })();\n var realHasInstance;\n if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object))\n return true;\n if (this !== Writable)\n return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance2(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || require_stream_duplex();\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this))\n return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n this.writable = true;\n if (options) {\n if (typeof options.write === "function")\n this._write = options.write;\n if (typeof options.writev === "function")\n this._writev = options.writev;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n if (typeof options.final === "function")\n this._final = options.final;\n }\n Stream.call(this);\n }\n Writable.prototype.pipe = function() {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n }\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== "string" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer13.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf)\n encoding = "buffer";\n else if (!encoding)\n encoding = state.defaultEncoding;\n if (typeof cb !== "function")\n cb = nop;\n if (state.ending)\n writeAfterEnd(this, cb);\n else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function() {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function() {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest)\n clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n if (typeof encoding === "string")\n encoding = encoding.toLowerCase();\n if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1))\n throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") {\n chunk = Buffer13.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = "buffer";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n if (!ret)\n state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed)\n state.onwrite(new ERR_STREAM_DESTROYED("write"));\n else if (writev)\n stream._writev(chunk, state.onwrite);\n else\n stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n process.nextTick(cb, er);\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== "function")\n throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er)\n onwriteError(stream, state, sync, er, cb);\n else {\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished)\n onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit("drain");\n }\n }\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf)\n allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, "", holder.finish);\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n if (state.writing) {\n break;\n }\n }\n if (entry === null)\n state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === "function") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== void 0)\n this.write(chunk, encoding);\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n if (!state.ending)\n endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function(err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit("prefinish");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === "function" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit("prefinish");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit("finish");\n if (state.autoDestroy) {\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished)\n process.nextTick(cb);\n else\n stream.once("finish", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._writableState === void 0) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n if (!this._writableState) {\n return;\n }\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_duplex.js\nvar require_stream_duplex = __commonJS({\n "node_modules/readable-stream/lib/_stream_duplex.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var objectKeys = Object.keys || function(obj) {\n var keys2 = [];\n for (var key2 in obj) {\n keys2.push(key2);\n }\n return keys2;\n };\n module.exports = Duplex;\n var Readable = require_stream_readable();\n var Writable = require_stream_writable();\n require_inherits_browser()(Duplex, Readable);\n {\n keys = objectKeys(Writable.prototype);\n for (v = 0; v < keys.length; v++) {\n method = keys[v];\n if (!Duplex.prototype[method])\n Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n var keys;\n var method;\n var v;\n function Duplex(options) {\n if (!(this instanceof Duplex))\n return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false)\n this.readable = false;\n if (options.writable === false)\n this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once("end", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function onend() {\n if (this._writableState.ended)\n return;\n process.nextTick(onEndNT, this);\n }\n function onEndNT(self2) {\n self2.end();\n }\n Object.defineProperty(Duplex.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return;\n }\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n }\n});\n\n// node_modules/safe-buffer/index.js\nvar require_safe_buffer = __commonJS({\n "node_modules/safe-buffer/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var buffer = require_buffer();\n var Buffer13 = buffer.Buffer;\n function copyProps(src, dst) {\n for (var key2 in src) {\n dst[key2] = src[key2];\n }\n }\n if (Buffer13.from && Buffer13.alloc && Buffer13.allocUnsafe && Buffer13.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer13(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer13.prototype);\n copyProps(Buffer13, SafeBuffer);\n SafeBuffer.from = function(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n throw new TypeError("Argument must not be a number");\n }\n return Buffer13(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function(size, fill, encoding) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n var buf2 = Buffer13(size);\n if (fill !== void 0) {\n if (typeof encoding === "string") {\n buf2.fill(fill, encoding);\n } else {\n buf2.fill(fill);\n }\n } else {\n buf2.fill(0);\n }\n return buf2;\n };\n SafeBuffer.allocUnsafe = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return Buffer13(size);\n };\n SafeBuffer.allocUnsafeSlow = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return buffer.SlowBuffer(size);\n };\n }\n});\n\n// node_modules/string_decoder/lib/string_decoder.js\nvar require_string_decoder = __commonJS({\n "node_modules/string_decoder/lib/string_decoder.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var Buffer13 = require_safe_buffer().Buffer;\n var isEncoding = Buffer13.isEncoding || function(encoding) {\n encoding = "" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n case "raw":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc)\n return "utf8";\n var retried;\n while (true) {\n switch (enc) {\n case "utf8":\n case "utf-8":\n return "utf8";\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return "utf16le";\n case "latin1":\n case "binary":\n return "latin1";\n case "base64":\n case "ascii":\n case "hex":\n return enc;\n default:\n if (retried)\n return;\n enc = ("" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== "string" && (Buffer13.isEncoding === isEncoding || !isEncoding(enc)))\n throw new Error("Unknown encoding: " + enc);\n return nenc || enc;\n }\n exports.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case "utf16le":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case "utf8":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case "base64":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer13.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function(buf2) {\n if (buf2.length === 0)\n return "";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf2);\n if (r === void 0)\n return "";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf2.length)\n return r ? r + this.text(buf2, i) : this.text(buf2, i);\n return r || "";\n };\n StringDecoder.prototype.end = utf8End;\n StringDecoder.prototype.text = utf8Text;\n StringDecoder.prototype.fillLast = function(buf2) {\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf2.length);\n this.lastNeed -= buf2.length;\n };\n function utf8CheckByte(byte) {\n if (byte <= 127)\n return 0;\n else if (byte >> 5 === 6)\n return 2;\n else if (byte >> 4 === 14)\n return 3;\n else if (byte >> 3 === 30)\n return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n function utf8CheckIncomplete(self2, buf2, i) {\n var j = buf2.length - 1;\n if (j < i)\n return 0;\n var nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2)\n nb = 0;\n else\n self2.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n function utf8CheckExtraBytes(self2, buf2, p) {\n if ((buf2[0] & 192) !== 128) {\n self2.lastNeed = 0;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 1 && buf2.length > 1) {\n if ((buf2[1] & 192) !== 128) {\n self2.lastNeed = 1;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 2 && buf2.length > 2) {\n if ((buf2[2] & 192) !== 128) {\n self2.lastNeed = 2;\n return "\\uFFFD";\n }\n }\n }\n }\n function utf8FillLast(buf2) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf2, p);\n if (r !== void 0)\n return r;\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, p, 0, buf2.length);\n this.lastNeed -= buf2.length;\n }\n function utf8Text(buf2, i) {\n var total = utf8CheckIncomplete(this, buf2, i);\n if (!this.lastNeed)\n return buf2.toString("utf8", i);\n this.lastTotal = total;\n var end = buf2.length - (total - this.lastNeed);\n buf2.copy(this.lastChar, 0, end);\n return buf2.toString("utf8", i, end);\n }\n function utf8End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + "\\uFFFD";\n return r;\n }\n function utf16Text(buf2, i) {\n if ((buf2.length - i) % 2 === 0) {\n var r = buf2.toString("utf16le", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf2[buf2.length - 1];\n return buf2.toString("utf16le", i, buf2.length - 1);\n }\n function utf16End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString("utf16le", 0, end);\n }\n return r;\n }\n function base64Text(buf2, i) {\n var n = (buf2.length - i) % 3;\n if (n === 0)\n return buf2.toString("base64", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf2[buf2.length - 1];\n } else {\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n }\n return buf2.toString("base64", i, buf2.length - n);\n }\n function base64End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed);\n return r;\n }\n function simpleWrite(buf2) {\n return buf2.toString(this.encoding);\n }\n function simpleEnd(buf2) {\n return buf2 && buf2.length ? this.write(buf2) : "";\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/end-of-stream.js\nvar require_end_of_stream = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop2() {\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === "function")\n return eos(stream, null, opts);\n if (!opts)\n opts = {};\n callback = once(callback || noop2);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable2 = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish2() {\n if (!stream.writable)\n onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish2() {\n writable2 = false;\n writableEnded = true;\n if (!readable)\n callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend2() {\n readable = false;\n readableEnded = true;\n if (!writable2)\n callback.call(stream);\n };\n var onerror = function onerror2(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose2() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable2 && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest2() {\n stream.req.on("finish", onfinish);\n };\n if (isRequest(stream)) {\n stream.on("complete", onfinish);\n stream.on("abort", onclose);\n if (stream.req)\n onrequest();\n else\n stream.on("request", onrequest);\n } else if (writable2 && !stream._writableState) {\n stream.on("end", onlegacyfinish);\n stream.on("close", onlegacyfinish);\n }\n stream.on("end", onend);\n stream.on("finish", onfinish);\n if (opts.error !== false)\n stream.on("error", onerror);\n stream.on("close", onclose);\n return function() {\n stream.removeListener("complete", onfinish);\n stream.removeListener("abort", onclose);\n stream.removeListener("request", onrequest);\n if (stream.req)\n stream.req.removeListener("finish", onfinish);\n stream.removeListener("end", onlegacyfinish);\n stream.removeListener("close", onlegacyfinish);\n stream.removeListener("finish", onfinish);\n stream.removeListener("end", onend);\n stream.removeListener("error", onerror);\n stream.removeListener("close", onclose);\n };\n }\n module.exports = eos;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/async_iterator.js\nvar require_async_iterator = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var _Object$setPrototypeO;\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n var finished = require_end_of_stream();\n var kLastResolve = Symbol("lastResolve");\n var kLastReject = Symbol("lastReject");\n var kError = Symbol("error");\n var kEnded = Symbol("ended");\n var kLastPromise = Symbol("lastPromise");\n var kHandlePromise = Symbol("handlePromise");\n var kStream = Symbol("stream");\n function createIterResult(value, done) {\n return {\n value,\n done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n process.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function(resolve, reject) {\n lastPromise.then(function() {\n if (iter[kEnded]) {\n resolve(createIterResult(void 0, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function() {\n });\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(void 0, true));\n }\n if (this[kStream].destroyed) {\n return new Promise(function(resolve, reject) {\n process.nextTick(function() {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(void 0, true));\n }\n });\n });\n }\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {\n return this;\n }), _defineProperty(_Object$setPrototypeO, "return", function _return() {\n var _this2 = this;\n return new Promise(function(resolve, reject) {\n _this2[kStream].destroy(null, function(err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(void 0, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function(err) {\n if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {\n var reject = iterator[kLastReject];\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(void 0, true));\n }\n iterator[kEnded] = true;\n });\n stream.on("readable", onReadable.bind(null, iterator));\n return iterator;\n };\n module.exports = createReadableStreamAsyncIterator;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/from-browser.js\nvar require_from_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/from-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = function() {\n throw new Error("Readable.from is not available in the browser");\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_readable.js\nvar require_stream_readable = __commonJS({\n "node_modules/readable-stream/lib/_stream_readable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Readable;\n var Duplex;\n Readable.ReadableState = ReadableState;\n var EE = require_events().EventEmitter;\n var EElistenerCount = function EElistenerCount2(emitter, type) {\n return emitter.listeners(type).length;\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var debugUtil = require_util();\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog("stream");\n } else {\n debug = function debug2() {\n };\n }\n var BufferList = require_buffer_list();\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n require_inherits_browser()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = ["error", "close", "destroy", "pause", "resume"];\n function prependListener(emitter, event, fn) {\n if (typeof emitter.prependListener === "function")\n return emitter.prependListener(event, fn);\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.readableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex);\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n this.sync = true;\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.destroyed = false;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.awaitDrain = 0;\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || require_stream_duplex();\n if (!(this instanceof Readable))\n return new Readable(options);\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n this.readable = true;\n if (options) {\n if (typeof options.read === "function")\n this._read = options.read;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n if (!this._readableState) {\n return;\n }\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n Readable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === "string") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer13.from(chunk, encoding);\n encoding = "";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n Readable.prototype.unshift = function(chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug("readableAddChunk", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck)\n er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer13.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted)\n errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else\n addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0)\n addChunk(stream, state, chunk, false);\n else\n maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit("data", chunk);\n } else {\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront)\n state.buffer.unshift(chunk);\n else\n state.buffer.push(chunk);\n if (state.needReadable)\n emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function() {\n return this._readableState.flowing === false;\n };\n Readable.prototype.setEncoding = function(enc) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n this._readableState.encoding = this._readableState.decoder.encoding;\n var p = this._readableState.buffer.head;\n var content = "";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== "")\n this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended)\n return 0;\n if (state.objectMode)\n return 1;\n if (n !== n) {\n if (state.flowing && state.length)\n return state.buffer.head.data.length;\n else\n return state.length;\n }\n if (n > state.highWaterMark)\n state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length)\n return n;\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n Readable.prototype.read = function(n) {\n debug("read", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0)\n state.emittedReadable = false;\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug("read: emitReadable", state.length, state.ended);\n if (state.length === 0 && state.ended)\n endReadable(this);\n else\n emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n if (n === 0 && state.ended) {\n if (state.length === 0)\n endReadable(this);\n return null;\n }\n var doRead = state.needReadable;\n debug("need readable", doRead);\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug("length less than watermark", doRead);\n }\n if (state.ended || state.reading) {\n doRead = false;\n debug("reading or ended", doRead);\n } else if (doRead) {\n debug("do read");\n state.reading = true;\n state.sync = true;\n if (state.length === 0)\n state.needReadable = true;\n this._read(state.highWaterMark);\n state.sync = false;\n if (!state.reading)\n n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0)\n ret = fromList(n, state);\n else\n ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n if (!state.ended)\n state.needReadable = true;\n if (nOrig !== n && state.ended)\n endReadable(this);\n }\n if (ret !== null)\n this.emit("data", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug("onEofChunk");\n if (state.ended)\n return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n emitReadable(stream);\n } else {\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n function emitReadable(stream) {\n var state = stream._readableState;\n debug("emitReadable", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug("emitReadable", state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug("emitReadable_", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit("readable");\n state.emittedReadable = false;\n }\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug("maybeReadMore read 0");\n stream.read(0);\n if (len === state.length)\n break;\n }\n state.readingMore = false;\n }\n Readable.prototype._read = function(n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()"));\n };\n Readable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted)\n process.nextTick(endFn);\n else\n src.once("end", endFn);\n dest.on("unpipe", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug("onunpipe");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug("onend");\n dest.end();\n }\n var ondrain = pipeOnDrain(src);\n dest.on("drain", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug("cleanup");\n dest.removeListener("close", onclose);\n dest.removeListener("finish", onfinish);\n dest.removeListener("drain", ondrain);\n dest.removeListener("error", onerror);\n dest.removeListener("unpipe", onunpipe);\n src.removeListener("end", onend);\n src.removeListener("end", unpipe);\n src.removeListener("data", ondata);\n cleanedUp = true;\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain))\n ondrain();\n }\n src.on("data", ondata);\n function ondata(chunk) {\n debug("ondata");\n var ret = dest.write(chunk);\n debug("dest.write", ret);\n if (ret === false) {\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug("false write response, pause", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n function onerror(er) {\n debug("onerror", er);\n unpipe();\n dest.removeListener("error", onerror);\n if (EElistenerCount(dest, "error") === 0)\n errorOrDestroy(dest, er);\n }\n prependListener(dest, "error", onerror);\n function onclose() {\n dest.removeListener("finish", onfinish);\n unpipe();\n }\n dest.once("close", onclose);\n function onfinish() {\n debug("onfinish");\n dest.removeListener("close", onclose);\n unpipe();\n }\n dest.once("finish", onfinish);\n function unpipe() {\n debug("unpipe");\n src.unpipe(dest);\n }\n dest.emit("pipe", src);\n if (!state.flowing) {\n debug("pipe resume");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug("pipeOnDrain", state.awaitDrain);\n if (state.awaitDrain)\n state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, "data")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n if (state.pipesCount === 0)\n return this;\n if (state.pipesCount === 1) {\n if (dest && dest !== state.pipes)\n return this;\n if (!dest)\n dest = state.pipes;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest)\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n }\n if (!dest) {\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit("unpipe", this, {\n hasUnpiped: false\n });\n }\n return this;\n }\n var index = indexOf(state.pipes, dest);\n if (index === -1)\n return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1)\n state.pipes = state.pipes[0];\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n };\n Readable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === "data") {\n state.readableListening = this.listenerCount("readable") > 0;\n if (state.flowing !== false)\n this.resume();\n } else if (ev === "readable") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug("on readable", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function(ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === "readable") {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function(ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === "readable" || ev === void 0) {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self2) {\n var state = self2._readableState;\n state.readableListening = self2.listenerCount("readable") > 0;\n if (state.resumeScheduled && !state.paused) {\n state.flowing = true;\n } else if (self2.listenerCount("data") > 0) {\n self2.resume();\n }\n }\n function nReadingNextTick(self2) {\n debug("readable nexttick read 0");\n self2.read(0);\n }\n Readable.prototype.resume = function() {\n var state = this._readableState;\n if (!state.flowing) {\n debug("resume");\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug("resume", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit("resume");\n flow(stream);\n if (state.flowing && !state.reading)\n stream.read(0);\n }\n Readable.prototype.pause = function() {\n debug("call pause flowing=%j", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug("pause");\n this._readableState.flowing = false;\n this.emit("pause");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug("flow", state.flowing);\n while (state.flowing && stream.read() !== null) {\n ;\n }\n }\n Readable.prototype.wrap = function(stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on("end", function() {\n debug("wrapped end");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length)\n _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on("data", function(chunk) {\n debug("wrapped data");\n if (state.decoder)\n chunk = state.decoder.write(chunk);\n if (state.objectMode && (chunk === null || chunk === void 0))\n return;\n else if (!state.objectMode && (!chunk || !chunk.length))\n return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n for (var i in stream) {\n if (this[i] === void 0 && typeof stream[i] === "function") {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n this._read = function(n2) {\n debug("wrapped _read", n2);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === "function") {\n Readable.prototype[Symbol.asyncIterator] = function() {\n if (createReadableStreamAsyncIterator === void 0) {\n createReadableStreamAsyncIterator = require_async_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, "readableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, "readableBuffer", {\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, "readableFlowing", {\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, "readableLength", {\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n function fromList(n, state) {\n if (state.length === 0)\n return null;\n var ret;\n if (state.objectMode)\n ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n if (state.decoder)\n ret = state.buffer.join("");\n else if (state.buffer.length === 1)\n ret = state.buffer.first();\n else\n ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug("endReadable", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug("endReadableNT", state.endEmitted, state.length);\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit("end");\n if (state.autoDestroy) {\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === "function") {\n Readable.from = function(iterable, opts) {\n if (from === void 0) {\n from = require_from_browser();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x)\n return i;\n }\n return -1;\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_transform.js\nvar require_stream_transform = __commonJS({\n "node_modules/readable-stream/lib/_stream_transform.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Transform;\n var _require$codes = require_errors_browser().codes;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;\n var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = require_stream_duplex();\n require_inherits_browser()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit("error", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform))\n return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n this._readableState.needReadable = true;\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === "function")\n this._transform = options.transform;\n if (typeof options.flush === "function")\n this._flush = options.flush;\n }\n this.on("prefinish", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === "function" && !this._readableState.destroyed) {\n this._flush(function(er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n Transform.prototype._transform = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"));\n };\n Transform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark)\n this._read(rs.highWaterMark);\n }\n };\n Transform.prototype._read = function(n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function(err, cb) {\n Duplex.prototype._destroy.call(this, err, function(err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er)\n return stream.emit("error", er);\n if (data != null)\n stream.push(data);\n if (stream._writableState.length)\n throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming)\n throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_passthrough.js\nvar require_stream_passthrough = __commonJS({\n "node_modules/readable-stream/lib/_stream_passthrough.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = PassThrough;\n var Transform = require_stream_transform();\n require_inherits_browser()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough))\n return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n };\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/pipeline.js\nvar require_pipeline = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var eos;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = require_errors_browser().codes;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop2(err) {\n if (err)\n throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on("close", function() {\n closed = true;\n });\n if (eos === void 0)\n eos = require_end_of_stream();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function(err) {\n if (err)\n return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function(err) {\n if (closed)\n return;\n if (destroyed)\n return;\n destroyed = true;\n if (isRequest(stream))\n return stream.abort();\n if (typeof stream.destroy === "function")\n return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED("pipe"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length)\n return noop2;\n if (typeof streams[streams.length - 1] !== "function")\n return noop2;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0]))\n streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS("streams");\n }\n var error;\n var destroys = streams.map(function(stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function(err) {\n if (!error)\n error = err;\n if (err)\n destroys.forEach(call);\n if (reading)\n return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n module.exports = pipeline;\n }\n});\n\n// node_modules/readable-stream/readable-browser.js\nvar require_readable_browser = __commonJS({\n "node_modules/readable-stream/readable-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports = module.exports = require_stream_readable();\n exports.Stream = exports;\n exports.Readable = exports;\n exports.Writable = require_stream_writable();\n exports.Duplex = require_stream_duplex();\n exports.Transform = require_stream_transform();\n exports.PassThrough = require_stream_passthrough();\n exports.finished = require_end_of_stream();\n exports.pipeline = require_pipeline();\n }\n});\n\n// node_modules/readable-web-to-node-stream/lib/index.js\nvar require_lib = __commonJS({\n "node_modules/readable-web-to-node-stream/lib/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n Object.defineProperty(exports, "__esModule", { value: true });\n exports.ReadableWebToNodeStream = void 0;\n var readable_stream_1 = require_readable_browser();\n var ReadableWebToNodeStream2 = class extends readable_stream_1.Readable {\n constructor(stream) {\n super();\n this.bytesRead = 0;\n this.released = false;\n this.reader = stream.getReader();\n }\n async _read() {\n if (this.released) {\n this.push(null);\n return;\n }\n this.pendingRead = this.reader.read();\n const data = await this.pendingRead;\n delete this.pendingRead;\n if (data.done || this.released) {\n this.push(null);\n } else {\n this.bytesRead += data.value.length;\n this.push(data.value);\n }\n }\n async waitForReadToComplete() {\n if (this.pendingRead) {\n await this.pendingRead;\n }\n }\n async close() {\n await this.syncAndRelease();\n }\n async syncAndRelease() {\n this.released = true;\n await this.waitForReadToComplete();\n await this.reader.releaseLock();\n }\n };\n exports.ReadableWebToNodeStream = ReadableWebToNodeStream2;\n }\n});\n\n// node_modules/base-x/src/index.js\nvar require_src = __commonJS({\n "node_modules/base-x/src/index.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function base(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError("Alphabet too long");\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + " is ambiguous");\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode2(source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError("Expected Uint8Array");\n }\n if (source.length === 0) {\n return "";\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i2 = 0;\n for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== "string") {\n throw new TypeError("Expected String");\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i2 = 0;\n for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n psz++;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j2 = zeroes;\n while (it4 !== size) {\n vch[j2++] = b256[it4++];\n }\n return vch;\n }\n function decode3(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error("Non-base" + BASE + " character");\n }\n return {\n encode: encode2,\n decodeUnsafe,\n decode: decode3\n };\n }\n module.exports = base;\n }\n});\n\n// node_modules/bs58/index.js\nvar require_bs58 = __commonJS({\n "node_modules/bs58/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var basex = require_src();\n var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";\n module.exports = basex(ALPHABET);\n }\n});\n\n// node_modules/jpeg-js/lib/encoder.js\nvar require_encoder = __commonJS({\n "node_modules/jpeg-js/lib/encoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var btoa = btoa || function(buf2) {\n return Buffer2.from(buf2).toString("base64");\n };\n function JPEGEncoder(quality) {\n var self2 = this;\n var fround = Math.round;\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT2;\n var UVDC_HT2;\n var YAC_HT2;\n var UVAC_HT2;\n var bitcode2 = new Array(65535);\n var category2 = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n var std_dc_luminance_nrcodes2 = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\n var std_dc_luminance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes2 = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\n var std_ac_luminance_values2 = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n var std_dc_chrominance_nrcodes2 = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\n var std_dc_chrominance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes2 = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\n var std_ac_chrominance_values2 = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n if (t < 1) {\n t = 1;\n } else if (t > 255) {\n t = 255;\n }\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n if (u < 1) {\n u = 1;\n } else if (u > 255) {\n u = 255;\n }\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n fdtbl_UV[k] = 1 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n k++;\n }\n }\n }\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n function initHuffmanTbl() {\n YDC_HT2 = computeHuffmanTbl(std_dc_luminance_nrcodes2, std_dc_luminance_values2);\n UVDC_HT2 = computeHuffmanTbl(std_dc_chrominance_nrcodes2, std_dc_chrominance_values2);\n YAC_HT2 = computeHuffmanTbl(std_ac_luminance_nrcodes2, std_ac_luminance_values2);\n UVAC_HT2 = computeHuffmanTbl(std_ac_chrominance_nrcodes2, std_ac_chrominance_values2);\n }\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n for (var nr = nrlower; nr < nrupper; nr++) {\n category2[32767 + nr] = cat;\n bitcode2[32767 + nr] = [];\n bitcode2[32767 + nr][1] = cat;\n bitcode2[32767 + nr][0] = nr;\n }\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category2[32767 + nrneg] = cat;\n bitcode2[32767 + nrneg] = [];\n bitcode2[32767 + nrneg][1] = cat;\n bitcode2[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[i + 256 >> 0] = 38470 * i;\n RGB_YUV_TABLE[i + 512 >> 0] = 7471 * i + 32768;\n RGB_YUV_TABLE[i + 768 >> 0] = -11059 * i;\n RGB_YUV_TABLE[i + 1024 >> 0] = -21709 * i;\n RGB_YUV_TABLE[i + 1280 >> 0] = 32768 * i + 8421375;\n RGB_YUV_TABLE[i + 1536 >> 0] = -27439 * i;\n RGB_YUV_TABLE[i + 1792 >> 0] = -5329 * i;\n }\n }\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & 1 << posval) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 255) {\n writeByte(255);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n function writeByte(value) {\n byteout.push(value);\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n var tmp10 = tmp0 + tmp3;\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n data[dataOff] = tmp10 + tmp11;\n data[dataOff + 4] = tmp10 - tmp11;\n var z1 = (tmp12 + tmp13) * 0.707106781;\n data[dataOff + 2] = tmp13 + z1;\n data[dataOff + 6] = tmp13 - z1;\n tmp10 = tmp4 + tmp5;\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n var z5 = (tmp10 - tmp12) * 0.382683433;\n var z2 = 0.5411961 * tmp10 + z5;\n var z4 = 1.306562965 * tmp12 + z5;\n var z3 = tmp11 * 0.707106781;\n var z11 = tmp7 + z3;\n var z13 = tmp7 - z3;\n data[dataOff + 5] = z13 + z2;\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n dataOff += 8;\n }\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n var tmp10p2 = tmp0p2 + tmp3p2;\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n data[dataOff] = tmp10p2 + tmp11p2;\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781;\n data[dataOff + 16] = tmp13p2 + z1p2;\n data[dataOff + 48] = tmp13p2 - z1p2;\n tmp10p2 = tmp4p2 + tmp5p2;\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433;\n var z2p2 = 0.5411961 * tmp10p2 + z5p2;\n var z4p2 = 1.306562965 * tmp12p2 + z5p2;\n var z3p2 = tmp11p2 * 0.707106781;\n var z11p2 = tmp7p2 + z3p2;\n var z13p2 = tmp7p2 - z3p2;\n data[dataOff + 40] = z13p2 + z2p2;\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n dataOff++;\n }\n var fDCTQuant2;\n for (i = 0; i < I64; ++i) {\n fDCTQuant2 = data[i] * fdtbl[i];\n outputfDCTQuant[i] = fDCTQuant2 > 0 ? fDCTQuant2 + 0.5 | 0 : fDCTQuant2 - 0.5 | 0;\n }\n return outputfDCTQuant;\n }\n function writeAPP0() {\n writeWord(65504);\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n }\n function writeAPP1(exifBuffer) {\n if (!exifBuffer)\n return;\n writeWord(65505);\n if (exifBuffer[0] === 69 && exifBuffer[1] === 120 && exifBuffer[2] === 105 && exifBuffer[3] === 102) {\n writeWord(exifBuffer.length + 2);\n } else {\n writeWord(exifBuffer.length + 5 + 2);\n writeByte(69);\n writeByte(120);\n writeByte(105);\n writeByte(102);\n writeByte(0);\n }\n for (var i = 0; i < exifBuffer.length; i++) {\n writeByte(exifBuffer[i]);\n }\n }\n function writeSOF0(width, height) {\n writeWord(65472);\n writeWord(17);\n writeByte(8);\n writeWord(height);\n writeWord(width);\n writeByte(3);\n writeByte(1);\n writeByte(17);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(1);\n writeByte(3);\n writeByte(17);\n writeByte(1);\n }\n function writeDQT() {\n writeWord(65499);\n writeWord(132);\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n function writeDHT() {\n writeWord(65476);\n writeWord(418);\n writeByte(0);\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes2[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values2[j]);\n }\n writeByte(16);\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes2[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values2[l]);\n }\n writeByte(1);\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes2[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values2[n]);\n }\n writeByte(17);\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes2[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values2[p]);\n }\n }\n function writeCOM(comments) {\n if (typeof comments === "undefined" || comments.constructor !== Array)\n return;\n comments.forEach((e) => {\n if (typeof e !== "string")\n return;\n writeWord(65534);\n var l = e.length;\n writeWord(l + 2);\n var i;\n for (i = 0; i < l; i++)\n writeByte(e.charCodeAt(i));\n });\n }\n function writeSOS() {\n writeWord(65498);\n writeWord(12);\n writeByte(3);\n writeByte(1);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(3);\n writeByte(17);\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0];\n var M16zeroes = HTAC[240];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n if (Diff == 0) {\n writeBits(HTDC[0]);\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category2[pos]]);\n writeBits(bitcode2[pos]);\n }\n var end0pos = 63;\n for (; end0pos > 0 && DU[end0pos] == 0; end0pos--) {\n }\n ;\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n for (; DU[i] == 0 && i <= end0pos; ++i) {\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category2[pos]]);\n writeBits(bitcode2[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n clt[i] = sfcc(i);\n }\n }\n this.encode = function(image, quality2) {\n var time_start = new Date().getTime();\n if (quality2)\n setQuality(quality2);\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n writeWord(65496);\n writeAPP0();\n writeCOM(image.comments);\n writeAPP1(image.exifBuffer);\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n bytenew = 0;\n bytepos = 7;\n this.encode.displayName = "_encode_";\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n var quadWidth = width * 4;\n var tripleWidth = width * 3;\n var x, y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n p = start;\n col = -1;\n row = 0;\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3;\n col = (pos & 7) * 4;\n p = start + row * quadWidth + col;\n if (y + row >= height) {\n p -= quadWidth * (y + 1 + row - height);\n }\n if (x + col >= quadWidth) {\n p -= x + col - quadWidth + 4;\n }\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n YDU[pos] = (RGB_YUV_TABLE[r] + RGB_YUV_TABLE[g + 256 >> 0] + RGB_YUV_TABLE[b + 512 >> 0] >> 16) - 128;\n UDU[pos] = (RGB_YUV_TABLE[r + 768 >> 0] + RGB_YUV_TABLE[g + 1024 >> 0] + RGB_YUV_TABLE[b + 1280 >> 0] >> 16) - 128;\n VDU[pos] = (RGB_YUV_TABLE[r + 1280 >> 0] + RGB_YUV_TABLE[g + 1536 >> 0] + RGB_YUV_TABLE[b + 1792 >> 0] >> 16) - 128;\n }\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT2, YAC_HT2);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT2, UVAC_HT2);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT2, UVAC_HT2);\n x += 32;\n }\n y += 8;\n }\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << bytepos + 1) - 1;\n writeBits(fillbits);\n }\n writeWord(65497);\n if (typeof module === "undefined")\n return new Uint8Array(byteout);\n return Buffer2.from(byteout);\n var jpegDataUri = "data:image/jpeg;base64," + btoa(byteout.join(""));\n byteout = [];\n var duration = new Date().getTime() - time_start;\n return jpegDataUri;\n };\n function setQuality(quality2) {\n if (quality2 <= 0) {\n quality2 = 1;\n }\n if (quality2 > 100) {\n quality2 = 100;\n }\n if (currentQuality == quality2)\n return;\n var sf = 0;\n if (quality2 < 50) {\n sf = Math.floor(5e3 / quality2);\n } else {\n sf = Math.floor(200 - quality2 * 2);\n }\n initQuantTables(sf);\n currentQuality = quality2;\n }\n function init3() {\n var time_start = new Date().getTime();\n if (!quality)\n quality = 50;\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n setQuality(quality);\n var duration = new Date().getTime() - time_start;\n }\n init3();\n }\n if (typeof module !== "undefined") {\n module.exports = encode2;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].encode = encode2;\n }\n function encode2(imgData, qu) {\n if (typeof qu === "undefined")\n qu = 50;\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(imgData, qu);\n return {\n data,\n width: imgData.width,\n height: imgData.height\n };\n }\n }\n});\n\n// node_modules/jpeg-js/lib/decoder.js\nvar require_decoder = __commonJS({\n "node_modules/jpeg-js/lib/decoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var JpegImage = function jpegImage() {\n "use strict";\n var dctZigZag = new Int32Array([\n 0,\n 1,\n 8,\n 16,\n 9,\n 2,\n 3,\n 10,\n 17,\n 24,\n 32,\n 25,\n 18,\n 11,\n 4,\n 5,\n 12,\n 19,\n 26,\n 33,\n 40,\n 48,\n 41,\n 34,\n 27,\n 20,\n 13,\n 6,\n 7,\n 14,\n 21,\n 28,\n 35,\n 42,\n 49,\n 56,\n 57,\n 50,\n 43,\n 36,\n 29,\n 22,\n 15,\n 23,\n 30,\n 37,\n 44,\n 51,\n 58,\n 59,\n 52,\n 45,\n 38,\n 31,\n 39,\n 46,\n 53,\n 60,\n 61,\n 54,\n 47,\n 55,\n 62,\n 63\n ]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n function constructor() {\n }\n function buildHuffmanTable2(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, opts) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH, maxV = frame.maxV;\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 255) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new Error("unexpected marker: " + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree, bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === "number")\n return node;\n if (typeof node !== "object")\n throw new Error("invalid huffman sequence");\n }\n return null;\n }\n function receive(length) {\n var n2 = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null)\n return;\n n2 = n2 << 1 | bit;\n length--;\n }\n return n2;\n }\n function receiveAndExtend(length) {\n var n2 = receive(length);\n if (n2 >= 1 << length - 1)\n return n2;\n return n2 + (-1 << length) + 1;\n }\n function decodeBaseline(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n zz[0] = component2.pred += diff;\n var k2 = 1;\n while (k2 < 64) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15)\n break;\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s);\n k2++;\n }\n }\n function decodeDCFirst(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n zz[0] = component2.pred += diff;\n }\n function decodeDCSuccessive(component2, zz) {\n zz[0] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component2, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k2 = spectralStart, e = spectralEnd;\n while (k2 <= e) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k2++;\n }\n }\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component2, zz) {\n var k2 = spectralStart, e = spectralEnd, r = 0;\n while (k2 <= e) {\n var z = dctZigZag[k2];\n var direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0:\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1)\n throw new Error("invalid ACn encoding");\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n r--;\n if (r === 0)\n successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n break;\n }\n k2++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0)\n successiveACState = 0;\n }\n }\n function decodeMcu(component2, decode4, mcu2, row, col) {\n var mcuRow = mcu2 / mcusPerLine | 0;\n var mcuCol = mcu2 % mcusPerLine;\n var blockRow = mcuRow * component2.v + row;\n var blockCol = mcuCol * component2.h + col;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component2, decode4, mcu2) {\n var blockRow = mcu2 / component2.blocksPerLine | 0;\n var blockCol = mcu2 % component2.blocksPerLine;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0, marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval)\n resetInterval = mcuExpected;\n var h, v;\n while (mcu < mcuExpected) {\n for (i = 0; i < componentsLength; i++)\n components[i].pred = 0;\n eobrun = 0;\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n if (mcu === mcuExpected)\n break;\n }\n }\n if (mcu === mcuExpected) {\n do {\n if (data[offset] === 255) {\n if (data[offset + 1] !== 0) {\n break;\n }\n }\n offset += 1;\n } while (offset < data.length - 2);\n }\n bitsCount = 0;\n marker = data[offset] << 8 | data[offset + 1];\n if (marker < 65280) {\n throw new Error("marker was not found");\n }\n if (marker >= 65488 && marker <= 65495) {\n offset += 2;\n } else\n break;\n }\n return offset - startOffset;\n }\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var R = new Int32Array(64), r = new Uint8Array(64);\n function quantizeAndInverse(zz, dataOut, dataIn) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var p = dataIn;\n var i2;\n for (i2 = 0; i2 < 64; i2++)\n p[i2] = zz[i2] * qt[i2];\n for (i2 = 0; i2 < 8; ++i2) {\n var row = 8 * i2;\n if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 && p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 && p[7 + row] == 0) {\n t = dctSqrt2 * p[0 + row] + 512 >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 + row] + 128 >> 8;\n v1 = dctSqrt2 * p[4 + row] + 128 >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8;\n v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n for (i2 = 0; i2 < 8; ++i2) {\n var col = i2;\n if (p[1 * 8 + col] == 0 && p[2 * 8 + col] == 0 && p[3 * 8 + col] == 0 && p[4 * 8 + col] == 0 && p[5 * 8 + col] == 0 && p[6 * 8 + col] == 0 && p[7 * 8 + col] == 0) {\n t = dctSqrt2 * dataIn[i2 + 0] + 8192 >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12;\n v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n for (i2 = 0; i2 < 64; ++i2) {\n var sample2 = 128 + (p[i2] + 8 >> 4);\n dataOut[i2] = sample2 < 0 ? 0 : sample2 > 255 ? 255 : sample2;\n }\n }\n requestMemoryAllocation(samplesPerLine * blocksPerColumn * 8);\n var i, j;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (i = 0; i < 8; i++)\n lines.push(new Uint8Array(samplesPerLine));\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n var offset = 0, sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var line = lines[scanLine + j];\n for (i = 0; i < 8; i++)\n line[sample + i] = r[offset++];\n }\n }\n }\n return lines;\n }\n function clampTo8bit(a) {\n return a < 0 ? 0 : a > 255 ? 255 : a;\n }\n constructor.prototype = {\n load: function load(path) {\n var xhr = new XMLHttpRequest();\n xhr.open("GET", path, true);\n xhr.responseType = "arraybuffer";\n xhr.onload = function() {\n var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n this.parse(data);\n if (this.onload)\n this.onload();\n }.bind(this);\n xhr.send(null);\n },\n parse: function parse(data) {\n var maxResolutionInPixels = this.opts.maxResolutionInMP * 1e3 * 1e3;\n var offset = 0, length = data.length;\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length2 = readUint16();\n var array = data.subarray(offset, offset + length2 - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame2) {\n var maxH2 = 1, maxV2 = 1;\n var component2, componentId2;\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n if (maxH2 < component2.h)\n maxH2 = component2.h;\n if (maxV2 < component2.v)\n maxV2 = component2.v;\n }\n }\n var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / maxH2);\n var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / maxV2);\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component2.h / maxH2);\n var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component2.v / maxV2);\n var blocksPerLineForMcu = mcusPerLine * component2.h;\n var blocksPerColumnForMcu = mcusPerColumn * component2.v;\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\n var blocks = [];\n requestMemoryAllocation(blocksToAllocate * 256);\n for (var i2 = 0; i2 < blocksPerColumnForMcu; i2++) {\n var row = [];\n for (var j2 = 0; j2 < blocksPerLineForMcu; j2++)\n row.push(new Int32Array(64));\n blocks.push(row);\n }\n component2.blocksPerLine = blocksPerLine;\n component2.blocksPerColumn = blocksPerColumn;\n component2.blocks = blocks;\n }\n }\n frame2.maxH = maxH2;\n frame2.maxV = maxV2;\n frame2.mcusPerLine = mcusPerLine;\n frame2.mcusPerColumn = mcusPerColumn;\n }\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [], frames = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n var malformedDataOffset = -1;\n this.comments = [];\n if (fileMarker != 65496) {\n throw new Error("SOI not found");\n }\n fileMarker = readUint16();\n while (fileMarker != 65497) {\n var i, j, l;\n switch (fileMarker) {\n case 65280:\n break;\n case 65504:\n case 65505:\n case 65506:\n case 65507:\n case 65508:\n case 65509:\n case 65510:\n case 65511:\n case 65512:\n case 65513:\n case 65514:\n case 65515:\n case 65516:\n case 65517:\n case 65518:\n case 65519:\n case 65534:\n var appData = readDataBlock();\n if (fileMarker === 65534) {\n var comment = String.fromCharCode.apply(null, appData);\n this.comments.push(comment);\n }\n if (fileMarker === 65504) {\n if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n if (fileMarker === 65505) {\n if (appData[0] === 69 && appData[1] === 120 && appData[2] === 105 && appData[3] === 102 && appData[4] === 0) {\n this.exifBuffer = appData.subarray(5, appData.length);\n }\n }\n if (fileMarker === 65518) {\n if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) {\n adobe = {\n version: appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n case 65499:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n requestMemoryAllocation(64 * 4);\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else\n throw new Error("DQT: invalid table spec");\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 65472:\n case 65473:\n case 65474:\n readUint16();\n frame = {};\n frame.extended = fileMarker === 65473;\n frame.progressive = fileMarker === 65474;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = {};\n frame.componentsOrder = [];\n var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\n if (pixelsInFrame > maxResolutionInPixels) {\n var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\n throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\n }\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n var qId = data[offset + 2];\n if (h <= 0 || v <= 0) {\n throw new Error("Invalid sampling factor, expected values above 0");\n }\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId\n };\n offset += 3;\n }\n prepareComponents(frame);\n frames.push(frame);\n break;\n case 65476:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n requestMemoryAllocation(16 + codeLengthSum);\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable2(codeLengths, huffmanValues);\n }\n break;\n case 65501:\n readUint16();\n resetInterval = readUint16();\n break;\n case 65500:\n readUint16();\n readUint16();\n break;\n case 65498:\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n component = frame.components[data[offset++]];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, this.opts);\n offset += processed;\n break;\n case 65535:\n if (data[offset] !== 255) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n break;\n } else if (fileMarker === 224 || fileMarker == 225) {\n if (malformedDataOffset !== -1) {\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\n }\n malformedDataOffset = offset - 1;\n const nextOffset = readUint16();\n if (data[offset + nextOffset - 2] === 255) {\n offset += nextOffset - 2;\n break;\n }\n }\n throw new Error("unknown JPEG marker " + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n if (frames.length != 1)\n throw new Error("only single frame JPEGs supported");\n for (var i = 0; i < frames.length; i++) {\n var cp = frames[i].components;\n for (var j in cp) {\n cp[j].quantizationTable = quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (var i = 0; i < frame.componentsOrder.length; i++) {\n var component = frame.components[frame.componentsOrder[i]];\n this.components.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV\n });\n }\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width, scaleY = this.height / height;\n var component1, component2, component3, component4;\n var component1Line, component2Line, component3Line, component4Line;\n var x, y;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var dataLength = width * height * this.components.length;\n requestMemoryAllocation(dataLength);\n var data = new Uint8Array(dataLength);\n switch (this.components.length) {\n case 1:\n component1 = this.components[0];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 2:\n component1 = this.components[0];\n component2 = this.components[1];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n Y = component2Line[0 | x * component2.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 3:\n colorTransform = true;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n R = component1Line[0 | x * component1.scaleX * scaleX];\n G = component2Line[0 | x * component2.scaleX * scaleX];\n B = component3Line[0 | x * component3.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n R = clampTo8bit(Y + 1.402 * (Cr - 128));\n G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n B = clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = R;\n data[offset++] = G;\n data[offset++] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe)\n throw new Error("Unsupported color mode (4 components)");\n colorTransform = false;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n component4 = this.components[3];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n component4Line = component4.lines[0 | y * component4.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n C = component1Line[0 | x * component1.scaleX * scaleX];\n M = component2Line[0 | x * component2.scaleX * scaleX];\n Ye = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = 255 - C;\n data[offset++] = 255 - M;\n data[offset++] = 255 - Ye;\n data[offset++] = 255 - K;\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n return data;\n },\n copyToImageData: function copyToImageData(imageData, formatAsRGBA) {\n var width = imageData.width, height = imageData.height;\n var imageDataArray = imageData.data;\n var data = this.getData(width, height);\n var i = 0, j = 0, x, y;\n var Y, K, C, M, R, G, B;\n switch (this.components.length) {\n case 1:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n Y = data[i++];\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 3:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n R = data[i++];\n G = data[i++];\n B = data[i++];\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 4:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n C = data[i++];\n M = data[i++];\n Y = data[i++];\n K = data[i++];\n R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n }\n };\n var totalBytesAllocated = 0;\n var maxMemoryUsageBytes = 0;\n function requestMemoryAllocation(increaseAmount = 0) {\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\n }\n totalBytesAllocated = totalMemoryImpactBytes;\n }\n constructor.resetMaxMemoryUsage = function(maxMemoryUsageBytes_) {\n totalBytesAllocated = 0;\n maxMemoryUsageBytes = maxMemoryUsageBytes_;\n };\n constructor.getBytesAllocated = function() {\n return totalBytesAllocated;\n };\n constructor.requestMemoryAllocation = requestMemoryAllocation;\n return constructor;\n }();\n if (typeof module !== "undefined") {\n module.exports = decode3;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].decode = decode3;\n }\n function decode3(jpegData, userOpts = {}) {\n var defaultOpts = {\n colorTransform: void 0,\n useTArray: false,\n formatAsRGBA: true,\n tolerantDecoding: true,\n maxResolutionInMP: 100,\n maxMemoryUsageInMB: 512\n };\n var opts = { ...defaultOpts, ...userOpts };\n var arr = new Uint8Array(jpegData);\n var decoder = new JpegImage();\n decoder.opts = opts;\n JpegImage.resetMaxMemoryUsage(opts.maxMemoryUsageInMB * 1024 * 1024);\n decoder.parse(arr);\n var channels = opts.formatAsRGBA ? 4 : 3;\n var bytesNeeded = decoder.width * decoder.height * channels;\n try {\n JpegImage.requestMemoryAllocation(bytesNeeded);\n var image = {\n width: decoder.width,\n height: decoder.height,\n exifBuffer: decoder.exifBuffer,\n data: opts.useTArray ? new Uint8Array(bytesNeeded) : Buffer2.alloc(bytesNeeded)\n };\n if (decoder.comments.length > 0) {\n image["comments"] = decoder.comments;\n }\n } catch (err) {\n if (err instanceof RangeError) {\n throw new Error("Could not allocate enough memory for the image. Required: " + bytesNeeded);\n }\n if (err instanceof ReferenceError) {\n if (err.message === "Buffer is not defined") {\n throw new Error("Buffer is not globally defined in this environment. Consider setting useTArray to true");\n }\n }\n throw err;\n }\n decoder.copyToImageData(image, opts.formatAsRGBA);\n return image;\n }\n }\n});\n\n// node_modules/jpeg-js/index.js\nvar require_jpeg_js = __commonJS({\n "node_modules/jpeg-js/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var encode2 = require_encoder();\n var decode3 = require_decoder();\n module.exports = {\n encode: encode2,\n decode: decode3\n };\n }\n});\n\n// src/processor.worker.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/platform.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/requests.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar xmlhttprequest;\nif (false)\n xmlhttprequest = typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : typeof GM != "undefined" ? GM.xmlHttpRequest : window["GM_xmlhttpRequest"];\nvar GM_fetch = (...[url, opt, lisn]) => {\n function blobTo(to, blob) {\n if (to == "arrayBuffer" && blob.arrayBuffer) {\n const ret = blob.arrayBuffer();\n if (ret)\n return ret;\n }\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = function(event) {\n if (!event)\n return;\n if (to == "base64")\n resolve(event.target.result);\n else\n resolve(event.target.result);\n };\n if (to == "arrayBuffer")\n fileReader.readAsArrayBuffer(blob);\n else if (to == "base64")\n fileReader.readAsDataURL(blob);\n else if (to == "text")\n fileReader.readAsText(blob, "utf-8");\n else\n reject(new Error("unknown to"));\n });\n }\n return new Promise((resolve, reject) => {\n const gmopt = {\n url: url.toString(),\n data: opt?.body,\n responseType: "blob",\n headers: opt?.headers,\n method: opt?.method || "GET",\n ...lisn ? {\n onprogress: (prog) => {\n if (prog.loaded != prog.total && prog.total != 0)\n lisn.dispatchEvent(new CustomEvent("progress", { detail: [prog.loaded, prog.total] }));\n }\n } : {},\n onload: (resp) => {\n if (resp.status / 100 >= 4) {\n reject(new Error("Server Error: " + resp.status));\n return;\n }\n const blob = resp.response;\n const ref = resp;\n ref.blob = () => Promise.resolve(blob);\n ref.arrayBuffer = () => blobTo("arrayBuffer", blob);\n ref.text = () => blobTo("text", blob);\n ref.json = async () => JSON.parse(await blobTo("text", blob));\n resolve(resp);\n },\n ontimeout: () => reject(new Error("fetch timeout")),\n onerror: (...args) => {\n reject(new Error("fetch error"));\n },\n onabort: () => reject(new Error("fetch abort"))\n };\n xmlhttprequest(gmopt);\n });\n};\n\n// src/platform.ts\nvar lqueue = {};\nvar localSet = (key2, value) => localStorage.setItem("__pee__" + key2, JSON.stringify(value));\nvar port1;\nconsole.log("worker", false);\nvar msgBuff = [];\nvar setupPort = (port) => {\n port1 = port;\n port1.onmessage = (ev) => {\n lqueue[ev.data.id](ev.data);\n };\n if (true) {\n for (const msg of msgBuff) {\n port.postMessage(msg[0], { transfer: msg[1] });\n }\n msgBuff = [];\n }\n};\nif (true) {\n port1 = {\n onmessage(ev) {\n lqueue[ev.data.id](ev.data);\n },\n postMessage(msg, tr) {\n msgBuff.push([msg, tr]);\n }\n };\n}\nvar gid = 0;\nvar sendCmd = (cmd, tr, overwrite = false, todelete = false) => {\n const prom = new Promise((_) => {\n const id = gid++;\n if (overwrite)\n cmd.id = id;\n lqueue[id] = (e) => {\n _(e.res);\n if (todelete)\n delete lqueue[id];\n };\n port1.postMessage({ id, ...cmd }, tr || []);\n });\n return prom;\n};\nvar bridge = (name, f) => {\n if (false)\n return f;\n if (false)\n return f;\n return (...args) => {\n return sendCmd({ name, args });\n };\n};\nvar Bridged = (ctor) => {\n const keys = Object.getOwnPropertyNames(ctor).filter((k) => typeof ctor[k] == "function");\n for (const k of keys)\n ctor[k] = bridge(k, ctor[k]);\n};\nif (false) {\n popupport = chrome.runtime.connect({ name: "popup" });\n popupport.onMessage.addListener((msg) => {\n if (msg.id in pendingcmds) {\n pendingcmds[msg.id](msg);\n delete pendingcmds[msg.id];\n }\n });\n}\nvar Platform = class {\n static async openInTab(src, opts) {\n if (false) {\n return GM.openInTab(src, opts);\n }\n const obj = false ? chrome : browser;\n let i;\n if (opts.insert)\n i = (await obj.tabs.getCurrent()).index + 1;\n return obj.tabs.create({ active: opts.active, url: src, index: i });\n }\n static async getValue(key2, def) {\n const isinls = "__pee__" + key2 in localStorage;\n let ret;\n if (isinls) {\n let it = localStorage.getItem("__pee__" + key2);\n if (it === "undefined")\n it = null;\n ret = { ...def, ...JSON.parse(it || "{}") };\n } else\n ret = def;\n if (true) {\n if (isinls) {\n delete localStorage["__pee__" + key2];\n await chrome.storage.local.set({\n [key2]: JSON.stringify(ret)\n });\n } else {\n const d = await chrome.storage.local.get([key2]);\n if (typeof d[key2] == "string")\n return { ...def, ...await JSON.parse("" + d[key2] || "{}") };\n }\n }\n return ret;\n }\n static setValue(name, val) {\n localSet(name, val);\n }\n};\nPlatform.cmdid = 0;\nPlatform = __decorateClass([\n Bridged\n], Platform);\nvar corsFetch = async (input, init3, lsn) => {\n const id = gid++;\n let transfer = [];\n if (init3?.body) {\n if (false) {\n [init3.body, transfer] = await braveserialize(init3.body);\n }\n }\n const prom = new Promise((_, rej) => {\n let gcontroller;\n let buffer = [];\n let finished = false;\n const rs = new ReadableStream({\n start(controller) {\n gcontroller = controller;\n buffer.forEach((b) => gcontroller?.enqueue(b));\n buffer = [];\n if (finished) {\n gcontroller.close();\n }\n }\n });\n let s;\n s = 0;\n const cmdbuff = [];\n lqueue[id] = async (e) => {\n if (e.progress) {\n if (lsn)\n lsn.dispatchEvent(new CustomEvent("progress", { detail: e.progress }));\n }\n if (e.pushData) {\n if (e.s > s) {\n let idx = 0;\n while (idx < cmdbuff.length) {\n if (cmdbuff[idx].s > e.s)\n break;\n idx++;\n }\n cmdbuff.splice(idx, 0, e);\n return;\n }\n const processCmd = (e2) => {\n if (e2.pushData.data) {\n const data = new Uint8Array(e2.pushData.data);\n if (gcontroller)\n gcontroller.enqueue(data);\n else\n buffer.push(data);\n } else {\n if (gcontroller)\n gcontroller?.close();\n else\n finished = true;\n }\n };\n await processCmd(e);\n s++;\n while (cmdbuff[0]?.s == s) {\n await processCmd(cmdbuff.shift());\n s++;\n }\n }\n if (e.setRes) {\n const arrayBuffer = async () => {\n const r = rs.getReader();\n await sendCmd({ name: "fullyRead", fid: id });\n const abs = [];\n let res;\n do {\n res = await r.read();\n if (res.done)\n break;\n abs.push(res.value);\n } while (!res.done);\n const sum = abs.reduce((a, b) => a + b.byteLength, 0);\n const ret = new Uint8Array(sum);\n abs.reduce((ptr, arr) => {\n ret.set(arr, ptr);\n return ptr + arr.byteLength;\n }, 0);\n r.releaseLock();\n return ret;\n };\n const blob = async () => new Blob([await arrayBuffer()]);\n const text = async () => new TextDecoder().decode(await arrayBuffer());\n const json = async () => JSON.parse(await text());\n if (e.ok)\n _({\n body: rs,\n ok: e.ok,\n headers: e.headers,\n redirected: e.redirected,\n type: e.type,\n url: e.url,\n status: e.status,\n bodyUsed: e.bodyUsed,\n statusText: e.statusText,\n clone() {\n return this;\n },\n arrayBuffer,\n blob,\n text,\n json,\n async formData() {\n return new FormData();\n }\n });\n else {\n rej(new Error(`${e.url} - ${e.status}`));\n }\n }\n };\n port1.postMessage({\n id,\n name: "corsFetch",\n args: [input, init3]\n }, transfer);\n });\n return prom;\n};\nasync function getHeaders(s) {\n if (false)\n return headerStringToObject(await GM_head(s));\n const res = await ifetch(s, {\n method: "HEAD"\n });\n return res.headers;\n}\nasync function ifetch(...[url, opt, lisn]) {\n if (true)\n return corsFetch(url.toString(), opt, lisn);\n return GM_fetch(url, opt, lisn);\n}\nasync function* streamRemote(url, chunkSize = 72 * 1024, fetchRestOnNonCanceled = true) {\n let size = Number.POSITIVE_INFINITY;\n let ptr = 0;\n let fetchSize = chunkSize;\n while (ptr != size) {\n let obj;\n const fres = await ifetch(url, { headers: { range: `bytes=${ptr}-${ptr + fetchSize - 1}` } });\n if (false) {\n obj = headerStringToObject(fres.responseHeaders);\n } else {\n obj = fres.headers;\n }\n if (!("content-length" in obj)) {\n console.warn("no content lenght???", url);\n break;\n }\n if ("content-range" in obj) {\n size = +obj["content-range"].split("/")[1];\n }\n const len = +obj["content-length"];\n ptr += len;\n if (fetchRestOnNonCanceled)\n fetchSize = size;\n const val = Buffer2.from(await fres.arrayBuffer());\n const e = yield val;\n if (e) {\n break;\n }\n }\n}\n\n// src/stores.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/store/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/internal/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === "function";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function");\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nvar resolved_promise = Promise.resolve();\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nvar SvelteElement;\nif (typeof HTMLElement === "function") {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: "open" });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n for (const key2 in this.$$.slotted) {\n this.appendChild(this.$$.slotted[key2]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n\n// node_modules/svelte/store/index.mjs\nvar subscriber_queue = [];\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe2(run2, invalidate = noop) {\n const subscriber = [run2, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run2(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe: subscribe2 };\n}\n\n// src/stores.ts\nvar localLoad = async (key2, def) => {\n const ret = await Platform.getValue(key2, def);\n return ret;\n};\nvar localSet2 = (key2, value) => {\n if (true) {\n return;\n }\n if (true)\n chrome.storage.local.set({ [key2]: JSON.stringify(value) });\n else\n localStorage.setItem("__pee__" + key2, JSON.stringify(value));\n};\nvar initial_settings = {\n loop: true,\n dh: false,\n pmeth: 5,\n xpv: false,\n xpi: false,\n hyd: false,\n notcata: false,\n ak: "",\n auto_embed: 0,\n auto_tags: "",\n te: false,\n eye: false,\n ca: false,\n pre: false,\n prev: false,\n sh: false,\n ep: false,\n tm: false,\n dvc: false,\n expte: false,\n mdist: -1,\n phash: false,\n hotlink: false,\n jpeg: false,\n vercheck: false,\n cache: void 0,\n fhost: 0,\n maxe: 5,\n conc: 8,\n ho: false,\n blacklist: [],\n rsources: []\n};\nvar settings = writable();\nvar appState = writable({\n isCatalog: false,\n is4chanX: false,\n akValid: false,\n herror: "",\n client: null,\n processing: 0,\n processed: 0,\n foundPosts: []\n});\nsettings.subscribe((newVal) => {\n if (newVal)\n localSet2("settingsv2", newVal);\n});\n\n// src/pngv3.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer3 = __toESM(require_buffer(), 1);\n\n// src/png.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_crc_32 = __toESM(require_crc32(), 1);\nvar import_buffer = __toESM(require_buffer(), 1);\nvar PNGDecoder = class {\n constructor(reader, strict = true) {\n this.reader = reader;\n this.strict = strict;\n this.req = 8;\n this.ptr = 8;\n this.stopped = false;\n this.repr = import_buffer.Buffer.from([]);\n }\n async catchup() {\n while (this.repr.byteLength < this.req) {\n const chunk = await this.reader.read();\n if (chunk.done) {\n if (this.strict)\n throw new Error(`Unexpected EOF, got ${this.repr.byteLength}, required ${this.req}, ${chunk.value}`);\n this.stopped = true;\n return;\n }\n this.repr = import_buffer.Buffer.concat([this.repr, chunk.value]);\n }\n }\n async *chunks() {\n while (true) {\n this.req += 8;\n await this.catchup();\n if (this.stopped)\n break;\n const length = this.repr.readUInt32BE(this.ptr);\n const name = this.repr.slice(this.ptr + 4, this.ptr + 8).toString();\n this.ptr += 4;\n this.req += length + 4;\n await this.catchup();\n yield [\n name,\n this.repr.slice(this.ptr, this.ptr + length + 4),\n this.ptr + length > this.repr.length ? -1 : this.repr.readUInt32BE(this.ptr + length + 4),\n this.ptr\n ];\n if (this.stopped)\n break;\n this.ptr += length + 8;\n if (name == "IEND")\n break;\n }\n }\n async dtor() {\n }\n};\nvar PNGEncoder = class {\n constructor(bytes) {\n this.writer = bytes.getWriter();\n this.writer.write(import_buffer.Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]));\n }\n async insertchunk(chunk) {\n let b = import_buffer.Buffer.alloc(4);\n const buff = chunk[1];\n b.writeInt32BE(buff.length - 4, 0);\n await this.writer.write(b);\n await this.writer.write(buff);\n b = import_buffer.Buffer.alloc(4);\n b.writeInt32BE((0, import_crc_32.buf)(buff), 0);\n await this.writer.write(b);\n }\n async dtor() {\n this.writer.releaseLock();\n }\n};\n\n// src/utils.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer2 = __toESM(require_buffer(), 1);\n\n// src/assets/hasembed.png\nvar hasembed_default = __toBinary("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");\n\n// src/filehosts.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction parseForm(data) {\n const form = new FormData();\n Object.entries(data).filter(([key2, value]) => value !== null).map(([key2, value]) => form.append(key2, value));\n return form;\n}\nvar lolisafe = (domain, serving = domain) => ({\n domain,\n serving,\n async uploadFile(f) {\n const resp = await ifetch(`https://${domain}/api/upload`, {\n headers: {\n accept: "application/json"\n },\n "body": parseForm({\n reqtype: "fileupload",\n "files[]": new File([f], "f.pee")\n }),\n "method": "POST"\n });\n const res = await resp.json();\n return res.files.map((e) => e.url)[0];\n }\n});\nvar catbox = (domain, serving) => ({\n domain,\n serving,\n async uploadFile(inj) {\n const resp = await ifetch(`https://${domain}/user/api.php`, {\n method: "POST",\n body: parseForm({\n reqtype: "fileupload",\n fileToUpload: inj\n })\n });\n return resp.text();\n }\n});\nvar filehosts = [\n catbox("catbox.moe", "files.catbox.moe"),\n catbox("pomf.moe", "a.pomf.cat"),\n lolisafe("take-me-to.space"),\n lolisafe("zz.ht", "z.zz.fo")\n];\n\n// node_modules/file-type/browser.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer4 = __toESM(require_buffer(), 1);\nvar import_readable_web_to_node_stream = __toESM(require_lib(), 1);\n\n// node_modules/file-type/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer3 = __toESM(require_buffer(), 1);\n\n// node_modules/token-types/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar ieee754 = __toESM(require_ieee754(), 1);\nvar import_node_buffer = __toESM(require_buffer(), 1);\nvar AnsiStringType = class {\n constructor(len) {\n this.len = len;\n }\n static decode(buffer, offset, until) {\n let str = "";\n for (let i = offset; i < until; ++i) {\n str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));\n }\n return str;\n }\n static inRange(a, min, max) {\n return min <= a && a <= max;\n }\n static codePointToString(cp) {\n if (cp <= 65535) {\n return String.fromCharCode(cp);\n } else {\n cp -= 65536;\n return String.fromCharCode((cp >> 10) + 55296, (cp & 1023) + 56320);\n }\n }\n static singleByteDecoder(bite) {\n if (AnsiStringType.inRange(bite, 0, 127)) {\n return bite;\n }\n const codePoint = AnsiStringType.windows1252[bite - 128];\n if (codePoint === null) {\n throw Error("invaliding encoding");\n }\n return codePoint;\n }\n get(buffer, offset = 0) {\n return AnsiStringType.decode(buffer, offset, offset + this.len);\n }\n};\nAnsiStringType.windows1252 = [\n 8364,\n 129,\n 8218,\n 402,\n 8222,\n 8230,\n 8224,\n 8225,\n 710,\n 8240,\n 352,\n 8249,\n 338,\n 141,\n 381,\n 143,\n 144,\n 8216,\n 8217,\n 8220,\n 8221,\n 8226,\n 8211,\n 8212,\n 732,\n 8482,\n 353,\n 8250,\n 339,\n 157,\n 382,\n 376,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 174,\n 175,\n 176,\n 177,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 187,\n 188,\n 189,\n 190,\n 191,\n 192,\n 193,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 219,\n 220,\n 221,\n 222,\n 223,\n 224,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 235,\n 236,\n 237,\n 238,\n 239,\n 240,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250,\n 251,\n 252,\n 253,\n 254,\n 255\n];\n\n// node_modules/strtok3/lib/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/ReadStreamTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/EndOfFileStream.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/Deferred.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\nvar maxStreamReadSize = 1 * 1024 * 1024;\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\nvar import_node_buffer2 = __toESM(require_buffer(), 1);\n\n// node_modules/strtok3/lib/BufferTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/util.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/supported.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar extensions = [\n "jpg",\n "png",\n "apng",\n "gif",\n "webp",\n "flif",\n "xcf",\n "cr2",\n "cr3",\n "orf",\n "arw",\n "dng",\n "nef",\n "rw2",\n "raf",\n "tif",\n "bmp",\n "icns",\n "jxr",\n "psd",\n "indd",\n "zip",\n "tar",\n "rar",\n "gz",\n "bz2",\n "7z",\n "dmg",\n "mp4",\n "mid",\n "mkv",\n "webm",\n "mov",\n "avi",\n "mpg",\n "mp2",\n "mp3",\n "m4a",\n "oga",\n "ogg",\n "ogv",\n "opus",\n "flac",\n "wav",\n "spx",\n "amr",\n "pdf",\n "epub",\n "elf",\n "exe",\n "swf",\n "rtf",\n "wasm",\n "woff",\n "woff2",\n "eot",\n "ttf",\n "otf",\n "ico",\n "flv",\n "ps",\n "xz",\n "sqlite",\n "nes",\n "crx",\n "xpi",\n "cab",\n "deb",\n "ar",\n "rpm",\n "Z",\n "lz",\n "cfb",\n "mxf",\n "mts",\n "blend",\n "bpg",\n "docx",\n "pptx",\n "xlsx",\n "3gp",\n "3g2",\n "jp2",\n "jpm",\n "jpx",\n "mj2",\n "aif",\n "qcp",\n "odt",\n "ods",\n "odp",\n "xml",\n "mobi",\n "heic",\n "cur",\n "ktx",\n "ape",\n "wv",\n "dcm",\n "ics",\n "glb",\n "pcap",\n "dsf",\n "lnk",\n "alias",\n "voc",\n "ac3",\n "m4v",\n "m4p",\n "m4b",\n "f4v",\n "f4p",\n "f4b",\n "f4a",\n "mie",\n "asf",\n "ogm",\n "ogx",\n "mpc",\n "arrow",\n "shp",\n "aac",\n "mp1",\n "it",\n "s3m",\n "xm",\n "ai",\n "skp",\n "avif",\n "eps",\n "lzh",\n "pgp",\n "asar",\n "stl",\n "chm",\n "3mf",\n "zst",\n "jxl",\n "vcf"\n];\nvar mimeTypes = [\n "image/jpeg",\n "image/png",\n "image/gif",\n "image/webp",\n "image/flif",\n "image/x-xcf",\n "image/x-canon-cr2",\n "image/x-canon-cr3",\n "image/tiff",\n "image/bmp",\n "image/vnd.ms-photo",\n "image/vnd.adobe.photoshop",\n "application/x-indesign",\n "application/epub+zip",\n "application/x-xpinstall",\n "application/vnd.oasis.opendocument.text",\n "application/vnd.oasis.opendocument.spreadsheet",\n "application/vnd.oasis.opendocument.presentation",\n "application/vnd.openxmlformats-officedocument.wordprocessingml.document",\n "application/vnd.openxmlformats-officedocument.presentationml.presentation",\n "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",\n "application/zip",\n "application/x-tar",\n "application/x-rar-compressed",\n "application/gzip",\n "application/x-bzip2",\n "application/x-7z-compressed",\n "application/x-apple-diskimage",\n "application/x-apache-arrow",\n "video/mp4",\n "audio/midi",\n "video/x-matroska",\n "video/webm",\n "video/quicktime",\n "video/vnd.avi",\n "audio/vnd.wave",\n "audio/qcelp",\n "audio/x-ms-asf",\n "video/x-ms-asf",\n "application/vnd.ms-asf",\n "video/mpeg",\n "video/3gpp",\n "audio/mpeg",\n "audio/mp4",\n "audio/opus",\n "video/ogg",\n "audio/ogg",\n "application/ogg",\n "audio/x-flac",\n "audio/ape",\n "audio/wavpack",\n "audio/amr",\n "application/pdf",\n "application/x-elf",\n "application/x-msdownload",\n "application/x-shockwave-flash",\n "application/rtf",\n "application/wasm",\n "font/woff",\n "font/woff2",\n "application/vnd.ms-fontobject",\n "font/ttf",\n "font/otf",\n "image/x-icon",\n "video/x-flv",\n "application/postscript",\n "application/eps",\n "application/x-xz",\n "application/x-sqlite3",\n "application/x-nintendo-nes-rom",\n "application/x-google-chrome-extension",\n "application/vnd.ms-cab-compressed",\n "application/x-deb",\n "application/x-unix-archive",\n "application/x-rpm",\n "application/x-compress",\n "application/x-lzip",\n "application/x-cfb",\n "application/x-mie",\n "application/mxf",\n "video/mp2t",\n "application/x-blender",\n "image/bpg",\n "image/jp2",\n "image/jpx",\n "image/jpm",\n "image/mj2",\n "audio/aiff",\n "application/xml",\n "application/x-mobipocket-ebook",\n "image/heif",\n "image/heif-sequence",\n "image/heic",\n "image/heic-sequence",\n "image/icns",\n "image/ktx",\n "application/dicom",\n "audio/x-musepack",\n "text/calendar",\n "text/vcard",\n "model/gltf-binary",\n "application/vnd.tcpdump.pcap",\n "audio/x-dsf",\n "application/x.ms.shortcut",\n "application/x.apple.alias",\n "audio/x-voc",\n "audio/vnd.dolby.dd-raw",\n "audio/x-m4a",\n "image/apng",\n "image/x-olympus-orf",\n "image/x-sony-arw",\n "image/x-adobe-dng",\n "image/x-nikon-nef",\n "image/x-panasonic-rw2",\n "image/x-fujifilm-raf",\n "video/x-m4v",\n "video/3gpp2",\n "application/x-esri-shape",\n "audio/aac",\n "audio/x-it",\n "audio/x-s3m",\n "audio/x-xm",\n "video/MP1S",\n "video/MP2P",\n "application/vnd.sketchup.skp",\n "image/avif",\n "application/x-lzh-compressed",\n "application/pgp-encrypted",\n "application/x-asar",\n "model/stl",\n "application/vnd.ms-htmlhelp",\n "model/3mf",\n "image/jxl",\n "application/zstd"\n];\n\n// node_modules/file-type/core.js\nvar supportedExtensions = new Set(extensions);\nvar supportedMimeTypes = new Set(mimeTypes);\n\n// src/utils.ts\nvar csettings;\nsettings.subscribe((b) => {\n csettings = b;\n});\nvar threadDataCache = writable();\nvar cthreadDataCache;\nthreadDataCache.subscribe((newval) => {\n cthreadDataCache = newval;\n});\nvar decodeCoom3Payload = async (buff) => {\n if (!csettings)\n throw new Error("Settings uninit");\n const allowed_domains = filehosts.map((e) => e.serving.replaceAll(".", "\\\\."));\n const pees = buff.toString().split(" ").slice(0, csettings.maxe).filter((e) => allowed_domains.some((v) => e.match(`https://(.*\\\\.)?${v}/`)));\n return (await Promise.all(pees.map(async (pee) => {\n try {\n const m = pee.match(/(?https?):\\/\\/(?.*?)(?\\/.*)/);\n if (!m)\n return;\n const { domain, file } = m.groups;\n const headers = await getHeaders(pee);\n const res = await ifetch(pee, {\n headers: { range: "bytes=0-32767", "user-agent": "" },\n mode: "cors",\n referrerPolicy: "no-referrer"\n });\n const size = +headers["content-length"] || 0;\n const header = import_buffer2.Buffer.from(await res.arrayBuffer());\n let hptr = 0;\n if (header.slice(0, 4).toString() == "PEE\\0")\n hptr += 4;\n else\n return;\n const flags = header[hptr];\n const hasFn = !!(flags & 1);\n const hasTags = !!(flags & 2);\n const hasThumbnail = !!(flags & 4);\n let [ptr, ptr2] = [hptr + 1, hptr + 1];\n let fn = "embedded";\n let tags = [];\n let thumb = import_buffer2.Buffer.from(hasembed_default);\n if (hasFn) {\n while (header[ptr2] != 0)\n ptr2++;\n fn = header.slice(ptr, ptr2).toString();\n ptr = ++ptr2;\n }\n if (hasTags) {\n while (header[ptr2] != 0)\n ptr2++;\n tags = header.slice(ptr, ptr2).toString().split(/\\s+/);\n }\n let thumbsize = 0;\n if (hasThumbnail) {\n thumbsize = header.readInt32LE(ptr);\n ptr += 4;\n if (header.byteLength >= ptr + thumbsize)\n thumb = header.slice(ptr, ptr + thumbsize);\n else\n thumb = import_buffer2.Buffer.from(await (await ifetch(pee, { headers: { "user-agent": "", range: `bytes=${ptr}-${ptr + thumbsize}` } })).arrayBuffer());\n ptr += thumbsize;\n }\n const unzip = { url: pee, headers: { "user-agent": "", range: `bytes=${ptr}-${size - 1}` } };\n let data;\n data = unzip;\n if (size < 3072) {\n thumb = data = import_buffer2.Buffer.from(await (await ifetch(unzip.url, { headers: unzip.headers })).arrayBuffer());\n }\n return {\n filename: fn,\n data,\n thumbnail: thumb\n };\n } catch (e) {\n console.warn(e);\n }\n }))).filter((e) => e).map((e) => e);\n};\n\n// src/pngv3.ts\nvar bs58 = __toESM(require_bs58(), 1);\n\n// src/bitstream.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar revbyte = (n, len = 8) => {\n let acc = 0;\n let n2 = n;\n let len2 = len;\n while (len2) {\n acc = acc * 2 + (n2 & 1);\n n2 >>= 1;\n len2--;\n }\n return acc;\n};\nvar BitstreamReader = class {\n constructor() {\n this.buffers = [];\n this.bufferedLength = 0;\n this._offsetIntoBuffer = 0;\n this._bufferIndex = 0;\n this._offset = 0;\n this.skippedLength = 0;\n }\n get bufferIndex() {\n return this._bufferIndex;\n }\n get offset() {\n return this._offset;\n }\n get available() {\n return this.bufferedLength - this.skippedLength;\n }\n getBit(offset) {\n const byte = this.buffers[0][offset >> 3];\n return +!!(byte & 1 << (offset & 7));\n }\n readSync(length) {\n let value = 0;\n if (this._offset >> 3 > this.buffers[0].byteLength) {\n throw "Out of data";\n }\n for (let i = length - 1; i >= 0; --i) {\n value = value * 2 + this.getBit(this._offset + i);\n }\n this._offset += length;\n this.bufferedLength -= length;\n return value;\n }\n addBuffer(buffer) {\n this.buffers.push(buffer);\n this.bufferedLength += buffer.length * 8;\n }\n};\nvar BitstreamWriter = class {\n constructor(stream, bufferSize = 1) {\n this.stream = stream;\n this.pendingBits = 0;\n this.bufferoffset = 0;\n this._offset = 0;\n bufferSize = 1;\n this.buffer = new Uint8Array(bufferSize);\n }\n get offset() {\n return this._offset;\n }\n get byteOffset() {\n return this.pendingBits;\n }\n end() {\n this.flush();\n }\n flush() {\n this.stream.write(new Uint8Array(this.buffer));\n this.bufferoffset = 0;\n this.buffer.fill(0);\n }\n setBit(b) {\n let byte = this.buffer[0];\n byte |= b << (this._offset & 7);\n this.buffer[0] = byte;\n this._offset += 1;\n if (++this.bufferoffset == this.buffer.length * 8) {\n this.flush();\n }\n }\n write(length, value) {\n while (length--) {\n this.setBit(value & 1);\n value >>= 1;\n }\n }\n};\n\n// src/dh-deflate.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar TINF_OK = 0;\nvar Tree = class {\n constructor() {\n this.table = new Uint16Array(16);\n this.trans = new Uint16Array(288);\n }\n};\nvar getPathTo = (tree, value) => {\n if (tree[0] === value)\n return "0";\n if (tree[1] === value)\n return "1";\n let p;\n if (typeof tree[0] != "number")\n p = getPathTo(tree[0], value);\n let b = "0";\n if (!p) {\n if (tree[1] && typeof tree[1] != "number")\n p = getPathTo(tree[1], value);\n b = "1";\n }\n if (p)\n return b + p;\n};\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n let p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\nvar Data = class {\n constructor(source, dests, to_hide, hidden) {\n this.source = source;\n this.dests = dests;\n this.to_hide = to_hide;\n this.hidden = hidden;\n this.pathMap = /* @__PURE__ */ new Map();\n this.dest = [];\n this.ltree = new Tree();\n this.dtree = new Tree();\n }\n computeReverse() {\n this.rltree = buildHuffmanTable(this.ltree.table, this.ltree.trans)[0];\n this.rdtree = buildHuffmanTable(this.dtree.table, this.dtree.trans)[0];\n this.adists = new Set(this.rdtree.flat(16));\n }\n};\nvar sltree = new Tree();\nvar sdtree = new Tree();\nvar rltree;\nvar rdtree;\nvar sadist;\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\nvar clcidx = new Uint8Array([\n 16,\n 17,\n 18,\n 0,\n 8,\n 7,\n 9,\n 6,\n 10,\n 5,\n 11,\n 4,\n 12,\n 3,\n 13,\n 2,\n 14,\n 1,\n 15\n]);\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\nfunction tinf_build_bits_base(bits, base, delta, first) {\n let i, sum;\n for (i = 0; i < delta; ++i)\n bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i)\n bits[i + delta] = i / delta | 0;\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\nfunction tinf_build_fixed_trees(lt, dt) {\n let i;\n for (i = 0; i < 7; ++i)\n lt.table[i] = 0;\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n for (i = 0; i < 24; ++i)\n lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i)\n lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i)\n lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i)\n lt.trans[24 + 144 + 8 + i] = 144 + i;\n for (i = 0; i < 5; ++i)\n dt.table[i] = 0;\n dt.table[5] = 32;\n for (i = 0; i < 32; ++i)\n dt.trans[i] = i;\n}\nvar offs = new Uint16Array(16);\nfunction tinf_build_tree(t, lengths2, off, num) {\n let i, sum;\n for (i = 0; i < 16; ++i)\n t.table[i] = 0;\n for (i = 0; i < num; ++i)\n t.table[lengths2[off + i]]++;\n t.table[0] = 0;\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n for (i = 0; i < num; ++i) {\n if (lengths2[off + i])\n t.trans[offs[lengths2[off + i]]++] = i;\n }\n}\nfunction tinf_getbit(d) {\n const v = d.source.readSync(1);\n return v;\n}\nvar loff = 0;\nvar loffs = [];\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n const v = d.source.readSync(num) + base;\n loff = v;\n loffs.push(v);\n if (loffs.length > 4) {\n loffs.shift();\n }\n return v;\n}\nfunction tinf_decode_symbol(d, t, copy = true, ext = {}) {\n let sum = 0, cur = 0, len = 0;\n let s = 0;\n do {\n const b = d.source.readSync(1);\n copy && d.hidden?.write(1, b);\n s = s << 1 | b;\n cur = 2 * cur + b;\n ++len;\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n ext.length = len;\n ext.sym = s;\n return t.trans[sum + cur];\n}\nfunction tinf_decode_trees(d, lt, dt, copy = true) {\n let i, num, length;\n const hlit = tinf_read_bits(d, 5, 257);\n copy && d.hidden?.write(5, hlit - 257);\n const hdist = tinf_read_bits(d, 5, 1);\n copy && d.hidden?.write(5, hdist - 1);\n const hclen = tinf_read_bits(d, 4, 4);\n copy && d.hidden?.write(4, hclen - 4);\n for (i = 0; i < 19; ++i)\n lengths[i] = 0;\n for (i = 0; i < hclen; ++i) {\n const clen = tinf_read_bits(d, 3, 0);\n copy && d.hidden?.write(3, clen);\n lengths[clcidx[i]] = clen;\n }\n tinf_build_tree(code_tree, lengths, 0, 19);\n for (num = 0; num < hlit + hdist; ) {\n const sym = tinf_decode_symbol(d, code_tree, copy);\n let prev;\n switch (sym) {\n case 16:\n prev = lengths[num - 1];\n length = tinf_read_bits(d, 2, 3);\n copy && d.hidden?.write(2, length - 3);\n for (; length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n length = tinf_read_bits(d, 3, 3);\n copy && d.hidden?.write(3, length - 3);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n length = tinf_read_bits(d, 7, 11);\n copy && d.hidden?.write(7, length - 11);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n lengths[num++] = sym;\n break;\n }\n }\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\nvar get_symbol = (value, bits_table, base_table) => {\n let i = 0;\n for (i = 0; i < base_table.length; ++i) {\n if (base_table[i] > value) {\n i--;\n return [i, bits_table[i], value - base_table[i]];\n }\n }\n i--;\n return [i, bits_table[i], value - base_table[i]];\n};\nvar encode_symbol = (sym, tree, pathMap) => {\n const code = getPathTo(tree, sym);\n const v = {\n length: code?.length,\n val: parseInt(code, 2)\n };\n return v;\n};\nvar capacity = 0;\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n let sym = tinf_decode_symbol(d, lt);\n if (sym === 256) {\n return TINF_OK;\n }\n if (sym < 256) {\n d.dest.push(sym);\n } else {\n sym -= 257;\n const length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n if (length_bits[sym])\n d.hidden?.write(length_bits[sym], length - length_base[sym]);\n const ext = { length: 0, sym: 0 };\n const dist = tinf_decode_symbol(d, dt, false, ext);\n let backoffset = tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n const offs2 = d.dest.length - backoffset;\n let match;\n const skip = !d.to_hide || d.to_hide && d.to_hide instanceof BitstreamReader && d.to_hide.available == 0;\n if (!skip && (match = Buffer2.from(d.dest.slice(offs2, offs2 + length))).length == length) {\n let begin = d.dest.length - 32768;\n if (begin < 0)\n begin = 0;\n let matches = [];\n let o = 0;\n const slic = Buffer2.from(d.dest.slice(begin + o, d.dest.length));\n while (begin + o < d.dest.length) {\n const r = slic.slice(o, d.dest.length).indexOf(match);\n if (r >= 0) {\n matches.push(r + begin + o);\n o += r;\n } else {\n break;\n }\n o++;\n }\n if (matches.length > 1) {\n matches = matches.map((e) => -(e - d.dest.length)).filter((e) => {\n const [dsym2] = get_symbol(e, dist_bits, dist_base);\n return d.adists.has(dsym2);\n });\n matches.reverse();\n const v = Math.floor(Math.log2(matches.length));\n capacity += v;\n if (d.to_hide instanceof BitstreamReader) {\n if (d.to_hide.available) {\n const s = d.to_hide.readSync(Math.min(d.to_hide.available, v));\n backoffset = matches[s];\n }\n } else {\n const idx = matches.indexOf(backoffset);\n d.to_hide.write(v, idx);\n }\n }\n }\n const [dsym, dlen, doff] = get_symbol(backoffset, dist_bits, dist_base);\n const encdist = encode_symbol(dsym, d.rdtree, d.pathMap);\n d.hidden?.write(encdist.length, revbyte(encdist.val, encdist.length));\n d.hidden?.write(dlen, doff);\n for (let i = offs2; i < offs2 + length; ++i) {\n d.dest.push(d.dest[i]);\n }\n }\n }\n}\nfunction tinf_inflate_uncompressed_block(d) {\n if (d.source.offset & 7)\n d.source.readSync(8 - d.source.offset & 7);\n if (d.hidden && d.hidden.offset & 7)\n d.hidden?.write(8 - d.hidden.offset & 7, 0);\n const length = d.source.readSync(16);\n d.hidden?.write(16, length);\n const invlength = d.source.readSync(16);\n d.hidden?.write(16, invlength);\n if (length !== (~invlength & 65535)) {\n return -4;\n }\n for (let i = length; i; --i) {\n const v = d.source.readSync(8);\n d.dest.push(v);\n d.hidden?.write(8, v);\n }\n return TINF_OK;\n}\nfunction tinf_uncompress(source, decompressed, to_hide, hidden, opt = 0) {\n const decomp = decompressed ? new BitstreamWriter({ write: decompressed }) : null;\n const hid = hidden && new BitstreamWriter({ write: hidden }, 4);\n const d = new Data(source, decomp, to_hide, hid);\n let res;\n let bfinal, btype;\n do {\n bfinal = tinf_getbit(d);\n d.hidden?.write(1, bfinal);\n btype = tinf_read_bits(d, 2, 0);\n d.hidden?.write(2, btype);\n switch (btype) {\n case 0:\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n d.rdtree = rdtree;\n d.rltree = rltree;\n d.adists = sadist;\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n tinf_decode_trees(d, d.ltree, d.dtree);\n d.computeReverse();\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = -2;\n }\n if (res !== TINF_OK)\n throw new Error("Data error " + res);\n } while (!bfinal);\n decomp?.end();\n hid?.end();\n}\ntinf_build_fixed_trees(sltree, sdtree);\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\nrltree = buildHuffmanTable(sltree.table, sltree.trans)[0];\nrdtree = buildHuffmanTable(sdtree.table, sdtree.trans)[0];\nsadist = new Set(rdtree.flat(16));\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\n// src/pngv3.ts\nvar csettings2;\nsettings.subscribe((b) => {\n csettings2 = b;\n});\nvar CUM3 = import_buffer3.Buffer.from("doo\\0m");\nvar CUM4 = import_buffer3.Buffer.from("voo\\0m");\nvar CUM5 = import_buffer3.Buffer.from("boo\\0");\nvar CUM6 = import_buffer3.Buffer.from("Creation Time\\0");\nvar CUM7 = import_buffer3.Buffer.from("Software\\0");\nvar BufferReadStream = (b) => {\n const ret = new ReadableStream({\n pull(cont) {\n cont.enqueue(b);\n cont.close();\n }\n });\n return ret;\n};\nvar password = import_buffer3.Buffer.from("NOA");\nvar xor = (a, p) => {\n let n = 0;\n for (let i = 0; i < a.byteLength; ++i) {\n a[i] ^= p[n];\n n++;\n n %= p.byteLength;\n }\n};\nvar prefs = {\n "files.catbox.moe": "c",\n "a.pomf.cat": "p",\n "take-me-to.space": "t",\n "z.zz.fo": "z"\n};\nvar rprefs = {\n "c": "files.catbox.moe",\n "p": "a.pomf.cat",\n "t": "take-me-to.space",\n "z": "z.zz.fo"\n};\nvar extractFromRawDeflate = (b) => {\n const src = new BitstreamReader();\n src.addBuffer(b);\n const chnks = [];\n const hidden = new BitstreamWriter({\n write(chunk) {\n for (const i of chunk) {\n if (i >= 32 && i <= 128)\n chnks.push(i);\n else\n throw "Finish";\n }\n }\n });\n try {\n tinf_uncompress(src, void 0, hidden, void 0);\n } catch (e) {\n if (e == "Finish")\n return import_buffer3.Buffer.from(chnks);\n }\n return false;\n};\nvar extract = async (png, doextract = true) => {\n const reader = BufferReadStream(png).getReader();\n const sneed = new PNGDecoder(reader, false);\n const ret = [];\n let w;\n if (!csettings2)\n throw new Error("Settings uninit");\n try {\n let complete = false;\n const idats = [];\n for await (const [name, chunk, crc, offset] of sneed.chunks()) {\n let buff;\n switch (name) {\n case "tEXt":\n buff = chunk;\n if (buff.slice(4, 4 + CUM3.length).equals(CUM3)) {\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(buff.slice(4 + CUM3.length));\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM4.length).equals(CUM4)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM4.length);\n xor(passed, password);\n const k = await decodeCoom3Payload(passed);\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM5.length).equals(CUM5)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM5.length);\n const decoded = import_buffer3.Buffer.from(passed.toString(), "base64").toString().split(" ").map((e) => {\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n }\n if (w = [CUM6, CUM7].find((e) => buff.slice(4, 4 + e.length).equals(e))) {\n const passed = buff.slice(4 + w.length);\n if (!passed.toString().match(/^[0-9a-zA-Z+/=]+$/g))\n continue;\n const decoders = [\n (b) => import_buffer3.Buffer.from(b.toString(), "base64").toString(),\n (b) => import_buffer3.Buffer.from(bs58.decode(passed.toString())).toString()\n ];\n for (const d of decoders) {\n try {\n const decoded = d(passed).split(" ").map((e) => {\n if (!(e[0] in rprefs))\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n } catch (e) {\n }\n }\n }\n break;\n case "IDAT":\n if (ret.length)\n return ret;\n buff = chunk;\n idats.push(buff.slice(4));\n break;\n case "IEND":\n complete = true;\n default:\n break;\n }\n }\n if (idats.length) {\n let decoded;\n if ((decoded = extractFromRawDeflate(import_buffer3.Buffer.concat(idats).slice(2))) === false)\n return false;\n const dec = decoded.toString().split(" ").map((e) => {\n if (!(e[0] in rprefs) || e.length < 5)\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (doextract)\n return decodeCoom3Payload(import_buffer3.Buffer.from(dec));\n return true;\n }\n } catch (e) {\n if (e != "Uhh")\n console.error(e);\n } finally {\n reader.releaseLock();\n }\n};\nvar buildChunk = (tag, data) => {\n const ret = import_buffer3.Buffer.alloc(data.byteLength + 4);\n ret.write(tag.slice(0, 4), 0);\n data.copy(ret, 4);\n return ret;\n};\nvar BufferWriteStream = () => {\n let b = import_buffer3.Buffer.from([]);\n const ret = new WritableStream({\n write(chunk) {\n b = import_buffer3.Buffer.concat([b, chunk]);\n console.log("finished appending");\n }\n });\n return [ret, () => b];\n};\nvar embedInRawDeflate = (b, h) => {\n const src = new BitstreamReader();\n const hid = new BitstreamReader();\n hid.addBuffer(h);\n src.addBuffer(b);\n const chnks = [];\n tinf_uncompress(src, void 0, hid, (c) => chnks.push(c));\n return import_buffer3.Buffer.concat(chnks);\n};\nvar inject_data = async (container, injb) => {\n injb = import_buffer3.Buffer.concat([injb, import_buffer3.Buffer.from([0])]);\n if (!csettings2)\n throw new Error("Settings uninit");\n if (csettings2.pmeth < 5) {\n let magic = false;\n const [writestream2, extract6] = BufferWriteStream();\n const encoder = new PNGEncoder(writestream2);\n const decoder = new PNGDecoder(container.stream().getReader());\n for await (const [name, chunk, crc, offset] of decoder.chunks()) {\n if (magic && name != "IDAT")\n break;\n if (!magic && name == "IDAT") {\n const passed = import_buffer3.Buffer.from(injb);\n switch (csettings2.pmeth) {\n case 0:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM3, passed])), 0, 0]);\n break;\n case 1:\n xor(passed, password);\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM4, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 2:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM5, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 3:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM6, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 4:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM7, import_buffer3.Buffer.from(bs58.encode(passed))])), 0, 0]);\n break;\n }\n magic = true;\n }\n await encoder.insertchunk([name, chunk, crc, offset]);\n }\n await encoder.insertchunk([\n "IEND",\n buildChunk("IEND", import_buffer3.Buffer.from([])),\n 0,\n 0\n ]);\n return extract6();\n }\n let pdec = new PNGDecoder(container.stream().getReader());\n const concat = [];\n for await (const chk of pdec.chunks())\n if (chk[0] == "IDAT")\n concat.push(chk[1].slice(4));\n const comp = import_buffer3.Buffer.concat(concat);\n const head = comp.slice(0, 2);\n const chksum = comp.slice(-4);\n const idatblk = embedInRawDeflate(comp.slice(2, -4), injb);\n const [writestream, extract5] = BufferWriteStream();\n const penc = new PNGEncoder(writestream);\n pdec = new PNGDecoder(container.stream().getReader());\n let ins = false;\n for await (const chk of pdec.chunks()) {\n if (chk[0] != "IDAT") {\n await penc.insertchunk(chk);\n } else {\n if (!ins) {\n await penc.insertchunk(["IDAT", import_buffer3.Buffer.concat([import_buffer3.Buffer.from("IDAT"), head, idatblk, chksum]), 0, 0]);\n ins = true;\n }\n }\n }\n await penc.dtor();\n console.log("Finished writing");\n return extract5();\n};\nvar inject = async (container, links) => {\n links = links.map((link) => {\n for (const h of filehosts) {\n if (link.includes(h.serving)) {\n const end = link.split("/").slice(-1)[0];\n return `${prefs[h.serving]}${end}`;\n }\n }\n return "";\n });\n const injb = import_buffer3.Buffer.from(links.join(" "));\n return inject_data(container, injb);\n};\nvar has_embed = async (png) => {\n const r = await extract(png, false);\n return !!r;\n};\nvar pngv3_default = {\n extract,\n has_embed,\n inject,\n match: (fn) => !!fn.match(/\\.png$/)\n};\n\n// src/jpg.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer4 = __toESM(require_buffer(), 1);\n\n// src/f5stego.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction* f5get() {\n let extrBit = 0;\n let k = 0;\n for (let i = 0; i < 4; ++i) {\n const b2 = yield;\n k |= b2 << i;\n }\n k = (k & 15) + 1;\n let toread = 8;\n let len = 0;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const b = yield;\n toread += 8;\n if (b)\n toread += 7;\n else\n len *= 2;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const rlen = revbyte(len, b ? 23 : 16);\n len = rlen;\n if (len > 256)\n throw new Error("Too big for Smash");\n len *= 8;\n const chunks = [];\n const bw = new BitstreamWriter({\n write(chunk) {\n chunks.push(chunk);\n }\n });\n while (len) {\n extrBit = yield;\n bw.write(1, extrBit);\n len--;\n }\n bw.end();\n return Buffer2.concat(chunks).slice(0, rlen);\n}\nvar bitcode = new Array(65535);\nvar category = new Array(65535);\nvar std_dc_luminance_nrcodes = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\nvar std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_luminance_nrcodes = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\nvar std_ac_luminance_values = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nvar std_dc_chrominance_nrcodes = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\nvar std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_chrominance_nrcodes = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\nvar std_ac_chrominance_values = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nfunction _initCategoryNumber() {\n let nrlower = 1;\n let nrupper = 2;\n for (let cat = 1; cat <= 15; cat++) {\n for (let nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n for (let nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n}\n_initCategoryNumber();\nfunction _computeHuffmanTbl(nrcodes, std_table) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = [];\n for (let k = 1; k <= 16; k++) {\n for (let j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n}\nvar YDC_HT = _computeHuffmanTbl(std_dc_luminance_nrcodes, std_dc_luminance_values);\nvar UVDC_HT = _computeHuffmanTbl(std_dc_chrominance_nrcodes, std_dc_chrominance_values);\nvar YAC_HT = _computeHuffmanTbl(std_ac_luminance_nrcodes, std_ac_luminance_values);\nvar UVAC_HT = _computeHuffmanTbl(std_ac_chrominance_nrcodes, std_ac_chrominance_values);\nvar __raw, _jfif, _APPn, _qts, _frame, _tail, __f5write, _f5write_fn;\nvar f5stego = class {\n constructor(key2, maxPixels = 4096 * 4096) {\n this.maxPixels = maxPixels;\n __privateAdd(this, __f5write);\n __privateAdd(this, __raw, void 0);\n __privateAdd(this, _jfif, void 0);\n __privateAdd(this, _APPn, void 0);\n __privateAdd(this, _qts, void 0);\n __privateAdd(this, _frame, null);\n __privateAdd(this, _tail, null);\n }\n embed(image, data, k) {\n this.parse(image);\n this.f5put(data, k);\n return this.pack();\n }\n extract(image) {\n try {\n this.gengen = f5get();\n this.gengen.next();\n this.parse(image, true);\n return this.f5get();\n } catch (e) {\n if (e instanceof Buffer2)\n return e;\n throw e;\n }\n }\n f5put(data, k) {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let t, i, comp = __privateGet(this, _frame).components[0];\n if (data.length > 8388607)\n throw "Data too big. Max 8388607 bytes allowed.";\n if (data.length < 32768) {\n t = new Uint8Array(2 + data.length);\n t[0] = data.length & 255;\n t[1] = data.length >>> 8;\n t.set(data, 2);\n } else {\n t = new Uint8Array(3 + data.length);\n t[0] = data.length & 255;\n t[1] = (data.length >>> 8 & 127) + 128;\n t[2] = data.length >>> 15;\n t.set(data, 3);\n }\n if (comp.componentId != 1) {\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n return __privateMethod(this, __f5write, _f5write_fn).call(this, comp.blocks, t, k);\n }\n f5get() {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let comp = __privateGet(this, _frame).components[0];\n if (comp.componentId != 1) {\n for (let i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n const coeff = new Int16Array(comp.blocks.length);\n coeff.set(comp.blocks);\n let pos = -1, extrBit = 0, cCount = coeff.length - 1;\n let n, k = 0;\n let out = new Uint8Array(coeff.length / 8 | 0), extrByte = 0, outPos = 0, bitsAvail = 0, code = 0, hash = 0;\n while (bitsAvail < 4) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n k |= extrBit << bitsAvail;\n bitsAvail++;\n }\n k = (k & 15) + 1;\n n = (1 << k) - 1;\n bitsAvail = 0;\n if (k == 1) {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n extrByte |= extrBit << bitsAvail;\n bitsAvail++;\n if (bitsAvail == 8) {\n out[outPos++] = extrByte;\n extrByte = 0;\n bitsAvail = 0;\n }\n }\n } else {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n hash ^= extrBit * ++code;\n if (code == n) {\n extrByte |= hash << bitsAvail;\n bitsAvail += k;\n code = 0;\n hash = 0;\n while (bitsAvail >= 8) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n }\n }\n }\n while (bitsAvail > 0) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n let s = 2, l = out[0];\n if (out[1] & 128) {\n s++;\n l += ((out[1] & 127) << 8) + (out[2] << 15);\n } else {\n l += out[1] << 8;\n }\n return out.subarray(s, s + l);\n }\n parse(data, tolerant = false) {\n let offset = 0;\n function _buildHuffmanTable(nrcodes, values) {\n let codevalue = 0, pos_in_table = 0, HT = new Uint16Array(65536);\n for (let k = 0; k < 16; k++) {\n for (let j2 = 0; j2 < nrcodes[k]; j2++) {\n for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) {\n HT[i2] = values[pos_in_table] + (k + 1 << 8);\n }\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => {\n let startOffset = offset2, bitsData = 0, bitsCount = 0, eobrun = 0, p1 = 1 << successive, m1 = -1 << successive;\n const prevpos = 0;\n const decodeBaseline = (component2, pos) => {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n let diff = 0;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff;\n let k2 = 1, s, r;\n while (k2 < 64) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n bitsCount -= s;\n k2++;\n }\n };\n function decodeDCFirst(component2, pos) {\n let diff = 0;\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff << successive;\n }\n function decodeDCSuccessive(component2, pos) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocksDC[pos >> 6] |= (bitsData >>> --bitsCount & 1) << successive;\n }\n if (!frame)\n throw "Frame not parsed yet";\n function decodeACFirst(component2, pos) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k2 = spectralStart, s, r;\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r != 15) {\n eobrun = (1 << r) - 1;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n bitsCount -= s;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n component2.blocks[pos + k2] *= p1;\n k2++;\n }\n }\n function decodeACSuccessive(component2, pos) {\n let k2 = spectralStart, r, s;\n if (frame == null)\n throw "Frame not defined";\n if (!eobrun) {\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s) {\n if (s != 1)\n throw "bad jpeg";\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n s = bitsData >>> --bitsCount & 1 ? p1 : m1;\n } else {\n if (r != 15) {\n eobrun = 1 << r;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n }\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n } else {\n if (--r < 0)\n break;\n }\n k2++;\n }\n if (s)\n component2.blocks[pos + k2] = s;\n k2++;\n }\n }\n if (eobrun) {\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n }\n k2++;\n }\n eobrun--;\n }\n }\n let decodeFn;\n if (frame.progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y;\n let lastflushidx = 0;\n const flushBits = () => {\n if (!this.gengen)\n return;\n const component2 = components.find((e) => e.componentId == 1);\n while (component2.blocks[lastflushidx + 1] !== void 0) {\n const blk = component2.blocks[lastflushidx];\n if (blk != 0) {\n const v = blk < 0 ? 1 - (blk & 1) : blk & 1;\n const it = this.gengen.next(v);\n if (it.done) {\n throw it.value;\n }\n }\n lastflushidx++;\n }\n };\n if (components.length == 1) {\n mcusPerLine = components[0].blocksPerLine;\n mcusPerRow = components[0].blocksPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64);\n }\n }\n flushBits();\n }\n } else {\n mcusPerLine = frame.mcusPerLine;\n mcusPerRow = frame.mcusPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n for (j2 = 0; j2 < components[i2].v; j2++) {\n for (k = 0; k < components[i2].h; k++) {\n decodeFn(components[i2], ((y * components[i2].v + j2) * components[i2].blocksPerLineForMcu + x * components[i2].h + k) * 64);\n }\n }\n }\n }\n flushBits();\n }\n }\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n return offset2 - startOffset;\n };\n function readUint16() {\n const value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n __privateSet(this, __raw, data);\n __privateSet(this, _jfif, null);\n __privateSet(this, _APPn, []);\n __privateSet(this, _qts, []);\n __privateSet(this, _frame, null);\n __privateSet(this, _tail, null);\n let markerHi, markerLo, i, j, resetInterval, component;\n const huffmanTablesAC = [];\n const huffmanTablesDC = [];\n while (1) {\n if (offset >= data.length) {\n if (tolerant)\n break;\n throw "unexpected EOF";\n }\n markerHi = data[offset++];\n markerLo = data[offset++];\n if (markerHi == 255) {\n if (markerLo == 224) {\n __privateSet(this, _jfif, readDataBlock());\n }\n if (markerLo > 224 && markerLo < 240 || markerLo == 254) {\n __privateGet(this, _APPn).push({\n "app": markerLo,\n "data": readDataBlock()\n });\n }\n if (markerLo == 219) {\n __privateGet(this, _qts).push(readDataBlock());\n }\n if (markerLo >= 192 && markerLo <= 194) {\n if (__privateGet(this, _frame))\n throw "Only single frame JPEGs supported";\n readUint16();\n __privateSet(this, _frame, {\n "extended": markerLo === 193,\n "progressive": markerLo === 194,\n "precision": data[offset++],\n "scanLines": readUint16(),\n "samplesPerLine": readUint16(),\n "components": [],\n "componentIds": {},\n "maxH": 1,\n "maxV": 1\n });\n if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels)\n throw "Image is too big.";\n var componentsCount = data[offset++], componentId;\n let maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h)\n maxH = h;\n if (maxV < v)\n maxV = v;\n const qId = data[offset + 2];\n const l = __privateGet(this, _frame).components.push({\n componentId,\n h,\n v,\n quantizationTable: qId\n });\n __privateGet(this, _frame).componentIds[componentId] = l - 1;\n offset += 3;\n }\n __privateGet(this, _frame).maxH = maxH;\n __privateGet(this, _frame).maxV = maxV;\n const mcusPerLine = Math.ceil(__privateGet(this, _frame).samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(__privateGet(this, _frame).scanLines / 8 / maxV);\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n component = __privateGet(this, _frame).components[i];\n const blocksPerLine = Math.ceil(Math.ceil(__privateGet(this, _frame).samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(__privateGet(this, _frame).scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n __privateGet(this, _frame).components[i] = {\n ...component,\n blocks: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu * 64),\n blocksDC: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu),\n blocksPerLine,\n blocksPerColumn,\n blocksPerLineForMcu,\n blocksPerColumnForMcu\n };\n }\n __privateGet(this, _frame).mcusPerLine = mcusPerLine;\n __privateGet(this, _frame).mcusPerColumn = mcusPerColumn;\n }\n if (markerLo == 196) {\n const huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n const v = _buildHuffmanTable(codeLengths, huffmanValues);\n if (huffmanTableSpec >> 4 === 0)\n huffmanTablesDC[huffmanTableSpec & 15] = v;\n else\n huffmanTablesAC[huffmanTableSpec & 15] = v;\n }\n }\n if (markerLo == 221) {\n resetInterval = readUint16();\n }\n if (markerLo == 218) {\n if (__privateGet(this, _frame) == null)\n throw "SOS before SOF";\n readUint16();\n const selectorsCount = data[offset++];\n const components = [];\n for (i = 0; i < selectorsCount; i++) {\n const componentIndex = __privateGet(this, _frame).componentIds[data[offset++]];\n component = __privateGet(this, _frame).components[componentIndex];\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset, __privateGet(this, _frame), components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n }\n if (markerLo == 217) {\n break;\n }\n } else {\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n }\n while (data[offset] != 255 && offset < data.length) {\n offset++;\n }\n if (data[offset] != 255) {\n throw "bad jpeg ";\n }\n }\n }\n if (!__privateGet(this, _frame))\n throw "bad jpeg";\n if (offset < data.length)\n __privateSet(this, _tail, data.subarray(offset));\n return this;\n }\n pack() {\n let byteout;\n let bytenew;\n let bytepos;\n let poslast;\n let outpos;\n let byte;\n function writeByte(value) {\n let t;\n byteout[outpos++] = value;\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function writeBlock(block) {\n let t;\n if (outpos + block.length > poslast) {\n t = new Uint8Array(byteout.length * 2 + block.length);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n byteout.set(block, outpos);\n outpos += block.length;\n }\n function writeAPP0(self2) {\n writeWord(65504);\n if (!__privateGet(self2, _jfif)) {\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n } else {\n writeWord(__privateGet(self2, _jfif).length + 2);\n writeBlock(__privateGet(self2, _jfif));\n }\n }\n function writeDQT(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _qts).length; i2++) {\n writeWord(65499);\n writeWord(__privateGet(self2, _qts)[i2].length + 2);\n writeBlock(__privateGet(self2, _qts)[i2]);\n }\n }\n function writeAPPn(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _APPn).length; i2++) {\n writeWord(65280 | __privateGet(self2, _APPn)[i2].app);\n writeWord(__privateGet(self2, _APPn)[i2].data.length + 2);\n writeBlock(__privateGet(self2, _APPn)[i2].data);\n }\n }\n function writeSOF0(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65472);\n writeWord(8 + __privateGet(self2, _frame).components.length * 3);\n writeByte(__privateGet(self2, _frame).precision);\n writeWord(__privateGet(self2, _frame).scanLines);\n writeWord(__privateGet(self2, _frame).samplesPerLine);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n writeByte(c2.h << 4 | c2.v);\n writeByte(c2.quantizationTable);\n }\n }\n function writeDHT(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65476);\n writeWord(31);\n writeByte(0);\n for (let i2 = 0; i2 < 16; i2++) {\n writeByte(std_dc_luminance_nrcodes[i2 + 1]);\n }\n for (let j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(16);\n for (let k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (let l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n if (__privateGet(self2, _frame).components.length != 1) {\n writeWord(65476);\n writeWord(31);\n writeByte(1);\n for (let m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (let n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(17);\n for (let o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (let p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n }\n function writeSOS(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65498);\n writeWord(6 + __privateGet(self2, _frame).components.length * 2);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n if (i2 === 0) {\n writeByte(0);\n } else {\n writeByte(17);\n }\n }\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(comp, POS, DC, HTDC, HTAC) {\n let pos, posval, t;\n if (bytepos === 0)\n bytenew = 0;\n if (!("blocks" in comp))\n throw "Blocks not parsed";\n const Diff = comp.blocksDC[POS >> 6] - DC;\n DC = comp.blocksDC[POS >> 6];\n if (Diff === 0) {\n posval = HTDC[0][1];\n bytenew <<= posval;\n bytenew += HTDC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n } else {\n pos = 32767 + Diff;\n posval = HTDC[category[pos]][1];\n bytenew <<= posval;\n bytenew += HTDC[category[pos]][0];\n bytepos += posval;\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n let end0pos = 63;\n for (; end0pos > 0 && comp.blocks[POS + end0pos] === 0; end0pos--) {\n }\n if (end0pos === 0) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n return DC;\n }\n let i2 = 1;\n let lng;\n while (i2 <= end0pos) {\n const startpos = i2;\n for (; comp.blocks[POS + i2] === 0 && i2 <= end0pos; ++i2) {\n }\n let nrzeroes = i2 - startpos;\n if (nrzeroes >= 16) {\n lng = nrzeroes >> 4;\n for (let nrmarker = 1; nrmarker <= lng; ++nrmarker) {\n posval = HTAC[240][1];\n bytenew <<= posval;\n bytenew += HTAC[240][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + comp.blocks[POS + i2];\n posval = HTAC[(nrzeroes << 4) + category[pos]][1];\n bytenew <<= posval;\n bytenew += HTAC[(nrzeroes << 4) + category[pos]][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n i2++;\n }\n if (end0pos != 63) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n return DC;\n }\n byteout = new Uint8Array(65536);\n poslast = 65536 - 128;\n outpos = 0;\n bytenew = 0;\n bytepos = 0;\n writeWord(65496);\n writeAPP0(this);\n writeAPPn(this);\n writeDQT(this);\n writeSOF0(this);\n writeDHT(this);\n writeSOS(this);\n bytenew = 0;\n bytepos = 0;\n if (!__privateGet(this, _frame))\n throw "Frame not ready";\n let c, mcuRow, mcuCol, blockRow, blockCol, mcu, i, v, h;\n const DCdiff = [];\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n DCdiff.push(0);\n }\n for (mcu = 0; mcu < __privateGet(this, _frame).mcusPerLine * __privateGet(this, _frame).mcusPerColumn; mcu++) {\n mcuRow = mcu / __privateGet(this, _frame).mcusPerLine | 0;\n mcuCol = mcu % __privateGet(this, _frame).mcusPerLine;\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n c = __privateGet(this, _frame).components[i];\n for (v = 0; v < c.v; v++) {\n blockRow = mcuRow * c.v + v;\n for (h = 0; h < c.h; h++) {\n blockCol = mcuCol * c.h + h;\n if (i === 0) {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], YDC_HT, YAC_HT);\n } else {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], UVDC_HT, UVAC_HT);\n }\n }\n }\n }\n }\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n }\n if (bytepos > 0) {\n bytenew <<= 8 - bytepos;\n bytenew += (1 << 8 - bytepos) - 1;\n byteout[outpos++] = 255 & bytenew;\n }\n writeWord(65497);\n if (__privateGet(this, _tail))\n writeBlock(__privateGet(this, _tail));\n return byteout.slice(0, outpos);\n }\n};\n__raw = new WeakMap();\n_jfif = new WeakMap();\n_APPn = new WeakMap();\n_qts = new WeakMap();\n_frame = new WeakMap();\n_tail = new WeakMap();\n__f5write = new WeakSet();\n_f5write_fn = function(coeff, data, k) {\n const coeff_count = coeff.length;\n let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, n, ii;\n let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0;\n n = (1 << k) - 1;\n byte_to_embed = k - 1;\n byte_to_embed ^= 0;\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed = 3;\n for (ii = 0; ii < coeff_count; ii++) {\n shuffled_index = ii;\n if (shuffled_index % 64 === 0 || coeff[shuffled_index] === 0)\n continue;\n const cc = coeff[shuffled_index];\n _examined++;\n if (cc > 0 && (cc & 1) != next_bit_to_embed) {\n coeff[shuffled_index]--;\n _changed++;\n } else if (cc < 0 && (cc & 1) == next_bit_to_embed) {\n coeff[shuffled_index]++;\n _changed++;\n }\n if (coeff[shuffled_index] !== 0) {\n _embedded++;\n if (available_bits_to_embed === 0) {\n if (k != 1 || data_idx >= data.length)\n break;\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n } else {\n _thrown++;\n }\n }\n if (k == 1 && _embedded < data.length * 8)\n throw "capacity exceeded " + _embedded / 8 + " " + data.length;\n if (k != 1) {\n let is_last_byte = false, k_bits_to_embed = 0;\n while (!is_last_byte || available_bits_to_embed !== 0 && is_last_byte) {\n k_bits_to_embed = 0;\n for (i = 0; i < k; i++) {\n if (available_bits_to_embed === 0) {\n if (data_idx >= data.length) {\n is_last_byte = true;\n break;\n }\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n k_bits_to_embed |= next_bit_to_embed << i;\n }\n const code_word = [];\n let ci = null;\n for (i = 0; i < n; i++) {\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n code_word.push(ci);\n }\n _examined += n;\n while (true) {\n var vhash = 0, extracted_bit;\n for (i = 0; i < code_word.length; i++) {\n if (coeff[code_word[i]] > 0) {\n extracted_bit = coeff[code_word[i]] & 1;\n } else {\n extracted_bit = 1 - (coeff[code_word[i]] & 1);\n }\n if (extracted_bit == 1)\n vhash ^= i + 1;\n }\n i = vhash ^ k_bits_to_embed;\n if (!i) {\n _embedded += k;\n break;\n }\n i--;\n coeff[code_word[i]] += coeff[code_word[i]] < 0 ? 1 : -1;\n _changed++;\n if (coeff[code_word[i]] === 0) {\n _thrown++;\n code_word.splice(i, 1);\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n _examined++;\n code_word.push(ci);\n } else {\n _embedded += k;\n break;\n }\n }\n }\n }\n return {\n "k": k,\n "embedded": _embedded / 8,\n "examined": _examined,\n "changed": _changed,\n "thrown": _thrown,\n "efficiency": (_embedded / _changed).toFixed(2)\n };\n};\n\n// src/jpg.ts\nvar key = import_buffer4.Buffer.from("CUNNYCUNNYCUNNY");\nvar f5inst = new f5stego(key);\nvar inject2 = async (b, links) => {\n if (b.size / 20 < links.join(" ").length)\n throw "Image too small to embed.";\n const arr = new Uint8Array(new Uint8Array(await b.arrayBuffer()));\n const buff = f5inst.embed(arr, new TextEncoder().encode(links.join(" ")), 1);\n return import_buffer4.Buffer.from(buff);\n};\nvar has_embed2 = (b) => {\n try {\n const res = f5inst.extract(b);\n if (!res)\n return false;\n if (res.length > 1024)\n return false;\n const str = import_buffer4.Buffer.from(res).toString();\n if (!str.match(/^[a-zA-Z0-9:/.\\-_ ]+$/))\n return false;\n return str;\n } catch {\n return false;\n }\n};\nvar extract2 = (b, ex) => {\n return decodeCoom3Payload(import_buffer4.Buffer.from(ex));\n};\nvar jpg_default = {\n match: (fn) => !!fn.match(/\\.jpe?g$/),\n has_embed: has_embed2,\n extract: extract2,\n inject: inject2\n};\n\n// src/thirdeye.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer5 = __toESM(require_buffer(), 1);\nvar import_jpeg_js = __toESM(require_jpeg_js(), 1);\n\n// src/phash.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar median = (data) => {\n const mdarr = data.slice(0);\n mdarr.sort((a, b) => a - b);\n if (mdarr.length % 2 === 0)\n return (mdarr[mdarr.length / 2 - 1] + mdarr[mdarr.length / 2]) / 2;\n return mdarr[Math.floor(mdarr.length / 2)];\n};\nvar translate_blocks_to_bits = function(blocks, pixels_per_block) {\n const half_block_value = pixels_per_block * 256 * 3 / 2;\n const bandsize = blocks.length / 4;\n for (let i = 0; i < 4; i++) {\n const m = median(blocks.slice(i * bandsize, (i + 1) * bandsize));\n for (let j = i * bandsize; j < (i + 1) * bandsize; j++) {\n const v = blocks[j];\n blocks[j] = Number(v > m || Math.abs(v - m) < 1 && m > half_block_value);\n }\n }\n};\nvar bits_to_hexhash = (bitsArray) => {\n const hex = [];\n for (let i = 0; i < bitsArray.length; i += 4) {\n const nibble = bitsArray.slice(i, i + 4);\n hex.push(parseInt(nibble.join(""), 2).toString(16));\n }\n return hex.join("");\n};\nvar bmvbhash_even = (data, bits) => {\n const blocksize_x = Math.floor(data.width / bits);\n const blocksize_y = Math.floor(data.height / bits);\n const result = [];\n for (let y = 0; y < bits; y++) {\n for (let x = 0; x < bits; x++) {\n let total = 0;\n for (let iy = 0; iy < blocksize_y; iy++) {\n for (let ix = 0; ix < blocksize_x; ix++) {\n const cx = x * blocksize_x + ix;\n const cy = y * blocksize_y + iy;\n const ii = (cy * data.width + cx) * 4;\n const alpha = data.data[ii + 3];\n if (alpha === 0) {\n total += 765;\n } else {\n total += data.data[ii] + data.data[ii + 1] + data.data[ii + 2];\n }\n }\n }\n result.push(total);\n }\n }\n translate_blocks_to_bits(result, blocksize_x * blocksize_y);\n return bits_to_hexhash(result);\n};\n\n// src/thirdeye.ts\nvar csettings3;\nsettings.subscribe((b) => {\n csettings3 = b;\n});\nvar gelquirk = (prefix) => (a) => {\n let base = a.post || a.data || a;\n if (!Array.isArray(base))\n return [];\n base = base.filter((e) => e.file_url);\n return base.map((e) => ({\n full_url: e.file_url,\n preview_url: e.preview_url || e.preview_url,\n source: e.source,\n ext: e.file_ext || e.file_url.substr(e.file_url.lastIndexOf(".") + 1),\n page: `${prefix}${e.id || e.parent_id}`,\n tags: (e.tag_string || (e.tags && (Array.isArray(e.tags) && (typeof e.tags[0] == "string" ? e.tags.join(" ") : e.tags.map((e2) => e2.name_en).join(" "))) || e.tags) || "").split(" ")\n })) || [];\n};\nvar experimentalApi = false;\nvar black = /* @__PURE__ */ new Set();\nvar phashEn = false;\nvar mindist = 5;\nsettings.subscribe((s) => {\n if (!s)\n return;\n experimentalApi = s.expte;\n boorus = s.rsources.map((e) => ({\n ...e,\n quirks: gelquirk(e.view)\n }));\n black = new Set(s.blacklist);\n mindist = s.mdist || 5;\n phashEn = s.phash;\n});\nvar boorus = [];\nvar unlockQueue = Promise.resolve();\nvar cache = {};\nvar findFileFrom = async (b, hex, abort) => {\n try {\n if (b.domain in cache && hex in cache[b.domain])\n return cache[b.domain][hex];\n const res = await ifetch(`https://${b.domain}${b.endpoint}${hex}`);\n const txt = await res.text();\n const pres = JSON.parse(txt);\n const tran = b.quirks(pres).filter((e) => !e.tags.some((e2) => black.has(e2)));\n if (!(b.domain in cache))\n cache[b.domain] = {};\n cache[b.domain][hex] = tran;\n return tran;\n } catch (e) {\n const error = e;\n if (!error.message.includes("Unexpected end of JSON input"))\n console.error(e);\n return [];\n }\n};\nvar extract3 = async (b, fn) => {\n if (!csettings3)\n throw new Error("Settings uninit");\n let result;\n let booru;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n if (result.length) {\n booru = e.name;\n break;\n }\n }\n let cachedFile;\n const prev = result[0].preview_url;\n const full = result[0].full_url;\n return [{\n source: result[0].source,\n page: {\n title: booru,\n url: result[0].page\n },\n filename: fn.substring(0, 33) + result[0].ext,\n thumbnail: csettings3.hotlink ? prev || full : import_buffer5.Buffer.from(await (await ifetch(prev || full)).arrayBuffer()),\n data: csettings3.hotlink ? full || prev : { url: full || prev }\n }];\n};\nvar phash = (b) => {\n const res = (0, import_jpeg_js.decode)(b);\n return bmvbhash_even(res, 8);\n};\nvar hammingDist = (a, b) => {\n let res = BigInt("0x" + a) ^ BigInt("0x" + b);\n let acc = 0;\n while (res != 0n) {\n acc += Number(res & 1n);\n res >>= 1n;\n }\n return acc;\n};\nvar has_embed3 = async (b, fn, prevlink) => {\n if (import_buffer5.Buffer.from(fn, "hex").equals(b))\n return false;\n let result = void 0;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n result = result.filter((e2) => e2.full_url || e2.preview_url);\n if (result.length)\n break;\n }\n if (result && result.length != 0 && phashEn && prevlink) {\n if (!result[0].preview_url)\n return true;\n const getHash = async (l) => {\n const ogreq = await ifetch(l);\n const origPreview = await ogreq.arrayBuffer();\n return phash(import_buffer5.Buffer.from(origPreview));\n };\n const [orighash, tehash] = await Promise.all([\n getHash(prevlink),\n getHash(result[0].preview_url)\n ]);\n const d = hammingDist(orighash, tehash);\n console.log(d, prevlink);\n return d > mindist;\n }\n return result && result.length != 0;\n};\nvar thirdeye_default = {\n skip: true,\n extract: extract3,\n has_embed: has_embed3,\n match: (fn) => !!fn.match(/^[0-9a-f]{32}\\.....?/)\n};\n\n// src/pomf.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer6 = __toESM(require_buffer(), 1);\nvar sources = [\n { host: "Catbox", prefix: "files.catbox.moe/" },\n { host: "Litter", prefix: "litter.catbox.moe/" },\n { host: "Zzzz", prefix: "z.zz.fo/" }\n];\nvar csettings4;\nsettings.subscribe((b) => {\n csettings4 = b;\n});\nvar getExt = (fn) => {\n const isB64 = fn.match(/^((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=))?\\.(gif|jpe?g|png|webm)/);\n const isExt = fn.match(/\\[.*=(.*)\\]/);\n let ext;\n let source;\n try {\n if (isB64) {\n ext = atob(isB64[1]);\n } else if (isExt) {\n ext = decodeURIComponent(isExt[1]);\n if (ext.startsWith("https://"))\n ext = ext.slice("https://".length);\n for (const cs of sources)\n if (ext.startsWith(cs.prefix)) {\n source = cs.prefix;\n ext = ext.slice(cs.prefix.length);\n break;\n }\n }\n } catch {\n }\n return { ext, source };\n};\nvar extract4 = async (b, fn) => {\n if (!csettings4)\n throw new Error("Settings uninit");\n const { ext, source } = getExt(fn);\n let rsource;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n await getHeaders("https://" + cs.prefix + ext);\n rsource = "https://" + cs.prefix + ext;\n break;\n } catch {\n }\n }\n return [{\n filename: ext,\n data: csettings4.hotlink ? rsource : { url: rsource },\n thumbnail: import_buffer6.Buffer.from(hasembed_default)\n }];\n};\nvar has_embed4 = async (b, fn) => {\n const { ext, source } = getExt(fn);\n if (!ext)\n return false;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n const e = await getHeaders("https://" + cs.prefix + ext);\n return true;\n } catch {\n }\n }\n return false;\n};\nvar pomf_default = {\n skip: true,\n extract: extract4,\n has_embed: has_embed4,\n match: (fn) => !!getExt(fn)\n};\n\n// src/processor.worker.ts\nconsole.log("Worker started");\nvar pendinggens = {};\nvar proxyAsyncGen = (id) => {\n return {\n next(arg) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n return(v) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n throw() {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n [Symbol.asyncIterator]() {\n return this;\n }\n };\n};\nvar deserializeMessage = (m) => {\n if (m instanceof MessagePort)\n return m;\n if (typeof m == "object" && m.type == "AsyncGenerator") {\n return proxyAsyncGen(m.id);\n }\n if (typeof m == "object") {\n for (const p in m) {\n m[p] = deserializeMessage(m[p]);\n }\n }\n return m;\n};\nvar processors = [thirdeye_default, pomf_default, pngv3_default, jpg_default];\nvar processImage = async (srcs, fn, hex, prevurl) => {\n const ret = await Promise.all(processors.filter((e) => e.match(fn)).map(async (proc) => {\n if (proc.skip) {\n const md5 = Buffer2.from(hex, "base64");\n if (await proc.has_embed(md5, fn, prevurl) === true) {\n return [await proc.extract(md5, fn), true];\n }\n return;\n }\n let succ = false;\n let cumul;\n do {\n try {\n const n = await srcs.next();\n if (n.done)\n return;\n const iter = streamRemote(n.value);\n if (!iter)\n return;\n cumul = Buffer2.alloc(0);\n let found;\n let chunk = { done: true };\n do {\n const { value, done } = await iter.next(typeof found === "boolean");\n if (done) {\n chunk = { done: true };\n } else {\n chunk = { done: false, value };\n cumul = Buffer2.concat([cumul, value]);\n const v = await proc.has_embed(cumul);\n if (typeof v == "string") {\n return [await proc.extract(cumul, v), false];\n }\n found = v;\n }\n } while (found !== false && !chunk.done);\n succ = true;\n await iter.next(true);\n if (found !== true) {\n return;\n }\n return [await proc.extract(cumul), false];\n } catch (err) {\n console.log(err);\n }\n } while (!succ);\n }));\n return ret.filter((e) => e).map((e) => e);\n};\nvar init2 = false;\n(async () => {\n onmessage = async (msg) => {\n const des = deserializeMessage(msg.data);\n switch (des.type) {\n case "ipc": {\n setupPort(des.port);\n const nset = await localLoad("settingsv2", initial_settings);\n settings.set(nset);\n break;\n }\n case "cmd": {\n switch (des.fun) {\n case "processImage": {\n if (!init2) {\n await new Promise((_) => {\n settings.subscribe((v) => {\n if (v)\n _();\n });\n });\n init2 = true;\n }\n const res = await processImage(des.args[0], des.args[1], des.args[2], des.args[3]);\n const tr = [];\n for (const ef of res) {\n for (const e of ef[0]) {\n if (e.thumbnail && Buffer2.isBuffer(e.thumbnail) || typeof e.thumbnail != "string")\n tr.push(e.thumbnail.buffer);\n if (Buffer2.isBuffer(e.data) || typeof e.data != "string" && !("url" in e.data))\n tr.push(e.data.buffer);\n }\n }\n postMessage({\n type: "reply",\n id: des.id,\n res\n }, [...new Set(tr)]);\n }\n }\n break;\n }\n case "ag": {\n const cb = pendinggens[des.id].shift();\n if (cb) {\n cb(des.res);\n }\n break;\n }\n }\n };\n})();\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n'); + return inlineWorker('var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));\nvar __decorateClass = (decorators, target, key2, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key2) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key2, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key2, result);\n return result;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError("Cannot " + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, "read from private field");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError("Cannot add the same private member more than once");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, "write to private field");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, "access private method");\n return method;\n};\nvar __toBinary = /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++)\n table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);\n for (var i2 = 0, j = 0; i2 < n; ) {\n var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n bytes[j++] = c0 << 2 | c1 >> 4;\n bytes[j++] = c1 << 4 | c2 >> 2;\n bytes[j++] = c2 << 6 | c3;\n }\n return bytes;\n };\n})();\n\n// \nvar init_define_BUILD_VERSION = __esm({\n ""() {\n }\n});\n\n// node_modules/base64-js/index.js\nvar require_base64_js = __commonJS({\n "node_modules/base64-js/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;\n var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\n for (i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n var i;\n var len;\n revLookup["-".charCodeAt(0)] = 62;\n revLookup["_".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error("Invalid string. Length must be a multiple of 4");\n }\n var validLen = b64.indexOf("=");\n if (validLen === -1)\n validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join("");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");\n }\n return parts.join("");\n }\n }\n});\n\n// node_modules/ieee754/index.js\nvar require_ieee754 = __commonJS({\n "node_modules/ieee754/index.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n});\n\n// node_modules/buffer/index.js\nvar require_buffer = __commonJS({\n "node_modules/buffer/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var base64 = require_base64_js();\n var ieee7542 = require_ieee754();\n var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null;\n exports.Buffer = Buffer13;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n Buffer13.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer13.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") {\n console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");\n }\n function typedArraySupport() {\n try {\n const arr = new Uint8Array(1);\n const proto = { foo: function() {\n return 42;\n } };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer13.prototype, "parent", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer13.prototype, "offset", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\'The value "\' + length + \'" is invalid for option "size"\');\n }\n const buf2 = new Uint8Array(length);\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function Buffer13(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n if (typeof encodingOrOffset === "string") {\n throw new TypeError(\'The "string" argument must be of type string. Received type number\');\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer13.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === "string") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === "number") {\n throw new TypeError(\'The "value" argument must not be of type number. Received type number\');\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer13.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b)\n return b;\n if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") {\n return Buffer13.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length);\n }\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n Buffer13.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer13.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer13, Uint8Array);\n function assertSize(size) {\n if (typeof size !== "number") {\n throw new TypeError(\'"size" argument must be of type number\');\n } else if (size < 0) {\n throw new RangeError(\'The value "\' + size + \'" is invalid for option "size"\');\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer13.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer13.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer13.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== "string" || encoding === "") {\n encoding = "utf8";\n }\n if (!Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf2 = createBuffer(length);\n const actual = buf2.write(string, encoding);\n if (actual !== length) {\n buf2 = buf2.slice(0, actual);\n }\n return buf2;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf2 = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf2[i] = array[i] & 255;\n }\n return buf2;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\'"offset" is outside of buffer bounds\');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\'"length" is outside of buffer bounds\');\n }\n let buf2;\n if (byteOffset === void 0 && length === void 0) {\n buf2 = new Uint8Array(array);\n } else if (length === void 0) {\n buf2 = new Uint8Array(array, byteOffset);\n } else {\n buf2 = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function fromObject(obj) {\n if (Buffer13.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf2 = createBuffer(len);\n if (buf2.length === 0) {\n return buf2;\n }\n obj.copy(buf2, 0, 0, len);\n return buf2;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== "number" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === "Buffer" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer13.alloc(+length);\n }\n Buffer13.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer13.prototype;\n };\n Buffer13.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array))\n a = Buffer13.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array))\n b = Buffer13.from(b, b.offset, b.byteLength);\n if (!Buffer13.isBuffer(a) || !Buffer13.isBuffer(b)) {\n throw new TypeError(\'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array\');\n }\n if (a === b)\n return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n Buffer13.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "latin1":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return true;\n default:\n return false;\n }\n };\n Buffer13.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n }\n if (list.length === 0) {\n return Buffer13.alloc(0);\n }\n let i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer13.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf2 = list[i];\n if (isInstance(buf2, Uint8Array)) {\n if (pos + buf2.length > buffer.length) {\n if (!Buffer13.isBuffer(buf2))\n buf2 = Buffer13.from(buf2);\n buf2.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf2, pos);\n }\n } else if (!Buffer13.isBuffer(buf2)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n } else {\n buf2.copy(buffer, pos);\n }\n pos += buf2.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer13.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== "string") {\n throw new TypeError(\'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type \' + typeof string);\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0)\n return 0;\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "ascii":\n case "latin1":\n case "binary":\n return len;\n case "utf8":\n case "utf-8":\n return utf8ToBytes(string).length;\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return len * 2;\n case "hex":\n return len >>> 1;\n case "base64":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length;\n }\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return "";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return "";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return "";\n }\n if (!encoding)\n encoding = "utf8";\n while (true) {\n switch (encoding) {\n case "hex":\n return hexSlice(this, start, end);\n case "utf8":\n case "utf-8":\n return utf8Slice(this, start, end);\n case "ascii":\n return asciiSlice(this, start, end);\n case "latin1":\n case "binary":\n return latin1Slice(this, start, end);\n case "base64":\n return base64Slice(this, start, end);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = (encoding + "").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer13.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 16-bits");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer13.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 32-bits");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer13.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 64-bits");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer13.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0)\n return "";\n if (arguments.length === 0)\n return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer13.prototype.toLocaleString = Buffer13.prototype.toString;\n Buffer13.prototype.equals = function equals(b) {\n if (!Buffer13.isBuffer(b))\n throw new TypeError("Argument must be a Buffer");\n if (this === b)\n return true;\n return Buffer13.compare(this, b) === 0;\n };\n Buffer13.prototype.inspect = function inspect() {\n let str = "";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim();\n if (this.length > max)\n str += " ... ";\n return "";\n };\n if (customInspectSymbol) {\n Buffer13.prototype[customInspectSymbol] = Buffer13.prototype.inspect;\n }\n Buffer13.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer13.from(target, target.offset, target.byteLength);\n }\n if (!Buffer13.isBuffer(target)) {\n throw new TypeError(\'The "target" argument must be one of type Buffer or Uint8Array. Received type \' + typeof target);\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError("out of range index");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target)\n return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0)\n return -1;\n if (typeof byteOffset === "string") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n if (byteOffset < 0)\n byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir)\n return -1;\n else\n byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir)\n byteOffset = 0;\n else\n return -1;\n }\n if (typeof val === "string") {\n val = Buffer13.from(val, encoding);\n }\n if (Buffer13.isBuffer(val)) {\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === "number") {\n val = val & 255;\n if (typeof Uint8Array.prototype.indexOf === "function") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError("val must be string, number or Buffer");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read2(buf2, i2) {\n if (indexSize === 1) {\n return buf2[i2];\n } else {\n return buf2.readUInt16BE(i2 * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read2(arr, i) === read2(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1)\n foundIndex = i;\n if (i - foundIndex + 1 === valLength)\n return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1)\n i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength)\n byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read2(arr, i + j) !== read2(val, j)) {\n found = false;\n break;\n }\n }\n if (found)\n return i;\n }\n }\n return -1;\n }\n Buffer13.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer13.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer13.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf2, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf2.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed))\n return i;\n buf2[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf2, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n function asciiWrite(buf2, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf2, offset, length);\n }\n function base64Write(buf2, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf2, offset, length);\n }\n function ucs2Write(buf2, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n Buffer13.prototype.write = function write2(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = "utf8";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === "string") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0)\n encoding = "utf8";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");\n }\n const remaining = this.length - offset;\n if (length === void 0 || length > remaining)\n length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError("Attempt to write outside buffer bounds");\n }\n if (!encoding)\n encoding = "utf8";\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "hex":\n return hexWrite(this, string, offset, length);\n case "utf8":\n case "utf-8":\n return utf8Write(this, string, offset, length);\n case "ascii":\n case "latin1":\n case "binary":\n return asciiWrite(this, string, offset, length);\n case "base64":\n return base64Write(this, string, offset, length);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer13.prototype.toJSON = function toJSON() {\n return {\n type: "Buffer",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf2, start, end) {\n if (start === 0 && end === buf2.length) {\n return base64.fromByteArray(buf2);\n } else {\n return base64.fromByteArray(buf2.slice(start, end));\n }\n }\n function utf8Slice(buf2, start, end) {\n end = Math.min(buf2.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf2[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf2[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n fourthByte = buf2[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = "";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i]);\n }\n return ret;\n }\n function hexSlice(buf2, start, end) {\n const len = buf2.length;\n if (!start || start < 0)\n start = 0;\n if (!end || end < 0 || end > len)\n end = len;\n let out = "";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf2[i]];\n }\n return out;\n }\n function utf16leSlice(buf2, start, end) {\n const bytes = buf2.slice(start, end);\n let res = "";\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer13.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0)\n start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0)\n end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start)\n end = start;\n const newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer13.prototype);\n return newBuf;\n };\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0)\n throw new RangeError("offset is not uint");\n if (offset + ext > length)\n throw new RangeError("Trying to access beyond buffer length");\n }\n Buffer13.prototype.readUintLE = Buffer13.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUintBE = Buffer13.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n let val = this[offset + --byteLength2];\n let mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUint8 = Buffer13.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer13.prototype.readUint16LE = Buffer13.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer13.prototype.readUint16BE = Buffer13.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer13.prototype.readUint32LE = Buffer13.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer13.prototype.readUint32BE = Buffer13.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer13.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer13.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer13.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let i = byteLength2;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128))\n return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer13.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer13.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer13.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer13.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer13.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, true, 23, 4);\n };\n Buffer13.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, false, 23, 4);\n };\n Buffer13.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, true, 52, 8);\n };\n Buffer13.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, false, 52, 8);\n };\n function checkInt(buf2, value, offset, ext, max, min) {\n if (!Buffer13.isBuffer(buf2))\n throw new TypeError(\'"buffer" argument must be a Buffer instance\');\n if (value > max || value < min)\n throw new RangeError(\'"value" argument is out of bounds\');\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n }\n Buffer13.prototype.writeUintLE = Buffer13.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUintBE = Buffer13.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUint8 = Buffer13.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeUint16LE = Buffer13.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeUint16BE = Buffer13.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeUint32LE = Buffer13.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeUint32BE = Buffer13.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset + 7] = lo;\n lo = lo >> 8;\n buf2[offset + 6] = lo;\n lo = lo >> 8;\n buf2[offset + 5] = lo;\n lo = lo >> 8;\n buf2[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset + 3] = hi;\n hi = hi >> 8;\n buf2[offset + 2] = hi;\n hi = hi >> 8;\n buf2[offset + 1] = hi;\n hi = hi >> 8;\n buf2[offset] = hi;\n return offset + 8;\n }\n Buffer13.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 127, -128);\n if (value < 0)\n value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer13.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0)\n value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n Buffer13.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n function checkIEEE754(buf2, value, offset, ext, max, min) {\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n if (offset < 0)\n throw new RangeError("Index out of range");\n }\n function writeFloat(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer13.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer13.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer13.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer13.isBuffer(target))\n throw new TypeError("argument should be a Buffer");\n if (!start)\n start = 0;\n if (!end && end !== 0)\n end = this.length;\n if (targetStart >= target.length)\n targetStart = target.length;\n if (!targetStart)\n targetStart = 0;\n if (end > 0 && end < start)\n end = start;\n if (end === start)\n return 0;\n if (target.length === 0 || this.length === 0)\n return 0;\n if (targetStart < 0) {\n throw new RangeError("targetStart out of bounds");\n }\n if (start < 0 || start >= this.length)\n throw new RangeError("Index out of range");\n if (end < 0)\n throw new RangeError("sourceEnd out of bounds");\n if (end > this.length)\n end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === "function") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n Buffer13.prototype.fill = function fill(val, start, end, encoding) {\n if (typeof val === "string") {\n if (typeof start === "string") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === "string") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== void 0 && typeof encoding !== "string") {\n throw new TypeError("encoding must be a string");\n }\n if (typeof encoding === "string" && !Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === "utf8" && code < 128 || encoding === "latin1") {\n val = code;\n }\n }\n } else if (typeof val === "number") {\n val = val & 255;\n } else if (typeof val === "boolean") {\n val = Number(val);\n }\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError("Out of range index");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val)\n val = 0;\n let i;\n if (typeof val === "number") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer13.isBuffer(val) ? val : Buffer13.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError(\'The value "\' + val + \'" is invalid for argument "value"\');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, "message", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n this.name = `${this.name} [${sym}]`;\n this.stack;\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, "code", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n return "Attempt to access memory outside buffer bounds";\n }, RangeError);\n E("ERR_INVALID_ARG_TYPE", function(name, actual) {\n return `The "${name}" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E("ERR_OUT_OF_RANGE", function(str, range, input) {\n let msg = `The value of "${str}" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === "bigint") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += "n";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n let res = "";\n let i = val.length;\n const start = val[0] === "-" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n function checkBounds(buf2, offset, byteLength2) {\n validateNumber(offset, "offset");\n if (buf2[offset] === void 0 || buf2[offset + byteLength2] === void 0) {\n boundsError(offset, buf2.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf2, offset, byteLength2) {\n if (value > max || value < min) {\n const n = typeof min === "bigint" ? "n" : "";\n let range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n throw new errors.ERR_OUT_OF_RANGE("value", range, value);\n }\n checkBounds(buf2, offset, byteLength2);\n }\n function validateNumber(value, name) {\n if (typeof value !== "number") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value);\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split("=")[0];\n str = str.trim().replace(INVALID_BASE64_RE, "");\n if (str.length < 2)\n return "";\n while (str.length % 4 !== 0) {\n str = str + "=";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error("Invalid code point");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0)\n break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length)\n break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n const alphabet = "0123456789abcdef";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error("BigInt not supported");\n }\n }\n});\n\n// esbuild.inject.js\nvar Buffer2;\nvar init_esbuild_inject = __esm({\n "esbuild.inject.js"() {\n "use strict";\n Buffer2 = require_buffer().Buffer;\n if (true) {\n if (false) {\n const ocreate = unsafeWindow.document.createElement.bind(document);\n unsafeWindow.document.createElement = (tag) => {\n if (tag != "meta")\n return ocreate(tag);\n unsafeWindow.document.createElement = ocreate;\n return unsafeWindow.document.createElement("link");\n };\n }\n if (false) {\n if (typeof cloneInto != "undefined")\n console.log("CLONE INTO DEFINED");\n else\n console.log("CLONE INTO NOT DEFINED");\n let a = 1;\n console.log(a++);\n const unsafeWindow2 = window;\n console.log(a++);\n const ocreate = unsafeWindow2.document.createElement.bind(document);\n console.log(a++);\n exportFunction((tag) => {\n if (tag != "meta")\n return ocreate(tag);\n unsafeWindow2.document.createElement = ocreate;\n return unsafeWindow2.document.createElement("link");\n }, window.document, { defineAs: "createElement" });\n console.log(a++);\n }\n }\n }\n});\n\n// node_modules/crc-32/crc32.js\nvar require_crc32 = __commonJS({\n "node_modules/crc-32/crc32.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var CRC32;\n (function(factory) {\n if (typeof DO_NOT_EXPORT_CRC === "undefined") {\n if (typeof exports === "object") {\n factory(exports);\n } else if (typeof define === "function" && define.amd) {\n define(function() {\n var module2 = {};\n factory(module2);\n return module2;\n });\n } else {\n factory(CRC32 = {});\n }\n } else {\n factory(CRC32 = {});\n }\n })(function(CRC322) {\n CRC322.version = "1.2.0";\n function signed_crc_table() {\n var c = 0, table = new Array(256);\n for (var n = 0; n != 256; ++n) {\n c = n;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n table[n] = c;\n }\n return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;\n }\n var T = signed_crc_table();\n function crc32_bstr(bstr, seed) {\n var C = seed ^ -1, L = bstr.length - 1;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n }\n if (i === L)\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i)) & 255];\n return C ^ -1;\n }\n function crc32_buf(buf2, seed) {\n if (buf2.length > 1e4)\n return crc32_buf_8(buf2, seed);\n var C = seed ^ -1, L = buf2.length - 3;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 3)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_buf_8(buf2, seed) {\n var C = seed ^ -1, L = buf2.length - 7;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 7)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_str(str, seed) {\n var C = seed ^ -1;\n for (var i = 0, L = str.length, c, d; i < L; ) {\n c = str.charCodeAt(i++);\n if (c < 128) {\n C = C >>> 8 ^ T[(C ^ c) & 255];\n } else if (c < 2048) {\n C = C >>> 8 ^ T[(C ^ (192 | c >> 6 & 31)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n } else if (c >= 55296 && c < 57344) {\n c = (c & 1023) + 64;\n d = str.charCodeAt(i++) & 1023;\n C = C >>> 8 ^ T[(C ^ (240 | c >> 8 & 7)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 2 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d & 63)) & 255];\n } else {\n C = C >>> 8 ^ T[(C ^ (224 | c >> 12 & 15)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 6 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n }\n }\n return C ^ -1;\n }\n CRC322.table = T;\n CRC322.bstr = crc32_bstr;\n CRC322.buf = crc32_buf;\n CRC322.str = crc32_str;\n });\n }\n});\n\n// node_modules/events/events.js\nvar require_events = __commonJS({\n "node_modules/events/events.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var R = typeof Reflect === "object" ? Reflect : null;\n var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === "function") {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn)\n console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = void 0;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = void 0;\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== "function") {\n throw new TypeError(\'The "listener" argument must be of type Function. Received type \' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, "defaultMaxListeners", {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError(\'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received \' + arg + ".");\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function() {\n if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || void 0;\n };\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {\n throw new RangeError(\'The value of "n" is out of range. It must be a non-negative number. Received \' + n + ".");\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === void 0)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++)\n args.push(arguments[i]);\n var doError = type === "error";\n var events = this._events;\n if (events !== void 0)\n doError = doError && events.error === void 0;\n else if (!doError)\n return false;\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n throw er;\n }\n var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));\n err.context = er;\n throw err;\n }\n var handler = events[type];\n if (handler === void 0)\n return false;\n if (typeof handler === "function") {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === void 0) {\n events = target._events = /* @__PURE__ */ Object.create(null);\n target._eventsCount = 0;\n } else {\n if (events.newListener !== void 0) {\n target.emit("newListener", type, listener.listener ? listener.listener : listener);\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === void 0) {\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === "function") {\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");\n w.name = "MaxListenersExceededWarning";\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: void 0, target, type, listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once2(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === void 0)\n return this;\n list = events[type];\n if (list === void 0)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit("removeListener", type, list.listener || listener);\n }\n } else if (typeof list !== "function") {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== void 0)\n this.emit("removeListener", type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === void 0)\n return this;\n if (events.removeListener === void 0) {\n if (arguments.length === 0) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== void 0) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key2;\n for (i = 0; i < keys.length; ++i) {\n key2 = keys[i];\n if (key2 === "removeListener")\n continue;\n this.removeAllListeners(key2);\n }\n this.removeAllListeners("removeListener");\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === "function") {\n this.removeListener(type, listeners);\n } else if (listeners !== void 0) {\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === void 0)\n return [];\n var evlistener = events[type];\n if (evlistener === void 0)\n return [];\n if (typeof evlistener === "function")\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === "function") {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== void 0) {\n var evlistener = events[type];\n if (typeof evlistener === "function") {\n return 1;\n } else if (evlistener !== void 0) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === "function") {\n emitter.removeListener("error", errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== "error") {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === "function") {\n eventTargetAgnosticAddListener(emitter, "error", handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === "function") {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === "function") {\n emitter.addEventListener(name, function wrapListener(arg) {\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError(\'The "emitter" argument must be of type EventEmitter. Received type \' + typeof emitter);\n }\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/stream-browser.js\nvar require_stream_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/stream-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = require_events().EventEmitter;\n }\n});\n\n// (disabled):node_modules/util/util.js\nvar require_util = __commonJS({\n "(disabled):node_modules/util/util.js"() {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/buffer_list.js\nvar require_buffer_list = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly)\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key2) {\n _defineProperty(target, key2, source[key2]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key2) {\n Object.defineProperty(target, key2, Object.getOwnPropertyDescriptor(source, key2));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require_buffer();\n var Buffer13 = _require.Buffer;\n var _require2 = require_util();\n var inspect = _require2.inspect;\n var custom = inspect && inspect.custom || "inspect";\n function copyBuffer(src, target, offset) {\n Buffer13.prototype.copy.call(src, target, offset);\n }\n module.exports = /* @__PURE__ */ function() {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: "push",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0)\n this.tail.next = entry;\n else\n this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: "unshift",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0)\n this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: "shift",\n value: function shift() {\n if (this.length === 0)\n return;\n var ret = this.head.data;\n if (this.length === 1)\n this.head = this.tail = null;\n else\n this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: "clear",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: "join",\n value: function join(s) {\n if (this.length === 0)\n return "";\n var p = this.head;\n var ret = "" + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: "concat",\n value: function concat(n) {\n if (this.length === 0)\n return Buffer13.alloc(0);\n var ret = Buffer13.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n }, {\n key: "consume",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n ret = this.shift();\n } else {\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: "first",\n value: function first() {\n return this.head.data;\n }\n }, {\n key: "_getString",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length)\n ret += str;\n else\n ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: "_getBuffer",\n value: function _getBuffer(n) {\n var ret = Buffer13.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf2 = p.data;\n var nb = n > buf2.length ? buf2.length : n;\n buf2.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf2.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf2.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n depth: 0,\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/destroy.js\nvar require_destroy = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function(err2) {\n if (!cb && err2) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self2, err) {\n emitErrorNT(self2, err);\n emitCloseNT(self2);\n }\n function emitCloseNT(self2) {\n if (self2._writableState && !self2._writableState.emitClose)\n return;\n if (self2._readableState && !self2._readableState.emitClose)\n return;\n self2.emit("close");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self2, err) {\n self2.emit("error", err);\n }\n function errorOrDestroy(stream, err) {\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy)\n stream.destroy(err);\n else\n stream.emit("error", err);\n }\n module.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n };\n }\n});\n\n// node_modules/readable-stream/errors-browser.js\nvar require_errors_browser = __commonJS({\n "node_modules/readable-stream/errors-browser.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n var codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === "string") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inheritsLoose(NodeError2, _Base);\n function NodeError2(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError2;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(", "), ", or ") + expected[len - 1];\n } else if (len === 2) {\n return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);\n } else {\n return "of ".concat(thing, " ").concat(expected[0]);\n }\n } else {\n return "of ".concat(thing, " ").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== "number") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) {\n return \'The value "\' + value + \'" is invalid for option "\' + name + \'"\';\n }, TypeError);\n createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) {\n var determiner;\n if (typeof expected === "string" && startsWith(expected, "not ")) {\n determiner = "must not be";\n expected = expected.replace(/^not /, "");\n } else {\n determiner = "must be";\n }\n var msg;\n if (endsWith(name, " argument")) {\n msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n } else {\n var type = includes(name, ".") ? "property" : "argument";\n msg = \'The "\'.concat(name, \'" \').concat(type, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n }\n msg += ". Received type ".concat(typeof actual);\n return msg;\n }, TypeError);\n createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");\n createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) {\n return "The " + name + " method is not implemented";\n });\n createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close");\n createErrorType("ERR_STREAM_DESTROYED", function(name) {\n return "Cannot call " + name + " after a stream was destroyed";\n });\n createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");\n createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");\n createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end");\n createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);\n createErrorType("ERR_UNKNOWN_ENCODING", function(arg) {\n return "Unknown encoding: " + arg;\n }, TypeError);\n createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");\n module.exports.codes = codes;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/state.js\nvar require_state = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/state.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : "highWaterMark";\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n return state.objectMode ? 16 : 16 * 1024;\n }\n module.exports = {\n getHighWaterMark\n };\n }\n});\n\n// node_modules/inherits/inherits_browser.js\nvar require_inherits_browser = __commonJS({\n "node_modules/inherits/inherits_browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n if (typeof Object.create === "function") {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n});\n\n// node_modules/util-deprecate/browser.js\nvar require_browser = __commonJS({\n "node_modules/util-deprecate/browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = deprecate;\n function deprecate(fn, msg) {\n if (config("noDeprecation")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config("throwDeprecation")) {\n throw new Error(msg);\n } else if (config("traceDeprecation")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n }\n function config(name) {\n try {\n if (!self.localStorage)\n return false;\n } catch (_) {\n return false;\n }\n var val = self.localStorage[name];\n if (val == null)\n return false;\n return String(val).toLowerCase() === "true";\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_writable.js\nvar require_stream_writable = __commonJS({\n "node_modules/readable-stream/lib/_stream_writable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Writable;\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function() {\n onCorkedFinish(_this, state);\n };\n }\n var Duplex;\n Writable.WritableState = WritableState;\n var internalUtil = {\n deprecate: require_browser()\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;\n var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;\n var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n require_inherits_browser()(Writable, Stream);\n function nop() {\n }\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.writableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex);\n this.finalCalled = false;\n this.needDrain = false;\n this.ending = false;\n this.ended = false;\n this.finished = false;\n this.destroyed = false;\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.length = 0;\n this.writing = false;\n this.corked = 0;\n this.sync = true;\n this.bufferProcessing = false;\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n this.writecb = null;\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n this.pendingcb = 0;\n this.prefinished = false;\n this.errorEmitted = false;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.bufferedRequestCount = 0;\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function() {\n try {\n Object.defineProperty(WritableState.prototype, "buffer", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")\n });\n } catch (_) {\n }\n })();\n var realHasInstance;\n if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object))\n return true;\n if (this !== Writable)\n return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance2(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || require_stream_duplex();\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this))\n return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n this.writable = true;\n if (options) {\n if (typeof options.write === "function")\n this._write = options.write;\n if (typeof options.writev === "function")\n this._writev = options.writev;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n if (typeof options.final === "function")\n this._final = options.final;\n }\n Stream.call(this);\n }\n Writable.prototype.pipe = function() {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n }\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== "string" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer13.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf)\n encoding = "buffer";\n else if (!encoding)\n encoding = state.defaultEncoding;\n if (typeof cb !== "function")\n cb = nop;\n if (state.ending)\n writeAfterEnd(this, cb);\n else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function() {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function() {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest)\n clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n if (typeof encoding === "string")\n encoding = encoding.toLowerCase();\n if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1))\n throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") {\n chunk = Buffer13.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = "buffer";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n if (!ret)\n state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed)\n state.onwrite(new ERR_STREAM_DESTROYED("write"));\n else if (writev)\n stream._writev(chunk, state.onwrite);\n else\n stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n process.nextTick(cb, er);\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== "function")\n throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er)\n onwriteError(stream, state, sync, er, cb);\n else {\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished)\n onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit("drain");\n }\n }\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf)\n allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, "", holder.finish);\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n if (state.writing) {\n break;\n }\n }\n if (entry === null)\n state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === "function") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== void 0)\n this.write(chunk, encoding);\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n if (!state.ending)\n endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function(err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit("prefinish");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === "function" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit("prefinish");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit("finish");\n if (state.autoDestroy) {\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished)\n process.nextTick(cb);\n else\n stream.once("finish", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._writableState === void 0) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n if (!this._writableState) {\n return;\n }\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_duplex.js\nvar require_stream_duplex = __commonJS({\n "node_modules/readable-stream/lib/_stream_duplex.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var objectKeys = Object.keys || function(obj) {\n var keys2 = [];\n for (var key2 in obj) {\n keys2.push(key2);\n }\n return keys2;\n };\n module.exports = Duplex;\n var Readable = require_stream_readable();\n var Writable = require_stream_writable();\n require_inherits_browser()(Duplex, Readable);\n {\n keys = objectKeys(Writable.prototype);\n for (v = 0; v < keys.length; v++) {\n method = keys[v];\n if (!Duplex.prototype[method])\n Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n var keys;\n var method;\n var v;\n function Duplex(options) {\n if (!(this instanceof Duplex))\n return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false)\n this.readable = false;\n if (options.writable === false)\n this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once("end", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function onend() {\n if (this._writableState.ended)\n return;\n process.nextTick(onEndNT, this);\n }\n function onEndNT(self2) {\n self2.end();\n }\n Object.defineProperty(Duplex.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return;\n }\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n }\n});\n\n// node_modules/safe-buffer/index.js\nvar require_safe_buffer = __commonJS({\n "node_modules/safe-buffer/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var buffer = require_buffer();\n var Buffer13 = buffer.Buffer;\n function copyProps(src, dst) {\n for (var key2 in src) {\n dst[key2] = src[key2];\n }\n }\n if (Buffer13.from && Buffer13.alloc && Buffer13.allocUnsafe && Buffer13.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer13(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer13.prototype);\n copyProps(Buffer13, SafeBuffer);\n SafeBuffer.from = function(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n throw new TypeError("Argument must not be a number");\n }\n return Buffer13(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function(size, fill, encoding) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n var buf2 = Buffer13(size);\n if (fill !== void 0) {\n if (typeof encoding === "string") {\n buf2.fill(fill, encoding);\n } else {\n buf2.fill(fill);\n }\n } else {\n buf2.fill(0);\n }\n return buf2;\n };\n SafeBuffer.allocUnsafe = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return Buffer13(size);\n };\n SafeBuffer.allocUnsafeSlow = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return buffer.SlowBuffer(size);\n };\n }\n});\n\n// node_modules/string_decoder/lib/string_decoder.js\nvar require_string_decoder = __commonJS({\n "node_modules/string_decoder/lib/string_decoder.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var Buffer13 = require_safe_buffer().Buffer;\n var isEncoding = Buffer13.isEncoding || function(encoding) {\n encoding = "" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n case "raw":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc)\n return "utf8";\n var retried;\n while (true) {\n switch (enc) {\n case "utf8":\n case "utf-8":\n return "utf8";\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return "utf16le";\n case "latin1":\n case "binary":\n return "latin1";\n case "base64":\n case "ascii":\n case "hex":\n return enc;\n default:\n if (retried)\n return;\n enc = ("" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== "string" && (Buffer13.isEncoding === isEncoding || !isEncoding(enc)))\n throw new Error("Unknown encoding: " + enc);\n return nenc || enc;\n }\n exports.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case "utf16le":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case "utf8":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case "base64":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer13.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function(buf2) {\n if (buf2.length === 0)\n return "";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf2);\n if (r === void 0)\n return "";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf2.length)\n return r ? r + this.text(buf2, i) : this.text(buf2, i);\n return r || "";\n };\n StringDecoder.prototype.end = utf8End;\n StringDecoder.prototype.text = utf8Text;\n StringDecoder.prototype.fillLast = function(buf2) {\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf2.length);\n this.lastNeed -= buf2.length;\n };\n function utf8CheckByte(byte) {\n if (byte <= 127)\n return 0;\n else if (byte >> 5 === 6)\n return 2;\n else if (byte >> 4 === 14)\n return 3;\n else if (byte >> 3 === 30)\n return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n function utf8CheckIncomplete(self2, buf2, i) {\n var j = buf2.length - 1;\n if (j < i)\n return 0;\n var nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2)\n nb = 0;\n else\n self2.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n function utf8CheckExtraBytes(self2, buf2, p) {\n if ((buf2[0] & 192) !== 128) {\n self2.lastNeed = 0;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 1 && buf2.length > 1) {\n if ((buf2[1] & 192) !== 128) {\n self2.lastNeed = 1;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 2 && buf2.length > 2) {\n if ((buf2[2] & 192) !== 128) {\n self2.lastNeed = 2;\n return "\\uFFFD";\n }\n }\n }\n }\n function utf8FillLast(buf2) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf2, p);\n if (r !== void 0)\n return r;\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, p, 0, buf2.length);\n this.lastNeed -= buf2.length;\n }\n function utf8Text(buf2, i) {\n var total = utf8CheckIncomplete(this, buf2, i);\n if (!this.lastNeed)\n return buf2.toString("utf8", i);\n this.lastTotal = total;\n var end = buf2.length - (total - this.lastNeed);\n buf2.copy(this.lastChar, 0, end);\n return buf2.toString("utf8", i, end);\n }\n function utf8End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + "\\uFFFD";\n return r;\n }\n function utf16Text(buf2, i) {\n if ((buf2.length - i) % 2 === 0) {\n var r = buf2.toString("utf16le", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf2[buf2.length - 1];\n return buf2.toString("utf16le", i, buf2.length - 1);\n }\n function utf16End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString("utf16le", 0, end);\n }\n return r;\n }\n function base64Text(buf2, i) {\n var n = (buf2.length - i) % 3;\n if (n === 0)\n return buf2.toString("base64", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf2[buf2.length - 1];\n } else {\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n }\n return buf2.toString("base64", i, buf2.length - n);\n }\n function base64End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed);\n return r;\n }\n function simpleWrite(buf2) {\n return buf2.toString(this.encoding);\n }\n function simpleEnd(buf2) {\n return buf2 && buf2.length ? this.write(buf2) : "";\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/end-of-stream.js\nvar require_end_of_stream = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop2() {\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === "function")\n return eos(stream, null, opts);\n if (!opts)\n opts = {};\n callback = once(callback || noop2);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable2 = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish2() {\n if (!stream.writable)\n onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish2() {\n writable2 = false;\n writableEnded = true;\n if (!readable)\n callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend2() {\n readable = false;\n readableEnded = true;\n if (!writable2)\n callback.call(stream);\n };\n var onerror = function onerror2(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose2() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable2 && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest2() {\n stream.req.on("finish", onfinish);\n };\n if (isRequest(stream)) {\n stream.on("complete", onfinish);\n stream.on("abort", onclose);\n if (stream.req)\n onrequest();\n else\n stream.on("request", onrequest);\n } else if (writable2 && !stream._writableState) {\n stream.on("end", onlegacyfinish);\n stream.on("close", onlegacyfinish);\n }\n stream.on("end", onend);\n stream.on("finish", onfinish);\n if (opts.error !== false)\n stream.on("error", onerror);\n stream.on("close", onclose);\n return function() {\n stream.removeListener("complete", onfinish);\n stream.removeListener("abort", onclose);\n stream.removeListener("request", onrequest);\n if (stream.req)\n stream.req.removeListener("finish", onfinish);\n stream.removeListener("end", onlegacyfinish);\n stream.removeListener("close", onlegacyfinish);\n stream.removeListener("finish", onfinish);\n stream.removeListener("end", onend);\n stream.removeListener("error", onerror);\n stream.removeListener("close", onclose);\n };\n }\n module.exports = eos;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/async_iterator.js\nvar require_async_iterator = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var _Object$setPrototypeO;\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n var finished = require_end_of_stream();\n var kLastResolve = Symbol("lastResolve");\n var kLastReject = Symbol("lastReject");\n var kError = Symbol("error");\n var kEnded = Symbol("ended");\n var kLastPromise = Symbol("lastPromise");\n var kHandlePromise = Symbol("handlePromise");\n var kStream = Symbol("stream");\n function createIterResult(value, done) {\n return {\n value,\n done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n process.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function(resolve, reject) {\n lastPromise.then(function() {\n if (iter[kEnded]) {\n resolve(createIterResult(void 0, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function() {\n });\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(void 0, true));\n }\n if (this[kStream].destroyed) {\n return new Promise(function(resolve, reject) {\n process.nextTick(function() {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(void 0, true));\n }\n });\n });\n }\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {\n return this;\n }), _defineProperty(_Object$setPrototypeO, "return", function _return() {\n var _this2 = this;\n return new Promise(function(resolve, reject) {\n _this2[kStream].destroy(null, function(err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(void 0, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function(err) {\n if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {\n var reject = iterator[kLastReject];\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(void 0, true));\n }\n iterator[kEnded] = true;\n });\n stream.on("readable", onReadable.bind(null, iterator));\n return iterator;\n };\n module.exports = createReadableStreamAsyncIterator;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/from-browser.js\nvar require_from_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/from-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = function() {\n throw new Error("Readable.from is not available in the browser");\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_readable.js\nvar require_stream_readable = __commonJS({\n "node_modules/readable-stream/lib/_stream_readable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Readable;\n var Duplex;\n Readable.ReadableState = ReadableState;\n var EE = require_events().EventEmitter;\n var EElistenerCount = function EElistenerCount2(emitter, type) {\n return emitter.listeners(type).length;\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var debugUtil = require_util();\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog("stream");\n } else {\n debug = function debug2() {\n };\n }\n var BufferList = require_buffer_list();\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n require_inherits_browser()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = ["error", "close", "destroy", "pause", "resume"];\n function prependListener(emitter, event, fn) {\n if (typeof emitter.prependListener === "function")\n return emitter.prependListener(event, fn);\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.readableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex);\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n this.sync = true;\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.destroyed = false;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.awaitDrain = 0;\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || require_stream_duplex();\n if (!(this instanceof Readable))\n return new Readable(options);\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n this.readable = true;\n if (options) {\n if (typeof options.read === "function")\n this._read = options.read;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n if (!this._readableState) {\n return;\n }\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n Readable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === "string") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer13.from(chunk, encoding);\n encoding = "";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n Readable.prototype.unshift = function(chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug("readableAddChunk", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck)\n er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer13.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted)\n errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else\n addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0)\n addChunk(stream, state, chunk, false);\n else\n maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit("data", chunk);\n } else {\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront)\n state.buffer.unshift(chunk);\n else\n state.buffer.push(chunk);\n if (state.needReadable)\n emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function() {\n return this._readableState.flowing === false;\n };\n Readable.prototype.setEncoding = function(enc) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n this._readableState.encoding = this._readableState.decoder.encoding;\n var p = this._readableState.buffer.head;\n var content = "";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== "")\n this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended)\n return 0;\n if (state.objectMode)\n return 1;\n if (n !== n) {\n if (state.flowing && state.length)\n return state.buffer.head.data.length;\n else\n return state.length;\n }\n if (n > state.highWaterMark)\n state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length)\n return n;\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n Readable.prototype.read = function(n) {\n debug("read", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0)\n state.emittedReadable = false;\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug("read: emitReadable", state.length, state.ended);\n if (state.length === 0 && state.ended)\n endReadable(this);\n else\n emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n if (n === 0 && state.ended) {\n if (state.length === 0)\n endReadable(this);\n return null;\n }\n var doRead = state.needReadable;\n debug("need readable", doRead);\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug("length less than watermark", doRead);\n }\n if (state.ended || state.reading) {\n doRead = false;\n debug("reading or ended", doRead);\n } else if (doRead) {\n debug("do read");\n state.reading = true;\n state.sync = true;\n if (state.length === 0)\n state.needReadable = true;\n this._read(state.highWaterMark);\n state.sync = false;\n if (!state.reading)\n n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0)\n ret = fromList(n, state);\n else\n ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n if (!state.ended)\n state.needReadable = true;\n if (nOrig !== n && state.ended)\n endReadable(this);\n }\n if (ret !== null)\n this.emit("data", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug("onEofChunk");\n if (state.ended)\n return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n emitReadable(stream);\n } else {\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n function emitReadable(stream) {\n var state = stream._readableState;\n debug("emitReadable", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug("emitReadable", state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug("emitReadable_", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit("readable");\n state.emittedReadable = false;\n }\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug("maybeReadMore read 0");\n stream.read(0);\n if (len === state.length)\n break;\n }\n state.readingMore = false;\n }\n Readable.prototype._read = function(n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()"));\n };\n Readable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted)\n process.nextTick(endFn);\n else\n src.once("end", endFn);\n dest.on("unpipe", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug("onunpipe");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug("onend");\n dest.end();\n }\n var ondrain = pipeOnDrain(src);\n dest.on("drain", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug("cleanup");\n dest.removeListener("close", onclose);\n dest.removeListener("finish", onfinish);\n dest.removeListener("drain", ondrain);\n dest.removeListener("error", onerror);\n dest.removeListener("unpipe", onunpipe);\n src.removeListener("end", onend);\n src.removeListener("end", unpipe);\n src.removeListener("data", ondata);\n cleanedUp = true;\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain))\n ondrain();\n }\n src.on("data", ondata);\n function ondata(chunk) {\n debug("ondata");\n var ret = dest.write(chunk);\n debug("dest.write", ret);\n if (ret === false) {\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug("false write response, pause", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n function onerror(er) {\n debug("onerror", er);\n unpipe();\n dest.removeListener("error", onerror);\n if (EElistenerCount(dest, "error") === 0)\n errorOrDestroy(dest, er);\n }\n prependListener(dest, "error", onerror);\n function onclose() {\n dest.removeListener("finish", onfinish);\n unpipe();\n }\n dest.once("close", onclose);\n function onfinish() {\n debug("onfinish");\n dest.removeListener("close", onclose);\n unpipe();\n }\n dest.once("finish", onfinish);\n function unpipe() {\n debug("unpipe");\n src.unpipe(dest);\n }\n dest.emit("pipe", src);\n if (!state.flowing) {\n debug("pipe resume");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug("pipeOnDrain", state.awaitDrain);\n if (state.awaitDrain)\n state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, "data")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n if (state.pipesCount === 0)\n return this;\n if (state.pipesCount === 1) {\n if (dest && dest !== state.pipes)\n return this;\n if (!dest)\n dest = state.pipes;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest)\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n }\n if (!dest) {\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit("unpipe", this, {\n hasUnpiped: false\n });\n }\n return this;\n }\n var index = indexOf(state.pipes, dest);\n if (index === -1)\n return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1)\n state.pipes = state.pipes[0];\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n };\n Readable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === "data") {\n state.readableListening = this.listenerCount("readable") > 0;\n if (state.flowing !== false)\n this.resume();\n } else if (ev === "readable") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug("on readable", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function(ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === "readable") {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function(ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === "readable" || ev === void 0) {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self2) {\n var state = self2._readableState;\n state.readableListening = self2.listenerCount("readable") > 0;\n if (state.resumeScheduled && !state.paused) {\n state.flowing = true;\n } else if (self2.listenerCount("data") > 0) {\n self2.resume();\n }\n }\n function nReadingNextTick(self2) {\n debug("readable nexttick read 0");\n self2.read(0);\n }\n Readable.prototype.resume = function() {\n var state = this._readableState;\n if (!state.flowing) {\n debug("resume");\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug("resume", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit("resume");\n flow(stream);\n if (state.flowing && !state.reading)\n stream.read(0);\n }\n Readable.prototype.pause = function() {\n debug("call pause flowing=%j", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug("pause");\n this._readableState.flowing = false;\n this.emit("pause");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug("flow", state.flowing);\n while (state.flowing && stream.read() !== null) {\n ;\n }\n }\n Readable.prototype.wrap = function(stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on("end", function() {\n debug("wrapped end");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length)\n _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on("data", function(chunk) {\n debug("wrapped data");\n if (state.decoder)\n chunk = state.decoder.write(chunk);\n if (state.objectMode && (chunk === null || chunk === void 0))\n return;\n else if (!state.objectMode && (!chunk || !chunk.length))\n return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n for (var i in stream) {\n if (this[i] === void 0 && typeof stream[i] === "function") {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n this._read = function(n2) {\n debug("wrapped _read", n2);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === "function") {\n Readable.prototype[Symbol.asyncIterator] = function() {\n if (createReadableStreamAsyncIterator === void 0) {\n createReadableStreamAsyncIterator = require_async_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, "readableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, "readableBuffer", {\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, "readableFlowing", {\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, "readableLength", {\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n function fromList(n, state) {\n if (state.length === 0)\n return null;\n var ret;\n if (state.objectMode)\n ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n if (state.decoder)\n ret = state.buffer.join("");\n else if (state.buffer.length === 1)\n ret = state.buffer.first();\n else\n ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug("endReadable", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug("endReadableNT", state.endEmitted, state.length);\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit("end");\n if (state.autoDestroy) {\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === "function") {\n Readable.from = function(iterable, opts) {\n if (from === void 0) {\n from = require_from_browser();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x)\n return i;\n }\n return -1;\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_transform.js\nvar require_stream_transform = __commonJS({\n "node_modules/readable-stream/lib/_stream_transform.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Transform;\n var _require$codes = require_errors_browser().codes;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;\n var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = require_stream_duplex();\n require_inherits_browser()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit("error", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform))\n return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n this._readableState.needReadable = true;\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === "function")\n this._transform = options.transform;\n if (typeof options.flush === "function")\n this._flush = options.flush;\n }\n this.on("prefinish", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === "function" && !this._readableState.destroyed) {\n this._flush(function(er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n Transform.prototype._transform = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"));\n };\n Transform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark)\n this._read(rs.highWaterMark);\n }\n };\n Transform.prototype._read = function(n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function(err, cb) {\n Duplex.prototype._destroy.call(this, err, function(err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er)\n return stream.emit("error", er);\n if (data != null)\n stream.push(data);\n if (stream._writableState.length)\n throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming)\n throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_passthrough.js\nvar require_stream_passthrough = __commonJS({\n "node_modules/readable-stream/lib/_stream_passthrough.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = PassThrough;\n var Transform = require_stream_transform();\n require_inherits_browser()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough))\n return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n };\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/pipeline.js\nvar require_pipeline = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var eos;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = require_errors_browser().codes;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop2(err) {\n if (err)\n throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on("close", function() {\n closed = true;\n });\n if (eos === void 0)\n eos = require_end_of_stream();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function(err) {\n if (err)\n return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function(err) {\n if (closed)\n return;\n if (destroyed)\n return;\n destroyed = true;\n if (isRequest(stream))\n return stream.abort();\n if (typeof stream.destroy === "function")\n return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED("pipe"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length)\n return noop2;\n if (typeof streams[streams.length - 1] !== "function")\n return noop2;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0]))\n streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS("streams");\n }\n var error;\n var destroys = streams.map(function(stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function(err) {\n if (!error)\n error = err;\n if (err)\n destroys.forEach(call);\n if (reading)\n return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n module.exports = pipeline;\n }\n});\n\n// node_modules/readable-stream/readable-browser.js\nvar require_readable_browser = __commonJS({\n "node_modules/readable-stream/readable-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports = module.exports = require_stream_readable();\n exports.Stream = exports;\n exports.Readable = exports;\n exports.Writable = require_stream_writable();\n exports.Duplex = require_stream_duplex();\n exports.Transform = require_stream_transform();\n exports.PassThrough = require_stream_passthrough();\n exports.finished = require_end_of_stream();\n exports.pipeline = require_pipeline();\n }\n});\n\n// node_modules/readable-web-to-node-stream/lib/index.js\nvar require_lib = __commonJS({\n "node_modules/readable-web-to-node-stream/lib/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n Object.defineProperty(exports, "__esModule", { value: true });\n exports.ReadableWebToNodeStream = void 0;\n var readable_stream_1 = require_readable_browser();\n var ReadableWebToNodeStream2 = class extends readable_stream_1.Readable {\n constructor(stream) {\n super();\n this.bytesRead = 0;\n this.released = false;\n this.reader = stream.getReader();\n }\n async _read() {\n if (this.released) {\n this.push(null);\n return;\n }\n this.pendingRead = this.reader.read();\n const data = await this.pendingRead;\n delete this.pendingRead;\n if (data.done || this.released) {\n this.push(null);\n } else {\n this.bytesRead += data.value.length;\n this.push(data.value);\n }\n }\n async waitForReadToComplete() {\n if (this.pendingRead) {\n await this.pendingRead;\n }\n }\n async close() {\n await this.syncAndRelease();\n }\n async syncAndRelease() {\n this.released = true;\n await this.waitForReadToComplete();\n await this.reader.releaseLock();\n }\n };\n exports.ReadableWebToNodeStream = ReadableWebToNodeStream2;\n }\n});\n\n// node_modules/base-x/src/index.js\nvar require_src = __commonJS({\n "node_modules/base-x/src/index.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function base(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError("Alphabet too long");\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + " is ambiguous");\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode2(source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError("Expected Uint8Array");\n }\n if (source.length === 0) {\n return "";\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i2 = 0;\n for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== "string") {\n throw new TypeError("Expected String");\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i2 = 0;\n for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n psz++;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j2 = zeroes;\n while (it4 !== size) {\n vch[j2++] = b256[it4++];\n }\n return vch;\n }\n function decode3(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error("Non-base" + BASE + " character");\n }\n return {\n encode: encode2,\n decodeUnsafe,\n decode: decode3\n };\n }\n module.exports = base;\n }\n});\n\n// node_modules/bs58/index.js\nvar require_bs58 = __commonJS({\n "node_modules/bs58/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var basex = require_src();\n var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";\n module.exports = basex(ALPHABET);\n }\n});\n\n// node_modules/jpeg-js/lib/encoder.js\nvar require_encoder = __commonJS({\n "node_modules/jpeg-js/lib/encoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var btoa = btoa || function(buf2) {\n return Buffer2.from(buf2).toString("base64");\n };\n function JPEGEncoder(quality) {\n var self2 = this;\n var fround = Math.round;\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT2;\n var UVDC_HT2;\n var YAC_HT2;\n var UVAC_HT2;\n var bitcode2 = new Array(65535);\n var category2 = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n var std_dc_luminance_nrcodes2 = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\n var std_dc_luminance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes2 = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\n var std_ac_luminance_values2 = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n var std_dc_chrominance_nrcodes2 = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\n var std_dc_chrominance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes2 = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\n var std_ac_chrominance_values2 = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n if (t < 1) {\n t = 1;\n } else if (t > 255) {\n t = 255;\n }\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n if (u < 1) {\n u = 1;\n } else if (u > 255) {\n u = 255;\n }\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n fdtbl_UV[k] = 1 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n k++;\n }\n }\n }\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n function initHuffmanTbl() {\n YDC_HT2 = computeHuffmanTbl(std_dc_luminance_nrcodes2, std_dc_luminance_values2);\n UVDC_HT2 = computeHuffmanTbl(std_dc_chrominance_nrcodes2, std_dc_chrominance_values2);\n YAC_HT2 = computeHuffmanTbl(std_ac_luminance_nrcodes2, std_ac_luminance_values2);\n UVAC_HT2 = computeHuffmanTbl(std_ac_chrominance_nrcodes2, std_ac_chrominance_values2);\n }\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n for (var nr = nrlower; nr < nrupper; nr++) {\n category2[32767 + nr] = cat;\n bitcode2[32767 + nr] = [];\n bitcode2[32767 + nr][1] = cat;\n bitcode2[32767 + nr][0] = nr;\n }\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category2[32767 + nrneg] = cat;\n bitcode2[32767 + nrneg] = [];\n bitcode2[32767 + nrneg][1] = cat;\n bitcode2[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[i + 256 >> 0] = 38470 * i;\n RGB_YUV_TABLE[i + 512 >> 0] = 7471 * i + 32768;\n RGB_YUV_TABLE[i + 768 >> 0] = -11059 * i;\n RGB_YUV_TABLE[i + 1024 >> 0] = -21709 * i;\n RGB_YUV_TABLE[i + 1280 >> 0] = 32768 * i + 8421375;\n RGB_YUV_TABLE[i + 1536 >> 0] = -27439 * i;\n RGB_YUV_TABLE[i + 1792 >> 0] = -5329 * i;\n }\n }\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & 1 << posval) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 255) {\n writeByte(255);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n function writeByte(value) {\n byteout.push(value);\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n var tmp10 = tmp0 + tmp3;\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n data[dataOff] = tmp10 + tmp11;\n data[dataOff + 4] = tmp10 - tmp11;\n var z1 = (tmp12 + tmp13) * 0.707106781;\n data[dataOff + 2] = tmp13 + z1;\n data[dataOff + 6] = tmp13 - z1;\n tmp10 = tmp4 + tmp5;\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n var z5 = (tmp10 - tmp12) * 0.382683433;\n var z2 = 0.5411961 * tmp10 + z5;\n var z4 = 1.306562965 * tmp12 + z5;\n var z3 = tmp11 * 0.707106781;\n var z11 = tmp7 + z3;\n var z13 = tmp7 - z3;\n data[dataOff + 5] = z13 + z2;\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n dataOff += 8;\n }\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n var tmp10p2 = tmp0p2 + tmp3p2;\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n data[dataOff] = tmp10p2 + tmp11p2;\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781;\n data[dataOff + 16] = tmp13p2 + z1p2;\n data[dataOff + 48] = tmp13p2 - z1p2;\n tmp10p2 = tmp4p2 + tmp5p2;\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433;\n var z2p2 = 0.5411961 * tmp10p2 + z5p2;\n var z4p2 = 1.306562965 * tmp12p2 + z5p2;\n var z3p2 = tmp11p2 * 0.707106781;\n var z11p2 = tmp7p2 + z3p2;\n var z13p2 = tmp7p2 - z3p2;\n data[dataOff + 40] = z13p2 + z2p2;\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n dataOff++;\n }\n var fDCTQuant2;\n for (i = 0; i < I64; ++i) {\n fDCTQuant2 = data[i] * fdtbl[i];\n outputfDCTQuant[i] = fDCTQuant2 > 0 ? fDCTQuant2 + 0.5 | 0 : fDCTQuant2 - 0.5 | 0;\n }\n return outputfDCTQuant;\n }\n function writeAPP0() {\n writeWord(65504);\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n }\n function writeAPP1(exifBuffer) {\n if (!exifBuffer)\n return;\n writeWord(65505);\n if (exifBuffer[0] === 69 && exifBuffer[1] === 120 && exifBuffer[2] === 105 && exifBuffer[3] === 102) {\n writeWord(exifBuffer.length + 2);\n } else {\n writeWord(exifBuffer.length + 5 + 2);\n writeByte(69);\n writeByte(120);\n writeByte(105);\n writeByte(102);\n writeByte(0);\n }\n for (var i = 0; i < exifBuffer.length; i++) {\n writeByte(exifBuffer[i]);\n }\n }\n function writeSOF0(width, height) {\n writeWord(65472);\n writeWord(17);\n writeByte(8);\n writeWord(height);\n writeWord(width);\n writeByte(3);\n writeByte(1);\n writeByte(17);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(1);\n writeByte(3);\n writeByte(17);\n writeByte(1);\n }\n function writeDQT() {\n writeWord(65499);\n writeWord(132);\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n function writeDHT() {\n writeWord(65476);\n writeWord(418);\n writeByte(0);\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes2[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values2[j]);\n }\n writeByte(16);\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes2[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values2[l]);\n }\n writeByte(1);\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes2[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values2[n]);\n }\n writeByte(17);\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes2[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values2[p]);\n }\n }\n function writeCOM(comments) {\n if (typeof comments === "undefined" || comments.constructor !== Array)\n return;\n comments.forEach((e) => {\n if (typeof e !== "string")\n return;\n writeWord(65534);\n var l = e.length;\n writeWord(l + 2);\n var i;\n for (i = 0; i < l; i++)\n writeByte(e.charCodeAt(i));\n });\n }\n function writeSOS() {\n writeWord(65498);\n writeWord(12);\n writeByte(3);\n writeByte(1);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(3);\n writeByte(17);\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0];\n var M16zeroes = HTAC[240];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n if (Diff == 0) {\n writeBits(HTDC[0]);\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category2[pos]]);\n writeBits(bitcode2[pos]);\n }\n var end0pos = 63;\n for (; end0pos > 0 && DU[end0pos] == 0; end0pos--) {\n }\n ;\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n for (; DU[i] == 0 && i <= end0pos; ++i) {\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category2[pos]]);\n writeBits(bitcode2[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n clt[i] = sfcc(i);\n }\n }\n this.encode = function(image, quality2) {\n var time_start = new Date().getTime();\n if (quality2)\n setQuality(quality2);\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n writeWord(65496);\n writeAPP0();\n writeCOM(image.comments);\n writeAPP1(image.exifBuffer);\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n bytenew = 0;\n bytepos = 7;\n this.encode.displayName = "_encode_";\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n var quadWidth = width * 4;\n var tripleWidth = width * 3;\n var x, y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n p = start;\n col = -1;\n row = 0;\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3;\n col = (pos & 7) * 4;\n p = start + row * quadWidth + col;\n if (y + row >= height) {\n p -= quadWidth * (y + 1 + row - height);\n }\n if (x + col >= quadWidth) {\n p -= x + col - quadWidth + 4;\n }\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n YDU[pos] = (RGB_YUV_TABLE[r] + RGB_YUV_TABLE[g + 256 >> 0] + RGB_YUV_TABLE[b + 512 >> 0] >> 16) - 128;\n UDU[pos] = (RGB_YUV_TABLE[r + 768 >> 0] + RGB_YUV_TABLE[g + 1024 >> 0] + RGB_YUV_TABLE[b + 1280 >> 0] >> 16) - 128;\n VDU[pos] = (RGB_YUV_TABLE[r + 1280 >> 0] + RGB_YUV_TABLE[g + 1536 >> 0] + RGB_YUV_TABLE[b + 1792 >> 0] >> 16) - 128;\n }\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT2, YAC_HT2);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT2, UVAC_HT2);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT2, UVAC_HT2);\n x += 32;\n }\n y += 8;\n }\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << bytepos + 1) - 1;\n writeBits(fillbits);\n }\n writeWord(65497);\n if (typeof module === "undefined")\n return new Uint8Array(byteout);\n return Buffer2.from(byteout);\n var jpegDataUri = "data:image/jpeg;base64," + btoa(byteout.join(""));\n byteout = [];\n var duration = new Date().getTime() - time_start;\n return jpegDataUri;\n };\n function setQuality(quality2) {\n if (quality2 <= 0) {\n quality2 = 1;\n }\n if (quality2 > 100) {\n quality2 = 100;\n }\n if (currentQuality == quality2)\n return;\n var sf = 0;\n if (quality2 < 50) {\n sf = Math.floor(5e3 / quality2);\n } else {\n sf = Math.floor(200 - quality2 * 2);\n }\n initQuantTables(sf);\n currentQuality = quality2;\n }\n function init3() {\n var time_start = new Date().getTime();\n if (!quality)\n quality = 50;\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n setQuality(quality);\n var duration = new Date().getTime() - time_start;\n }\n init3();\n }\n if (typeof module !== "undefined") {\n module.exports = encode2;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].encode = encode2;\n }\n function encode2(imgData, qu) {\n if (typeof qu === "undefined")\n qu = 50;\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(imgData, qu);\n return {\n data,\n width: imgData.width,\n height: imgData.height\n };\n }\n }\n});\n\n// node_modules/jpeg-js/lib/decoder.js\nvar require_decoder = __commonJS({\n "node_modules/jpeg-js/lib/decoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var JpegImage = function jpegImage() {\n "use strict";\n var dctZigZag = new Int32Array([\n 0,\n 1,\n 8,\n 16,\n 9,\n 2,\n 3,\n 10,\n 17,\n 24,\n 32,\n 25,\n 18,\n 11,\n 4,\n 5,\n 12,\n 19,\n 26,\n 33,\n 40,\n 48,\n 41,\n 34,\n 27,\n 20,\n 13,\n 6,\n 7,\n 14,\n 21,\n 28,\n 35,\n 42,\n 49,\n 56,\n 57,\n 50,\n 43,\n 36,\n 29,\n 22,\n 15,\n 23,\n 30,\n 37,\n 44,\n 51,\n 58,\n 59,\n 52,\n 45,\n 38,\n 31,\n 39,\n 46,\n 53,\n 60,\n 61,\n 54,\n 47,\n 55,\n 62,\n 63\n ]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n function constructor() {\n }\n function buildHuffmanTable2(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, opts) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH, maxV = frame.maxV;\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 255) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new Error("unexpected marker: " + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree, bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === "number")\n return node;\n if (typeof node !== "object")\n throw new Error("invalid huffman sequence");\n }\n return null;\n }\n function receive(length) {\n var n2 = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null)\n return;\n n2 = n2 << 1 | bit;\n length--;\n }\n return n2;\n }\n function receiveAndExtend(length) {\n var n2 = receive(length);\n if (n2 >= 1 << length - 1)\n return n2;\n return n2 + (-1 << length) + 1;\n }\n function decodeBaseline(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n zz[0] = component2.pred += diff;\n var k2 = 1;\n while (k2 < 64) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15)\n break;\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s);\n k2++;\n }\n }\n function decodeDCFirst(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n zz[0] = component2.pred += diff;\n }\n function decodeDCSuccessive(component2, zz) {\n zz[0] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component2, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k2 = spectralStart, e = spectralEnd;\n while (k2 <= e) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k2++;\n }\n }\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component2, zz) {\n var k2 = spectralStart, e = spectralEnd, r = 0;\n while (k2 <= e) {\n var z = dctZigZag[k2];\n var direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0:\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1)\n throw new Error("invalid ACn encoding");\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n r--;\n if (r === 0)\n successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n break;\n }\n k2++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0)\n successiveACState = 0;\n }\n }\n function decodeMcu(component2, decode4, mcu2, row, col) {\n var mcuRow = mcu2 / mcusPerLine | 0;\n var mcuCol = mcu2 % mcusPerLine;\n var blockRow = mcuRow * component2.v + row;\n var blockCol = mcuCol * component2.h + col;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component2, decode4, mcu2) {\n var blockRow = mcu2 / component2.blocksPerLine | 0;\n var blockCol = mcu2 % component2.blocksPerLine;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0, marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval)\n resetInterval = mcuExpected;\n var h, v;\n while (mcu < mcuExpected) {\n for (i = 0; i < componentsLength; i++)\n components[i].pred = 0;\n eobrun = 0;\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n if (mcu === mcuExpected)\n break;\n }\n }\n if (mcu === mcuExpected) {\n do {\n if (data[offset] === 255) {\n if (data[offset + 1] !== 0) {\n break;\n }\n }\n offset += 1;\n } while (offset < data.length - 2);\n }\n bitsCount = 0;\n marker = data[offset] << 8 | data[offset + 1];\n if (marker < 65280) {\n throw new Error("marker was not found");\n }\n if (marker >= 65488 && marker <= 65495) {\n offset += 2;\n } else\n break;\n }\n return offset - startOffset;\n }\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var R = new Int32Array(64), r = new Uint8Array(64);\n function quantizeAndInverse(zz, dataOut, dataIn) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var p = dataIn;\n var i2;\n for (i2 = 0; i2 < 64; i2++)\n p[i2] = zz[i2] * qt[i2];\n for (i2 = 0; i2 < 8; ++i2) {\n var row = 8 * i2;\n if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 && p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 && p[7 + row] == 0) {\n t = dctSqrt2 * p[0 + row] + 512 >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 + row] + 128 >> 8;\n v1 = dctSqrt2 * p[4 + row] + 128 >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8;\n v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n for (i2 = 0; i2 < 8; ++i2) {\n var col = i2;\n if (p[1 * 8 + col] == 0 && p[2 * 8 + col] == 0 && p[3 * 8 + col] == 0 && p[4 * 8 + col] == 0 && p[5 * 8 + col] == 0 && p[6 * 8 + col] == 0 && p[7 * 8 + col] == 0) {\n t = dctSqrt2 * dataIn[i2 + 0] + 8192 >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12;\n v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n for (i2 = 0; i2 < 64; ++i2) {\n var sample2 = 128 + (p[i2] + 8 >> 4);\n dataOut[i2] = sample2 < 0 ? 0 : sample2 > 255 ? 255 : sample2;\n }\n }\n requestMemoryAllocation(samplesPerLine * blocksPerColumn * 8);\n var i, j;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (i = 0; i < 8; i++)\n lines.push(new Uint8Array(samplesPerLine));\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n var offset = 0, sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var line = lines[scanLine + j];\n for (i = 0; i < 8; i++)\n line[sample + i] = r[offset++];\n }\n }\n }\n return lines;\n }\n function clampTo8bit(a) {\n return a < 0 ? 0 : a > 255 ? 255 : a;\n }\n constructor.prototype = {\n load: function load(path) {\n var xhr = new XMLHttpRequest();\n xhr.open("GET", path, true);\n xhr.responseType = "arraybuffer";\n xhr.onload = function() {\n var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n this.parse(data);\n if (this.onload)\n this.onload();\n }.bind(this);\n xhr.send(null);\n },\n parse: function parse(data) {\n var maxResolutionInPixels = this.opts.maxResolutionInMP * 1e3 * 1e3;\n var offset = 0, length = data.length;\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length2 = readUint16();\n var array = data.subarray(offset, offset + length2 - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame2) {\n var maxH2 = 1, maxV2 = 1;\n var component2, componentId2;\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n if (maxH2 < component2.h)\n maxH2 = component2.h;\n if (maxV2 < component2.v)\n maxV2 = component2.v;\n }\n }\n var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / maxH2);\n var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / maxV2);\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component2.h / maxH2);\n var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component2.v / maxV2);\n var blocksPerLineForMcu = mcusPerLine * component2.h;\n var blocksPerColumnForMcu = mcusPerColumn * component2.v;\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\n var blocks = [];\n requestMemoryAllocation(blocksToAllocate * 256);\n for (var i2 = 0; i2 < blocksPerColumnForMcu; i2++) {\n var row = [];\n for (var j2 = 0; j2 < blocksPerLineForMcu; j2++)\n row.push(new Int32Array(64));\n blocks.push(row);\n }\n component2.blocksPerLine = blocksPerLine;\n component2.blocksPerColumn = blocksPerColumn;\n component2.blocks = blocks;\n }\n }\n frame2.maxH = maxH2;\n frame2.maxV = maxV2;\n frame2.mcusPerLine = mcusPerLine;\n frame2.mcusPerColumn = mcusPerColumn;\n }\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [], frames = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n var malformedDataOffset = -1;\n this.comments = [];\n if (fileMarker != 65496) {\n throw new Error("SOI not found");\n }\n fileMarker = readUint16();\n while (fileMarker != 65497) {\n var i, j, l;\n switch (fileMarker) {\n case 65280:\n break;\n case 65504:\n case 65505:\n case 65506:\n case 65507:\n case 65508:\n case 65509:\n case 65510:\n case 65511:\n case 65512:\n case 65513:\n case 65514:\n case 65515:\n case 65516:\n case 65517:\n case 65518:\n case 65519:\n case 65534:\n var appData = readDataBlock();\n if (fileMarker === 65534) {\n var comment = String.fromCharCode.apply(null, appData);\n this.comments.push(comment);\n }\n if (fileMarker === 65504) {\n if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n if (fileMarker === 65505) {\n if (appData[0] === 69 && appData[1] === 120 && appData[2] === 105 && appData[3] === 102 && appData[4] === 0) {\n this.exifBuffer = appData.subarray(5, appData.length);\n }\n }\n if (fileMarker === 65518) {\n if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) {\n adobe = {\n version: appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n case 65499:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n requestMemoryAllocation(64 * 4);\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else\n throw new Error("DQT: invalid table spec");\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 65472:\n case 65473:\n case 65474:\n readUint16();\n frame = {};\n frame.extended = fileMarker === 65473;\n frame.progressive = fileMarker === 65474;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = {};\n frame.componentsOrder = [];\n var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\n if (pixelsInFrame > maxResolutionInPixels) {\n var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\n throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\n }\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n var qId = data[offset + 2];\n if (h <= 0 || v <= 0) {\n throw new Error("Invalid sampling factor, expected values above 0");\n }\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId\n };\n offset += 3;\n }\n prepareComponents(frame);\n frames.push(frame);\n break;\n case 65476:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n requestMemoryAllocation(16 + codeLengthSum);\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable2(codeLengths, huffmanValues);\n }\n break;\n case 65501:\n readUint16();\n resetInterval = readUint16();\n break;\n case 65500:\n readUint16();\n readUint16();\n break;\n case 65498:\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n component = frame.components[data[offset++]];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, this.opts);\n offset += processed;\n break;\n case 65535:\n if (data[offset] !== 255) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n break;\n } else if (fileMarker === 224 || fileMarker == 225) {\n if (malformedDataOffset !== -1) {\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\n }\n malformedDataOffset = offset - 1;\n const nextOffset = readUint16();\n if (data[offset + nextOffset - 2] === 255) {\n offset += nextOffset - 2;\n break;\n }\n }\n throw new Error("unknown JPEG marker " + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n if (frames.length != 1)\n throw new Error("only single frame JPEGs supported");\n for (var i = 0; i < frames.length; i++) {\n var cp = frames[i].components;\n for (var j in cp) {\n cp[j].quantizationTable = quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (var i = 0; i < frame.componentsOrder.length; i++) {\n var component = frame.components[frame.componentsOrder[i]];\n this.components.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV\n });\n }\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width, scaleY = this.height / height;\n var component1, component2, component3, component4;\n var component1Line, component2Line, component3Line, component4Line;\n var x, y;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var dataLength = width * height * this.components.length;\n requestMemoryAllocation(dataLength);\n var data = new Uint8Array(dataLength);\n switch (this.components.length) {\n case 1:\n component1 = this.components[0];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 2:\n component1 = this.components[0];\n component2 = this.components[1];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n Y = component2Line[0 | x * component2.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 3:\n colorTransform = true;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n R = component1Line[0 | x * component1.scaleX * scaleX];\n G = component2Line[0 | x * component2.scaleX * scaleX];\n B = component3Line[0 | x * component3.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n R = clampTo8bit(Y + 1.402 * (Cr - 128));\n G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n B = clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = R;\n data[offset++] = G;\n data[offset++] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe)\n throw new Error("Unsupported color mode (4 components)");\n colorTransform = false;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n component4 = this.components[3];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n component4Line = component4.lines[0 | y * component4.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n C = component1Line[0 | x * component1.scaleX * scaleX];\n M = component2Line[0 | x * component2.scaleX * scaleX];\n Ye = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = 255 - C;\n data[offset++] = 255 - M;\n data[offset++] = 255 - Ye;\n data[offset++] = 255 - K;\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n return data;\n },\n copyToImageData: function copyToImageData(imageData, formatAsRGBA) {\n var width = imageData.width, height = imageData.height;\n var imageDataArray = imageData.data;\n var data = this.getData(width, height);\n var i = 0, j = 0, x, y;\n var Y, K, C, M, R, G, B;\n switch (this.components.length) {\n case 1:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n Y = data[i++];\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 3:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n R = data[i++];\n G = data[i++];\n B = data[i++];\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 4:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n C = data[i++];\n M = data[i++];\n Y = data[i++];\n K = data[i++];\n R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n }\n };\n var totalBytesAllocated = 0;\n var maxMemoryUsageBytes = 0;\n function requestMemoryAllocation(increaseAmount = 0) {\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\n }\n totalBytesAllocated = totalMemoryImpactBytes;\n }\n constructor.resetMaxMemoryUsage = function(maxMemoryUsageBytes_) {\n totalBytesAllocated = 0;\n maxMemoryUsageBytes = maxMemoryUsageBytes_;\n };\n constructor.getBytesAllocated = function() {\n return totalBytesAllocated;\n };\n constructor.requestMemoryAllocation = requestMemoryAllocation;\n return constructor;\n }();\n if (typeof module !== "undefined") {\n module.exports = decode3;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].decode = decode3;\n }\n function decode3(jpegData, userOpts = {}) {\n var defaultOpts = {\n colorTransform: void 0,\n useTArray: false,\n formatAsRGBA: true,\n tolerantDecoding: true,\n maxResolutionInMP: 100,\n maxMemoryUsageInMB: 512\n };\n var opts = { ...defaultOpts, ...userOpts };\n var arr = new Uint8Array(jpegData);\n var decoder = new JpegImage();\n decoder.opts = opts;\n JpegImage.resetMaxMemoryUsage(opts.maxMemoryUsageInMB * 1024 * 1024);\n decoder.parse(arr);\n var channels = opts.formatAsRGBA ? 4 : 3;\n var bytesNeeded = decoder.width * decoder.height * channels;\n try {\n JpegImage.requestMemoryAllocation(bytesNeeded);\n var image = {\n width: decoder.width,\n height: decoder.height,\n exifBuffer: decoder.exifBuffer,\n data: opts.useTArray ? new Uint8Array(bytesNeeded) : Buffer2.alloc(bytesNeeded)\n };\n if (decoder.comments.length > 0) {\n image["comments"] = decoder.comments;\n }\n } catch (err) {\n if (err instanceof RangeError) {\n throw new Error("Could not allocate enough memory for the image. Required: " + bytesNeeded);\n }\n if (err instanceof ReferenceError) {\n if (err.message === "Buffer is not defined") {\n throw new Error("Buffer is not globally defined in this environment. Consider setting useTArray to true");\n }\n }\n throw err;\n }\n decoder.copyToImageData(image, opts.formatAsRGBA);\n return image;\n }\n }\n});\n\n// node_modules/jpeg-js/index.js\nvar require_jpeg_js = __commonJS({\n "node_modules/jpeg-js/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var encode2 = require_encoder();\n var decode3 = require_decoder();\n module.exports = {\n encode: encode2,\n decode: decode3\n };\n }\n});\n\n// src/processor.worker.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/platform.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/requests.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar xmlhttprequest;\nif (false)\n xmlhttprequest = typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : typeof GM != "undefined" ? GM.xmlHttpRequest : window["GM_xmlhttpRequest"];\nvar GM_fetch = (...[url, opt, lisn]) => {\n function blobTo(to, blob) {\n if (to == "arrayBuffer" && blob.arrayBuffer) {\n const ret = blob.arrayBuffer();\n if (ret)\n return ret;\n }\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = function(event) {\n if (!event)\n return;\n if (to == "base64")\n resolve(event.target.result);\n else\n resolve(event.target.result);\n };\n if (to == "arrayBuffer")\n fileReader.readAsArrayBuffer(blob);\n else if (to == "base64")\n fileReader.readAsDataURL(blob);\n else if (to == "text")\n fileReader.readAsText(blob, "utf-8");\n else\n reject(new Error("unknown to"));\n });\n }\n return new Promise((resolve, reject) => {\n const gmopt = {\n url: url.toString(),\n data: opt?.body,\n responseType: "blob",\n headers: opt?.headers,\n method: opt?.method || "GET",\n ...lisn ? {\n onprogress: (prog) => {\n if (prog.loaded != prog.total && prog.total != 0)\n lisn.dispatchEvent(new CustomEvent("progress", { detail: [prog.loaded, prog.total] }));\n }\n } : {},\n onload: (resp) => {\n if (resp.status / 100 >= 4) {\n reject(new Error("Server Error: " + resp.status));\n return;\n }\n const blob = resp.response;\n const ref = resp;\n ref.blob = () => Promise.resolve(blob);\n ref.arrayBuffer = () => blobTo("arrayBuffer", blob);\n ref.text = () => blobTo("text", blob);\n ref.json = async () => JSON.parse(await blobTo("text", blob));\n resolve(resp);\n },\n ontimeout: () => reject(new Error("fetch timeout")),\n onerror: (...args) => {\n reject(new Error("fetch error"));\n },\n onabort: () => reject(new Error("fetch abort"))\n };\n xmlhttprequest(gmopt);\n });\n};\n\n// src/platform.ts\nvar lqueue = {};\nvar localSet = (key2, value) => localStorage.setItem("__pee__" + key2, JSON.stringify(value));\nvar port1;\nconsole.log("worker", false);\nvar msgBuff = [];\nvar setupPort = (port) => {\n port1 = port;\n port1.onmessage = (ev) => {\n lqueue[ev.data.id](ev.data);\n };\n if (true) {\n for (const msg of msgBuff) {\n port.postMessage(msg[0], { transfer: msg[1] });\n }\n msgBuff = [];\n }\n};\nif (true) {\n port1 = {\n onmessage(ev) {\n lqueue[ev.data.id](ev.data);\n },\n postMessage(msg, tr) {\n msgBuff.push([msg, tr]);\n }\n };\n}\nvar gid = 0;\nvar sendCmd = (cmd, tr, overwrite = false, todelete = false) => {\n const prom = new Promise((_) => {\n const id = gid++;\n if (overwrite)\n cmd.id = id;\n lqueue[id] = (e) => {\n _(e.res);\n if (todelete)\n delete lqueue[id];\n };\n port1.postMessage({ id, ...cmd }, tr || []);\n });\n return prom;\n};\nvar bridge = (name, f) => {\n if (false)\n return f;\n if (false)\n return f;\n return (...args) => {\n return sendCmd({ name, args });\n };\n};\nvar Bridged = (ctor) => {\n const keys = Object.getOwnPropertyNames(ctor).filter((k) => typeof ctor[k] == "function");\n for (const k of keys)\n ctor[k] = bridge(k, ctor[k]);\n};\nif (false) {\n}\nvar Platform = class {\n static async openInTab(src, opts) {\n if (false) {\n return GM.openInTab(src, opts);\n }\n const obj = false ? chrome : browser;\n let i;\n if (opts.insert)\n i = (await obj.tabs.getCurrent()).index + 1;\n return obj.tabs.create({ active: opts.active, url: src, index: i });\n }\n static async getValue(key2, def) {\n const isinls = "__pee__" + key2 in localStorage;\n let ret;\n if (isinls) {\n let it = localStorage.getItem("__pee__" + key2);\n if (it === "undefined")\n it = null;\n ret = { ...def, ...JSON.parse(it || "{}") };\n } else\n ret = def;\n if (true) {\n if (isinls) {\n delete localStorage["__pee__" + key2];\n await chrome.storage.local.set({\n [key2]: JSON.stringify(ret)\n });\n } else {\n const d = await chrome.storage.local.get([key2]);\n if (typeof d[key2] == "string")\n return { ...def, ...await JSON.parse("" + d[key2] || "{}") };\n }\n }\n return ret;\n }\n static setValue(name, val) {\n localSet(name, val);\n }\n};\nPlatform.cmdid = 0;\nPlatform = __decorateClass([\n Bridged\n], Platform);\nvar corsFetch = async (input, init3, lsn) => {\n const id = gid++;\n let transfer = [];\n if (init3?.body) {\n if (false) {\n [init3.body, transfer] = await braveserialize(init3.body);\n }\n }\n const prom = new Promise((_, rej) => {\n let gcontroller;\n let buffer = [];\n let finished = false;\n const rs = new ReadableStream({\n start(controller) {\n gcontroller = controller;\n buffer.forEach((b) => gcontroller?.enqueue(b));\n buffer = [];\n if (finished) {\n gcontroller.close();\n }\n }\n });\n let s;\n s = 0;\n const cmdbuff = [];\n lqueue[id] = async (e) => {\n if (e.progress) {\n if (lsn)\n lsn.dispatchEvent(new CustomEvent("progress", { detail: e.progress }));\n }\n if (e.pushData) {\n if (e.s > s) {\n let idx = 0;\n while (idx < cmdbuff.length) {\n if (cmdbuff[idx].s > e.s)\n break;\n idx++;\n }\n cmdbuff.splice(idx, 0, e);\n return;\n }\n const processCmd = (e2) => {\n if (e2.pushData.data) {\n const data = new Uint8Array(e2.pushData.data);\n if (gcontroller)\n gcontroller.enqueue(data);\n else\n buffer.push(data);\n } else {\n if (gcontroller)\n gcontroller?.close();\n else\n finished = true;\n }\n };\n await processCmd(e);\n s++;\n while (cmdbuff[0]?.s == s) {\n await processCmd(cmdbuff.shift());\n s++;\n }\n }\n if (e.setRes) {\n const arrayBuffer = async () => {\n const r = rs.getReader();\n await sendCmd({ name: "fullyRead", fid: id });\n const abs = [];\n let res;\n do {\n res = await r.read();\n if (res.done)\n break;\n abs.push(res.value);\n } while (!res.done);\n const sum = abs.reduce((a, b) => a + b.byteLength, 0);\n const ret = new Uint8Array(sum);\n abs.reduce((ptr, arr) => {\n ret.set(arr, ptr);\n return ptr + arr.byteLength;\n }, 0);\n r.releaseLock();\n return ret;\n };\n const blob = async () => new Blob([await arrayBuffer()]);\n const text = async () => new TextDecoder().decode(await arrayBuffer());\n const json = async () => JSON.parse(await text());\n if (e.ok)\n _({\n body: rs,\n ok: e.ok,\n headers: e.headers,\n redirected: e.redirected,\n type: e.type,\n url: e.url,\n status: e.status,\n bodyUsed: e.bodyUsed,\n statusText: e.statusText,\n clone() {\n return this;\n },\n arrayBuffer,\n blob,\n text,\n json,\n async formData() {\n return new FormData();\n }\n });\n else {\n rej(new Error(`${e.url} - ${e.status}`));\n }\n }\n };\n port1.postMessage({\n id,\n name: "corsFetch",\n args: [input, init3]\n }, transfer);\n });\n return prom;\n};\nasync function getHeaders(s) {\n if (false)\n return headerStringToObject(await GM_head(s));\n const res = await ifetch(s, {\n method: "HEAD"\n });\n return res.headers;\n}\nasync function ifetch(...[url, opt, lisn]) {\n if (true)\n return corsFetch(url.toString(), opt, lisn);\n return GM_fetch(url, opt, lisn);\n}\nasync function* streamRemote(url, chunkSize = 72 * 1024, fetchRestOnNonCanceled = true) {\n let size = Number.POSITIVE_INFINITY;\n let ptr = 0;\n let fetchSize = chunkSize;\n while (ptr != size) {\n let obj;\n const fres = await ifetch(url, { headers: { range: `bytes=${ptr}-${ptr + fetchSize - 1}` } });\n if (false) {\n obj = headerStringToObject(fres.responseHeaders);\n } else {\n obj = fres.headers;\n }\n if (!("content-length" in obj)) {\n console.warn("no content lenght???", url);\n break;\n }\n if ("content-range" in obj) {\n size = +obj["content-range"].split("/")[1];\n }\n const len = +obj["content-length"];\n ptr += len;\n if (fetchRestOnNonCanceled)\n fetchSize = size;\n const val = Buffer2.from(await fres.arrayBuffer());\n const e = yield val;\n if (e) {\n break;\n }\n }\n}\n\n// src/stores.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/store/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/internal/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === "function";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function");\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nvar resolved_promise = Promise.resolve();\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nvar SvelteElement;\nif (typeof HTMLElement === "function") {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: "open" });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n for (const key2 in this.$$.slotted) {\n this.appendChild(this.$$.slotted[key2]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n\n// node_modules/svelte/store/index.mjs\nvar subscriber_queue = [];\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe2(run2, invalidate = noop) {\n const subscriber = [run2, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run2(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe: subscribe2 };\n}\n\n// src/stores.ts\nvar localLoad = async (key2, def) => {\n const ret = await Platform.getValue(key2, def);\n return ret;\n};\nvar localSet2 = (key2, value) => {\n if (true) {\n return;\n }\n if (true)\n chrome.storage.local.set({ [key2]: JSON.stringify(value) });\n else\n localStorage.setItem("__pee__" + key2, JSON.stringify(value));\n};\nvar initial_settings = {\n loop: true,\n dh: false,\n pmeth: 5,\n xpv: false,\n xpi: false,\n hyd: false,\n notcata: false,\n ak: "",\n auto_embed: 0,\n auto_tags: "",\n te: false,\n eye: false,\n ca: false,\n pre: false,\n prev: false,\n sh: false,\n ep: false,\n tm: false,\n dvc: false,\n expte: false,\n mdist: -1,\n phash: false,\n hotlink: false,\n jpeg: false,\n vercheck: false,\n cache: void 0,\n fhost: 0,\n maxe: 5,\n conc: 8,\n ho: false,\n blacklist: [],\n rsources: []\n};\nvar settings = writable();\nvar appState = writable({\n isCatalog: false,\n is4chanX: false,\n akValid: false,\n herror: "",\n client: null,\n processing: 0,\n processed: 0,\n foundPosts: []\n});\nsettings.subscribe((newVal) => {\n if (newVal)\n localSet2("settingsv2", newVal);\n});\n\n// src/pngv3.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer3 = __toESM(require_buffer(), 1);\n\n// src/png.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_crc_32 = __toESM(require_crc32(), 1);\nvar import_buffer = __toESM(require_buffer(), 1);\nvar PNGDecoder = class {\n constructor(reader, strict = true) {\n this.reader = reader;\n this.strict = strict;\n this.req = 8;\n this.ptr = 8;\n this.stopped = false;\n this.repr = import_buffer.Buffer.from([]);\n }\n async catchup() {\n while (this.repr.byteLength < this.req) {\n const chunk = await this.reader.read();\n if (chunk.done) {\n if (this.strict)\n throw new Error(`Unexpected EOF, got ${this.repr.byteLength}, required ${this.req}, ${chunk.value}`);\n this.stopped = true;\n return;\n }\n this.repr = import_buffer.Buffer.concat([this.repr, chunk.value]);\n }\n }\n async *chunks() {\n while (true) {\n this.req += 8;\n await this.catchup();\n if (this.stopped)\n break;\n const length = this.repr.readUInt32BE(this.ptr);\n const name = this.repr.slice(this.ptr + 4, this.ptr + 8).toString();\n this.ptr += 4;\n this.req += length + 4;\n await this.catchup();\n yield [\n name,\n this.repr.slice(this.ptr, this.ptr + length + 4),\n this.ptr + length > this.repr.length ? -1 : this.repr.readUInt32BE(this.ptr + length + 4),\n this.ptr\n ];\n if (this.stopped)\n break;\n this.ptr += length + 8;\n if (name == "IEND")\n break;\n }\n }\n async dtor() {\n }\n};\nvar PNGEncoder = class {\n constructor(bytes) {\n this.writer = bytes.getWriter();\n this.writer.write(import_buffer.Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]));\n }\n async insertchunk(chunk) {\n let b = import_buffer.Buffer.alloc(4);\n const buff = chunk[1];\n b.writeInt32BE(buff.length - 4, 0);\n await this.writer.write(b);\n await this.writer.write(buff);\n b = import_buffer.Buffer.alloc(4);\n b.writeInt32BE((0, import_crc_32.buf)(buff), 0);\n await this.writer.write(b);\n }\n async dtor() {\n this.writer.releaseLock();\n }\n};\n\n// src/utils.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer2 = __toESM(require_buffer(), 1);\n\n// src/assets/hasembed.png\nvar hasembed_default = __toBinary("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");\n\n// src/filehosts.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction parseForm(data) {\n const form = new FormData();\n Object.entries(data).filter(([key2, value]) => value !== null).map(([key2, value]) => form.append(key2, value));\n return form;\n}\nvar lolisafe = (domain, serving = domain) => ({\n domain,\n serving,\n async uploadFile(f) {\n const resp = await ifetch(`https://${domain}/api/upload`, {\n headers: {\n accept: "application/json"\n },\n "body": parseForm({\n reqtype: "fileupload",\n "files[]": new File([f], "f.pee")\n }),\n "method": "POST"\n });\n const res = await resp.json();\n return res.files.map((e) => e.url)[0];\n }\n});\nvar catbox = (domain, serving) => ({\n domain,\n serving,\n async uploadFile(inj) {\n const resp = await ifetch(`https://${domain}/user/api.php`, {\n method: "POST",\n body: parseForm({\n reqtype: "fileupload",\n fileToUpload: inj\n })\n });\n return resp.text();\n }\n});\nvar filehosts = [\n catbox("catbox.moe", "files.catbox.moe"),\n catbox("pomf.moe", "a.pomf.cat"),\n lolisafe("take-me-to.space"),\n lolisafe("zz.ht", "z.zz.fo")\n];\n\n// node_modules/file-type/browser.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer4 = __toESM(require_buffer(), 1);\nvar import_readable_web_to_node_stream = __toESM(require_lib(), 1);\n\n// node_modules/file-type/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer3 = __toESM(require_buffer(), 1);\n\n// node_modules/token-types/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar ieee754 = __toESM(require_ieee754(), 1);\nvar import_node_buffer = __toESM(require_buffer(), 1);\nvar AnsiStringType = class {\n constructor(len) {\n this.len = len;\n }\n static decode(buffer, offset, until) {\n let str = "";\n for (let i = offset; i < until; ++i) {\n str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));\n }\n return str;\n }\n static inRange(a, min, max) {\n return min <= a && a <= max;\n }\n static codePointToString(cp) {\n if (cp <= 65535) {\n return String.fromCharCode(cp);\n } else {\n cp -= 65536;\n return String.fromCharCode((cp >> 10) + 55296, (cp & 1023) + 56320);\n }\n }\n static singleByteDecoder(bite) {\n if (AnsiStringType.inRange(bite, 0, 127)) {\n return bite;\n }\n const codePoint = AnsiStringType.windows1252[bite - 128];\n if (codePoint === null) {\n throw Error("invaliding encoding");\n }\n return codePoint;\n }\n get(buffer, offset = 0) {\n return AnsiStringType.decode(buffer, offset, offset + this.len);\n }\n};\nAnsiStringType.windows1252 = [\n 8364,\n 129,\n 8218,\n 402,\n 8222,\n 8230,\n 8224,\n 8225,\n 710,\n 8240,\n 352,\n 8249,\n 338,\n 141,\n 381,\n 143,\n 144,\n 8216,\n 8217,\n 8220,\n 8221,\n 8226,\n 8211,\n 8212,\n 732,\n 8482,\n 353,\n 8250,\n 339,\n 157,\n 382,\n 376,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 174,\n 175,\n 176,\n 177,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 187,\n 188,\n 189,\n 190,\n 191,\n 192,\n 193,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 219,\n 220,\n 221,\n 222,\n 223,\n 224,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 235,\n 236,\n 237,\n 238,\n 239,\n 240,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250,\n 251,\n 252,\n 253,\n 254,\n 255\n];\n\n// node_modules/strtok3/lib/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/ReadStreamTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/EndOfFileStream.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/Deferred.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\nvar maxStreamReadSize = 1 * 1024 * 1024;\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\nvar import_node_buffer2 = __toESM(require_buffer(), 1);\n\n// node_modules/strtok3/lib/BufferTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/util.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/supported.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar extensions = [\n "jpg",\n "png",\n "apng",\n "gif",\n "webp",\n "flif",\n "xcf",\n "cr2",\n "cr3",\n "orf",\n "arw",\n "dng",\n "nef",\n "rw2",\n "raf",\n "tif",\n "bmp",\n "icns",\n "jxr",\n "psd",\n "indd",\n "zip",\n "tar",\n "rar",\n "gz",\n "bz2",\n "7z",\n "dmg",\n "mp4",\n "mid",\n "mkv",\n "webm",\n "mov",\n "avi",\n "mpg",\n "mp2",\n "mp3",\n "m4a",\n "oga",\n "ogg",\n "ogv",\n "opus",\n "flac",\n "wav",\n "spx",\n "amr",\n "pdf",\n "epub",\n "elf",\n "exe",\n "swf",\n "rtf",\n "wasm",\n "woff",\n "woff2",\n "eot",\n "ttf",\n "otf",\n "ico",\n "flv",\n "ps",\n "xz",\n "sqlite",\n "nes",\n "crx",\n "xpi",\n "cab",\n "deb",\n "ar",\n "rpm",\n "Z",\n "lz",\n "cfb",\n "mxf",\n "mts",\n "blend",\n "bpg",\n "docx",\n "pptx",\n "xlsx",\n "3gp",\n "3g2",\n "jp2",\n "jpm",\n "jpx",\n "mj2",\n "aif",\n "qcp",\n "odt",\n "ods",\n "odp",\n "xml",\n "mobi",\n "heic",\n "cur",\n "ktx",\n "ape",\n "wv",\n "dcm",\n "ics",\n "glb",\n "pcap",\n "dsf",\n "lnk",\n "alias",\n "voc",\n "ac3",\n "m4v",\n "m4p",\n "m4b",\n "f4v",\n "f4p",\n "f4b",\n "f4a",\n "mie",\n "asf",\n "ogm",\n "ogx",\n "mpc",\n "arrow",\n "shp",\n "aac",\n "mp1",\n "it",\n "s3m",\n "xm",\n "ai",\n "skp",\n "avif",\n "eps",\n "lzh",\n "pgp",\n "asar",\n "stl",\n "chm",\n "3mf",\n "zst",\n "jxl",\n "vcf"\n];\nvar mimeTypes = [\n "image/jpeg",\n "image/png",\n "image/gif",\n "image/webp",\n "image/flif",\n "image/x-xcf",\n "image/x-canon-cr2",\n "image/x-canon-cr3",\n "image/tiff",\n "image/bmp",\n "image/vnd.ms-photo",\n "image/vnd.adobe.photoshop",\n "application/x-indesign",\n "application/epub+zip",\n "application/x-xpinstall",\n "application/vnd.oasis.opendocument.text",\n "application/vnd.oasis.opendocument.spreadsheet",\n "application/vnd.oasis.opendocument.presentation",\n "application/vnd.openxmlformats-officedocument.wordprocessingml.document",\n "application/vnd.openxmlformats-officedocument.presentationml.presentation",\n "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",\n "application/zip",\n "application/x-tar",\n "application/x-rar-compressed",\n "application/gzip",\n "application/x-bzip2",\n "application/x-7z-compressed",\n "application/x-apple-diskimage",\n "application/x-apache-arrow",\n "video/mp4",\n "audio/midi",\n "video/x-matroska",\n "video/webm",\n "video/quicktime",\n "video/vnd.avi",\n "audio/vnd.wave",\n "audio/qcelp",\n "audio/x-ms-asf",\n "video/x-ms-asf",\n "application/vnd.ms-asf",\n "video/mpeg",\n "video/3gpp",\n "audio/mpeg",\n "audio/mp4",\n "audio/opus",\n "video/ogg",\n "audio/ogg",\n "application/ogg",\n "audio/x-flac",\n "audio/ape",\n "audio/wavpack",\n "audio/amr",\n "application/pdf",\n "application/x-elf",\n "application/x-msdownload",\n "application/x-shockwave-flash",\n "application/rtf",\n "application/wasm",\n "font/woff",\n "font/woff2",\n "application/vnd.ms-fontobject",\n "font/ttf",\n "font/otf",\n "image/x-icon",\n "video/x-flv",\n "application/postscript",\n "application/eps",\n "application/x-xz",\n "application/x-sqlite3",\n "application/x-nintendo-nes-rom",\n "application/x-google-chrome-extension",\n "application/vnd.ms-cab-compressed",\n "application/x-deb",\n "application/x-unix-archive",\n "application/x-rpm",\n "application/x-compress",\n "application/x-lzip",\n "application/x-cfb",\n "application/x-mie",\n "application/mxf",\n "video/mp2t",\n "application/x-blender",\n "image/bpg",\n "image/jp2",\n "image/jpx",\n "image/jpm",\n "image/mj2",\n "audio/aiff",\n "application/xml",\n "application/x-mobipocket-ebook",\n "image/heif",\n "image/heif-sequence",\n "image/heic",\n "image/heic-sequence",\n "image/icns",\n "image/ktx",\n "application/dicom",\n "audio/x-musepack",\n "text/calendar",\n "text/vcard",\n "model/gltf-binary",\n "application/vnd.tcpdump.pcap",\n "audio/x-dsf",\n "application/x.ms.shortcut",\n "application/x.apple.alias",\n "audio/x-voc",\n "audio/vnd.dolby.dd-raw",\n "audio/x-m4a",\n "image/apng",\n "image/x-olympus-orf",\n "image/x-sony-arw",\n "image/x-adobe-dng",\n "image/x-nikon-nef",\n "image/x-panasonic-rw2",\n "image/x-fujifilm-raf",\n "video/x-m4v",\n "video/3gpp2",\n "application/x-esri-shape",\n "audio/aac",\n "audio/x-it",\n "audio/x-s3m",\n "audio/x-xm",\n "video/MP1S",\n "video/MP2P",\n "application/vnd.sketchup.skp",\n "image/avif",\n "application/x-lzh-compressed",\n "application/pgp-encrypted",\n "application/x-asar",\n "model/stl",\n "application/vnd.ms-htmlhelp",\n "model/3mf",\n "image/jxl",\n "application/zstd"\n];\n\n// node_modules/file-type/core.js\nvar supportedExtensions = new Set(extensions);\nvar supportedMimeTypes = new Set(mimeTypes);\n\n// src/utils.ts\nvar csettings;\nsettings.subscribe((b) => {\n csettings = b;\n});\nvar threadDataCache = writable();\nvar cthreadDataCache;\nthreadDataCache.subscribe((newval) => {\n cthreadDataCache = newval;\n});\nvar decodeCoom3Payload = async (buff) => {\n if (!csettings)\n throw new Error("Settings uninit");\n const allowed_domains = filehosts.map((e) => e.serving.replaceAll(".", "\\\\."));\n const pees = buff.toString().split(" ").slice(0, csettings.maxe).filter((e) => allowed_domains.some((v) => e.match(`https://(.*\\\\.)?${v}/`)));\n return (await Promise.all(pees.map(async (pee) => {\n try {\n const m = pee.match(/(?https?):\\/\\/(?.*?)(?\\/.*)/);\n if (!m)\n return;\n const { domain, file } = m.groups;\n const headers = await getHeaders(pee);\n const res = await ifetch(pee, {\n headers: { range: "bytes=0-32767", "user-agent": "" },\n mode: "cors",\n referrerPolicy: "no-referrer"\n });\n const size = +headers["content-length"] || 0;\n const header = import_buffer2.Buffer.from(await res.arrayBuffer());\n let hptr = 0;\n if (header.slice(0, 4).toString() == "PEE\\0")\n hptr += 4;\n else\n return;\n const flags = header[hptr];\n const hasFn = !!(flags & 1);\n const hasTags = !!(flags & 2);\n const hasThumbnail = !!(flags & 4);\n let [ptr, ptr2] = [hptr + 1, hptr + 1];\n let fn = "embedded";\n let tags = [];\n let thumb = import_buffer2.Buffer.from(hasembed_default);\n if (hasFn) {\n while (header[ptr2] != 0)\n ptr2++;\n fn = header.slice(ptr, ptr2).toString();\n ptr = ++ptr2;\n }\n if (hasTags) {\n while (header[ptr2] != 0)\n ptr2++;\n tags = header.slice(ptr, ptr2).toString().split(/\\s+/);\n }\n let thumbsize = 0;\n if (hasThumbnail) {\n thumbsize = header.readInt32LE(ptr);\n ptr += 4;\n if (header.byteLength >= ptr + thumbsize)\n thumb = header.slice(ptr, ptr + thumbsize);\n else\n thumb = import_buffer2.Buffer.from(await (await ifetch(pee, { headers: { "user-agent": "", range: `bytes=${ptr}-${ptr + thumbsize}` } })).arrayBuffer());\n ptr += thumbsize;\n }\n const unzip = { url: pee, headers: { "user-agent": "", range: `bytes=${ptr}-${size - 1}` } };\n let data;\n data = unzip;\n if (size < 3072) {\n thumb = data = import_buffer2.Buffer.from(await (await ifetch(unzip.url, { headers: unzip.headers })).arrayBuffer());\n }\n return {\n filename: fn,\n data,\n thumbnail: thumb\n };\n } catch (e) {\n console.warn(e);\n }\n }))).filter((e) => e).map((e) => e);\n};\n\n// src/pngv3.ts\nvar bs58 = __toESM(require_bs58(), 1);\n\n// src/bitstream.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar revbyte = (n, len = 8) => {\n let acc = 0;\n let n2 = n;\n let len2 = len;\n while (len2) {\n acc = acc * 2 + (n2 & 1);\n n2 >>= 1;\n len2--;\n }\n return acc;\n};\nvar BitstreamReader = class {\n constructor() {\n this.buffers = [];\n this.bufferedLength = 0;\n this._offsetIntoBuffer = 0;\n this._bufferIndex = 0;\n this._offset = 0;\n this.skippedLength = 0;\n }\n get bufferIndex() {\n return this._bufferIndex;\n }\n get offset() {\n return this._offset;\n }\n get available() {\n return this.bufferedLength - this.skippedLength;\n }\n getBit(offset) {\n const byte = this.buffers[0][offset >> 3];\n return +!!(byte & 1 << (offset & 7));\n }\n readSync(length) {\n let value = 0;\n if (this._offset >> 3 > this.buffers[0].byteLength) {\n throw "Out of data";\n }\n for (let i = length - 1; i >= 0; --i) {\n value = value * 2 + this.getBit(this._offset + i);\n }\n this._offset += length;\n this.bufferedLength -= length;\n return value;\n }\n addBuffer(buffer) {\n this.buffers.push(buffer);\n this.bufferedLength += buffer.length * 8;\n }\n};\nvar BitstreamWriter = class {\n constructor(stream, bufferSize = 1) {\n this.stream = stream;\n this.pendingBits = 0;\n this.bufferoffset = 0;\n this._offset = 0;\n bufferSize = 1;\n this.buffer = new Uint8Array(bufferSize);\n }\n get offset() {\n return this._offset;\n }\n get byteOffset() {\n return this.pendingBits;\n }\n end() {\n this.flush();\n }\n flush() {\n this.stream.write(new Uint8Array(this.buffer));\n this.bufferoffset = 0;\n this.buffer.fill(0);\n }\n setBit(b) {\n let byte = this.buffer[0];\n byte |= b << (this._offset & 7);\n this.buffer[0] = byte;\n this._offset += 1;\n if (++this.bufferoffset == this.buffer.length * 8) {\n this.flush();\n }\n }\n write(length, value) {\n while (length--) {\n this.setBit(value & 1);\n value >>= 1;\n }\n }\n};\n\n// src/dh-deflate.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar TINF_OK = 0;\nvar Tree = class {\n constructor() {\n this.table = new Uint16Array(16);\n this.trans = new Uint16Array(288);\n }\n};\nvar getPathTo = (tree, value) => {\n if (tree[0] === value)\n return "0";\n if (tree[1] === value)\n return "1";\n let p;\n if (typeof tree[0] != "number")\n p = getPathTo(tree[0], value);\n let b = "0";\n if (!p) {\n if (tree[1] && typeof tree[1] != "number")\n p = getPathTo(tree[1], value);\n b = "1";\n }\n if (p)\n return b + p;\n};\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n let p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\nvar Data = class {\n constructor(source, dests, to_hide, hidden) {\n this.source = source;\n this.dests = dests;\n this.to_hide = to_hide;\n this.hidden = hidden;\n this.pathMap = /* @__PURE__ */ new Map();\n this.dest = [];\n this.ltree = new Tree();\n this.dtree = new Tree();\n }\n computeReverse() {\n this.rltree = buildHuffmanTable(this.ltree.table, this.ltree.trans)[0];\n this.rdtree = buildHuffmanTable(this.dtree.table, this.dtree.trans)[0];\n this.adists = new Set(this.rdtree.flat(16));\n }\n};\nvar sltree = new Tree();\nvar sdtree = new Tree();\nvar rltree;\nvar rdtree;\nvar sadist;\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\nvar clcidx = new Uint8Array([\n 16,\n 17,\n 18,\n 0,\n 8,\n 7,\n 9,\n 6,\n 10,\n 5,\n 11,\n 4,\n 12,\n 3,\n 13,\n 2,\n 14,\n 1,\n 15\n]);\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\nfunction tinf_build_bits_base(bits, base, delta, first) {\n let i, sum;\n for (i = 0; i < delta; ++i)\n bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i)\n bits[i + delta] = i / delta | 0;\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\nfunction tinf_build_fixed_trees(lt, dt) {\n let i;\n for (i = 0; i < 7; ++i)\n lt.table[i] = 0;\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n for (i = 0; i < 24; ++i)\n lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i)\n lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i)\n lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i)\n lt.trans[24 + 144 + 8 + i] = 144 + i;\n for (i = 0; i < 5; ++i)\n dt.table[i] = 0;\n dt.table[5] = 32;\n for (i = 0; i < 32; ++i)\n dt.trans[i] = i;\n}\nvar offs = new Uint16Array(16);\nfunction tinf_build_tree(t, lengths2, off, num) {\n let i, sum;\n for (i = 0; i < 16; ++i)\n t.table[i] = 0;\n for (i = 0; i < num; ++i)\n t.table[lengths2[off + i]]++;\n t.table[0] = 0;\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n for (i = 0; i < num; ++i) {\n if (lengths2[off + i])\n t.trans[offs[lengths2[off + i]]++] = i;\n }\n}\nfunction tinf_getbit(d) {\n const v = d.source.readSync(1);\n return v;\n}\nvar loff = 0;\nvar loffs = [];\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n const v = d.source.readSync(num) + base;\n loff = v;\n loffs.push(v);\n if (loffs.length > 4) {\n loffs.shift();\n }\n return v;\n}\nfunction tinf_decode_symbol(d, t, copy = true, ext = {}) {\n let sum = 0, cur = 0, len = 0;\n let s = 0;\n do {\n const b = d.source.readSync(1);\n copy && d.hidden?.write(1, b);\n s = s << 1 | b;\n cur = 2 * cur + b;\n ++len;\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n ext.length = len;\n ext.sym = s;\n return t.trans[sum + cur];\n}\nfunction tinf_decode_trees(d, lt, dt, copy = true) {\n let i, num, length;\n const hlit = tinf_read_bits(d, 5, 257);\n copy && d.hidden?.write(5, hlit - 257);\n const hdist = tinf_read_bits(d, 5, 1);\n copy && d.hidden?.write(5, hdist - 1);\n const hclen = tinf_read_bits(d, 4, 4);\n copy && d.hidden?.write(4, hclen - 4);\n for (i = 0; i < 19; ++i)\n lengths[i] = 0;\n for (i = 0; i < hclen; ++i) {\n const clen = tinf_read_bits(d, 3, 0);\n copy && d.hidden?.write(3, clen);\n lengths[clcidx[i]] = clen;\n }\n tinf_build_tree(code_tree, lengths, 0, 19);\n for (num = 0; num < hlit + hdist; ) {\n const sym = tinf_decode_symbol(d, code_tree, copy);\n let prev;\n switch (sym) {\n case 16:\n prev = lengths[num - 1];\n length = tinf_read_bits(d, 2, 3);\n copy && d.hidden?.write(2, length - 3);\n for (; length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n length = tinf_read_bits(d, 3, 3);\n copy && d.hidden?.write(3, length - 3);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n length = tinf_read_bits(d, 7, 11);\n copy && d.hidden?.write(7, length - 11);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n lengths[num++] = sym;\n break;\n }\n }\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\nvar get_symbol = (value, bits_table, base_table) => {\n let i = 0;\n for (i = 0; i < base_table.length; ++i) {\n if (base_table[i] > value) {\n i--;\n return [i, bits_table[i], value - base_table[i]];\n }\n }\n i--;\n return [i, bits_table[i], value - base_table[i]];\n};\nvar encode_symbol = (sym, tree, pathMap) => {\n const code = getPathTo(tree, sym);\n const v = {\n length: code?.length,\n val: parseInt(code, 2)\n };\n return v;\n};\nvar capacity = 0;\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n let sym = tinf_decode_symbol(d, lt);\n if (sym === 256) {\n return TINF_OK;\n }\n if (sym < 256) {\n d.dest.push(sym);\n } else {\n sym -= 257;\n const length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n if (length_bits[sym])\n d.hidden?.write(length_bits[sym], length - length_base[sym]);\n const ext = { length: 0, sym: 0 };\n const dist = tinf_decode_symbol(d, dt, false, ext);\n let backoffset = tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n const offs2 = d.dest.length - backoffset;\n let match;\n const skip = !d.to_hide || d.to_hide && d.to_hide instanceof BitstreamReader && d.to_hide.available == 0;\n if (!skip && (match = Buffer2.from(d.dest.slice(offs2, offs2 + length))).length == length) {\n let begin = d.dest.length - 32768;\n if (begin < 0)\n begin = 0;\n let matches = [];\n let o = 0;\n const slic = Buffer2.from(d.dest.slice(begin + o, d.dest.length));\n while (begin + o < d.dest.length) {\n const r = slic.slice(o, d.dest.length).indexOf(match);\n if (r >= 0) {\n matches.push(r + begin + o);\n o += r;\n } else {\n break;\n }\n o++;\n }\n if (matches.length > 1) {\n matches = matches.map((e) => -(e - d.dest.length)).filter((e) => {\n const [dsym2] = get_symbol(e, dist_bits, dist_base);\n return d.adists.has(dsym2);\n });\n matches.reverse();\n const v = Math.floor(Math.log2(matches.length));\n capacity += v;\n if (d.to_hide instanceof BitstreamReader) {\n if (d.to_hide.available) {\n const s = d.to_hide.readSync(Math.min(d.to_hide.available, v));\n backoffset = matches[s];\n }\n } else {\n const idx = matches.indexOf(backoffset);\n d.to_hide.write(v, idx);\n }\n }\n }\n const [dsym, dlen, doff] = get_symbol(backoffset, dist_bits, dist_base);\n const encdist = encode_symbol(dsym, d.rdtree, d.pathMap);\n d.hidden?.write(encdist.length, revbyte(encdist.val, encdist.length));\n d.hidden?.write(dlen, doff);\n for (let i = offs2; i < offs2 + length; ++i) {\n d.dest.push(d.dest[i]);\n }\n }\n }\n}\nfunction tinf_inflate_uncompressed_block(d) {\n if (d.source.offset & 7)\n d.source.readSync(8 - d.source.offset & 7);\n if (d.hidden && d.hidden.offset & 7)\n d.hidden?.write(8 - d.hidden.offset & 7, 0);\n const length = d.source.readSync(16);\n d.hidden?.write(16, length);\n const invlength = d.source.readSync(16);\n d.hidden?.write(16, invlength);\n if (length !== (~invlength & 65535)) {\n return -4;\n }\n for (let i = length; i; --i) {\n const v = d.source.readSync(8);\n d.dest.push(v);\n d.hidden?.write(8, v);\n }\n return TINF_OK;\n}\nfunction tinf_uncompress(source, decompressed, to_hide, hidden, opt = 0) {\n const decomp = decompressed ? new BitstreamWriter({ write: decompressed }) : null;\n const hid = hidden && new BitstreamWriter({ write: hidden }, 4);\n const d = new Data(source, decomp, to_hide, hid);\n let res;\n let bfinal, btype;\n do {\n bfinal = tinf_getbit(d);\n d.hidden?.write(1, bfinal);\n btype = tinf_read_bits(d, 2, 0);\n d.hidden?.write(2, btype);\n switch (btype) {\n case 0:\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n d.rdtree = rdtree;\n d.rltree = rltree;\n d.adists = sadist;\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n tinf_decode_trees(d, d.ltree, d.dtree);\n d.computeReverse();\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = -2;\n }\n if (res !== TINF_OK)\n throw new Error("Data error " + res);\n } while (!bfinal);\n decomp?.end();\n hid?.end();\n}\ntinf_build_fixed_trees(sltree, sdtree);\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\nrltree = buildHuffmanTable(sltree.table, sltree.trans)[0];\nrdtree = buildHuffmanTable(sdtree.table, sdtree.trans)[0];\nsadist = new Set(rdtree.flat(16));\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\n// src/pngv3.ts\nvar csettings2;\nsettings.subscribe((b) => {\n csettings2 = b;\n});\nvar CUM3 = import_buffer3.Buffer.from("doo\\0m");\nvar CUM4 = import_buffer3.Buffer.from("voo\\0m");\nvar CUM5 = import_buffer3.Buffer.from("boo\\0");\nvar CUM6 = import_buffer3.Buffer.from("Creation Time\\0");\nvar CUM7 = import_buffer3.Buffer.from("Software\\0");\nvar BufferReadStream = (b) => {\n const ret = new ReadableStream({\n pull(cont) {\n cont.enqueue(b);\n cont.close();\n }\n });\n return ret;\n};\nvar password = import_buffer3.Buffer.from("NOA");\nvar xor = (a, p) => {\n let n = 0;\n for (let i = 0; i < a.byteLength; ++i) {\n a[i] ^= p[n];\n n++;\n n %= p.byteLength;\n }\n};\nvar prefs = {\n "files.catbox.moe": "c",\n "a.pomf.cat": "p",\n "take-me-to.space": "t",\n "z.zz.fo": "z"\n};\nvar rprefs = {\n "c": "files.catbox.moe",\n "p": "a.pomf.cat",\n "t": "take-me-to.space",\n "z": "z.zz.fo"\n};\nvar extractFromRawDeflate = (b) => {\n const src = new BitstreamReader();\n src.addBuffer(b);\n const chnks = [];\n const hidden = new BitstreamWriter({\n write(chunk) {\n for (const i of chunk) {\n if (i >= 32 && i <= 128)\n chnks.push(i);\n else\n throw "Finish";\n }\n }\n });\n try {\n tinf_uncompress(src, void 0, hidden, void 0);\n } catch (e) {\n if (e == "Finish")\n return import_buffer3.Buffer.from(chnks);\n }\n return false;\n};\nvar extract = async (png, doextract = true) => {\n const reader = BufferReadStream(png).getReader();\n const sneed = new PNGDecoder(reader, false);\n const ret = [];\n let w;\n if (!csettings2)\n throw new Error("Settings uninit");\n try {\n let complete = false;\n const idats = [];\n for await (const [name, chunk, crc, offset] of sneed.chunks()) {\n let buff;\n switch (name) {\n case "tEXt":\n buff = chunk;\n if (buff.slice(4, 4 + CUM3.length).equals(CUM3)) {\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(buff.slice(4 + CUM3.length));\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM4.length).equals(CUM4)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM4.length);\n xor(passed, password);\n const k = await decodeCoom3Payload(passed);\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM5.length).equals(CUM5)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM5.length);\n const decoded = import_buffer3.Buffer.from(passed.toString(), "base64").toString().split(" ").map((e) => {\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n }\n if (w = [CUM6, CUM7].find((e) => buff.slice(4, 4 + e.length).equals(e))) {\n const passed = buff.slice(4 + w.length);\n if (!passed.toString().match(/^[0-9a-zA-Z+/=]+$/g))\n continue;\n const decoders = [\n (b) => import_buffer3.Buffer.from(b.toString(), "base64").toString(),\n (b) => import_buffer3.Buffer.from(bs58.decode(passed.toString())).toString()\n ];\n for (const d of decoders) {\n try {\n const decoded = d(passed).split(" ").map((e) => {\n if (!(e[0] in rprefs))\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n } catch (e) {\n }\n }\n }\n break;\n case "IDAT":\n if (ret.length)\n return ret;\n buff = chunk;\n idats.push(buff.slice(4));\n break;\n case "IEND":\n complete = true;\n default:\n break;\n }\n }\n if (idats.length) {\n let decoded;\n if ((decoded = extractFromRawDeflate(import_buffer3.Buffer.concat(idats).slice(2))) === false)\n return false;\n const dec = decoded.toString().split(" ").map((e) => {\n if (!(e[0] in rprefs) || e.length < 5)\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (doextract)\n return decodeCoom3Payload(import_buffer3.Buffer.from(dec));\n return true;\n }\n } catch (e) {\n if (e != "Uhh")\n console.error(e);\n } finally {\n reader.releaseLock();\n }\n};\nvar buildChunk = (tag, data) => {\n const ret = import_buffer3.Buffer.alloc(data.byteLength + 4);\n ret.write(tag.slice(0, 4), 0);\n data.copy(ret, 4);\n return ret;\n};\nvar BufferWriteStream = () => {\n let b = import_buffer3.Buffer.from([]);\n const ret = new WritableStream({\n write(chunk) {\n b = import_buffer3.Buffer.concat([b, chunk]);\n console.log("finished appending");\n }\n });\n return [ret, () => b];\n};\nvar embedInRawDeflate = (b, h) => {\n const src = new BitstreamReader();\n const hid = new BitstreamReader();\n hid.addBuffer(h);\n src.addBuffer(b);\n const chnks = [];\n tinf_uncompress(src, void 0, hid, (c) => chnks.push(c));\n return import_buffer3.Buffer.concat(chnks);\n};\nvar inject_data = async (container, injb) => {\n injb = import_buffer3.Buffer.concat([injb, import_buffer3.Buffer.from([0])]);\n if (!csettings2)\n throw new Error("Settings uninit");\n if (csettings2.pmeth < 5) {\n let magic = false;\n const [writestream2, extract6] = BufferWriteStream();\n const encoder = new PNGEncoder(writestream2);\n const decoder = new PNGDecoder(container.stream().getReader());\n for await (const [name, chunk, crc, offset] of decoder.chunks()) {\n if (magic && name != "IDAT")\n break;\n if (!magic && name == "IDAT") {\n const passed = import_buffer3.Buffer.from(injb);\n switch (csettings2.pmeth) {\n case 0:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM3, passed])), 0, 0]);\n break;\n case 1:\n xor(passed, password);\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM4, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 2:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM5, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 3:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM6, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 4:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM7, import_buffer3.Buffer.from(bs58.encode(passed))])), 0, 0]);\n break;\n }\n magic = true;\n }\n await encoder.insertchunk([name, chunk, crc, offset]);\n }\n await encoder.insertchunk([\n "IEND",\n buildChunk("IEND", import_buffer3.Buffer.from([])),\n 0,\n 0\n ]);\n return extract6();\n }\n let pdec = new PNGDecoder(container.stream().getReader());\n const concat = [];\n for await (const chk of pdec.chunks())\n if (chk[0] == "IDAT")\n concat.push(chk[1].slice(4));\n const comp = import_buffer3.Buffer.concat(concat);\n const head = comp.slice(0, 2);\n const chksum = comp.slice(-4);\n const idatblk = embedInRawDeflate(comp.slice(2, -4), injb);\n const [writestream, extract5] = BufferWriteStream();\n const penc = new PNGEncoder(writestream);\n pdec = new PNGDecoder(container.stream().getReader());\n let ins = false;\n for await (const chk of pdec.chunks()) {\n if (chk[0] != "IDAT") {\n await penc.insertchunk(chk);\n } else {\n if (!ins) {\n await penc.insertchunk(["IDAT", import_buffer3.Buffer.concat([import_buffer3.Buffer.from("IDAT"), head, idatblk, chksum]), 0, 0]);\n ins = true;\n }\n }\n }\n await penc.dtor();\n console.log("Finished writing");\n return extract5();\n};\nvar inject = async (container, links) => {\n links = links.map((link) => {\n for (const h of filehosts) {\n if (link.includes(h.serving)) {\n const end = link.split("/").slice(-1)[0];\n return `${prefs[h.serving]}${end}`;\n }\n }\n return "";\n });\n const injb = import_buffer3.Buffer.from(links.join(" "));\n return inject_data(container, injb);\n};\nvar has_embed = async (png) => {\n const r = await extract(png, false);\n return !!r;\n};\nvar pngv3_default = {\n extract,\n has_embed,\n inject,\n match: (fn) => !!fn.match(/\\.png$/)\n};\n\n// src/jpg.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer4 = __toESM(require_buffer(), 1);\n\n// src/f5stego.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction* f5get() {\n let extrBit = 0;\n let k = 0;\n for (let i = 0; i < 4; ++i) {\n const b2 = yield;\n k |= b2 << i;\n }\n k = (k & 15) + 1;\n let toread = 8;\n let len = 0;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const b = yield;\n toread += 8;\n if (b)\n toread += 7;\n else\n len *= 2;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const rlen = revbyte(len, b ? 23 : 16);\n len = rlen;\n if (len > 256)\n throw new Error("Too big for Smash");\n len *= 8;\n const chunks = [];\n const bw = new BitstreamWriter({\n write(chunk) {\n chunks.push(chunk);\n }\n });\n while (len) {\n extrBit = yield;\n bw.write(1, extrBit);\n len--;\n }\n bw.end();\n return Buffer2.concat(chunks).slice(0, rlen);\n}\nvar bitcode = new Array(65535);\nvar category = new Array(65535);\nvar std_dc_luminance_nrcodes = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\nvar std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_luminance_nrcodes = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\nvar std_ac_luminance_values = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nvar std_dc_chrominance_nrcodes = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\nvar std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_chrominance_nrcodes = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\nvar std_ac_chrominance_values = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nfunction _initCategoryNumber() {\n let nrlower = 1;\n let nrupper = 2;\n for (let cat = 1; cat <= 15; cat++) {\n for (let nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n for (let nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n}\n_initCategoryNumber();\nfunction _computeHuffmanTbl(nrcodes, std_table) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = [];\n for (let k = 1; k <= 16; k++) {\n for (let j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n}\nvar YDC_HT = _computeHuffmanTbl(std_dc_luminance_nrcodes, std_dc_luminance_values);\nvar UVDC_HT = _computeHuffmanTbl(std_dc_chrominance_nrcodes, std_dc_chrominance_values);\nvar YAC_HT = _computeHuffmanTbl(std_ac_luminance_nrcodes, std_ac_luminance_values);\nvar UVAC_HT = _computeHuffmanTbl(std_ac_chrominance_nrcodes, std_ac_chrominance_values);\nvar __raw, _jfif, _APPn, _qts, _frame, _tail, __f5write, _f5write_fn;\nvar f5stego = class {\n constructor(key2, maxPixels = 4096 * 4096) {\n this.maxPixels = maxPixels;\n __privateAdd(this, __f5write);\n __privateAdd(this, __raw, void 0);\n __privateAdd(this, _jfif, void 0);\n __privateAdd(this, _APPn, void 0);\n __privateAdd(this, _qts, void 0);\n __privateAdd(this, _frame, null);\n __privateAdd(this, _tail, null);\n }\n embed(image, data, k) {\n this.parse(image);\n this.f5put(data, k);\n return this.pack();\n }\n extract(image) {\n try {\n this.gengen = f5get();\n this.gengen.next();\n this.parse(image, true);\n return this.f5get();\n } catch (e) {\n if (e instanceof Buffer2)\n return e;\n throw e;\n }\n }\n f5put(data, k) {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let t, i, comp = __privateGet(this, _frame).components[0];\n if (data.length > 8388607)\n throw "Data too big. Max 8388607 bytes allowed.";\n if (data.length < 32768) {\n t = new Uint8Array(2 + data.length);\n t[0] = data.length & 255;\n t[1] = data.length >>> 8;\n t.set(data, 2);\n } else {\n t = new Uint8Array(3 + data.length);\n t[0] = data.length & 255;\n t[1] = (data.length >>> 8 & 127) + 128;\n t[2] = data.length >>> 15;\n t.set(data, 3);\n }\n if (comp.componentId != 1) {\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n return __privateMethod(this, __f5write, _f5write_fn).call(this, comp.blocks, t, k);\n }\n f5get() {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let comp = __privateGet(this, _frame).components[0];\n if (comp.componentId != 1) {\n for (let i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n const coeff = new Int16Array(comp.blocks.length);\n coeff.set(comp.blocks);\n let pos = -1, extrBit = 0, cCount = coeff.length - 1;\n let n, k = 0;\n let out = new Uint8Array(coeff.length / 8 | 0), extrByte = 0, outPos = 0, bitsAvail = 0, code = 0, hash = 0;\n while (bitsAvail < 4) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n k |= extrBit << bitsAvail;\n bitsAvail++;\n }\n k = (k & 15) + 1;\n n = (1 << k) - 1;\n bitsAvail = 0;\n if (k == 1) {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n extrByte |= extrBit << bitsAvail;\n bitsAvail++;\n if (bitsAvail == 8) {\n out[outPos++] = extrByte;\n extrByte = 0;\n bitsAvail = 0;\n }\n }\n } else {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n hash ^= extrBit * ++code;\n if (code == n) {\n extrByte |= hash << bitsAvail;\n bitsAvail += k;\n code = 0;\n hash = 0;\n while (bitsAvail >= 8) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n }\n }\n }\n while (bitsAvail > 0) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n let s = 2, l = out[0];\n if (out[1] & 128) {\n s++;\n l += ((out[1] & 127) << 8) + (out[2] << 15);\n } else {\n l += out[1] << 8;\n }\n return out.subarray(s, s + l);\n }\n parse(data, tolerant = false) {\n let offset = 0;\n function _buildHuffmanTable(nrcodes, values) {\n let codevalue = 0, pos_in_table = 0, HT = new Uint16Array(65536);\n for (let k = 0; k < 16; k++) {\n for (let j2 = 0; j2 < nrcodes[k]; j2++) {\n for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) {\n HT[i2] = values[pos_in_table] + (k + 1 << 8);\n }\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => {\n let startOffset = offset2, bitsData = 0, bitsCount = 0, eobrun = 0, p1 = 1 << successive, m1 = -1 << successive;\n const prevpos = 0;\n const decodeBaseline = (component2, pos) => {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n let diff = 0;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff;\n let k2 = 1, s, r;\n while (k2 < 64) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n bitsCount -= s;\n k2++;\n }\n };\n function decodeDCFirst(component2, pos) {\n let diff = 0;\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff << successive;\n }\n function decodeDCSuccessive(component2, pos) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocksDC[pos >> 6] |= (bitsData >>> --bitsCount & 1) << successive;\n }\n if (!frame)\n throw "Frame not parsed yet";\n function decodeACFirst(component2, pos) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k2 = spectralStart, s, r;\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r != 15) {\n eobrun = (1 << r) - 1;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n bitsCount -= s;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n component2.blocks[pos + k2] *= p1;\n k2++;\n }\n }\n function decodeACSuccessive(component2, pos) {\n let k2 = spectralStart, r, s;\n if (frame == null)\n throw "Frame not defined";\n if (!eobrun) {\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s) {\n if (s != 1)\n throw "bad jpeg";\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n s = bitsData >>> --bitsCount & 1 ? p1 : m1;\n } else {\n if (r != 15) {\n eobrun = 1 << r;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n }\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n } else {\n if (--r < 0)\n break;\n }\n k2++;\n }\n if (s)\n component2.blocks[pos + k2] = s;\n k2++;\n }\n }\n if (eobrun) {\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n }\n k2++;\n }\n eobrun--;\n }\n }\n let decodeFn;\n if (frame.progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y;\n let lastflushidx = 0;\n const flushBits = () => {\n if (!this.gengen)\n return;\n const component2 = components.find((e) => e.componentId == 1);\n while (component2.blocks[lastflushidx + 1] !== void 0) {\n const blk = component2.blocks[lastflushidx];\n if (blk != 0) {\n const v = blk < 0 ? 1 - (blk & 1) : blk & 1;\n const it = this.gengen.next(v);\n if (it.done) {\n throw it.value;\n }\n }\n lastflushidx++;\n }\n };\n if (components.length == 1) {\n mcusPerLine = components[0].blocksPerLine;\n mcusPerRow = components[0].blocksPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64);\n }\n }\n flushBits();\n }\n } else {\n mcusPerLine = frame.mcusPerLine;\n mcusPerRow = frame.mcusPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n for (j2 = 0; j2 < components[i2].v; j2++) {\n for (k = 0; k < components[i2].h; k++) {\n decodeFn(components[i2], ((y * components[i2].v + j2) * components[i2].blocksPerLineForMcu + x * components[i2].h + k) * 64);\n }\n }\n }\n }\n flushBits();\n }\n }\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n return offset2 - startOffset;\n };\n function readUint16() {\n const value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n __privateSet(this, __raw, data);\n __privateSet(this, _jfif, null);\n __privateSet(this, _APPn, []);\n __privateSet(this, _qts, []);\n __privateSet(this, _frame, null);\n __privateSet(this, _tail, null);\n let markerHi, markerLo, i, j, resetInterval, component;\n const huffmanTablesAC = [];\n const huffmanTablesDC = [];\n while (1) {\n if (offset >= data.length) {\n if (tolerant)\n break;\n throw "unexpected EOF";\n }\n markerHi = data[offset++];\n markerLo = data[offset++];\n if (markerHi == 255) {\n if (markerLo == 224) {\n __privateSet(this, _jfif, readDataBlock());\n }\n if (markerLo > 224 && markerLo < 240 || markerLo == 254) {\n __privateGet(this, _APPn).push({\n "app": markerLo,\n "data": readDataBlock()\n });\n }\n if (markerLo == 219) {\n __privateGet(this, _qts).push(readDataBlock());\n }\n if (markerLo >= 192 && markerLo <= 194) {\n if (__privateGet(this, _frame))\n throw "Only single frame JPEGs supported";\n readUint16();\n __privateSet(this, _frame, {\n "extended": markerLo === 193,\n "progressive": markerLo === 194,\n "precision": data[offset++],\n "scanLines": readUint16(),\n "samplesPerLine": readUint16(),\n "components": [],\n "componentIds": {},\n "maxH": 1,\n "maxV": 1\n });\n if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels)\n throw "Image is too big.";\n var componentsCount = data[offset++], componentId;\n let maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h)\n maxH = h;\n if (maxV < v)\n maxV = v;\n const qId = data[offset + 2];\n const l = __privateGet(this, _frame).components.push({\n componentId,\n h,\n v,\n quantizationTable: qId\n });\n __privateGet(this, _frame).componentIds[componentId] = l - 1;\n offset += 3;\n }\n __privateGet(this, _frame).maxH = maxH;\n __privateGet(this, _frame).maxV = maxV;\n const mcusPerLine = Math.ceil(__privateGet(this, _frame).samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(__privateGet(this, _frame).scanLines / 8 / maxV);\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n component = __privateGet(this, _frame).components[i];\n const blocksPerLine = Math.ceil(Math.ceil(__privateGet(this, _frame).samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(__privateGet(this, _frame).scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n __privateGet(this, _frame).components[i] = {\n ...component,\n blocks: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu * 64),\n blocksDC: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu),\n blocksPerLine,\n blocksPerColumn,\n blocksPerLineForMcu,\n blocksPerColumnForMcu\n };\n }\n __privateGet(this, _frame).mcusPerLine = mcusPerLine;\n __privateGet(this, _frame).mcusPerColumn = mcusPerColumn;\n }\n if (markerLo == 196) {\n const huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n const v = _buildHuffmanTable(codeLengths, huffmanValues);\n if (huffmanTableSpec >> 4 === 0)\n huffmanTablesDC[huffmanTableSpec & 15] = v;\n else\n huffmanTablesAC[huffmanTableSpec & 15] = v;\n }\n }\n if (markerLo == 221) {\n resetInterval = readUint16();\n }\n if (markerLo == 218) {\n if (__privateGet(this, _frame) == null)\n throw "SOS before SOF";\n readUint16();\n const selectorsCount = data[offset++];\n const components = [];\n for (i = 0; i < selectorsCount; i++) {\n const componentIndex = __privateGet(this, _frame).componentIds[data[offset++]];\n component = __privateGet(this, _frame).components[componentIndex];\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset, __privateGet(this, _frame), components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n }\n if (markerLo == 217) {\n break;\n }\n } else {\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n }\n while (data[offset] != 255 && offset < data.length) {\n offset++;\n }\n if (data[offset] != 255) {\n throw "bad jpeg ";\n }\n }\n }\n if (!__privateGet(this, _frame))\n throw "bad jpeg";\n if (offset < data.length)\n __privateSet(this, _tail, data.subarray(offset));\n return this;\n }\n pack() {\n let byteout;\n let bytenew;\n let bytepos;\n let poslast;\n let outpos;\n let byte;\n function writeByte(value) {\n let t;\n byteout[outpos++] = value;\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function writeBlock(block) {\n let t;\n if (outpos + block.length > poslast) {\n t = new Uint8Array(byteout.length * 2 + block.length);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n byteout.set(block, outpos);\n outpos += block.length;\n }\n function writeAPP0(self2) {\n writeWord(65504);\n if (!__privateGet(self2, _jfif)) {\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n } else {\n writeWord(__privateGet(self2, _jfif).length + 2);\n writeBlock(__privateGet(self2, _jfif));\n }\n }\n function writeDQT(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _qts).length; i2++) {\n writeWord(65499);\n writeWord(__privateGet(self2, _qts)[i2].length + 2);\n writeBlock(__privateGet(self2, _qts)[i2]);\n }\n }\n function writeAPPn(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _APPn).length; i2++) {\n writeWord(65280 | __privateGet(self2, _APPn)[i2].app);\n writeWord(__privateGet(self2, _APPn)[i2].data.length + 2);\n writeBlock(__privateGet(self2, _APPn)[i2].data);\n }\n }\n function writeSOF0(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65472);\n writeWord(8 + __privateGet(self2, _frame).components.length * 3);\n writeByte(__privateGet(self2, _frame).precision);\n writeWord(__privateGet(self2, _frame).scanLines);\n writeWord(__privateGet(self2, _frame).samplesPerLine);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n writeByte(c2.h << 4 | c2.v);\n writeByte(c2.quantizationTable);\n }\n }\n function writeDHT(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65476);\n writeWord(31);\n writeByte(0);\n for (let i2 = 0; i2 < 16; i2++) {\n writeByte(std_dc_luminance_nrcodes[i2 + 1]);\n }\n for (let j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(16);\n for (let k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (let l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n if (__privateGet(self2, _frame).components.length != 1) {\n writeWord(65476);\n writeWord(31);\n writeByte(1);\n for (let m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (let n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(17);\n for (let o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (let p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n }\n function writeSOS(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65498);\n writeWord(6 + __privateGet(self2, _frame).components.length * 2);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n if (i2 === 0) {\n writeByte(0);\n } else {\n writeByte(17);\n }\n }\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(comp, POS, DC, HTDC, HTAC) {\n let pos, posval, t;\n if (bytepos === 0)\n bytenew = 0;\n if (!("blocks" in comp))\n throw "Blocks not parsed";\n const Diff = comp.blocksDC[POS >> 6] - DC;\n DC = comp.blocksDC[POS >> 6];\n if (Diff === 0) {\n posval = HTDC[0][1];\n bytenew <<= posval;\n bytenew += HTDC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n } else {\n pos = 32767 + Diff;\n posval = HTDC[category[pos]][1];\n bytenew <<= posval;\n bytenew += HTDC[category[pos]][0];\n bytepos += posval;\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n let end0pos = 63;\n for (; end0pos > 0 && comp.blocks[POS + end0pos] === 0; end0pos--) {\n }\n if (end0pos === 0) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n return DC;\n }\n let i2 = 1;\n let lng;\n while (i2 <= end0pos) {\n const startpos = i2;\n for (; comp.blocks[POS + i2] === 0 && i2 <= end0pos; ++i2) {\n }\n let nrzeroes = i2 - startpos;\n if (nrzeroes >= 16) {\n lng = nrzeroes >> 4;\n for (let nrmarker = 1; nrmarker <= lng; ++nrmarker) {\n posval = HTAC[240][1];\n bytenew <<= posval;\n bytenew += HTAC[240][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + comp.blocks[POS + i2];\n posval = HTAC[(nrzeroes << 4) + category[pos]][1];\n bytenew <<= posval;\n bytenew += HTAC[(nrzeroes << 4) + category[pos]][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n i2++;\n }\n if (end0pos != 63) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n return DC;\n }\n byteout = new Uint8Array(65536);\n poslast = 65536 - 128;\n outpos = 0;\n bytenew = 0;\n bytepos = 0;\n writeWord(65496);\n writeAPP0(this);\n writeAPPn(this);\n writeDQT(this);\n writeSOF0(this);\n writeDHT(this);\n writeSOS(this);\n bytenew = 0;\n bytepos = 0;\n if (!__privateGet(this, _frame))\n throw "Frame not ready";\n let c, mcuRow, mcuCol, blockRow, blockCol, mcu, i, v, h;\n const DCdiff = [];\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n DCdiff.push(0);\n }\n for (mcu = 0; mcu < __privateGet(this, _frame).mcusPerLine * __privateGet(this, _frame).mcusPerColumn; mcu++) {\n mcuRow = mcu / __privateGet(this, _frame).mcusPerLine | 0;\n mcuCol = mcu % __privateGet(this, _frame).mcusPerLine;\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n c = __privateGet(this, _frame).components[i];\n for (v = 0; v < c.v; v++) {\n blockRow = mcuRow * c.v + v;\n for (h = 0; h < c.h; h++) {\n blockCol = mcuCol * c.h + h;\n if (i === 0) {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], YDC_HT, YAC_HT);\n } else {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], UVDC_HT, UVAC_HT);\n }\n }\n }\n }\n }\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n }\n if (bytepos > 0) {\n bytenew <<= 8 - bytepos;\n bytenew += (1 << 8 - bytepos) - 1;\n byteout[outpos++] = 255 & bytenew;\n }\n writeWord(65497);\n if (__privateGet(this, _tail))\n writeBlock(__privateGet(this, _tail));\n return byteout.slice(0, outpos);\n }\n};\n__raw = new WeakMap();\n_jfif = new WeakMap();\n_APPn = new WeakMap();\n_qts = new WeakMap();\n_frame = new WeakMap();\n_tail = new WeakMap();\n__f5write = new WeakSet();\n_f5write_fn = function(coeff, data, k) {\n const coeff_count = coeff.length;\n let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, n, ii;\n let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0;\n n = (1 << k) - 1;\n byte_to_embed = k - 1;\n byte_to_embed ^= 0;\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed = 3;\n for (ii = 0; ii < coeff_count; ii++) {\n shuffled_index = ii;\n if (shuffled_index % 64 === 0 || coeff[shuffled_index] === 0)\n continue;\n const cc = coeff[shuffled_index];\n _examined++;\n if (cc > 0 && (cc & 1) != next_bit_to_embed) {\n coeff[shuffled_index]--;\n _changed++;\n } else if (cc < 0 && (cc & 1) == next_bit_to_embed) {\n coeff[shuffled_index]++;\n _changed++;\n }\n if (coeff[shuffled_index] !== 0) {\n _embedded++;\n if (available_bits_to_embed === 0) {\n if (k != 1 || data_idx >= data.length)\n break;\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n } else {\n _thrown++;\n }\n }\n if (k == 1 && _embedded < data.length * 8)\n throw "capacity exceeded " + _embedded / 8 + " " + data.length;\n if (k != 1) {\n let is_last_byte = false, k_bits_to_embed = 0;\n while (!is_last_byte || available_bits_to_embed !== 0 && is_last_byte) {\n k_bits_to_embed = 0;\n for (i = 0; i < k; i++) {\n if (available_bits_to_embed === 0) {\n if (data_idx >= data.length) {\n is_last_byte = true;\n break;\n }\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n k_bits_to_embed |= next_bit_to_embed << i;\n }\n const code_word = [];\n let ci = null;\n for (i = 0; i < n; i++) {\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n code_word.push(ci);\n }\n _examined += n;\n while (true) {\n var vhash = 0, extracted_bit;\n for (i = 0; i < code_word.length; i++) {\n if (coeff[code_word[i]] > 0) {\n extracted_bit = coeff[code_word[i]] & 1;\n } else {\n extracted_bit = 1 - (coeff[code_word[i]] & 1);\n }\n if (extracted_bit == 1)\n vhash ^= i + 1;\n }\n i = vhash ^ k_bits_to_embed;\n if (!i) {\n _embedded += k;\n break;\n }\n i--;\n coeff[code_word[i]] += coeff[code_word[i]] < 0 ? 1 : -1;\n _changed++;\n if (coeff[code_word[i]] === 0) {\n _thrown++;\n code_word.splice(i, 1);\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n _examined++;\n code_word.push(ci);\n } else {\n _embedded += k;\n break;\n }\n }\n }\n }\n return {\n "k": k,\n "embedded": _embedded / 8,\n "examined": _examined,\n "changed": _changed,\n "thrown": _thrown,\n "efficiency": (_embedded / _changed).toFixed(2)\n };\n};\n\n// src/jpg.ts\nvar key = import_buffer4.Buffer.from("CUNNYCUNNYCUNNY");\nvar f5inst = new f5stego(key);\nvar inject2 = async (b, links) => {\n if (b.size / 20 < links.join(" ").length)\n throw "Image too small to embed.";\n const arr = new Uint8Array(new Uint8Array(await b.arrayBuffer()));\n const buff = f5inst.embed(arr, new TextEncoder().encode(links.join(" ")), 1);\n return import_buffer4.Buffer.from(buff);\n};\nvar has_embed2 = (b) => {\n try {\n const res = f5inst.extract(b);\n if (!res)\n return false;\n if (res.length > 1024)\n return false;\n const str = import_buffer4.Buffer.from(res).toString();\n if (!str.match(/^[a-zA-Z0-9:/.\\-_ ]+$/))\n return false;\n return str;\n } catch {\n return false;\n }\n};\nvar extract2 = (b, ex) => {\n return decodeCoom3Payload(import_buffer4.Buffer.from(ex));\n};\nvar jpg_default = {\n match: (fn) => !!fn.match(/\\.jpe?g$/),\n has_embed: has_embed2,\n extract: extract2,\n inject: inject2\n};\n\n// src/thirdeye.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer5 = __toESM(require_buffer(), 1);\nvar import_jpeg_js = __toESM(require_jpeg_js(), 1);\n\n// src/phash.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar median = (data) => {\n const mdarr = data.slice(0);\n mdarr.sort((a, b) => a - b);\n if (mdarr.length % 2 === 0)\n return (mdarr[mdarr.length / 2 - 1] + mdarr[mdarr.length / 2]) / 2;\n return mdarr[Math.floor(mdarr.length / 2)];\n};\nvar translate_blocks_to_bits = function(blocks, pixels_per_block) {\n const half_block_value = pixels_per_block * 256 * 3 / 2;\n const bandsize = blocks.length / 4;\n for (let i = 0; i < 4; i++) {\n const m = median(blocks.slice(i * bandsize, (i + 1) * bandsize));\n for (let j = i * bandsize; j < (i + 1) * bandsize; j++) {\n const v = blocks[j];\n blocks[j] = Number(v > m || Math.abs(v - m) < 1 && m > half_block_value);\n }\n }\n};\nvar bits_to_hexhash = (bitsArray) => {\n const hex = [];\n for (let i = 0; i < bitsArray.length; i += 4) {\n const nibble = bitsArray.slice(i, i + 4);\n hex.push(parseInt(nibble.join(""), 2).toString(16));\n }\n return hex.join("");\n};\nvar bmvbhash_even = (data, bits) => {\n const blocksize_x = Math.floor(data.width / bits);\n const blocksize_y = Math.floor(data.height / bits);\n const result = [];\n for (let y = 0; y < bits; y++) {\n for (let x = 0; x < bits; x++) {\n let total = 0;\n for (let iy = 0; iy < blocksize_y; iy++) {\n for (let ix = 0; ix < blocksize_x; ix++) {\n const cx = x * blocksize_x + ix;\n const cy = y * blocksize_y + iy;\n const ii = (cy * data.width + cx) * 4;\n const alpha = data.data[ii + 3];\n if (alpha === 0) {\n total += 765;\n } else {\n total += data.data[ii] + data.data[ii + 1] + data.data[ii + 2];\n }\n }\n }\n result.push(total);\n }\n }\n translate_blocks_to_bits(result, blocksize_x * blocksize_y);\n return bits_to_hexhash(result);\n};\n\n// src/thirdeye.ts\nvar csettings3;\nsettings.subscribe((b) => {\n csettings3 = b;\n});\nvar gelquirk = (prefix) => (a) => {\n let base = a.post || a.data || a;\n if (!Array.isArray(base))\n return [];\n base = base.filter((e) => e.file_url);\n return base.map((e) => ({\n full_url: e.file_url,\n preview_url: e.preview_url || e.preview_url,\n source: e.source,\n ext: e.file_ext || e.file_url.substr(e.file_url.lastIndexOf(".") + 1),\n page: `${prefix}${e.id || e.parent_id}`,\n tags: (e.tag_string || (e.tags && (Array.isArray(e.tags) && (typeof e.tags[0] == "string" ? e.tags.join(" ") : e.tags.map((e2) => e2.name_en).join(" "))) || e.tags) || "").split(" ")\n })) || [];\n};\nvar experimentalApi = false;\nvar black = /* @__PURE__ */ new Set();\nvar phashEn = false;\nvar mindist = 5;\nsettings.subscribe((s) => {\n if (!s)\n return;\n experimentalApi = s.expte;\n boorus = s.rsources.map((e) => ({\n ...e,\n quirks: gelquirk(e.view)\n }));\n black = new Set(s.blacklist);\n mindist = s.mdist || 5;\n phashEn = s.phash;\n});\nvar boorus = [];\nvar unlockQueue = Promise.resolve();\nvar cache = {};\nvar findFileFrom = async (b, hex, abort) => {\n try {\n if (b.domain in cache && hex in cache[b.domain])\n return cache[b.domain][hex];\n const res = await ifetch(`https://${b.domain}${b.endpoint}${hex}`);\n const txt = await res.text();\n const pres = JSON.parse(txt);\n const tran = b.quirks(pres).filter((e) => !e.tags.some((e2) => black.has(e2)));\n if (!(b.domain in cache))\n cache[b.domain] = {};\n cache[b.domain][hex] = tran;\n return tran;\n } catch (e) {\n const error = e;\n if (!error.message.includes("Unexpected end of JSON input"))\n console.error(e);\n return [];\n }\n};\nvar extract3 = async (b, fn) => {\n if (!csettings3)\n throw new Error("Settings uninit");\n let result;\n let booru;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n if (result.length) {\n booru = e.name;\n break;\n }\n }\n let cachedFile;\n const prev = result[0].preview_url;\n const full = result[0].full_url;\n return [{\n source: result[0].source,\n page: {\n title: booru,\n url: result[0].page\n },\n filename: fn.substring(0, 33) + result[0].ext,\n thumbnail: csettings3.hotlink ? prev || full : import_buffer5.Buffer.from(await (await ifetch(prev || full)).arrayBuffer()),\n data: csettings3.hotlink ? full || prev : { url: full || prev }\n }];\n};\nvar phash = (b) => {\n const res = (0, import_jpeg_js.decode)(b);\n return bmvbhash_even(res, 8);\n};\nvar hammingDist = (a, b) => {\n let res = BigInt("0x" + a) ^ BigInt("0x" + b);\n let acc = 0;\n while (res != 0n) {\n acc += Number(res & 1n);\n res >>= 1n;\n }\n return acc;\n};\nvar has_embed3 = async (b, fn, prevlink) => {\n if (import_buffer5.Buffer.from(fn, "hex").equals(b))\n return false;\n let result = void 0;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n result = result.filter((e2) => e2.full_url || e2.preview_url);\n if (result.length)\n break;\n }\n if (result && result.length != 0 && phashEn && prevlink) {\n if (!result[0].preview_url)\n return true;\n const getHash = async (l) => {\n const ogreq = await ifetch(l);\n const origPreview = await ogreq.arrayBuffer();\n return phash(import_buffer5.Buffer.from(origPreview));\n };\n const [orighash, tehash] = await Promise.all([\n getHash(prevlink),\n getHash(result[0].preview_url)\n ]);\n const d = hammingDist(orighash, tehash);\n console.log(d, prevlink);\n return d > mindist;\n }\n return result && result.length != 0;\n};\nvar thirdeye_default = {\n skip: true,\n extract: extract3,\n has_embed: has_embed3,\n match: (fn) => !!fn.match(/^[0-9a-f]{32}\\.....?/)\n};\n\n// src/pomf.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer6 = __toESM(require_buffer(), 1);\nvar sources = [\n { host: "Catbox", prefix: "files.catbox.moe/" },\n { host: "Litter", prefix: "litter.catbox.moe/" },\n { host: "Zzzz", prefix: "z.zz.fo/" }\n];\nvar csettings4;\nsettings.subscribe((b) => {\n csettings4 = b;\n});\nvar getExt = (fn) => {\n const isB64 = fn.match(/^((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=))?\\.(gif|jpe?g|png|webm)/);\n const isExt = fn.match(/\\[.*=(.*)\\]/);\n let ext;\n let source;\n try {\n if (isB64) {\n ext = atob(isB64[1]);\n } else if (isExt) {\n ext = decodeURIComponent(isExt[1]);\n if (ext.startsWith("https://"))\n ext = ext.slice("https://".length);\n for (const cs of sources)\n if (ext.startsWith(cs.prefix)) {\n source = cs.prefix;\n ext = ext.slice(cs.prefix.length);\n break;\n }\n }\n } catch {\n }\n return { ext, source };\n};\nvar extract4 = async (b, fn) => {\n if (!csettings4)\n throw new Error("Settings uninit");\n const { ext, source } = getExt(fn);\n let rsource;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n await getHeaders("https://" + cs.prefix + ext);\n rsource = "https://" + cs.prefix + ext;\n break;\n } catch {\n }\n }\n return [{\n filename: ext,\n data: csettings4.hotlink ? rsource : { url: rsource },\n thumbnail: import_buffer6.Buffer.from(hasembed_default)\n }];\n};\nvar has_embed4 = async (b, fn) => {\n const { ext, source } = getExt(fn);\n if (!ext)\n return false;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n const e = await getHeaders("https://" + cs.prefix + ext);\n return true;\n } catch {\n }\n }\n return false;\n};\nvar pomf_default = {\n skip: true,\n extract: extract4,\n has_embed: has_embed4,\n match: (fn) => !!getExt(fn)\n};\n\n// src/processor.worker.ts\nconsole.log("Worker started");\nvar pendinggens = {};\nvar proxyAsyncGen = (id) => {\n return {\n next(arg) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n return(v) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n throw() {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n [Symbol.asyncIterator]() {\n return this;\n }\n };\n};\nvar deserializeMessage = (m) => {\n if (m instanceof MessagePort)\n return m;\n if (typeof m == "object" && m.type == "AsyncGenerator") {\n return proxyAsyncGen(m.id);\n }\n if (typeof m == "object") {\n for (const p in m) {\n m[p] = deserializeMessage(m[p]);\n }\n }\n return m;\n};\nvar processors = [thirdeye_default, pomf_default, pngv3_default, jpg_default];\nvar processImage = async (srcs, fn, hex, prevurl) => {\n const ret = await Promise.all(processors.filter((e) => e.match(fn)).map(async (proc) => {\n if (proc.skip) {\n const md5 = Buffer2.from(hex, "base64");\n if (await proc.has_embed(md5, fn, prevurl) === true) {\n return [await proc.extract(md5, fn), true];\n }\n return;\n }\n let succ = false;\n let cumul;\n do {\n try {\n const n = await srcs.next();\n if (n.done)\n return;\n const iter = streamRemote(n.value);\n if (!iter)\n return;\n cumul = Buffer2.alloc(0);\n let found;\n let chunk = { done: true };\n do {\n const { value, done } = await iter.next(typeof found === "boolean");\n if (done) {\n chunk = { done: true };\n } else {\n chunk = { done: false, value };\n cumul = Buffer2.concat([cumul, value]);\n const v = await proc.has_embed(cumul);\n if (typeof v == "string") {\n return [await proc.extract(cumul, v), false];\n }\n found = v;\n }\n } while (found !== false && !chunk.done);\n succ = true;\n await iter.next(true);\n if (found !== true) {\n return;\n }\n return [await proc.extract(cumul), false];\n } catch (err) {\n console.log(err);\n }\n } while (!succ);\n }));\n return ret.filter((e) => e).map((e) => e);\n};\nvar init2 = false;\n(async () => {\n onmessage = async (msg) => {\n const des = deserializeMessage(msg.data);\n switch (des.type) {\n case "ipc": {\n setupPort(des.port);\n const nset = await localLoad("settingsv2", initial_settings);\n settings.set(nset);\n break;\n }\n case "cmd": {\n switch (des.fun) {\n case "processImage": {\n if (!init2) {\n await new Promise((_) => {\n settings.subscribe((v) => {\n if (v)\n _();\n });\n });\n init2 = true;\n }\n const res = await processImage(des.args[0], des.args[1], des.args[2], des.args[3]);\n const tr = [];\n for (const ef of res) {\n for (const e of ef[0]) {\n if (e.thumbnail && Buffer2.isBuffer(e.thumbnail) || typeof e.thumbnail != "string")\n tr.push(e.thumbnail.buffer);\n if (Buffer2.isBuffer(e.data) || typeof e.data != "string" && !("url" in e.data))\n tr.push(e.data.buffer);\n }\n }\n postMessage({\n type: "reply",\n id: des.id,\n res\n }, [...new Set(tr)]);\n }\n }\n break;\n }\n case "ag": {\n const cb = pendinggens[des.id].shift();\n if (cb) {\n cb(des.res);\n }\n break;\n }\n }\n };\n})();\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n'); } // src/main.ts @@ -22020,6 +22043,35 @@ Use the WebExtension version of PEE if you want to use b4k!`); mo2.observe(document.documentElement, { childList: true, subtree: true }); await bodyInit; } + document.addEventListener("QRDialogCreation", (e) => { + const a = document.createElement("span"); + const po = new PostOptions_default({ + target: a, + props: { processors, textinput: (e.detail || e.target).querySelector("textarea") } + }); + let prevFile; + let target; + const somethingChanged = async (m) => { + const currentFile = await getSelectedFile(); + if (prevFile != currentFile) { + prevFile = currentFile; + document.dispatchEvent(new CustomEvent("PEEFile", { detail: prevFile })); + } + }; + const obs = new MutationObserver(somethingChanged); + if (!cappState.is4chanX) { + target = e.detail; + a.style.display = "inline-block"; + target.querySelector("input[type=submit]")?.insertAdjacentElement("beforebegin", a); + const filesinp = target.querySelector("#qrFile"); + filesinp.addEventListener("change", somethingChanged); + } else { + target = e.target; + target.querySelector("#qr-filename-container")?.appendChild(a); + const filesinp = target.querySelector("#file-n-submit"); + obs.observe(filesinp, { attributes: true }); + } + }, { once: !cappState.is4chanX }); try { cp = new CommandProcessor(); } catch { @@ -22144,35 +22196,6 @@ Use the WebExtension version of PEE if you want to use b4k!`); } } }); - document.addEventListener("QRDialogCreation", (e) => { - const a = document.createElement("span"); - const po = new PostOptions_default({ - target: a, - props: { processors, textinput: (e.detail || e.target).querySelector("textarea") } - }); - let prevFile; - let target; - const somethingChanged = async (m) => { - const currentFile = await getSelectedFile(); - if (prevFile != currentFile) { - prevFile = currentFile; - document.dispatchEvent(new CustomEvent("PEEFile", { detail: prevFile })); - } - }; - const obs = new MutationObserver(somethingChanged); - if (!cappState.is4chanX) { - target = e.detail; - a.style.display = "inline-block"; - target.querySelector("input[type=submit]")?.insertAdjacentElement("beforebegin", a); - const filesinp = target.querySelector("#qrFile"); - filesinp.addEventListener("change", somethingChanged); - } else { - target = e.target; - target.querySelector("#qr-filename-container")?.appendChild(a); - const filesinp = target.querySelector("#file-n-submit"); - obs.observe(filesinp, { attributes: true }); - } - }, { once: !cappState.is4chanX }); function processAttachments(post, ress) { if (ress.length == 0) return; diff --git a/chrome/manifest.json b/chrome/manifest.json index 60395dc..3098d3b 100644 --- a/chrome/manifest.json +++ b/chrome/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "PngExtraEmbedder", "description": "Discover embedded files on 4chan and archives!", - "version": "0.323", + "version": "0.324", "icons": { "64": "1449696017588.png" }, diff --git a/dist/main.js b/dist/main.js index 1246ce9..377496a 100644 --- a/dist/main.js +++ b/dist/main.js @@ -73,7 +73,7 @@ var define_BUILD_VERSION_default; var init_define_BUILD_VERSION = __esm({ ""() { - define_BUILD_VERSION_default = [0, 320]; + define_BUILD_VERSION_default = [0, 324]; } }); @@ -1907,6 +1907,36 @@ "esbuild.inject.js"() { "use strict"; Buffer2 = require_buffer().Buffer; + if (true) { + if (true) { + const ocreate = unsafeWindow.document.createElement.bind(document); + unsafeWindow.document.createElement = (tag) => { + if (tag != "meta") + return ocreate(tag); + unsafeWindow.document.createElement = ocreate; + return unsafeWindow.document.createElement("link"); + }; + } + if (false) { + if (typeof cloneInto != "undefined") + console.log("CLONE INTO DEFINED"); + else + console.log("CLONE INTO NOT DEFINED"); + let a = 1; + console.log(a++); + const unsafeWindow2 = window; + console.log(a++); + const ocreate = unsafeWindow2.document.createElement.bind(document); + console.log(a++); + exportFunction((tag) => { + if (tag != "meta") + return ocreate(tag); + unsafeWindow2.document.createElement = ocreate; + return unsafeWindow2.document.createElement("link"); + }, window.document, { defineAs: "createElement" }); + console.log(a++); + } + } } }); @@ -8553,13 +8583,6 @@ return ["boards.4channel.org", "boards.4chan.org"].includes(s); } if (false) { - popupport = chrome.runtime.connect({ name: "popup" }); - popupport.onMessage.addListener((msg) => { - if (msg.id in pendingcmds) { - pendingcmds[msg.id](msg); - delete pendingcmds[msg.id]; - } - }); } var Platform = class { static async openInTab(src, opts) { @@ -18491,8 +18514,12 @@ } catch { try { const content = prompt("Paste it in here") || ""; - set_store_value(settings, $settings.rsources = JSON.parse(content), $settings); - } catch { + let v = JSON.parse(content); + if (false) + v = cloneInto(v, window); + set_store_value(settings, $settings.rsources = v, $settings); + } catch (e) { + console.log(e); alert("How can you fail so badly? pathetic..."); } } @@ -21440,7 +21467,7 @@ // src/processor.worker.ts function Worker2() { - return inlineWorker('var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));\nvar __decorateClass = (decorators, target, key2, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key2) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key2, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key2, result);\n return result;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError("Cannot " + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, "read from private field");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError("Cannot add the same private member more than once");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, "write to private field");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, "access private method");\n return method;\n};\nvar __toBinary = /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++)\n table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);\n for (var i2 = 0, j = 0; i2 < n; ) {\n var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n bytes[j++] = c0 << 2 | c1 >> 4;\n bytes[j++] = c1 << 4 | c2 >> 2;\n bytes[j++] = c2 << 6 | c3;\n }\n return bytes;\n };\n})();\n\n// \nvar init_define_BUILD_VERSION = __esm({\n ""() {\n }\n});\n\n// node_modules/base64-js/index.js\nvar require_base64_js = __commonJS({\n "node_modules/base64-js/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;\n var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\n for (i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n var i;\n var len;\n revLookup["-".charCodeAt(0)] = 62;\n revLookup["_".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error("Invalid string. Length must be a multiple of 4");\n }\n var validLen = b64.indexOf("=");\n if (validLen === -1)\n validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join("");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");\n }\n return parts.join("");\n }\n }\n});\n\n// node_modules/ieee754/index.js\nvar require_ieee754 = __commonJS({\n "node_modules/ieee754/index.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n});\n\n// node_modules/buffer/index.js\nvar require_buffer = __commonJS({\n "node_modules/buffer/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var base64 = require_base64_js();\n var ieee7542 = require_ieee754();\n var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null;\n exports.Buffer = Buffer13;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n Buffer13.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer13.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") {\n console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");\n }\n function typedArraySupport() {\n try {\n const arr = new Uint8Array(1);\n const proto = { foo: function() {\n return 42;\n } };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer13.prototype, "parent", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer13.prototype, "offset", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\'The value "\' + length + \'" is invalid for option "size"\');\n }\n const buf2 = new Uint8Array(length);\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function Buffer13(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n if (typeof encodingOrOffset === "string") {\n throw new TypeError(\'The "string" argument must be of type string. Received type number\');\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer13.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === "string") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === "number") {\n throw new TypeError(\'The "value" argument must not be of type number. Received type number\');\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer13.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b)\n return b;\n if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") {\n return Buffer13.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length);\n }\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n Buffer13.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer13.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer13, Uint8Array);\n function assertSize(size) {\n if (typeof size !== "number") {\n throw new TypeError(\'"size" argument must be of type number\');\n } else if (size < 0) {\n throw new RangeError(\'The value "\' + size + \'" is invalid for option "size"\');\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer13.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer13.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer13.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== "string" || encoding === "") {\n encoding = "utf8";\n }\n if (!Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf2 = createBuffer(length);\n const actual = buf2.write(string, encoding);\n if (actual !== length) {\n buf2 = buf2.slice(0, actual);\n }\n return buf2;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf2 = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf2[i] = array[i] & 255;\n }\n return buf2;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\'"offset" is outside of buffer bounds\');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\'"length" is outside of buffer bounds\');\n }\n let buf2;\n if (byteOffset === void 0 && length === void 0) {\n buf2 = new Uint8Array(array);\n } else if (length === void 0) {\n buf2 = new Uint8Array(array, byteOffset);\n } else {\n buf2 = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function fromObject(obj) {\n if (Buffer13.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf2 = createBuffer(len);\n if (buf2.length === 0) {\n return buf2;\n }\n obj.copy(buf2, 0, 0, len);\n return buf2;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== "number" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === "Buffer" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer13.alloc(+length);\n }\n Buffer13.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer13.prototype;\n };\n Buffer13.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array))\n a = Buffer13.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array))\n b = Buffer13.from(b, b.offset, b.byteLength);\n if (!Buffer13.isBuffer(a) || !Buffer13.isBuffer(b)) {\n throw new TypeError(\'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array\');\n }\n if (a === b)\n return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n Buffer13.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "latin1":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return true;\n default:\n return false;\n }\n };\n Buffer13.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n }\n if (list.length === 0) {\n return Buffer13.alloc(0);\n }\n let i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer13.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf2 = list[i];\n if (isInstance(buf2, Uint8Array)) {\n if (pos + buf2.length > buffer.length) {\n if (!Buffer13.isBuffer(buf2))\n buf2 = Buffer13.from(buf2);\n buf2.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf2, pos);\n }\n } else if (!Buffer13.isBuffer(buf2)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n } else {\n buf2.copy(buffer, pos);\n }\n pos += buf2.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer13.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== "string") {\n throw new TypeError(\'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type \' + typeof string);\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0)\n return 0;\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "ascii":\n case "latin1":\n case "binary":\n return len;\n case "utf8":\n case "utf-8":\n return utf8ToBytes(string).length;\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return len * 2;\n case "hex":\n return len >>> 1;\n case "base64":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length;\n }\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return "";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return "";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return "";\n }\n if (!encoding)\n encoding = "utf8";\n while (true) {\n switch (encoding) {\n case "hex":\n return hexSlice(this, start, end);\n case "utf8":\n case "utf-8":\n return utf8Slice(this, start, end);\n case "ascii":\n return asciiSlice(this, start, end);\n case "latin1":\n case "binary":\n return latin1Slice(this, start, end);\n case "base64":\n return base64Slice(this, start, end);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = (encoding + "").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer13.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 16-bits");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer13.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 32-bits");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer13.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 64-bits");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer13.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0)\n return "";\n if (arguments.length === 0)\n return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer13.prototype.toLocaleString = Buffer13.prototype.toString;\n Buffer13.prototype.equals = function equals(b) {\n if (!Buffer13.isBuffer(b))\n throw new TypeError("Argument must be a Buffer");\n if (this === b)\n return true;\n return Buffer13.compare(this, b) === 0;\n };\n Buffer13.prototype.inspect = function inspect() {\n let str = "";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim();\n if (this.length > max)\n str += " ... ";\n return "";\n };\n if (customInspectSymbol) {\n Buffer13.prototype[customInspectSymbol] = Buffer13.prototype.inspect;\n }\n Buffer13.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer13.from(target, target.offset, target.byteLength);\n }\n if (!Buffer13.isBuffer(target)) {\n throw new TypeError(\'The "target" argument must be one of type Buffer or Uint8Array. Received type \' + typeof target);\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError("out of range index");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target)\n return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0)\n return -1;\n if (typeof byteOffset === "string") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n if (byteOffset < 0)\n byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir)\n return -1;\n else\n byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir)\n byteOffset = 0;\n else\n return -1;\n }\n if (typeof val === "string") {\n val = Buffer13.from(val, encoding);\n }\n if (Buffer13.isBuffer(val)) {\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === "number") {\n val = val & 255;\n if (typeof Uint8Array.prototype.indexOf === "function") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError("val must be string, number or Buffer");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read2(buf2, i2) {\n if (indexSize === 1) {\n return buf2[i2];\n } else {\n return buf2.readUInt16BE(i2 * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read2(arr, i) === read2(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1)\n foundIndex = i;\n if (i - foundIndex + 1 === valLength)\n return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1)\n i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength)\n byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read2(arr, i + j) !== read2(val, j)) {\n found = false;\n break;\n }\n }\n if (found)\n return i;\n }\n }\n return -1;\n }\n Buffer13.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer13.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer13.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf2, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf2.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed))\n return i;\n buf2[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf2, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n function asciiWrite(buf2, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf2, offset, length);\n }\n function base64Write(buf2, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf2, offset, length);\n }\n function ucs2Write(buf2, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n Buffer13.prototype.write = function write2(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = "utf8";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === "string") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0)\n encoding = "utf8";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");\n }\n const remaining = this.length - offset;\n if (length === void 0 || length > remaining)\n length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError("Attempt to write outside buffer bounds");\n }\n if (!encoding)\n encoding = "utf8";\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "hex":\n return hexWrite(this, string, offset, length);\n case "utf8":\n case "utf-8":\n return utf8Write(this, string, offset, length);\n case "ascii":\n case "latin1":\n case "binary":\n return asciiWrite(this, string, offset, length);\n case "base64":\n return base64Write(this, string, offset, length);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer13.prototype.toJSON = function toJSON() {\n return {\n type: "Buffer",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf2, start, end) {\n if (start === 0 && end === buf2.length) {\n return base64.fromByteArray(buf2);\n } else {\n return base64.fromByteArray(buf2.slice(start, end));\n }\n }\n function utf8Slice(buf2, start, end) {\n end = Math.min(buf2.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf2[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf2[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n fourthByte = buf2[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = "";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i]);\n }\n return ret;\n }\n function hexSlice(buf2, start, end) {\n const len = buf2.length;\n if (!start || start < 0)\n start = 0;\n if (!end || end < 0 || end > len)\n end = len;\n let out = "";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf2[i]];\n }\n return out;\n }\n function utf16leSlice(buf2, start, end) {\n const bytes = buf2.slice(start, end);\n let res = "";\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer13.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0)\n start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0)\n end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start)\n end = start;\n const newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer13.prototype);\n return newBuf;\n };\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0)\n throw new RangeError("offset is not uint");\n if (offset + ext > length)\n throw new RangeError("Trying to access beyond buffer length");\n }\n Buffer13.prototype.readUintLE = Buffer13.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUintBE = Buffer13.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n let val = this[offset + --byteLength2];\n let mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUint8 = Buffer13.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer13.prototype.readUint16LE = Buffer13.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer13.prototype.readUint16BE = Buffer13.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer13.prototype.readUint32LE = Buffer13.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer13.prototype.readUint32BE = Buffer13.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer13.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer13.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer13.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let i = byteLength2;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128))\n return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer13.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer13.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer13.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer13.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer13.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, true, 23, 4);\n };\n Buffer13.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, false, 23, 4);\n };\n Buffer13.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, true, 52, 8);\n };\n Buffer13.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, false, 52, 8);\n };\n function checkInt(buf2, value, offset, ext, max, min) {\n if (!Buffer13.isBuffer(buf2))\n throw new TypeError(\'"buffer" argument must be a Buffer instance\');\n if (value > max || value < min)\n throw new RangeError(\'"value" argument is out of bounds\');\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n }\n Buffer13.prototype.writeUintLE = Buffer13.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUintBE = Buffer13.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUint8 = Buffer13.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeUint16LE = Buffer13.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeUint16BE = Buffer13.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeUint32LE = Buffer13.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeUint32BE = Buffer13.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset + 7] = lo;\n lo = lo >> 8;\n buf2[offset + 6] = lo;\n lo = lo >> 8;\n buf2[offset + 5] = lo;\n lo = lo >> 8;\n buf2[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset + 3] = hi;\n hi = hi >> 8;\n buf2[offset + 2] = hi;\n hi = hi >> 8;\n buf2[offset + 1] = hi;\n hi = hi >> 8;\n buf2[offset] = hi;\n return offset + 8;\n }\n Buffer13.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 127, -128);\n if (value < 0)\n value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer13.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0)\n value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n Buffer13.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n function checkIEEE754(buf2, value, offset, ext, max, min) {\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n if (offset < 0)\n throw new RangeError("Index out of range");\n }\n function writeFloat(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer13.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer13.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer13.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer13.isBuffer(target))\n throw new TypeError("argument should be a Buffer");\n if (!start)\n start = 0;\n if (!end && end !== 0)\n end = this.length;\n if (targetStart >= target.length)\n targetStart = target.length;\n if (!targetStart)\n targetStart = 0;\n if (end > 0 && end < start)\n end = start;\n if (end === start)\n return 0;\n if (target.length === 0 || this.length === 0)\n return 0;\n if (targetStart < 0) {\n throw new RangeError("targetStart out of bounds");\n }\n if (start < 0 || start >= this.length)\n throw new RangeError("Index out of range");\n if (end < 0)\n throw new RangeError("sourceEnd out of bounds");\n if (end > this.length)\n end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === "function") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n Buffer13.prototype.fill = function fill(val, start, end, encoding) {\n if (typeof val === "string") {\n if (typeof start === "string") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === "string") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== void 0 && typeof encoding !== "string") {\n throw new TypeError("encoding must be a string");\n }\n if (typeof encoding === "string" && !Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === "utf8" && code < 128 || encoding === "latin1") {\n val = code;\n }\n }\n } else if (typeof val === "number") {\n val = val & 255;\n } else if (typeof val === "boolean") {\n val = Number(val);\n }\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError("Out of range index");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val)\n val = 0;\n let i;\n if (typeof val === "number") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer13.isBuffer(val) ? val : Buffer13.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError(\'The value "\' + val + \'" is invalid for argument "value"\');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, "message", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n this.name = `${this.name} [${sym}]`;\n this.stack;\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, "code", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n return "Attempt to access memory outside buffer bounds";\n }, RangeError);\n E("ERR_INVALID_ARG_TYPE", function(name, actual) {\n return `The "${name}" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E("ERR_OUT_OF_RANGE", function(str, range, input) {\n let msg = `The value of "${str}" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === "bigint") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += "n";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n let res = "";\n let i = val.length;\n const start = val[0] === "-" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n function checkBounds(buf2, offset, byteLength2) {\n validateNumber(offset, "offset");\n if (buf2[offset] === void 0 || buf2[offset + byteLength2] === void 0) {\n boundsError(offset, buf2.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf2, offset, byteLength2) {\n if (value > max || value < min) {\n const n = typeof min === "bigint" ? "n" : "";\n let range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n throw new errors.ERR_OUT_OF_RANGE("value", range, value);\n }\n checkBounds(buf2, offset, byteLength2);\n }\n function validateNumber(value, name) {\n if (typeof value !== "number") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value);\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split("=")[0];\n str = str.trim().replace(INVALID_BASE64_RE, "");\n if (str.length < 2)\n return "";\n while (str.length % 4 !== 0) {\n str = str + "=";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error("Invalid code point");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0)\n break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length)\n break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n const alphabet = "0123456789abcdef";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error("BigInt not supported");\n }\n }\n});\n\n// esbuild.inject.js\nvar Buffer2;\nvar init_esbuild_inject = __esm({\n "esbuild.inject.js"() {\n "use strict";\n Buffer2 = require_buffer().Buffer;\n }\n});\n\n// node_modules/crc-32/crc32.js\nvar require_crc32 = __commonJS({\n "node_modules/crc-32/crc32.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var CRC32;\n (function(factory) {\n if (typeof DO_NOT_EXPORT_CRC === "undefined") {\n if (typeof exports === "object") {\n factory(exports);\n } else if (typeof define === "function" && define.amd) {\n define(function() {\n var module2 = {};\n factory(module2);\n return module2;\n });\n } else {\n factory(CRC32 = {});\n }\n } else {\n factory(CRC32 = {});\n }\n })(function(CRC322) {\n CRC322.version = "1.2.0";\n function signed_crc_table() {\n var c = 0, table = new Array(256);\n for (var n = 0; n != 256; ++n) {\n c = n;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n table[n] = c;\n }\n return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;\n }\n var T = signed_crc_table();\n function crc32_bstr(bstr, seed) {\n var C = seed ^ -1, L = bstr.length - 1;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n }\n if (i === L)\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i)) & 255];\n return C ^ -1;\n }\n function crc32_buf(buf2, seed) {\n if (buf2.length > 1e4)\n return crc32_buf_8(buf2, seed);\n var C = seed ^ -1, L = buf2.length - 3;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 3)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_buf_8(buf2, seed) {\n var C = seed ^ -1, L = buf2.length - 7;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 7)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_str(str, seed) {\n var C = seed ^ -1;\n for (var i = 0, L = str.length, c, d; i < L; ) {\n c = str.charCodeAt(i++);\n if (c < 128) {\n C = C >>> 8 ^ T[(C ^ c) & 255];\n } else if (c < 2048) {\n C = C >>> 8 ^ T[(C ^ (192 | c >> 6 & 31)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n } else if (c >= 55296 && c < 57344) {\n c = (c & 1023) + 64;\n d = str.charCodeAt(i++) & 1023;\n C = C >>> 8 ^ T[(C ^ (240 | c >> 8 & 7)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 2 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d & 63)) & 255];\n } else {\n C = C >>> 8 ^ T[(C ^ (224 | c >> 12 & 15)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 6 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n }\n }\n return C ^ -1;\n }\n CRC322.table = T;\n CRC322.bstr = crc32_bstr;\n CRC322.buf = crc32_buf;\n CRC322.str = crc32_str;\n });\n }\n});\n\n// node_modules/events/events.js\nvar require_events = __commonJS({\n "node_modules/events/events.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var R = typeof Reflect === "object" ? Reflect : null;\n var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === "function") {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn)\n console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = void 0;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = void 0;\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== "function") {\n throw new TypeError(\'The "listener" argument must be of type Function. Received type \' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, "defaultMaxListeners", {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError(\'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received \' + arg + ".");\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function() {\n if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || void 0;\n };\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {\n throw new RangeError(\'The value of "n" is out of range. It must be a non-negative number. Received \' + n + ".");\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === void 0)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++)\n args.push(arguments[i]);\n var doError = type === "error";\n var events = this._events;\n if (events !== void 0)\n doError = doError && events.error === void 0;\n else if (!doError)\n return false;\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n throw er;\n }\n var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));\n err.context = er;\n throw err;\n }\n var handler = events[type];\n if (handler === void 0)\n return false;\n if (typeof handler === "function") {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === void 0) {\n events = target._events = /* @__PURE__ */ Object.create(null);\n target._eventsCount = 0;\n } else {\n if (events.newListener !== void 0) {\n target.emit("newListener", type, listener.listener ? listener.listener : listener);\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === void 0) {\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === "function") {\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");\n w.name = "MaxListenersExceededWarning";\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: void 0, target, type, listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once2(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === void 0)\n return this;\n list = events[type];\n if (list === void 0)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit("removeListener", type, list.listener || listener);\n }\n } else if (typeof list !== "function") {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== void 0)\n this.emit("removeListener", type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === void 0)\n return this;\n if (events.removeListener === void 0) {\n if (arguments.length === 0) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== void 0) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key2;\n for (i = 0; i < keys.length; ++i) {\n key2 = keys[i];\n if (key2 === "removeListener")\n continue;\n this.removeAllListeners(key2);\n }\n this.removeAllListeners("removeListener");\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === "function") {\n this.removeListener(type, listeners);\n } else if (listeners !== void 0) {\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === void 0)\n return [];\n var evlistener = events[type];\n if (evlistener === void 0)\n return [];\n if (typeof evlistener === "function")\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === "function") {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== void 0) {\n var evlistener = events[type];\n if (typeof evlistener === "function") {\n return 1;\n } else if (evlistener !== void 0) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === "function") {\n emitter.removeListener("error", errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== "error") {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === "function") {\n eventTargetAgnosticAddListener(emitter, "error", handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === "function") {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === "function") {\n emitter.addEventListener(name, function wrapListener(arg) {\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError(\'The "emitter" argument must be of type EventEmitter. Received type \' + typeof emitter);\n }\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/stream-browser.js\nvar require_stream_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/stream-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = require_events().EventEmitter;\n }\n});\n\n// (disabled):node_modules/util/util.js\nvar require_util = __commonJS({\n "(disabled):node_modules/util/util.js"() {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/buffer_list.js\nvar require_buffer_list = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly)\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key2) {\n _defineProperty(target, key2, source[key2]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key2) {\n Object.defineProperty(target, key2, Object.getOwnPropertyDescriptor(source, key2));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require_buffer();\n var Buffer13 = _require.Buffer;\n var _require2 = require_util();\n var inspect = _require2.inspect;\n var custom = inspect && inspect.custom || "inspect";\n function copyBuffer(src, target, offset) {\n Buffer13.prototype.copy.call(src, target, offset);\n }\n module.exports = /* @__PURE__ */ function() {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: "push",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0)\n this.tail.next = entry;\n else\n this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: "unshift",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0)\n this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: "shift",\n value: function shift() {\n if (this.length === 0)\n return;\n var ret = this.head.data;\n if (this.length === 1)\n this.head = this.tail = null;\n else\n this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: "clear",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: "join",\n value: function join(s) {\n if (this.length === 0)\n return "";\n var p = this.head;\n var ret = "" + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: "concat",\n value: function concat(n) {\n if (this.length === 0)\n return Buffer13.alloc(0);\n var ret = Buffer13.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n }, {\n key: "consume",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n ret = this.shift();\n } else {\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: "first",\n value: function first() {\n return this.head.data;\n }\n }, {\n key: "_getString",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length)\n ret += str;\n else\n ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: "_getBuffer",\n value: function _getBuffer(n) {\n var ret = Buffer13.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf2 = p.data;\n var nb = n > buf2.length ? buf2.length : n;\n buf2.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf2.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf2.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n depth: 0,\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/destroy.js\nvar require_destroy = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function(err2) {\n if (!cb && err2) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self2, err) {\n emitErrorNT(self2, err);\n emitCloseNT(self2);\n }\n function emitCloseNT(self2) {\n if (self2._writableState && !self2._writableState.emitClose)\n return;\n if (self2._readableState && !self2._readableState.emitClose)\n return;\n self2.emit("close");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self2, err) {\n self2.emit("error", err);\n }\n function errorOrDestroy(stream, err) {\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy)\n stream.destroy(err);\n else\n stream.emit("error", err);\n }\n module.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n };\n }\n});\n\n// node_modules/readable-stream/errors-browser.js\nvar require_errors_browser = __commonJS({\n "node_modules/readable-stream/errors-browser.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n var codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === "string") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inheritsLoose(NodeError2, _Base);\n function NodeError2(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError2;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(", "), ", or ") + expected[len - 1];\n } else if (len === 2) {\n return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);\n } else {\n return "of ".concat(thing, " ").concat(expected[0]);\n }\n } else {\n return "of ".concat(thing, " ").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== "number") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) {\n return \'The value "\' + value + \'" is invalid for option "\' + name + \'"\';\n }, TypeError);\n createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) {\n var determiner;\n if (typeof expected === "string" && startsWith(expected, "not ")) {\n determiner = "must not be";\n expected = expected.replace(/^not /, "");\n } else {\n determiner = "must be";\n }\n var msg;\n if (endsWith(name, " argument")) {\n msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n } else {\n var type = includes(name, ".") ? "property" : "argument";\n msg = \'The "\'.concat(name, \'" \').concat(type, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n }\n msg += ". Received type ".concat(typeof actual);\n return msg;\n }, TypeError);\n createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");\n createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) {\n return "The " + name + " method is not implemented";\n });\n createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close");\n createErrorType("ERR_STREAM_DESTROYED", function(name) {\n return "Cannot call " + name + " after a stream was destroyed";\n });\n createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");\n createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");\n createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end");\n createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);\n createErrorType("ERR_UNKNOWN_ENCODING", function(arg) {\n return "Unknown encoding: " + arg;\n }, TypeError);\n createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");\n module.exports.codes = codes;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/state.js\nvar require_state = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/state.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : "highWaterMark";\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n return state.objectMode ? 16 : 16 * 1024;\n }\n module.exports = {\n getHighWaterMark\n };\n }\n});\n\n// node_modules/inherits/inherits_browser.js\nvar require_inherits_browser = __commonJS({\n "node_modules/inherits/inherits_browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n if (typeof Object.create === "function") {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n});\n\n// node_modules/util-deprecate/browser.js\nvar require_browser = __commonJS({\n "node_modules/util-deprecate/browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = deprecate;\n function deprecate(fn, msg) {\n if (config("noDeprecation")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config("throwDeprecation")) {\n throw new Error(msg);\n } else if (config("traceDeprecation")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n }\n function config(name) {\n try {\n if (!self.localStorage)\n return false;\n } catch (_) {\n return false;\n }\n var val = self.localStorage[name];\n if (val == null)\n return false;\n return String(val).toLowerCase() === "true";\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_writable.js\nvar require_stream_writable = __commonJS({\n "node_modules/readable-stream/lib/_stream_writable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Writable;\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function() {\n onCorkedFinish(_this, state);\n };\n }\n var Duplex;\n Writable.WritableState = WritableState;\n var internalUtil = {\n deprecate: require_browser()\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;\n var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;\n var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n require_inherits_browser()(Writable, Stream);\n function nop() {\n }\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.writableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex);\n this.finalCalled = false;\n this.needDrain = false;\n this.ending = false;\n this.ended = false;\n this.finished = false;\n this.destroyed = false;\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.length = 0;\n this.writing = false;\n this.corked = 0;\n this.sync = true;\n this.bufferProcessing = false;\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n this.writecb = null;\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n this.pendingcb = 0;\n this.prefinished = false;\n this.errorEmitted = false;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.bufferedRequestCount = 0;\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function() {\n try {\n Object.defineProperty(WritableState.prototype, "buffer", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")\n });\n } catch (_) {\n }\n })();\n var realHasInstance;\n if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object))\n return true;\n if (this !== Writable)\n return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance2(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || require_stream_duplex();\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this))\n return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n this.writable = true;\n if (options) {\n if (typeof options.write === "function")\n this._write = options.write;\n if (typeof options.writev === "function")\n this._writev = options.writev;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n if (typeof options.final === "function")\n this._final = options.final;\n }\n Stream.call(this);\n }\n Writable.prototype.pipe = function() {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n }\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== "string" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer13.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf)\n encoding = "buffer";\n else if (!encoding)\n encoding = state.defaultEncoding;\n if (typeof cb !== "function")\n cb = nop;\n if (state.ending)\n writeAfterEnd(this, cb);\n else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function() {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function() {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest)\n clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n if (typeof encoding === "string")\n encoding = encoding.toLowerCase();\n if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1))\n throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") {\n chunk = Buffer13.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = "buffer";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n if (!ret)\n state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed)\n state.onwrite(new ERR_STREAM_DESTROYED("write"));\n else if (writev)\n stream._writev(chunk, state.onwrite);\n else\n stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n process.nextTick(cb, er);\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== "function")\n throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er)\n onwriteError(stream, state, sync, er, cb);\n else {\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished)\n onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit("drain");\n }\n }\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf)\n allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, "", holder.finish);\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n if (state.writing) {\n break;\n }\n }\n if (entry === null)\n state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === "function") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== void 0)\n this.write(chunk, encoding);\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n if (!state.ending)\n endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function(err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit("prefinish");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === "function" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit("prefinish");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit("finish");\n if (state.autoDestroy) {\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished)\n process.nextTick(cb);\n else\n stream.once("finish", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._writableState === void 0) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n if (!this._writableState) {\n return;\n }\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_duplex.js\nvar require_stream_duplex = __commonJS({\n "node_modules/readable-stream/lib/_stream_duplex.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var objectKeys = Object.keys || function(obj) {\n var keys2 = [];\n for (var key2 in obj) {\n keys2.push(key2);\n }\n return keys2;\n };\n module.exports = Duplex;\n var Readable = require_stream_readable();\n var Writable = require_stream_writable();\n require_inherits_browser()(Duplex, Readable);\n {\n keys = objectKeys(Writable.prototype);\n for (v = 0; v < keys.length; v++) {\n method = keys[v];\n if (!Duplex.prototype[method])\n Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n var keys;\n var method;\n var v;\n function Duplex(options) {\n if (!(this instanceof Duplex))\n return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false)\n this.readable = false;\n if (options.writable === false)\n this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once("end", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function onend() {\n if (this._writableState.ended)\n return;\n process.nextTick(onEndNT, this);\n }\n function onEndNT(self2) {\n self2.end();\n }\n Object.defineProperty(Duplex.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return;\n }\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n }\n});\n\n// node_modules/safe-buffer/index.js\nvar require_safe_buffer = __commonJS({\n "node_modules/safe-buffer/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var buffer = require_buffer();\n var Buffer13 = buffer.Buffer;\n function copyProps(src, dst) {\n for (var key2 in src) {\n dst[key2] = src[key2];\n }\n }\n if (Buffer13.from && Buffer13.alloc && Buffer13.allocUnsafe && Buffer13.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer13(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer13.prototype);\n copyProps(Buffer13, SafeBuffer);\n SafeBuffer.from = function(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n throw new TypeError("Argument must not be a number");\n }\n return Buffer13(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function(size, fill, encoding) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n var buf2 = Buffer13(size);\n if (fill !== void 0) {\n if (typeof encoding === "string") {\n buf2.fill(fill, encoding);\n } else {\n buf2.fill(fill);\n }\n } else {\n buf2.fill(0);\n }\n return buf2;\n };\n SafeBuffer.allocUnsafe = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return Buffer13(size);\n };\n SafeBuffer.allocUnsafeSlow = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return buffer.SlowBuffer(size);\n };\n }\n});\n\n// node_modules/string_decoder/lib/string_decoder.js\nvar require_string_decoder = __commonJS({\n "node_modules/string_decoder/lib/string_decoder.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var Buffer13 = require_safe_buffer().Buffer;\n var isEncoding = Buffer13.isEncoding || function(encoding) {\n encoding = "" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n case "raw":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc)\n return "utf8";\n var retried;\n while (true) {\n switch (enc) {\n case "utf8":\n case "utf-8":\n return "utf8";\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return "utf16le";\n case "latin1":\n case "binary":\n return "latin1";\n case "base64":\n case "ascii":\n case "hex":\n return enc;\n default:\n if (retried)\n return;\n enc = ("" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== "string" && (Buffer13.isEncoding === isEncoding || !isEncoding(enc)))\n throw new Error("Unknown encoding: " + enc);\n return nenc || enc;\n }\n exports.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case "utf16le":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case "utf8":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case "base64":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer13.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function(buf2) {\n if (buf2.length === 0)\n return "";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf2);\n if (r === void 0)\n return "";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf2.length)\n return r ? r + this.text(buf2, i) : this.text(buf2, i);\n return r || "";\n };\n StringDecoder.prototype.end = utf8End;\n StringDecoder.prototype.text = utf8Text;\n StringDecoder.prototype.fillLast = function(buf2) {\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf2.length);\n this.lastNeed -= buf2.length;\n };\n function utf8CheckByte(byte) {\n if (byte <= 127)\n return 0;\n else if (byte >> 5 === 6)\n return 2;\n else if (byte >> 4 === 14)\n return 3;\n else if (byte >> 3 === 30)\n return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n function utf8CheckIncomplete(self2, buf2, i) {\n var j = buf2.length - 1;\n if (j < i)\n return 0;\n var nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2)\n nb = 0;\n else\n self2.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n function utf8CheckExtraBytes(self2, buf2, p) {\n if ((buf2[0] & 192) !== 128) {\n self2.lastNeed = 0;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 1 && buf2.length > 1) {\n if ((buf2[1] & 192) !== 128) {\n self2.lastNeed = 1;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 2 && buf2.length > 2) {\n if ((buf2[2] & 192) !== 128) {\n self2.lastNeed = 2;\n return "\\uFFFD";\n }\n }\n }\n }\n function utf8FillLast(buf2) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf2, p);\n if (r !== void 0)\n return r;\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, p, 0, buf2.length);\n this.lastNeed -= buf2.length;\n }\n function utf8Text(buf2, i) {\n var total = utf8CheckIncomplete(this, buf2, i);\n if (!this.lastNeed)\n return buf2.toString("utf8", i);\n this.lastTotal = total;\n var end = buf2.length - (total - this.lastNeed);\n buf2.copy(this.lastChar, 0, end);\n return buf2.toString("utf8", i, end);\n }\n function utf8End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + "\\uFFFD";\n return r;\n }\n function utf16Text(buf2, i) {\n if ((buf2.length - i) % 2 === 0) {\n var r = buf2.toString("utf16le", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf2[buf2.length - 1];\n return buf2.toString("utf16le", i, buf2.length - 1);\n }\n function utf16End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString("utf16le", 0, end);\n }\n return r;\n }\n function base64Text(buf2, i) {\n var n = (buf2.length - i) % 3;\n if (n === 0)\n return buf2.toString("base64", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf2[buf2.length - 1];\n } else {\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n }\n return buf2.toString("base64", i, buf2.length - n);\n }\n function base64End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed);\n return r;\n }\n function simpleWrite(buf2) {\n return buf2.toString(this.encoding);\n }\n function simpleEnd(buf2) {\n return buf2 && buf2.length ? this.write(buf2) : "";\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/end-of-stream.js\nvar require_end_of_stream = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop2() {\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === "function")\n return eos(stream, null, opts);\n if (!opts)\n opts = {};\n callback = once(callback || noop2);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable2 = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish2() {\n if (!stream.writable)\n onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish2() {\n writable2 = false;\n writableEnded = true;\n if (!readable)\n callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend2() {\n readable = false;\n readableEnded = true;\n if (!writable2)\n callback.call(stream);\n };\n var onerror = function onerror2(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose2() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable2 && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest2() {\n stream.req.on("finish", onfinish);\n };\n if (isRequest(stream)) {\n stream.on("complete", onfinish);\n stream.on("abort", onclose);\n if (stream.req)\n onrequest();\n else\n stream.on("request", onrequest);\n } else if (writable2 && !stream._writableState) {\n stream.on("end", onlegacyfinish);\n stream.on("close", onlegacyfinish);\n }\n stream.on("end", onend);\n stream.on("finish", onfinish);\n if (opts.error !== false)\n stream.on("error", onerror);\n stream.on("close", onclose);\n return function() {\n stream.removeListener("complete", onfinish);\n stream.removeListener("abort", onclose);\n stream.removeListener("request", onrequest);\n if (stream.req)\n stream.req.removeListener("finish", onfinish);\n stream.removeListener("end", onlegacyfinish);\n stream.removeListener("close", onlegacyfinish);\n stream.removeListener("finish", onfinish);\n stream.removeListener("end", onend);\n stream.removeListener("error", onerror);\n stream.removeListener("close", onclose);\n };\n }\n module.exports = eos;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/async_iterator.js\nvar require_async_iterator = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var _Object$setPrototypeO;\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n var finished = require_end_of_stream();\n var kLastResolve = Symbol("lastResolve");\n var kLastReject = Symbol("lastReject");\n var kError = Symbol("error");\n var kEnded = Symbol("ended");\n var kLastPromise = Symbol("lastPromise");\n var kHandlePromise = Symbol("handlePromise");\n var kStream = Symbol("stream");\n function createIterResult(value, done) {\n return {\n value,\n done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n process.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function(resolve, reject) {\n lastPromise.then(function() {\n if (iter[kEnded]) {\n resolve(createIterResult(void 0, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function() {\n });\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(void 0, true));\n }\n if (this[kStream].destroyed) {\n return new Promise(function(resolve, reject) {\n process.nextTick(function() {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(void 0, true));\n }\n });\n });\n }\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {\n return this;\n }), _defineProperty(_Object$setPrototypeO, "return", function _return() {\n var _this2 = this;\n return new Promise(function(resolve, reject) {\n _this2[kStream].destroy(null, function(err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(void 0, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function(err) {\n if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {\n var reject = iterator[kLastReject];\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(void 0, true));\n }\n iterator[kEnded] = true;\n });\n stream.on("readable", onReadable.bind(null, iterator));\n return iterator;\n };\n module.exports = createReadableStreamAsyncIterator;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/from-browser.js\nvar require_from_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/from-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = function() {\n throw new Error("Readable.from is not available in the browser");\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_readable.js\nvar require_stream_readable = __commonJS({\n "node_modules/readable-stream/lib/_stream_readable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Readable;\n var Duplex;\n Readable.ReadableState = ReadableState;\n var EE = require_events().EventEmitter;\n var EElistenerCount = function EElistenerCount2(emitter, type) {\n return emitter.listeners(type).length;\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var debugUtil = require_util();\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog("stream");\n } else {\n debug = function debug2() {\n };\n }\n var BufferList = require_buffer_list();\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n require_inherits_browser()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = ["error", "close", "destroy", "pause", "resume"];\n function prependListener(emitter, event, fn) {\n if (typeof emitter.prependListener === "function")\n return emitter.prependListener(event, fn);\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.readableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex);\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n this.sync = true;\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.destroyed = false;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.awaitDrain = 0;\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || require_stream_duplex();\n if (!(this instanceof Readable))\n return new Readable(options);\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n this.readable = true;\n if (options) {\n if (typeof options.read === "function")\n this._read = options.read;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n if (!this._readableState) {\n return;\n }\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n Readable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === "string") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer13.from(chunk, encoding);\n encoding = "";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n Readable.prototype.unshift = function(chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug("readableAddChunk", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck)\n er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer13.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted)\n errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else\n addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0)\n addChunk(stream, state, chunk, false);\n else\n maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit("data", chunk);\n } else {\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront)\n state.buffer.unshift(chunk);\n else\n state.buffer.push(chunk);\n if (state.needReadable)\n emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function() {\n return this._readableState.flowing === false;\n };\n Readable.prototype.setEncoding = function(enc) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n this._readableState.encoding = this._readableState.decoder.encoding;\n var p = this._readableState.buffer.head;\n var content = "";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== "")\n this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended)\n return 0;\n if (state.objectMode)\n return 1;\n if (n !== n) {\n if (state.flowing && state.length)\n return state.buffer.head.data.length;\n else\n return state.length;\n }\n if (n > state.highWaterMark)\n state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length)\n return n;\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n Readable.prototype.read = function(n) {\n debug("read", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0)\n state.emittedReadable = false;\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug("read: emitReadable", state.length, state.ended);\n if (state.length === 0 && state.ended)\n endReadable(this);\n else\n emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n if (n === 0 && state.ended) {\n if (state.length === 0)\n endReadable(this);\n return null;\n }\n var doRead = state.needReadable;\n debug("need readable", doRead);\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug("length less than watermark", doRead);\n }\n if (state.ended || state.reading) {\n doRead = false;\n debug("reading or ended", doRead);\n } else if (doRead) {\n debug("do read");\n state.reading = true;\n state.sync = true;\n if (state.length === 0)\n state.needReadable = true;\n this._read(state.highWaterMark);\n state.sync = false;\n if (!state.reading)\n n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0)\n ret = fromList(n, state);\n else\n ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n if (!state.ended)\n state.needReadable = true;\n if (nOrig !== n && state.ended)\n endReadable(this);\n }\n if (ret !== null)\n this.emit("data", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug("onEofChunk");\n if (state.ended)\n return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n emitReadable(stream);\n } else {\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n function emitReadable(stream) {\n var state = stream._readableState;\n debug("emitReadable", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug("emitReadable", state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug("emitReadable_", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit("readable");\n state.emittedReadable = false;\n }\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug("maybeReadMore read 0");\n stream.read(0);\n if (len === state.length)\n break;\n }\n state.readingMore = false;\n }\n Readable.prototype._read = function(n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()"));\n };\n Readable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted)\n process.nextTick(endFn);\n else\n src.once("end", endFn);\n dest.on("unpipe", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug("onunpipe");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug("onend");\n dest.end();\n }\n var ondrain = pipeOnDrain(src);\n dest.on("drain", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug("cleanup");\n dest.removeListener("close", onclose);\n dest.removeListener("finish", onfinish);\n dest.removeListener("drain", ondrain);\n dest.removeListener("error", onerror);\n dest.removeListener("unpipe", onunpipe);\n src.removeListener("end", onend);\n src.removeListener("end", unpipe);\n src.removeListener("data", ondata);\n cleanedUp = true;\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain))\n ondrain();\n }\n src.on("data", ondata);\n function ondata(chunk) {\n debug("ondata");\n var ret = dest.write(chunk);\n debug("dest.write", ret);\n if (ret === false) {\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug("false write response, pause", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n function onerror(er) {\n debug("onerror", er);\n unpipe();\n dest.removeListener("error", onerror);\n if (EElistenerCount(dest, "error") === 0)\n errorOrDestroy(dest, er);\n }\n prependListener(dest, "error", onerror);\n function onclose() {\n dest.removeListener("finish", onfinish);\n unpipe();\n }\n dest.once("close", onclose);\n function onfinish() {\n debug("onfinish");\n dest.removeListener("close", onclose);\n unpipe();\n }\n dest.once("finish", onfinish);\n function unpipe() {\n debug("unpipe");\n src.unpipe(dest);\n }\n dest.emit("pipe", src);\n if (!state.flowing) {\n debug("pipe resume");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug("pipeOnDrain", state.awaitDrain);\n if (state.awaitDrain)\n state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, "data")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n if (state.pipesCount === 0)\n return this;\n if (state.pipesCount === 1) {\n if (dest && dest !== state.pipes)\n return this;\n if (!dest)\n dest = state.pipes;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest)\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n }\n if (!dest) {\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit("unpipe", this, {\n hasUnpiped: false\n });\n }\n return this;\n }\n var index = indexOf(state.pipes, dest);\n if (index === -1)\n return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1)\n state.pipes = state.pipes[0];\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n };\n Readable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === "data") {\n state.readableListening = this.listenerCount("readable") > 0;\n if (state.flowing !== false)\n this.resume();\n } else if (ev === "readable") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug("on readable", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function(ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === "readable") {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function(ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === "readable" || ev === void 0) {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self2) {\n var state = self2._readableState;\n state.readableListening = self2.listenerCount("readable") > 0;\n if (state.resumeScheduled && !state.paused) {\n state.flowing = true;\n } else if (self2.listenerCount("data") > 0) {\n self2.resume();\n }\n }\n function nReadingNextTick(self2) {\n debug("readable nexttick read 0");\n self2.read(0);\n }\n Readable.prototype.resume = function() {\n var state = this._readableState;\n if (!state.flowing) {\n debug("resume");\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug("resume", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit("resume");\n flow(stream);\n if (state.flowing && !state.reading)\n stream.read(0);\n }\n Readable.prototype.pause = function() {\n debug("call pause flowing=%j", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug("pause");\n this._readableState.flowing = false;\n this.emit("pause");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug("flow", state.flowing);\n while (state.flowing && stream.read() !== null) {\n ;\n }\n }\n Readable.prototype.wrap = function(stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on("end", function() {\n debug("wrapped end");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length)\n _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on("data", function(chunk) {\n debug("wrapped data");\n if (state.decoder)\n chunk = state.decoder.write(chunk);\n if (state.objectMode && (chunk === null || chunk === void 0))\n return;\n else if (!state.objectMode && (!chunk || !chunk.length))\n return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n for (var i in stream) {\n if (this[i] === void 0 && typeof stream[i] === "function") {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n this._read = function(n2) {\n debug("wrapped _read", n2);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === "function") {\n Readable.prototype[Symbol.asyncIterator] = function() {\n if (createReadableStreamAsyncIterator === void 0) {\n createReadableStreamAsyncIterator = require_async_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, "readableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, "readableBuffer", {\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, "readableFlowing", {\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, "readableLength", {\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n function fromList(n, state) {\n if (state.length === 0)\n return null;\n var ret;\n if (state.objectMode)\n ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n if (state.decoder)\n ret = state.buffer.join("");\n else if (state.buffer.length === 1)\n ret = state.buffer.first();\n else\n ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug("endReadable", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug("endReadableNT", state.endEmitted, state.length);\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit("end");\n if (state.autoDestroy) {\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === "function") {\n Readable.from = function(iterable, opts) {\n if (from === void 0) {\n from = require_from_browser();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x)\n return i;\n }\n return -1;\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_transform.js\nvar require_stream_transform = __commonJS({\n "node_modules/readable-stream/lib/_stream_transform.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Transform;\n var _require$codes = require_errors_browser().codes;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;\n var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = require_stream_duplex();\n require_inherits_browser()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit("error", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform))\n return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n this._readableState.needReadable = true;\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === "function")\n this._transform = options.transform;\n if (typeof options.flush === "function")\n this._flush = options.flush;\n }\n this.on("prefinish", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === "function" && !this._readableState.destroyed) {\n this._flush(function(er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n Transform.prototype._transform = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"));\n };\n Transform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark)\n this._read(rs.highWaterMark);\n }\n };\n Transform.prototype._read = function(n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function(err, cb) {\n Duplex.prototype._destroy.call(this, err, function(err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er)\n return stream.emit("error", er);\n if (data != null)\n stream.push(data);\n if (stream._writableState.length)\n throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming)\n throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_passthrough.js\nvar require_stream_passthrough = __commonJS({\n "node_modules/readable-stream/lib/_stream_passthrough.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = PassThrough;\n var Transform = require_stream_transform();\n require_inherits_browser()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough))\n return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n };\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/pipeline.js\nvar require_pipeline = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var eos;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = require_errors_browser().codes;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop2(err) {\n if (err)\n throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on("close", function() {\n closed = true;\n });\n if (eos === void 0)\n eos = require_end_of_stream();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function(err) {\n if (err)\n return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function(err) {\n if (closed)\n return;\n if (destroyed)\n return;\n destroyed = true;\n if (isRequest(stream))\n return stream.abort();\n if (typeof stream.destroy === "function")\n return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED("pipe"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length)\n return noop2;\n if (typeof streams[streams.length - 1] !== "function")\n return noop2;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0]))\n streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS("streams");\n }\n var error;\n var destroys = streams.map(function(stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function(err) {\n if (!error)\n error = err;\n if (err)\n destroys.forEach(call);\n if (reading)\n return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n module.exports = pipeline;\n }\n});\n\n// node_modules/readable-stream/readable-browser.js\nvar require_readable_browser = __commonJS({\n "node_modules/readable-stream/readable-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports = module.exports = require_stream_readable();\n exports.Stream = exports;\n exports.Readable = exports;\n exports.Writable = require_stream_writable();\n exports.Duplex = require_stream_duplex();\n exports.Transform = require_stream_transform();\n exports.PassThrough = require_stream_passthrough();\n exports.finished = require_end_of_stream();\n exports.pipeline = require_pipeline();\n }\n});\n\n// node_modules/readable-web-to-node-stream/lib/index.js\nvar require_lib = __commonJS({\n "node_modules/readable-web-to-node-stream/lib/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n Object.defineProperty(exports, "__esModule", { value: true });\n exports.ReadableWebToNodeStream = void 0;\n var readable_stream_1 = require_readable_browser();\n var ReadableWebToNodeStream2 = class extends readable_stream_1.Readable {\n constructor(stream) {\n super();\n this.bytesRead = 0;\n this.released = false;\n this.reader = stream.getReader();\n }\n async _read() {\n if (this.released) {\n this.push(null);\n return;\n }\n this.pendingRead = this.reader.read();\n const data = await this.pendingRead;\n delete this.pendingRead;\n if (data.done || this.released) {\n this.push(null);\n } else {\n this.bytesRead += data.value.length;\n this.push(data.value);\n }\n }\n async waitForReadToComplete() {\n if (this.pendingRead) {\n await this.pendingRead;\n }\n }\n async close() {\n await this.syncAndRelease();\n }\n async syncAndRelease() {\n this.released = true;\n await this.waitForReadToComplete();\n await this.reader.releaseLock();\n }\n };\n exports.ReadableWebToNodeStream = ReadableWebToNodeStream2;\n }\n});\n\n// node_modules/base-x/src/index.js\nvar require_src = __commonJS({\n "node_modules/base-x/src/index.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function base(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError("Alphabet too long");\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + " is ambiguous");\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode2(source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError("Expected Uint8Array");\n }\n if (source.length === 0) {\n return "";\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i2 = 0;\n for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== "string") {\n throw new TypeError("Expected String");\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i2 = 0;\n for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n psz++;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j2 = zeroes;\n while (it4 !== size) {\n vch[j2++] = b256[it4++];\n }\n return vch;\n }\n function decode3(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error("Non-base" + BASE + " character");\n }\n return {\n encode: encode2,\n decodeUnsafe,\n decode: decode3\n };\n }\n module.exports = base;\n }\n});\n\n// node_modules/bs58/index.js\nvar require_bs58 = __commonJS({\n "node_modules/bs58/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var basex = require_src();\n var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";\n module.exports = basex(ALPHABET);\n }\n});\n\n// node_modules/jpeg-js/lib/encoder.js\nvar require_encoder = __commonJS({\n "node_modules/jpeg-js/lib/encoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var btoa = btoa || function(buf2) {\n return Buffer2.from(buf2).toString("base64");\n };\n function JPEGEncoder(quality) {\n var self2 = this;\n var fround = Math.round;\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT2;\n var UVDC_HT2;\n var YAC_HT2;\n var UVAC_HT2;\n var bitcode2 = new Array(65535);\n var category2 = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n var std_dc_luminance_nrcodes2 = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\n var std_dc_luminance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes2 = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\n var std_ac_luminance_values2 = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n var std_dc_chrominance_nrcodes2 = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\n var std_dc_chrominance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes2 = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\n var std_ac_chrominance_values2 = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n if (t < 1) {\n t = 1;\n } else if (t > 255) {\n t = 255;\n }\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n if (u < 1) {\n u = 1;\n } else if (u > 255) {\n u = 255;\n }\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n fdtbl_UV[k] = 1 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n k++;\n }\n }\n }\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n function initHuffmanTbl() {\n YDC_HT2 = computeHuffmanTbl(std_dc_luminance_nrcodes2, std_dc_luminance_values2);\n UVDC_HT2 = computeHuffmanTbl(std_dc_chrominance_nrcodes2, std_dc_chrominance_values2);\n YAC_HT2 = computeHuffmanTbl(std_ac_luminance_nrcodes2, std_ac_luminance_values2);\n UVAC_HT2 = computeHuffmanTbl(std_ac_chrominance_nrcodes2, std_ac_chrominance_values2);\n }\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n for (var nr = nrlower; nr < nrupper; nr++) {\n category2[32767 + nr] = cat;\n bitcode2[32767 + nr] = [];\n bitcode2[32767 + nr][1] = cat;\n bitcode2[32767 + nr][0] = nr;\n }\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category2[32767 + nrneg] = cat;\n bitcode2[32767 + nrneg] = [];\n bitcode2[32767 + nrneg][1] = cat;\n bitcode2[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[i + 256 >> 0] = 38470 * i;\n RGB_YUV_TABLE[i + 512 >> 0] = 7471 * i + 32768;\n RGB_YUV_TABLE[i + 768 >> 0] = -11059 * i;\n RGB_YUV_TABLE[i + 1024 >> 0] = -21709 * i;\n RGB_YUV_TABLE[i + 1280 >> 0] = 32768 * i + 8421375;\n RGB_YUV_TABLE[i + 1536 >> 0] = -27439 * i;\n RGB_YUV_TABLE[i + 1792 >> 0] = -5329 * i;\n }\n }\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & 1 << posval) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 255) {\n writeByte(255);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n function writeByte(value) {\n byteout.push(value);\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n var tmp10 = tmp0 + tmp3;\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n data[dataOff] = tmp10 + tmp11;\n data[dataOff + 4] = tmp10 - tmp11;\n var z1 = (tmp12 + tmp13) * 0.707106781;\n data[dataOff + 2] = tmp13 + z1;\n data[dataOff + 6] = tmp13 - z1;\n tmp10 = tmp4 + tmp5;\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n var z5 = (tmp10 - tmp12) * 0.382683433;\n var z2 = 0.5411961 * tmp10 + z5;\n var z4 = 1.306562965 * tmp12 + z5;\n var z3 = tmp11 * 0.707106781;\n var z11 = tmp7 + z3;\n var z13 = tmp7 - z3;\n data[dataOff + 5] = z13 + z2;\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n dataOff += 8;\n }\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n var tmp10p2 = tmp0p2 + tmp3p2;\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n data[dataOff] = tmp10p2 + tmp11p2;\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781;\n data[dataOff + 16] = tmp13p2 + z1p2;\n data[dataOff + 48] = tmp13p2 - z1p2;\n tmp10p2 = tmp4p2 + tmp5p2;\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433;\n var z2p2 = 0.5411961 * tmp10p2 + z5p2;\n var z4p2 = 1.306562965 * tmp12p2 + z5p2;\n var z3p2 = tmp11p2 * 0.707106781;\n var z11p2 = tmp7p2 + z3p2;\n var z13p2 = tmp7p2 - z3p2;\n data[dataOff + 40] = z13p2 + z2p2;\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n dataOff++;\n }\n var fDCTQuant2;\n for (i = 0; i < I64; ++i) {\n fDCTQuant2 = data[i] * fdtbl[i];\n outputfDCTQuant[i] = fDCTQuant2 > 0 ? fDCTQuant2 + 0.5 | 0 : fDCTQuant2 - 0.5 | 0;\n }\n return outputfDCTQuant;\n }\n function writeAPP0() {\n writeWord(65504);\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n }\n function writeAPP1(exifBuffer) {\n if (!exifBuffer)\n return;\n writeWord(65505);\n if (exifBuffer[0] === 69 && exifBuffer[1] === 120 && exifBuffer[2] === 105 && exifBuffer[3] === 102) {\n writeWord(exifBuffer.length + 2);\n } else {\n writeWord(exifBuffer.length + 5 + 2);\n writeByte(69);\n writeByte(120);\n writeByte(105);\n writeByte(102);\n writeByte(0);\n }\n for (var i = 0; i < exifBuffer.length; i++) {\n writeByte(exifBuffer[i]);\n }\n }\n function writeSOF0(width, height) {\n writeWord(65472);\n writeWord(17);\n writeByte(8);\n writeWord(height);\n writeWord(width);\n writeByte(3);\n writeByte(1);\n writeByte(17);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(1);\n writeByte(3);\n writeByte(17);\n writeByte(1);\n }\n function writeDQT() {\n writeWord(65499);\n writeWord(132);\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n function writeDHT() {\n writeWord(65476);\n writeWord(418);\n writeByte(0);\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes2[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values2[j]);\n }\n writeByte(16);\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes2[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values2[l]);\n }\n writeByte(1);\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes2[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values2[n]);\n }\n writeByte(17);\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes2[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values2[p]);\n }\n }\n function writeCOM(comments) {\n if (typeof comments === "undefined" || comments.constructor !== Array)\n return;\n comments.forEach((e) => {\n if (typeof e !== "string")\n return;\n writeWord(65534);\n var l = e.length;\n writeWord(l + 2);\n var i;\n for (i = 0; i < l; i++)\n writeByte(e.charCodeAt(i));\n });\n }\n function writeSOS() {\n writeWord(65498);\n writeWord(12);\n writeByte(3);\n writeByte(1);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(3);\n writeByte(17);\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0];\n var M16zeroes = HTAC[240];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n if (Diff == 0) {\n writeBits(HTDC[0]);\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category2[pos]]);\n writeBits(bitcode2[pos]);\n }\n var end0pos = 63;\n for (; end0pos > 0 && DU[end0pos] == 0; end0pos--) {\n }\n ;\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n for (; DU[i] == 0 && i <= end0pos; ++i) {\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category2[pos]]);\n writeBits(bitcode2[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n clt[i] = sfcc(i);\n }\n }\n this.encode = function(image, quality2) {\n var time_start = new Date().getTime();\n if (quality2)\n setQuality(quality2);\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n writeWord(65496);\n writeAPP0();\n writeCOM(image.comments);\n writeAPP1(image.exifBuffer);\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n bytenew = 0;\n bytepos = 7;\n this.encode.displayName = "_encode_";\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n var quadWidth = width * 4;\n var tripleWidth = width * 3;\n var x, y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n p = start;\n col = -1;\n row = 0;\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3;\n col = (pos & 7) * 4;\n p = start + row * quadWidth + col;\n if (y + row >= height) {\n p -= quadWidth * (y + 1 + row - height);\n }\n if (x + col >= quadWidth) {\n p -= x + col - quadWidth + 4;\n }\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n YDU[pos] = (RGB_YUV_TABLE[r] + RGB_YUV_TABLE[g + 256 >> 0] + RGB_YUV_TABLE[b + 512 >> 0] >> 16) - 128;\n UDU[pos] = (RGB_YUV_TABLE[r + 768 >> 0] + RGB_YUV_TABLE[g + 1024 >> 0] + RGB_YUV_TABLE[b + 1280 >> 0] >> 16) - 128;\n VDU[pos] = (RGB_YUV_TABLE[r + 1280 >> 0] + RGB_YUV_TABLE[g + 1536 >> 0] + RGB_YUV_TABLE[b + 1792 >> 0] >> 16) - 128;\n }\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT2, YAC_HT2);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT2, UVAC_HT2);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT2, UVAC_HT2);\n x += 32;\n }\n y += 8;\n }\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << bytepos + 1) - 1;\n writeBits(fillbits);\n }\n writeWord(65497);\n if (typeof module === "undefined")\n return new Uint8Array(byteout);\n return Buffer2.from(byteout);\n var jpegDataUri = "data:image/jpeg;base64," + btoa(byteout.join(""));\n byteout = [];\n var duration = new Date().getTime() - time_start;\n return jpegDataUri;\n };\n function setQuality(quality2) {\n if (quality2 <= 0) {\n quality2 = 1;\n }\n if (quality2 > 100) {\n quality2 = 100;\n }\n if (currentQuality == quality2)\n return;\n var sf = 0;\n if (quality2 < 50) {\n sf = Math.floor(5e3 / quality2);\n } else {\n sf = Math.floor(200 - quality2 * 2);\n }\n initQuantTables(sf);\n currentQuality = quality2;\n }\n function init3() {\n var time_start = new Date().getTime();\n if (!quality)\n quality = 50;\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n setQuality(quality);\n var duration = new Date().getTime() - time_start;\n }\n init3();\n }\n if (typeof module !== "undefined") {\n module.exports = encode2;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].encode = encode2;\n }\n function encode2(imgData, qu) {\n if (typeof qu === "undefined")\n qu = 50;\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(imgData, qu);\n return {\n data,\n width: imgData.width,\n height: imgData.height\n };\n }\n }\n});\n\n// node_modules/jpeg-js/lib/decoder.js\nvar require_decoder = __commonJS({\n "node_modules/jpeg-js/lib/decoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var JpegImage = function jpegImage() {\n "use strict";\n var dctZigZag = new Int32Array([\n 0,\n 1,\n 8,\n 16,\n 9,\n 2,\n 3,\n 10,\n 17,\n 24,\n 32,\n 25,\n 18,\n 11,\n 4,\n 5,\n 12,\n 19,\n 26,\n 33,\n 40,\n 48,\n 41,\n 34,\n 27,\n 20,\n 13,\n 6,\n 7,\n 14,\n 21,\n 28,\n 35,\n 42,\n 49,\n 56,\n 57,\n 50,\n 43,\n 36,\n 29,\n 22,\n 15,\n 23,\n 30,\n 37,\n 44,\n 51,\n 58,\n 59,\n 52,\n 45,\n 38,\n 31,\n 39,\n 46,\n 53,\n 60,\n 61,\n 54,\n 47,\n 55,\n 62,\n 63\n ]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n function constructor() {\n }\n function buildHuffmanTable2(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, opts) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH, maxV = frame.maxV;\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 255) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new Error("unexpected marker: " + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree, bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === "number")\n return node;\n if (typeof node !== "object")\n throw new Error("invalid huffman sequence");\n }\n return null;\n }\n function receive(length) {\n var n2 = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null)\n return;\n n2 = n2 << 1 | bit;\n length--;\n }\n return n2;\n }\n function receiveAndExtend(length) {\n var n2 = receive(length);\n if (n2 >= 1 << length - 1)\n return n2;\n return n2 + (-1 << length) + 1;\n }\n function decodeBaseline(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n zz[0] = component2.pred += diff;\n var k2 = 1;\n while (k2 < 64) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15)\n break;\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s);\n k2++;\n }\n }\n function decodeDCFirst(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n zz[0] = component2.pred += diff;\n }\n function decodeDCSuccessive(component2, zz) {\n zz[0] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component2, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k2 = spectralStart, e = spectralEnd;\n while (k2 <= e) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k2++;\n }\n }\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component2, zz) {\n var k2 = spectralStart, e = spectralEnd, r = 0;\n while (k2 <= e) {\n var z = dctZigZag[k2];\n var direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0:\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1)\n throw new Error("invalid ACn encoding");\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n r--;\n if (r === 0)\n successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n break;\n }\n k2++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0)\n successiveACState = 0;\n }\n }\n function decodeMcu(component2, decode4, mcu2, row, col) {\n var mcuRow = mcu2 / mcusPerLine | 0;\n var mcuCol = mcu2 % mcusPerLine;\n var blockRow = mcuRow * component2.v + row;\n var blockCol = mcuCol * component2.h + col;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component2, decode4, mcu2) {\n var blockRow = mcu2 / component2.blocksPerLine | 0;\n var blockCol = mcu2 % component2.blocksPerLine;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0, marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval)\n resetInterval = mcuExpected;\n var h, v;\n while (mcu < mcuExpected) {\n for (i = 0; i < componentsLength; i++)\n components[i].pred = 0;\n eobrun = 0;\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n if (mcu === mcuExpected)\n break;\n }\n }\n if (mcu === mcuExpected) {\n do {\n if (data[offset] === 255) {\n if (data[offset + 1] !== 0) {\n break;\n }\n }\n offset += 1;\n } while (offset < data.length - 2);\n }\n bitsCount = 0;\n marker = data[offset] << 8 | data[offset + 1];\n if (marker < 65280) {\n throw new Error("marker was not found");\n }\n if (marker >= 65488 && marker <= 65495) {\n offset += 2;\n } else\n break;\n }\n return offset - startOffset;\n }\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var R = new Int32Array(64), r = new Uint8Array(64);\n function quantizeAndInverse(zz, dataOut, dataIn) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var p = dataIn;\n var i2;\n for (i2 = 0; i2 < 64; i2++)\n p[i2] = zz[i2] * qt[i2];\n for (i2 = 0; i2 < 8; ++i2) {\n var row = 8 * i2;\n if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 && p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 && p[7 + row] == 0) {\n t = dctSqrt2 * p[0 + row] + 512 >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 + row] + 128 >> 8;\n v1 = dctSqrt2 * p[4 + row] + 128 >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8;\n v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n for (i2 = 0; i2 < 8; ++i2) {\n var col = i2;\n if (p[1 * 8 + col] == 0 && p[2 * 8 + col] == 0 && p[3 * 8 + col] == 0 && p[4 * 8 + col] == 0 && p[5 * 8 + col] == 0 && p[6 * 8 + col] == 0 && p[7 * 8 + col] == 0) {\n t = dctSqrt2 * dataIn[i2 + 0] + 8192 >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12;\n v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n for (i2 = 0; i2 < 64; ++i2) {\n var sample2 = 128 + (p[i2] + 8 >> 4);\n dataOut[i2] = sample2 < 0 ? 0 : sample2 > 255 ? 255 : sample2;\n }\n }\n requestMemoryAllocation(samplesPerLine * blocksPerColumn * 8);\n var i, j;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (i = 0; i < 8; i++)\n lines.push(new Uint8Array(samplesPerLine));\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n var offset = 0, sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var line = lines[scanLine + j];\n for (i = 0; i < 8; i++)\n line[sample + i] = r[offset++];\n }\n }\n }\n return lines;\n }\n function clampTo8bit(a) {\n return a < 0 ? 0 : a > 255 ? 255 : a;\n }\n constructor.prototype = {\n load: function load(path) {\n var xhr = new XMLHttpRequest();\n xhr.open("GET", path, true);\n xhr.responseType = "arraybuffer";\n xhr.onload = function() {\n var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n this.parse(data);\n if (this.onload)\n this.onload();\n }.bind(this);\n xhr.send(null);\n },\n parse: function parse(data) {\n var maxResolutionInPixels = this.opts.maxResolutionInMP * 1e3 * 1e3;\n var offset = 0, length = data.length;\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length2 = readUint16();\n var array = data.subarray(offset, offset + length2 - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame2) {\n var maxH2 = 1, maxV2 = 1;\n var component2, componentId2;\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n if (maxH2 < component2.h)\n maxH2 = component2.h;\n if (maxV2 < component2.v)\n maxV2 = component2.v;\n }\n }\n var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / maxH2);\n var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / maxV2);\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component2.h / maxH2);\n var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component2.v / maxV2);\n var blocksPerLineForMcu = mcusPerLine * component2.h;\n var blocksPerColumnForMcu = mcusPerColumn * component2.v;\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\n var blocks = [];\n requestMemoryAllocation(blocksToAllocate * 256);\n for (var i2 = 0; i2 < blocksPerColumnForMcu; i2++) {\n var row = [];\n for (var j2 = 0; j2 < blocksPerLineForMcu; j2++)\n row.push(new Int32Array(64));\n blocks.push(row);\n }\n component2.blocksPerLine = blocksPerLine;\n component2.blocksPerColumn = blocksPerColumn;\n component2.blocks = blocks;\n }\n }\n frame2.maxH = maxH2;\n frame2.maxV = maxV2;\n frame2.mcusPerLine = mcusPerLine;\n frame2.mcusPerColumn = mcusPerColumn;\n }\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [], frames = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n var malformedDataOffset = -1;\n this.comments = [];\n if (fileMarker != 65496) {\n throw new Error("SOI not found");\n }\n fileMarker = readUint16();\n while (fileMarker != 65497) {\n var i, j, l;\n switch (fileMarker) {\n case 65280:\n break;\n case 65504:\n case 65505:\n case 65506:\n case 65507:\n case 65508:\n case 65509:\n case 65510:\n case 65511:\n case 65512:\n case 65513:\n case 65514:\n case 65515:\n case 65516:\n case 65517:\n case 65518:\n case 65519:\n case 65534:\n var appData = readDataBlock();\n if (fileMarker === 65534) {\n var comment = String.fromCharCode.apply(null, appData);\n this.comments.push(comment);\n }\n if (fileMarker === 65504) {\n if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n if (fileMarker === 65505) {\n if (appData[0] === 69 && appData[1] === 120 && appData[2] === 105 && appData[3] === 102 && appData[4] === 0) {\n this.exifBuffer = appData.subarray(5, appData.length);\n }\n }\n if (fileMarker === 65518) {\n if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) {\n adobe = {\n version: appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n case 65499:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n requestMemoryAllocation(64 * 4);\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else\n throw new Error("DQT: invalid table spec");\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 65472:\n case 65473:\n case 65474:\n readUint16();\n frame = {};\n frame.extended = fileMarker === 65473;\n frame.progressive = fileMarker === 65474;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = {};\n frame.componentsOrder = [];\n var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\n if (pixelsInFrame > maxResolutionInPixels) {\n var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\n throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\n }\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n var qId = data[offset + 2];\n if (h <= 0 || v <= 0) {\n throw new Error("Invalid sampling factor, expected values above 0");\n }\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId\n };\n offset += 3;\n }\n prepareComponents(frame);\n frames.push(frame);\n break;\n case 65476:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n requestMemoryAllocation(16 + codeLengthSum);\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable2(codeLengths, huffmanValues);\n }\n break;\n case 65501:\n readUint16();\n resetInterval = readUint16();\n break;\n case 65500:\n readUint16();\n readUint16();\n break;\n case 65498:\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n component = frame.components[data[offset++]];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, this.opts);\n offset += processed;\n break;\n case 65535:\n if (data[offset] !== 255) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n break;\n } else if (fileMarker === 224 || fileMarker == 225) {\n if (malformedDataOffset !== -1) {\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\n }\n malformedDataOffset = offset - 1;\n const nextOffset = readUint16();\n if (data[offset + nextOffset - 2] === 255) {\n offset += nextOffset - 2;\n break;\n }\n }\n throw new Error("unknown JPEG marker " + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n if (frames.length != 1)\n throw new Error("only single frame JPEGs supported");\n for (var i = 0; i < frames.length; i++) {\n var cp = frames[i].components;\n for (var j in cp) {\n cp[j].quantizationTable = quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (var i = 0; i < frame.componentsOrder.length; i++) {\n var component = frame.components[frame.componentsOrder[i]];\n this.components.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV\n });\n }\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width, scaleY = this.height / height;\n var component1, component2, component3, component4;\n var component1Line, component2Line, component3Line, component4Line;\n var x, y;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var dataLength = width * height * this.components.length;\n requestMemoryAllocation(dataLength);\n var data = new Uint8Array(dataLength);\n switch (this.components.length) {\n case 1:\n component1 = this.components[0];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 2:\n component1 = this.components[0];\n component2 = this.components[1];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n Y = component2Line[0 | x * component2.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 3:\n colorTransform = true;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n R = component1Line[0 | x * component1.scaleX * scaleX];\n G = component2Line[0 | x * component2.scaleX * scaleX];\n B = component3Line[0 | x * component3.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n R = clampTo8bit(Y + 1.402 * (Cr - 128));\n G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n B = clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = R;\n data[offset++] = G;\n data[offset++] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe)\n throw new Error("Unsupported color mode (4 components)");\n colorTransform = false;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n component4 = this.components[3];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n component4Line = component4.lines[0 | y * component4.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n C = component1Line[0 | x * component1.scaleX * scaleX];\n M = component2Line[0 | x * component2.scaleX * scaleX];\n Ye = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = 255 - C;\n data[offset++] = 255 - M;\n data[offset++] = 255 - Ye;\n data[offset++] = 255 - K;\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n return data;\n },\n copyToImageData: function copyToImageData(imageData, formatAsRGBA) {\n var width = imageData.width, height = imageData.height;\n var imageDataArray = imageData.data;\n var data = this.getData(width, height);\n var i = 0, j = 0, x, y;\n var Y, K, C, M, R, G, B;\n switch (this.components.length) {\n case 1:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n Y = data[i++];\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 3:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n R = data[i++];\n G = data[i++];\n B = data[i++];\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 4:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n C = data[i++];\n M = data[i++];\n Y = data[i++];\n K = data[i++];\n R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n }\n };\n var totalBytesAllocated = 0;\n var maxMemoryUsageBytes = 0;\n function requestMemoryAllocation(increaseAmount = 0) {\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\n }\n totalBytesAllocated = totalMemoryImpactBytes;\n }\n constructor.resetMaxMemoryUsage = function(maxMemoryUsageBytes_) {\n totalBytesAllocated = 0;\n maxMemoryUsageBytes = maxMemoryUsageBytes_;\n };\n constructor.getBytesAllocated = function() {\n return totalBytesAllocated;\n };\n constructor.requestMemoryAllocation = requestMemoryAllocation;\n return constructor;\n }();\n if (typeof module !== "undefined") {\n module.exports = decode3;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].decode = decode3;\n }\n function decode3(jpegData, userOpts = {}) {\n var defaultOpts = {\n colorTransform: void 0,\n useTArray: false,\n formatAsRGBA: true,\n tolerantDecoding: true,\n maxResolutionInMP: 100,\n maxMemoryUsageInMB: 512\n };\n var opts = { ...defaultOpts, ...userOpts };\n var arr = new Uint8Array(jpegData);\n var decoder = new JpegImage();\n decoder.opts = opts;\n JpegImage.resetMaxMemoryUsage(opts.maxMemoryUsageInMB * 1024 * 1024);\n decoder.parse(arr);\n var channels = opts.formatAsRGBA ? 4 : 3;\n var bytesNeeded = decoder.width * decoder.height * channels;\n try {\n JpegImage.requestMemoryAllocation(bytesNeeded);\n var image = {\n width: decoder.width,\n height: decoder.height,\n exifBuffer: decoder.exifBuffer,\n data: opts.useTArray ? new Uint8Array(bytesNeeded) : Buffer2.alloc(bytesNeeded)\n };\n if (decoder.comments.length > 0) {\n image["comments"] = decoder.comments;\n }\n } catch (err) {\n if (err instanceof RangeError) {\n throw new Error("Could not allocate enough memory for the image. Required: " + bytesNeeded);\n }\n if (err instanceof ReferenceError) {\n if (err.message === "Buffer is not defined") {\n throw new Error("Buffer is not globally defined in this environment. Consider setting useTArray to true");\n }\n }\n throw err;\n }\n decoder.copyToImageData(image, opts.formatAsRGBA);\n return image;\n }\n }\n});\n\n// node_modules/jpeg-js/index.js\nvar require_jpeg_js = __commonJS({\n "node_modules/jpeg-js/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var encode2 = require_encoder();\n var decode3 = require_decoder();\n module.exports = {\n encode: encode2,\n decode: decode3\n };\n }\n});\n\n// src/processor.worker.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/platform.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/requests.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar xmlhttprequest;\nif (false)\n xmlhttprequest = typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : typeof GM != "undefined" ? GM.xmlHttpRequest : window["GM_xmlhttpRequest"];\nvar GM_fetch = (...[url, opt, lisn]) => {\n function blobTo(to, blob) {\n if (to == "arrayBuffer" && blob.arrayBuffer) {\n const ret = blob.arrayBuffer();\n if (ret)\n return ret;\n }\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = function(event) {\n if (!event)\n return;\n if (to == "base64")\n resolve(event.target.result);\n else\n resolve(event.target.result);\n };\n if (to == "arrayBuffer")\n fileReader.readAsArrayBuffer(blob);\n else if (to == "base64")\n fileReader.readAsDataURL(blob);\n else if (to == "text")\n fileReader.readAsText(blob, "utf-8");\n else\n reject(new Error("unknown to"));\n });\n }\n return new Promise((resolve, reject) => {\n const gmopt = {\n url: url.toString(),\n data: opt?.body,\n responseType: "blob",\n headers: opt?.headers,\n method: opt?.method || "GET",\n ...lisn ? {\n onprogress: (prog) => {\n if (prog.loaded != prog.total && prog.total != 0)\n lisn.dispatchEvent(new CustomEvent("progress", { detail: [prog.loaded, prog.total] }));\n }\n } : {},\n onload: (resp) => {\n if (resp.status / 100 >= 4) {\n reject(new Error("Server Error: " + resp.status));\n return;\n }\n const blob = resp.response;\n const ref = resp;\n ref.blob = () => Promise.resolve(blob);\n ref.arrayBuffer = () => blobTo("arrayBuffer", blob);\n ref.text = () => blobTo("text", blob);\n ref.json = async () => JSON.parse(await blobTo("text", blob));\n resolve(resp);\n },\n ontimeout: () => reject(new Error("fetch timeout")),\n onerror: (...args) => {\n reject(new Error("fetch error"));\n },\n onabort: () => reject(new Error("fetch abort"))\n };\n xmlhttprequest(gmopt);\n });\n};\n\n// src/platform.ts\nvar lqueue = {};\nvar localSet = (key2, value) => localStorage.setItem("__pee__" + key2, JSON.stringify(value));\nvar port1;\nconsole.log("worker", false);\nvar msgBuff = [];\nvar setupPort = (port) => {\n port1 = port;\n port1.onmessage = (ev) => {\n lqueue[ev.data.id](ev.data);\n };\n if (true) {\n for (const msg of msgBuff) {\n port.postMessage(msg[0], { transfer: msg[1] });\n }\n msgBuff = [];\n }\n};\nif (true) {\n port1 = {\n onmessage(ev) {\n lqueue[ev.data.id](ev.data);\n },\n postMessage(msg, tr) {\n msgBuff.push([msg, tr]);\n }\n };\n}\nvar gid = 0;\nvar sendCmd = (cmd, tr, overwrite = false, todelete = false) => {\n const prom = new Promise((_) => {\n const id = gid++;\n if (overwrite)\n cmd.id = id;\n lqueue[id] = (e) => {\n _(e.res);\n if (todelete)\n delete lqueue[id];\n };\n port1.postMessage({ id, ...cmd }, tr || []);\n });\n return prom;\n};\nvar bridge = (name, f) => {\n if (false)\n return f;\n if (false)\n return f;\n return (...args) => {\n return sendCmd({ name, args });\n };\n};\nvar Bridged = (ctor) => {\n const keys = Object.getOwnPropertyNames(ctor).filter((k) => typeof ctor[k] == "function");\n for (const k of keys)\n ctor[k] = bridge(k, ctor[k]);\n};\nif (false) {\n popupport = chrome.runtime.connect({ name: "popup" });\n popupport.onMessage.addListener((msg) => {\n if (msg.id in pendingcmds) {\n pendingcmds[msg.id](msg);\n delete pendingcmds[msg.id];\n }\n });\n}\nvar Platform = class {\n static async openInTab(src, opts) {\n if (false) {\n return GM.openInTab(src, opts);\n }\n const obj = false ? chrome : browser;\n let i;\n if (opts.insert)\n i = (await obj.tabs.getCurrent()).index + 1;\n return obj.tabs.create({ active: opts.active, url: src, index: i });\n }\n static async getValue(key2, def) {\n const isinls = "__pee__" + key2 in localStorage;\n let ret;\n if (isinls) {\n let it = localStorage.getItem("__pee__" + key2);\n if (it === "undefined")\n it = null;\n ret = { ...def, ...JSON.parse(it || "{}") };\n } else\n ret = def;\n if (true) {\n if (isinls) {\n delete localStorage["__pee__" + key2];\n await chrome.storage.local.set({\n [key2]: JSON.stringify(ret)\n });\n } else {\n const d = await chrome.storage.local.get([key2]);\n if (typeof d[key2] == "string")\n return { ...def, ...await JSON.parse("" + d[key2] || "{}") };\n }\n }\n return ret;\n }\n static setValue(name, val) {\n localSet(name, val);\n }\n};\nPlatform.cmdid = 0;\nPlatform = __decorateClass([\n Bridged\n], Platform);\nvar corsFetch = async (input, init3, lsn) => {\n const id = gid++;\n let transfer = [];\n if (init3?.body) {\n if (false) {\n [init3.body, transfer] = await braveserialize(init3.body);\n }\n }\n const prom = new Promise((_, rej) => {\n let gcontroller;\n let buffer = [];\n let finished = false;\n const rs = new ReadableStream({\n start(controller) {\n gcontroller = controller;\n buffer.forEach((b) => gcontroller?.enqueue(b));\n buffer = [];\n if (finished) {\n gcontroller.close();\n }\n }\n });\n let s;\n s = 0;\n const cmdbuff = [];\n lqueue[id] = async (e) => {\n if (e.progress) {\n if (lsn)\n lsn.dispatchEvent(new CustomEvent("progress", { detail: e.progress }));\n }\n if (e.pushData) {\n if (e.s > s) {\n let idx = 0;\n while (idx < cmdbuff.length) {\n if (cmdbuff[idx].s > e.s)\n break;\n idx++;\n }\n cmdbuff.splice(idx, 0, e);\n return;\n }\n const processCmd = (e2) => {\n if (e2.pushData.data) {\n const data = new Uint8Array(e2.pushData.data);\n if (gcontroller)\n gcontroller.enqueue(data);\n else\n buffer.push(data);\n } else {\n if (gcontroller)\n gcontroller?.close();\n else\n finished = true;\n }\n };\n await processCmd(e);\n s++;\n while (cmdbuff[0]?.s == s) {\n await processCmd(cmdbuff.shift());\n s++;\n }\n }\n if (e.setRes) {\n const arrayBuffer = async () => {\n const r = rs.getReader();\n await sendCmd({ name: "fullyRead", fid: id });\n const abs = [];\n let res;\n do {\n res = await r.read();\n if (res.done)\n break;\n abs.push(res.value);\n } while (!res.done);\n const sum = abs.reduce((a, b) => a + b.byteLength, 0);\n const ret = new Uint8Array(sum);\n abs.reduce((ptr, arr) => {\n ret.set(arr, ptr);\n return ptr + arr.byteLength;\n }, 0);\n r.releaseLock();\n return ret;\n };\n const blob = async () => new Blob([await arrayBuffer()]);\n const text = async () => new TextDecoder().decode(await arrayBuffer());\n const json = async () => JSON.parse(await text());\n if (e.ok)\n _({\n body: rs,\n ok: e.ok,\n headers: e.headers,\n redirected: e.redirected,\n type: e.type,\n url: e.url,\n status: e.status,\n bodyUsed: e.bodyUsed,\n statusText: e.statusText,\n clone() {\n return this;\n },\n arrayBuffer,\n blob,\n text,\n json,\n async formData() {\n return new FormData();\n }\n });\n else {\n rej(new Error(`${e.url} - ${e.status}`));\n }\n }\n };\n port1.postMessage({\n id,\n name: "corsFetch",\n args: [input, init3]\n }, transfer);\n });\n return prom;\n};\nasync function getHeaders(s) {\n if (false)\n return headerStringToObject(await GM_head(s));\n const res = await ifetch(s, {\n method: "HEAD"\n });\n return res.headers;\n}\nasync function ifetch(...[url, opt, lisn]) {\n if (true)\n return corsFetch(url.toString(), opt, lisn);\n return GM_fetch(url, opt, lisn);\n}\nasync function* streamRemote(url, chunkSize = 72 * 1024, fetchRestOnNonCanceled = true) {\n let size = Number.POSITIVE_INFINITY;\n let ptr = 0;\n let fetchSize = chunkSize;\n while (ptr != size) {\n let obj;\n const fres = await ifetch(url, { headers: { range: `bytes=${ptr}-${ptr + fetchSize - 1}` } });\n if (false) {\n obj = headerStringToObject(fres.responseHeaders);\n } else {\n obj = fres.headers;\n }\n if (!("content-length" in obj)) {\n console.warn("no content lenght???", url);\n break;\n }\n if ("content-range" in obj) {\n size = +obj["content-range"].split("/")[1];\n }\n const len = +obj["content-length"];\n ptr += len;\n if (fetchRestOnNonCanceled)\n fetchSize = size;\n const val = Buffer2.from(await fres.arrayBuffer());\n const e = yield val;\n if (e) {\n break;\n }\n }\n}\n\n// src/stores.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/store/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/internal/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === "function";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function");\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nvar resolved_promise = Promise.resolve();\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nvar SvelteElement;\nif (typeof HTMLElement === "function") {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: "open" });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n for (const key2 in this.$$.slotted) {\n this.appendChild(this.$$.slotted[key2]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n\n// node_modules/svelte/store/index.mjs\nvar subscriber_queue = [];\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe2(run2, invalidate = noop) {\n const subscriber = [run2, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run2(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe: subscribe2 };\n}\n\n// src/stores.ts\nvar localLoad = async (key2, def) => {\n const ret = await Platform.getValue(key2, def);\n return ret;\n};\nvar localSet2 = (key2, value) => {\n if (true) {\n return;\n }\n if (true)\n chrome.storage.local.set({ [key2]: JSON.stringify(value) });\n else\n localStorage.setItem("__pee__" + key2, JSON.stringify(value));\n};\nvar initial_settings = {\n loop: true,\n dh: false,\n pmeth: 5,\n xpv: false,\n xpi: false,\n hyd: false,\n notcata: false,\n ak: "",\n auto_embed: 0,\n auto_tags: "",\n te: false,\n eye: false,\n ca: false,\n pre: false,\n prev: false,\n sh: false,\n ep: false,\n tm: false,\n dvc: false,\n expte: false,\n mdist: -1,\n phash: false,\n hotlink: false,\n jpeg: false,\n vercheck: false,\n cache: void 0,\n fhost: 0,\n maxe: 5,\n conc: 8,\n ho: false,\n blacklist: [],\n rsources: []\n};\nvar settings = writable();\nvar appState = writable({\n isCatalog: false,\n is4chanX: false,\n akValid: false,\n herror: "",\n client: null,\n processing: 0,\n processed: 0,\n foundPosts: []\n});\nsettings.subscribe((newVal) => {\n if (newVal)\n localSet2("settingsv2", newVal);\n});\n\n// src/pngv3.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer3 = __toESM(require_buffer(), 1);\n\n// src/png.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_crc_32 = __toESM(require_crc32(), 1);\nvar import_buffer = __toESM(require_buffer(), 1);\nvar PNGDecoder = class {\n constructor(reader, strict = true) {\n this.reader = reader;\n this.strict = strict;\n this.req = 8;\n this.ptr = 8;\n this.stopped = false;\n this.repr = import_buffer.Buffer.from([]);\n }\n async catchup() {\n while (this.repr.byteLength < this.req) {\n const chunk = await this.reader.read();\n if (chunk.done) {\n if (this.strict)\n throw new Error(`Unexpected EOF, got ${this.repr.byteLength}, required ${this.req}, ${chunk.value}`);\n this.stopped = true;\n return;\n }\n this.repr = import_buffer.Buffer.concat([this.repr, chunk.value]);\n }\n }\n async *chunks() {\n while (true) {\n this.req += 8;\n await this.catchup();\n if (this.stopped)\n break;\n const length = this.repr.readUInt32BE(this.ptr);\n const name = this.repr.slice(this.ptr + 4, this.ptr + 8).toString();\n this.ptr += 4;\n this.req += length + 4;\n await this.catchup();\n yield [\n name,\n this.repr.slice(this.ptr, this.ptr + length + 4),\n this.ptr + length > this.repr.length ? -1 : this.repr.readUInt32BE(this.ptr + length + 4),\n this.ptr\n ];\n if (this.stopped)\n break;\n this.ptr += length + 8;\n if (name == "IEND")\n break;\n }\n }\n async dtor() {\n }\n};\nvar PNGEncoder = class {\n constructor(bytes) {\n this.writer = bytes.getWriter();\n this.writer.write(import_buffer.Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]));\n }\n async insertchunk(chunk) {\n let b = import_buffer.Buffer.alloc(4);\n const buff = chunk[1];\n b.writeInt32BE(buff.length - 4, 0);\n await this.writer.write(b);\n await this.writer.write(buff);\n b = import_buffer.Buffer.alloc(4);\n b.writeInt32BE((0, import_crc_32.buf)(buff), 0);\n await this.writer.write(b);\n }\n async dtor() {\n this.writer.releaseLock();\n }\n};\n\n// src/utils.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer2 = __toESM(require_buffer(), 1);\n\n// src/assets/hasembed.png\nvar hasembed_default = __toBinary("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");\n\n// src/filehosts.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction parseForm(data) {\n const form = new FormData();\n Object.entries(data).filter(([key2, value]) => value !== null).map(([key2, value]) => form.append(key2, value));\n return form;\n}\nvar lolisafe = (domain, serving = domain) => ({\n domain,\n serving,\n async uploadFile(f) {\n const resp = await ifetch(`https://${domain}/api/upload`, {\n headers: {\n accept: "application/json"\n },\n "body": parseForm({\n reqtype: "fileupload",\n "files[]": new File([f], "f.pee")\n }),\n "method": "POST"\n });\n const res = await resp.json();\n return res.files.map((e) => e.url)[0];\n }\n});\nvar catbox = (domain, serving) => ({\n domain,\n serving,\n async uploadFile(inj) {\n const resp = await ifetch(`https://${domain}/user/api.php`, {\n method: "POST",\n body: parseForm({\n reqtype: "fileupload",\n fileToUpload: inj\n })\n });\n return resp.text();\n }\n});\nvar filehosts = [\n catbox("catbox.moe", "files.catbox.moe"),\n catbox("pomf.moe", "a.pomf.cat"),\n lolisafe("take-me-to.space"),\n lolisafe("zz.ht", "z.zz.fo")\n];\n\n// node_modules/file-type/browser.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer4 = __toESM(require_buffer(), 1);\nvar import_readable_web_to_node_stream = __toESM(require_lib(), 1);\n\n// node_modules/file-type/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer3 = __toESM(require_buffer(), 1);\n\n// node_modules/token-types/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar ieee754 = __toESM(require_ieee754(), 1);\nvar import_node_buffer = __toESM(require_buffer(), 1);\nvar AnsiStringType = class {\n constructor(len) {\n this.len = len;\n }\n static decode(buffer, offset, until) {\n let str = "";\n for (let i = offset; i < until; ++i) {\n str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));\n }\n return str;\n }\n static inRange(a, min, max) {\n return min <= a && a <= max;\n }\n static codePointToString(cp) {\n if (cp <= 65535) {\n return String.fromCharCode(cp);\n } else {\n cp -= 65536;\n return String.fromCharCode((cp >> 10) + 55296, (cp & 1023) + 56320);\n }\n }\n static singleByteDecoder(bite) {\n if (AnsiStringType.inRange(bite, 0, 127)) {\n return bite;\n }\n const codePoint = AnsiStringType.windows1252[bite - 128];\n if (codePoint === null) {\n throw Error("invaliding encoding");\n }\n return codePoint;\n }\n get(buffer, offset = 0) {\n return AnsiStringType.decode(buffer, offset, offset + this.len);\n }\n};\nAnsiStringType.windows1252 = [\n 8364,\n 129,\n 8218,\n 402,\n 8222,\n 8230,\n 8224,\n 8225,\n 710,\n 8240,\n 352,\n 8249,\n 338,\n 141,\n 381,\n 143,\n 144,\n 8216,\n 8217,\n 8220,\n 8221,\n 8226,\n 8211,\n 8212,\n 732,\n 8482,\n 353,\n 8250,\n 339,\n 157,\n 382,\n 376,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 174,\n 175,\n 176,\n 177,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 187,\n 188,\n 189,\n 190,\n 191,\n 192,\n 193,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 219,\n 220,\n 221,\n 222,\n 223,\n 224,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 235,\n 236,\n 237,\n 238,\n 239,\n 240,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250,\n 251,\n 252,\n 253,\n 254,\n 255\n];\n\n// node_modules/strtok3/lib/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/ReadStreamTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/EndOfFileStream.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/Deferred.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\nvar maxStreamReadSize = 1 * 1024 * 1024;\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\nvar import_node_buffer2 = __toESM(require_buffer(), 1);\n\n// node_modules/strtok3/lib/BufferTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/util.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/supported.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar extensions = [\n "jpg",\n "png",\n "apng",\n "gif",\n "webp",\n "flif",\n "xcf",\n "cr2",\n "cr3",\n "orf",\n "arw",\n "dng",\n "nef",\n "rw2",\n "raf",\n "tif",\n "bmp",\n "icns",\n "jxr",\n "psd",\n "indd",\n "zip",\n "tar",\n "rar",\n "gz",\n "bz2",\n "7z",\n "dmg",\n "mp4",\n "mid",\n "mkv",\n "webm",\n "mov",\n "avi",\n "mpg",\n "mp2",\n "mp3",\n "m4a",\n "oga",\n "ogg",\n "ogv",\n "opus",\n "flac",\n "wav",\n "spx",\n "amr",\n "pdf",\n "epub",\n "elf",\n "exe",\n "swf",\n "rtf",\n "wasm",\n "woff",\n "woff2",\n "eot",\n "ttf",\n "otf",\n "ico",\n "flv",\n "ps",\n "xz",\n "sqlite",\n "nes",\n "crx",\n "xpi",\n "cab",\n "deb",\n "ar",\n "rpm",\n "Z",\n "lz",\n "cfb",\n "mxf",\n "mts",\n "blend",\n "bpg",\n "docx",\n "pptx",\n "xlsx",\n "3gp",\n "3g2",\n "jp2",\n "jpm",\n "jpx",\n "mj2",\n "aif",\n "qcp",\n "odt",\n "ods",\n "odp",\n "xml",\n "mobi",\n "heic",\n "cur",\n "ktx",\n "ape",\n "wv",\n "dcm",\n "ics",\n "glb",\n "pcap",\n "dsf",\n "lnk",\n "alias",\n "voc",\n "ac3",\n "m4v",\n "m4p",\n "m4b",\n "f4v",\n "f4p",\n "f4b",\n "f4a",\n "mie",\n "asf",\n "ogm",\n "ogx",\n "mpc",\n "arrow",\n "shp",\n "aac",\n "mp1",\n "it",\n "s3m",\n "xm",\n "ai",\n "skp",\n "avif",\n "eps",\n "lzh",\n "pgp",\n "asar",\n "stl",\n "chm",\n "3mf",\n "zst",\n "jxl",\n "vcf"\n];\nvar mimeTypes = [\n "image/jpeg",\n "image/png",\n "image/gif",\n "image/webp",\n "image/flif",\n "image/x-xcf",\n "image/x-canon-cr2",\n "image/x-canon-cr3",\n "image/tiff",\n "image/bmp",\n "image/vnd.ms-photo",\n "image/vnd.adobe.photoshop",\n "application/x-indesign",\n "application/epub+zip",\n "application/x-xpinstall",\n "application/vnd.oasis.opendocument.text",\n "application/vnd.oasis.opendocument.spreadsheet",\n "application/vnd.oasis.opendocument.presentation",\n "application/vnd.openxmlformats-officedocument.wordprocessingml.document",\n "application/vnd.openxmlformats-officedocument.presentationml.presentation",\n "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",\n "application/zip",\n "application/x-tar",\n "application/x-rar-compressed",\n "application/gzip",\n "application/x-bzip2",\n "application/x-7z-compressed",\n "application/x-apple-diskimage",\n "application/x-apache-arrow",\n "video/mp4",\n "audio/midi",\n "video/x-matroska",\n "video/webm",\n "video/quicktime",\n "video/vnd.avi",\n "audio/vnd.wave",\n "audio/qcelp",\n "audio/x-ms-asf",\n "video/x-ms-asf",\n "application/vnd.ms-asf",\n "video/mpeg",\n "video/3gpp",\n "audio/mpeg",\n "audio/mp4",\n "audio/opus",\n "video/ogg",\n "audio/ogg",\n "application/ogg",\n "audio/x-flac",\n "audio/ape",\n "audio/wavpack",\n "audio/amr",\n "application/pdf",\n "application/x-elf",\n "application/x-msdownload",\n "application/x-shockwave-flash",\n "application/rtf",\n "application/wasm",\n "font/woff",\n "font/woff2",\n "application/vnd.ms-fontobject",\n "font/ttf",\n "font/otf",\n "image/x-icon",\n "video/x-flv",\n "application/postscript",\n "application/eps",\n "application/x-xz",\n "application/x-sqlite3",\n "application/x-nintendo-nes-rom",\n "application/x-google-chrome-extension",\n "application/vnd.ms-cab-compressed",\n "application/x-deb",\n "application/x-unix-archive",\n "application/x-rpm",\n "application/x-compress",\n "application/x-lzip",\n "application/x-cfb",\n "application/x-mie",\n "application/mxf",\n "video/mp2t",\n "application/x-blender",\n "image/bpg",\n "image/jp2",\n "image/jpx",\n "image/jpm",\n "image/mj2",\n "audio/aiff",\n "application/xml",\n "application/x-mobipocket-ebook",\n "image/heif",\n "image/heif-sequence",\n "image/heic",\n "image/heic-sequence",\n "image/icns",\n "image/ktx",\n "application/dicom",\n "audio/x-musepack",\n "text/calendar",\n "text/vcard",\n "model/gltf-binary",\n "application/vnd.tcpdump.pcap",\n "audio/x-dsf",\n "application/x.ms.shortcut",\n "application/x.apple.alias",\n "audio/x-voc",\n "audio/vnd.dolby.dd-raw",\n "audio/x-m4a",\n "image/apng",\n "image/x-olympus-orf",\n "image/x-sony-arw",\n "image/x-adobe-dng",\n "image/x-nikon-nef",\n "image/x-panasonic-rw2",\n "image/x-fujifilm-raf",\n "video/x-m4v",\n "video/3gpp2",\n "application/x-esri-shape",\n "audio/aac",\n "audio/x-it",\n "audio/x-s3m",\n "audio/x-xm",\n "video/MP1S",\n "video/MP2P",\n "application/vnd.sketchup.skp",\n "image/avif",\n "application/x-lzh-compressed",\n "application/pgp-encrypted",\n "application/x-asar",\n "model/stl",\n "application/vnd.ms-htmlhelp",\n "model/3mf",\n "image/jxl",\n "application/zstd"\n];\n\n// node_modules/file-type/core.js\nvar supportedExtensions = new Set(extensions);\nvar supportedMimeTypes = new Set(mimeTypes);\n\n// src/utils.ts\nvar csettings;\nsettings.subscribe((b) => {\n csettings = b;\n});\nvar threadDataCache = writable();\nvar cthreadDataCache;\nthreadDataCache.subscribe((newval) => {\n cthreadDataCache = newval;\n});\nvar decodeCoom3Payload = async (buff) => {\n if (!csettings)\n throw new Error("Settings uninit");\n const allowed_domains = filehosts.map((e) => e.serving.replaceAll(".", "\\\\."));\n const pees = buff.toString().split(" ").slice(0, csettings.maxe).filter((e) => allowed_domains.some((v) => e.match(`https://(.*\\\\.)?${v}/`)));\n return (await Promise.all(pees.map(async (pee) => {\n try {\n const m = pee.match(/(?https?):\\/\\/(?.*?)(?\\/.*)/);\n if (!m)\n return;\n const { domain, file } = m.groups;\n const headers = await getHeaders(pee);\n const res = await ifetch(pee, {\n headers: { range: "bytes=0-32767", "user-agent": "" },\n mode: "cors",\n referrerPolicy: "no-referrer"\n });\n const size = +headers["content-length"] || 0;\n const header = import_buffer2.Buffer.from(await res.arrayBuffer());\n let hptr = 0;\n if (header.slice(0, 4).toString() == "PEE\\0")\n hptr += 4;\n else\n return;\n const flags = header[hptr];\n const hasFn = !!(flags & 1);\n const hasTags = !!(flags & 2);\n const hasThumbnail = !!(flags & 4);\n let [ptr, ptr2] = [hptr + 1, hptr + 1];\n let fn = "embedded";\n let tags = [];\n let thumb = import_buffer2.Buffer.from(hasembed_default);\n if (hasFn) {\n while (header[ptr2] != 0)\n ptr2++;\n fn = header.slice(ptr, ptr2).toString();\n ptr = ++ptr2;\n }\n if (hasTags) {\n while (header[ptr2] != 0)\n ptr2++;\n tags = header.slice(ptr, ptr2).toString().split(/\\s+/);\n }\n let thumbsize = 0;\n if (hasThumbnail) {\n thumbsize = header.readInt32LE(ptr);\n ptr += 4;\n if (header.byteLength >= ptr + thumbsize)\n thumb = header.slice(ptr, ptr + thumbsize);\n else\n thumb = import_buffer2.Buffer.from(await (await ifetch(pee, { headers: { "user-agent": "", range: `bytes=${ptr}-${ptr + thumbsize}` } })).arrayBuffer());\n ptr += thumbsize;\n }\n const unzip = { url: pee, headers: { "user-agent": "", range: `bytes=${ptr}-${size - 1}` } };\n let data;\n data = unzip;\n if (size < 3072) {\n thumb = data = import_buffer2.Buffer.from(await (await ifetch(unzip.url, { headers: unzip.headers })).arrayBuffer());\n }\n return {\n filename: fn,\n data,\n thumbnail: thumb\n };\n } catch (e) {\n console.warn(e);\n }\n }))).filter((e) => e).map((e) => e);\n};\n\n// src/pngv3.ts\nvar bs58 = __toESM(require_bs58(), 1);\n\n// src/bitstream.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar revbyte = (n, len = 8) => {\n let acc = 0;\n let n2 = n;\n let len2 = len;\n while (len2) {\n acc = acc * 2 + (n2 & 1);\n n2 >>= 1;\n len2--;\n }\n return acc;\n};\nvar BitstreamReader = class {\n constructor() {\n this.buffers = [];\n this.bufferedLength = 0;\n this._offsetIntoBuffer = 0;\n this._bufferIndex = 0;\n this._offset = 0;\n this.skippedLength = 0;\n }\n get bufferIndex() {\n return this._bufferIndex;\n }\n get offset() {\n return this._offset;\n }\n get available() {\n return this.bufferedLength - this.skippedLength;\n }\n getBit(offset) {\n const byte = this.buffers[0][offset >> 3];\n return +!!(byte & 1 << (offset & 7));\n }\n readSync(length) {\n let value = 0;\n if (this._offset >> 3 > this.buffers[0].byteLength) {\n throw "Out of data";\n }\n for (let i = length - 1; i >= 0; --i) {\n value = value * 2 + this.getBit(this._offset + i);\n }\n this._offset += length;\n this.bufferedLength -= length;\n return value;\n }\n addBuffer(buffer) {\n this.buffers.push(buffer);\n this.bufferedLength += buffer.length * 8;\n }\n};\nvar BitstreamWriter = class {\n constructor(stream, bufferSize = 1) {\n this.stream = stream;\n this.pendingBits = 0;\n this.bufferoffset = 0;\n this._offset = 0;\n bufferSize = 1;\n this.buffer = new Uint8Array(bufferSize);\n }\n get offset() {\n return this._offset;\n }\n get byteOffset() {\n return this.pendingBits;\n }\n end() {\n this.flush();\n }\n flush() {\n this.stream.write(new Uint8Array(this.buffer));\n this.bufferoffset = 0;\n this.buffer.fill(0);\n }\n setBit(b) {\n let byte = this.buffer[0];\n byte |= b << (this._offset & 7);\n this.buffer[0] = byte;\n this._offset += 1;\n if (++this.bufferoffset == this.buffer.length * 8) {\n this.flush();\n }\n }\n write(length, value) {\n while (length--) {\n this.setBit(value & 1);\n value >>= 1;\n }\n }\n};\n\n// src/dh-deflate.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar TINF_OK = 0;\nvar Tree = class {\n constructor() {\n this.table = new Uint16Array(16);\n this.trans = new Uint16Array(288);\n }\n};\nvar getPathTo = (tree, value) => {\n if (tree[0] === value)\n return "0";\n if (tree[1] === value)\n return "1";\n let p;\n if (typeof tree[0] != "number")\n p = getPathTo(tree[0], value);\n let b = "0";\n if (!p) {\n if (tree[1] && typeof tree[1] != "number")\n p = getPathTo(tree[1], value);\n b = "1";\n }\n if (p)\n return b + p;\n};\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n let p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\nvar Data = class {\n constructor(source, dests, to_hide, hidden) {\n this.source = source;\n this.dests = dests;\n this.to_hide = to_hide;\n this.hidden = hidden;\n this.pathMap = /* @__PURE__ */ new Map();\n this.dest = [];\n this.ltree = new Tree();\n this.dtree = new Tree();\n }\n computeReverse() {\n this.rltree = buildHuffmanTable(this.ltree.table, this.ltree.trans)[0];\n this.rdtree = buildHuffmanTable(this.dtree.table, this.dtree.trans)[0];\n this.adists = new Set(this.rdtree.flat(16));\n }\n};\nvar sltree = new Tree();\nvar sdtree = new Tree();\nvar rltree;\nvar rdtree;\nvar sadist;\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\nvar clcidx = new Uint8Array([\n 16,\n 17,\n 18,\n 0,\n 8,\n 7,\n 9,\n 6,\n 10,\n 5,\n 11,\n 4,\n 12,\n 3,\n 13,\n 2,\n 14,\n 1,\n 15\n]);\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\nfunction tinf_build_bits_base(bits, base, delta, first) {\n let i, sum;\n for (i = 0; i < delta; ++i)\n bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i)\n bits[i + delta] = i / delta | 0;\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\nfunction tinf_build_fixed_trees(lt, dt) {\n let i;\n for (i = 0; i < 7; ++i)\n lt.table[i] = 0;\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n for (i = 0; i < 24; ++i)\n lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i)\n lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i)\n lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i)\n lt.trans[24 + 144 + 8 + i] = 144 + i;\n for (i = 0; i < 5; ++i)\n dt.table[i] = 0;\n dt.table[5] = 32;\n for (i = 0; i < 32; ++i)\n dt.trans[i] = i;\n}\nvar offs = new Uint16Array(16);\nfunction tinf_build_tree(t, lengths2, off, num) {\n let i, sum;\n for (i = 0; i < 16; ++i)\n t.table[i] = 0;\n for (i = 0; i < num; ++i)\n t.table[lengths2[off + i]]++;\n t.table[0] = 0;\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n for (i = 0; i < num; ++i) {\n if (lengths2[off + i])\n t.trans[offs[lengths2[off + i]]++] = i;\n }\n}\nfunction tinf_getbit(d) {\n const v = d.source.readSync(1);\n return v;\n}\nvar loff = 0;\nvar loffs = [];\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n const v = d.source.readSync(num) + base;\n loff = v;\n loffs.push(v);\n if (loffs.length > 4) {\n loffs.shift();\n }\n return v;\n}\nfunction tinf_decode_symbol(d, t, copy = true, ext = {}) {\n let sum = 0, cur = 0, len = 0;\n let s = 0;\n do {\n const b = d.source.readSync(1);\n copy && d.hidden?.write(1, b);\n s = s << 1 | b;\n cur = 2 * cur + b;\n ++len;\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n ext.length = len;\n ext.sym = s;\n return t.trans[sum + cur];\n}\nfunction tinf_decode_trees(d, lt, dt, copy = true) {\n let i, num, length;\n const hlit = tinf_read_bits(d, 5, 257);\n copy && d.hidden?.write(5, hlit - 257);\n const hdist = tinf_read_bits(d, 5, 1);\n copy && d.hidden?.write(5, hdist - 1);\n const hclen = tinf_read_bits(d, 4, 4);\n copy && d.hidden?.write(4, hclen - 4);\n for (i = 0; i < 19; ++i)\n lengths[i] = 0;\n for (i = 0; i < hclen; ++i) {\n const clen = tinf_read_bits(d, 3, 0);\n copy && d.hidden?.write(3, clen);\n lengths[clcidx[i]] = clen;\n }\n tinf_build_tree(code_tree, lengths, 0, 19);\n for (num = 0; num < hlit + hdist; ) {\n const sym = tinf_decode_symbol(d, code_tree, copy);\n let prev;\n switch (sym) {\n case 16:\n prev = lengths[num - 1];\n length = tinf_read_bits(d, 2, 3);\n copy && d.hidden?.write(2, length - 3);\n for (; length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n length = tinf_read_bits(d, 3, 3);\n copy && d.hidden?.write(3, length - 3);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n length = tinf_read_bits(d, 7, 11);\n copy && d.hidden?.write(7, length - 11);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n lengths[num++] = sym;\n break;\n }\n }\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\nvar get_symbol = (value, bits_table, base_table) => {\n let i = 0;\n for (i = 0; i < base_table.length; ++i) {\n if (base_table[i] > value) {\n i--;\n return [i, bits_table[i], value - base_table[i]];\n }\n }\n i--;\n return [i, bits_table[i], value - base_table[i]];\n};\nvar encode_symbol = (sym, tree, pathMap) => {\n const code = getPathTo(tree, sym);\n const v = {\n length: code?.length,\n val: parseInt(code, 2)\n };\n return v;\n};\nvar capacity = 0;\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n let sym = tinf_decode_symbol(d, lt);\n if (sym === 256) {\n return TINF_OK;\n }\n if (sym < 256) {\n d.dest.push(sym);\n } else {\n sym -= 257;\n const length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n if (length_bits[sym])\n d.hidden?.write(length_bits[sym], length - length_base[sym]);\n const ext = { length: 0, sym: 0 };\n const dist = tinf_decode_symbol(d, dt, false, ext);\n let backoffset = tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n const offs2 = d.dest.length - backoffset;\n let match;\n const skip = !d.to_hide || d.to_hide && d.to_hide instanceof BitstreamReader && d.to_hide.available == 0;\n if (!skip && (match = Buffer2.from(d.dest.slice(offs2, offs2 + length))).length == length) {\n let begin = d.dest.length - 32768;\n if (begin < 0)\n begin = 0;\n let matches = [];\n let o = 0;\n const slic = Buffer2.from(d.dest.slice(begin + o, d.dest.length));\n while (begin + o < d.dest.length) {\n const r = slic.slice(o, d.dest.length).indexOf(match);\n if (r >= 0) {\n matches.push(r + begin + o);\n o += r;\n } else {\n break;\n }\n o++;\n }\n if (matches.length > 1) {\n matches = matches.map((e) => -(e - d.dest.length)).filter((e) => {\n const [dsym2] = get_symbol(e, dist_bits, dist_base);\n return d.adists.has(dsym2);\n });\n matches.reverse();\n const v = Math.floor(Math.log2(matches.length));\n capacity += v;\n if (d.to_hide instanceof BitstreamReader) {\n if (d.to_hide.available) {\n const s = d.to_hide.readSync(Math.min(d.to_hide.available, v));\n backoffset = matches[s];\n }\n } else {\n const idx = matches.indexOf(backoffset);\n d.to_hide.write(v, idx);\n }\n }\n }\n const [dsym, dlen, doff] = get_symbol(backoffset, dist_bits, dist_base);\n const encdist = encode_symbol(dsym, d.rdtree, d.pathMap);\n d.hidden?.write(encdist.length, revbyte(encdist.val, encdist.length));\n d.hidden?.write(dlen, doff);\n for (let i = offs2; i < offs2 + length; ++i) {\n d.dest.push(d.dest[i]);\n }\n }\n }\n}\nfunction tinf_inflate_uncompressed_block(d) {\n if (d.source.offset & 7)\n d.source.readSync(8 - d.source.offset & 7);\n if (d.hidden && d.hidden.offset & 7)\n d.hidden?.write(8 - d.hidden.offset & 7, 0);\n const length = d.source.readSync(16);\n d.hidden?.write(16, length);\n const invlength = d.source.readSync(16);\n d.hidden?.write(16, invlength);\n if (length !== (~invlength & 65535)) {\n return -4;\n }\n for (let i = length; i; --i) {\n const v = d.source.readSync(8);\n d.dest.push(v);\n d.hidden?.write(8, v);\n }\n return TINF_OK;\n}\nfunction tinf_uncompress(source, decompressed, to_hide, hidden, opt = 0) {\n const decomp = decompressed ? new BitstreamWriter({ write: decompressed }) : null;\n const hid = hidden && new BitstreamWriter({ write: hidden }, 4);\n const d = new Data(source, decomp, to_hide, hid);\n let res;\n let bfinal, btype;\n do {\n bfinal = tinf_getbit(d);\n d.hidden?.write(1, bfinal);\n btype = tinf_read_bits(d, 2, 0);\n d.hidden?.write(2, btype);\n switch (btype) {\n case 0:\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n d.rdtree = rdtree;\n d.rltree = rltree;\n d.adists = sadist;\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n tinf_decode_trees(d, d.ltree, d.dtree);\n d.computeReverse();\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = -2;\n }\n if (res !== TINF_OK)\n throw new Error("Data error " + res);\n } while (!bfinal);\n decomp?.end();\n hid?.end();\n}\ntinf_build_fixed_trees(sltree, sdtree);\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\nrltree = buildHuffmanTable(sltree.table, sltree.trans)[0];\nrdtree = buildHuffmanTable(sdtree.table, sdtree.trans)[0];\nsadist = new Set(rdtree.flat(16));\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\n// src/pngv3.ts\nvar csettings2;\nsettings.subscribe((b) => {\n csettings2 = b;\n});\nvar CUM3 = import_buffer3.Buffer.from("doo\\0m");\nvar CUM4 = import_buffer3.Buffer.from("voo\\0m");\nvar CUM5 = import_buffer3.Buffer.from("boo\\0");\nvar CUM6 = import_buffer3.Buffer.from("Creation Time\\0");\nvar CUM7 = import_buffer3.Buffer.from("Software\\0");\nvar BufferReadStream = (b) => {\n const ret = new ReadableStream({\n pull(cont) {\n cont.enqueue(b);\n cont.close();\n }\n });\n return ret;\n};\nvar password = import_buffer3.Buffer.from("NOA");\nvar xor = (a, p) => {\n let n = 0;\n for (let i = 0; i < a.byteLength; ++i) {\n a[i] ^= p[n];\n n++;\n n %= p.byteLength;\n }\n};\nvar prefs = {\n "files.catbox.moe": "c",\n "a.pomf.cat": "p",\n "take-me-to.space": "t",\n "z.zz.fo": "z"\n};\nvar rprefs = {\n "c": "files.catbox.moe",\n "p": "a.pomf.cat",\n "t": "take-me-to.space",\n "z": "z.zz.fo"\n};\nvar extractFromRawDeflate = (b) => {\n const src = new BitstreamReader();\n src.addBuffer(b);\n const chnks = [];\n const hidden = new BitstreamWriter({\n write(chunk) {\n for (const i of chunk) {\n if (i >= 32 && i <= 128)\n chnks.push(i);\n else\n throw "Finish";\n }\n }\n });\n try {\n tinf_uncompress(src, void 0, hidden, void 0);\n } catch (e) {\n if (e == "Finish")\n return import_buffer3.Buffer.from(chnks);\n }\n return false;\n};\nvar extract = async (png, doextract = true) => {\n const reader = BufferReadStream(png).getReader();\n const sneed = new PNGDecoder(reader, false);\n const ret = [];\n let w;\n if (!csettings2)\n throw new Error("Settings uninit");\n try {\n let complete = false;\n const idats = [];\n for await (const [name, chunk, crc, offset] of sneed.chunks()) {\n let buff;\n switch (name) {\n case "tEXt":\n buff = chunk;\n if (buff.slice(4, 4 + CUM3.length).equals(CUM3)) {\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(buff.slice(4 + CUM3.length));\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM4.length).equals(CUM4)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM4.length);\n xor(passed, password);\n const k = await decodeCoom3Payload(passed);\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM5.length).equals(CUM5)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM5.length);\n const decoded = import_buffer3.Buffer.from(passed.toString(), "base64").toString().split(" ").map((e) => {\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n }\n if (w = [CUM6, CUM7].find((e) => buff.slice(4, 4 + e.length).equals(e))) {\n const passed = buff.slice(4 + w.length);\n if (!passed.toString().match(/^[0-9a-zA-Z+/=]+$/g))\n continue;\n const decoders = [\n (b) => import_buffer3.Buffer.from(b.toString(), "base64").toString(),\n (b) => import_buffer3.Buffer.from(bs58.decode(passed.toString())).toString()\n ];\n for (const d of decoders) {\n try {\n const decoded = d(passed).split(" ").map((e) => {\n if (!(e[0] in rprefs))\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n } catch (e) {\n }\n }\n }\n break;\n case "IDAT":\n if (ret.length)\n return ret;\n buff = chunk;\n idats.push(buff.slice(4));\n break;\n case "IEND":\n complete = true;\n default:\n break;\n }\n }\n if (idats.length) {\n let decoded;\n if ((decoded = extractFromRawDeflate(import_buffer3.Buffer.concat(idats).slice(2))) === false)\n return false;\n const dec = decoded.toString().split(" ").map((e) => {\n if (!(e[0] in rprefs) || e.length < 5)\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (doextract)\n return decodeCoom3Payload(import_buffer3.Buffer.from(dec));\n return true;\n }\n } catch (e) {\n if (e != "Uhh")\n console.error(e);\n } finally {\n reader.releaseLock();\n }\n};\nvar buildChunk = (tag, data) => {\n const ret = import_buffer3.Buffer.alloc(data.byteLength + 4);\n ret.write(tag.slice(0, 4), 0);\n data.copy(ret, 4);\n return ret;\n};\nvar BufferWriteStream = () => {\n let b = import_buffer3.Buffer.from([]);\n const ret = new WritableStream({\n write(chunk) {\n b = import_buffer3.Buffer.concat([b, chunk]);\n console.log("finished appending");\n }\n });\n return [ret, () => b];\n};\nvar embedInRawDeflate = (b, h) => {\n const src = new BitstreamReader();\n const hid = new BitstreamReader();\n hid.addBuffer(h);\n src.addBuffer(b);\n const chnks = [];\n tinf_uncompress(src, void 0, hid, (c) => chnks.push(c));\n return import_buffer3.Buffer.concat(chnks);\n};\nvar inject_data = async (container, injb) => {\n injb = import_buffer3.Buffer.concat([injb, import_buffer3.Buffer.from([0])]);\n if (!csettings2)\n throw new Error("Settings uninit");\n if (csettings2.pmeth < 5) {\n let magic = false;\n const [writestream2, extract6] = BufferWriteStream();\n const encoder = new PNGEncoder(writestream2);\n const decoder = new PNGDecoder(container.stream().getReader());\n for await (const [name, chunk, crc, offset] of decoder.chunks()) {\n if (magic && name != "IDAT")\n break;\n if (!magic && name == "IDAT") {\n const passed = import_buffer3.Buffer.from(injb);\n switch (csettings2.pmeth) {\n case 0:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM3, passed])), 0, 0]);\n break;\n case 1:\n xor(passed, password);\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM4, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 2:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM5, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 3:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM6, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 4:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM7, import_buffer3.Buffer.from(bs58.encode(passed))])), 0, 0]);\n break;\n }\n magic = true;\n }\n await encoder.insertchunk([name, chunk, crc, offset]);\n }\n await encoder.insertchunk([\n "IEND",\n buildChunk("IEND", import_buffer3.Buffer.from([])),\n 0,\n 0\n ]);\n return extract6();\n }\n let pdec = new PNGDecoder(container.stream().getReader());\n const concat = [];\n for await (const chk of pdec.chunks())\n if (chk[0] == "IDAT")\n concat.push(chk[1].slice(4));\n const comp = import_buffer3.Buffer.concat(concat);\n const head = comp.slice(0, 2);\n const chksum = comp.slice(-4);\n const idatblk = embedInRawDeflate(comp.slice(2, -4), injb);\n const [writestream, extract5] = BufferWriteStream();\n const penc = new PNGEncoder(writestream);\n pdec = new PNGDecoder(container.stream().getReader());\n let ins = false;\n for await (const chk of pdec.chunks()) {\n if (chk[0] != "IDAT") {\n await penc.insertchunk(chk);\n } else {\n if (!ins) {\n await penc.insertchunk(["IDAT", import_buffer3.Buffer.concat([import_buffer3.Buffer.from("IDAT"), head, idatblk, chksum]), 0, 0]);\n ins = true;\n }\n }\n }\n await penc.dtor();\n console.log("Finished writing");\n return extract5();\n};\nvar inject = async (container, links) => {\n links = links.map((link) => {\n for (const h of filehosts) {\n if (link.includes(h.serving)) {\n const end = link.split("/").slice(-1)[0];\n return `${prefs[h.serving]}${end}`;\n }\n }\n return "";\n });\n const injb = import_buffer3.Buffer.from(links.join(" "));\n return inject_data(container, injb);\n};\nvar has_embed = async (png) => {\n const r = await extract(png, false);\n return !!r;\n};\nvar pngv3_default = {\n extract,\n has_embed,\n inject,\n match: (fn) => !!fn.match(/\\.png$/)\n};\n\n// src/jpg.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer4 = __toESM(require_buffer(), 1);\n\n// src/f5stego.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction* f5get() {\n let extrBit = 0;\n let k = 0;\n for (let i = 0; i < 4; ++i) {\n const b2 = yield;\n k |= b2 << i;\n }\n k = (k & 15) + 1;\n let toread = 8;\n let len = 0;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const b = yield;\n toread += 8;\n if (b)\n toread += 7;\n else\n len *= 2;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const rlen = revbyte(len, b ? 23 : 16);\n len = rlen;\n if (len > 256)\n throw new Error("Too big for Smash");\n len *= 8;\n const chunks = [];\n const bw = new BitstreamWriter({\n write(chunk) {\n chunks.push(chunk);\n }\n });\n while (len) {\n extrBit = yield;\n bw.write(1, extrBit);\n len--;\n }\n bw.end();\n return Buffer2.concat(chunks).slice(0, rlen);\n}\nvar bitcode = new Array(65535);\nvar category = new Array(65535);\nvar std_dc_luminance_nrcodes = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\nvar std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_luminance_nrcodes = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\nvar std_ac_luminance_values = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nvar std_dc_chrominance_nrcodes = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\nvar std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_chrominance_nrcodes = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\nvar std_ac_chrominance_values = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nfunction _initCategoryNumber() {\n let nrlower = 1;\n let nrupper = 2;\n for (let cat = 1; cat <= 15; cat++) {\n for (let nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n for (let nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n}\n_initCategoryNumber();\nfunction _computeHuffmanTbl(nrcodes, std_table) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = [];\n for (let k = 1; k <= 16; k++) {\n for (let j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n}\nvar YDC_HT = _computeHuffmanTbl(std_dc_luminance_nrcodes, std_dc_luminance_values);\nvar UVDC_HT = _computeHuffmanTbl(std_dc_chrominance_nrcodes, std_dc_chrominance_values);\nvar YAC_HT = _computeHuffmanTbl(std_ac_luminance_nrcodes, std_ac_luminance_values);\nvar UVAC_HT = _computeHuffmanTbl(std_ac_chrominance_nrcodes, std_ac_chrominance_values);\nvar __raw, _jfif, _APPn, _qts, _frame, _tail, __f5write, _f5write_fn;\nvar f5stego = class {\n constructor(key2, maxPixels = 4096 * 4096) {\n this.maxPixels = maxPixels;\n __privateAdd(this, __f5write);\n __privateAdd(this, __raw, void 0);\n __privateAdd(this, _jfif, void 0);\n __privateAdd(this, _APPn, void 0);\n __privateAdd(this, _qts, void 0);\n __privateAdd(this, _frame, null);\n __privateAdd(this, _tail, null);\n }\n embed(image, data, k) {\n this.parse(image);\n this.f5put(data, k);\n return this.pack();\n }\n extract(image) {\n try {\n this.gengen = f5get();\n this.gengen.next();\n this.parse(image, true);\n return this.f5get();\n } catch (e) {\n if (e instanceof Buffer2)\n return e;\n throw e;\n }\n }\n f5put(data, k) {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let t, i, comp = __privateGet(this, _frame).components[0];\n if (data.length > 8388607)\n throw "Data too big. Max 8388607 bytes allowed.";\n if (data.length < 32768) {\n t = new Uint8Array(2 + data.length);\n t[0] = data.length & 255;\n t[1] = data.length >>> 8;\n t.set(data, 2);\n } else {\n t = new Uint8Array(3 + data.length);\n t[0] = data.length & 255;\n t[1] = (data.length >>> 8 & 127) + 128;\n t[2] = data.length >>> 15;\n t.set(data, 3);\n }\n if (comp.componentId != 1) {\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n return __privateMethod(this, __f5write, _f5write_fn).call(this, comp.blocks, t, k);\n }\n f5get() {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let comp = __privateGet(this, _frame).components[0];\n if (comp.componentId != 1) {\n for (let i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n const coeff = new Int16Array(comp.blocks.length);\n coeff.set(comp.blocks);\n let pos = -1, extrBit = 0, cCount = coeff.length - 1;\n let n, k = 0;\n let out = new Uint8Array(coeff.length / 8 | 0), extrByte = 0, outPos = 0, bitsAvail = 0, code = 0, hash = 0;\n while (bitsAvail < 4) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n k |= extrBit << bitsAvail;\n bitsAvail++;\n }\n k = (k & 15) + 1;\n n = (1 << k) - 1;\n bitsAvail = 0;\n if (k == 1) {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n extrByte |= extrBit << bitsAvail;\n bitsAvail++;\n if (bitsAvail == 8) {\n out[outPos++] = extrByte;\n extrByte = 0;\n bitsAvail = 0;\n }\n }\n } else {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n hash ^= extrBit * ++code;\n if (code == n) {\n extrByte |= hash << bitsAvail;\n bitsAvail += k;\n code = 0;\n hash = 0;\n while (bitsAvail >= 8) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n }\n }\n }\n while (bitsAvail > 0) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n let s = 2, l = out[0];\n if (out[1] & 128) {\n s++;\n l += ((out[1] & 127) << 8) + (out[2] << 15);\n } else {\n l += out[1] << 8;\n }\n return out.subarray(s, s + l);\n }\n parse(data, tolerant = false) {\n let offset = 0;\n function _buildHuffmanTable(nrcodes, values) {\n let codevalue = 0, pos_in_table = 0, HT = new Uint16Array(65536);\n for (let k = 0; k < 16; k++) {\n for (let j2 = 0; j2 < nrcodes[k]; j2++) {\n for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) {\n HT[i2] = values[pos_in_table] + (k + 1 << 8);\n }\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => {\n let startOffset = offset2, bitsData = 0, bitsCount = 0, eobrun = 0, p1 = 1 << successive, m1 = -1 << successive;\n const prevpos = 0;\n const decodeBaseline = (component2, pos) => {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n let diff = 0;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff;\n let k2 = 1, s, r;\n while (k2 < 64) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n bitsCount -= s;\n k2++;\n }\n };\n function decodeDCFirst(component2, pos) {\n let diff = 0;\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff << successive;\n }\n function decodeDCSuccessive(component2, pos) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocksDC[pos >> 6] |= (bitsData >>> --bitsCount & 1) << successive;\n }\n if (!frame)\n throw "Frame not parsed yet";\n function decodeACFirst(component2, pos) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k2 = spectralStart, s, r;\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r != 15) {\n eobrun = (1 << r) - 1;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n bitsCount -= s;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n component2.blocks[pos + k2] *= p1;\n k2++;\n }\n }\n function decodeACSuccessive(component2, pos) {\n let k2 = spectralStart, r, s;\n if (frame == null)\n throw "Frame not defined";\n if (!eobrun) {\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s) {\n if (s != 1)\n throw "bad jpeg";\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n s = bitsData >>> --bitsCount & 1 ? p1 : m1;\n } else {\n if (r != 15) {\n eobrun = 1 << r;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n }\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n } else {\n if (--r < 0)\n break;\n }\n k2++;\n }\n if (s)\n component2.blocks[pos + k2] = s;\n k2++;\n }\n }\n if (eobrun) {\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n }\n k2++;\n }\n eobrun--;\n }\n }\n let decodeFn;\n if (frame.progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y;\n let lastflushidx = 0;\n const flushBits = () => {\n if (!this.gengen)\n return;\n const component2 = components.find((e) => e.componentId == 1);\n while (component2.blocks[lastflushidx + 1] !== void 0) {\n const blk = component2.blocks[lastflushidx];\n if (blk != 0) {\n const v = blk < 0 ? 1 - (blk & 1) : blk & 1;\n const it = this.gengen.next(v);\n if (it.done) {\n throw it.value;\n }\n }\n lastflushidx++;\n }\n };\n if (components.length == 1) {\n mcusPerLine = components[0].blocksPerLine;\n mcusPerRow = components[0].blocksPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64);\n }\n }\n flushBits();\n }\n } else {\n mcusPerLine = frame.mcusPerLine;\n mcusPerRow = frame.mcusPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n for (j2 = 0; j2 < components[i2].v; j2++) {\n for (k = 0; k < components[i2].h; k++) {\n decodeFn(components[i2], ((y * components[i2].v + j2) * components[i2].blocksPerLineForMcu + x * components[i2].h + k) * 64);\n }\n }\n }\n }\n flushBits();\n }\n }\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n return offset2 - startOffset;\n };\n function readUint16() {\n const value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n __privateSet(this, __raw, data);\n __privateSet(this, _jfif, null);\n __privateSet(this, _APPn, []);\n __privateSet(this, _qts, []);\n __privateSet(this, _frame, null);\n __privateSet(this, _tail, null);\n let markerHi, markerLo, i, j, resetInterval, component;\n const huffmanTablesAC = [];\n const huffmanTablesDC = [];\n while (1) {\n if (offset >= data.length) {\n if (tolerant)\n break;\n throw "unexpected EOF";\n }\n markerHi = data[offset++];\n markerLo = data[offset++];\n if (markerHi == 255) {\n if (markerLo == 224) {\n __privateSet(this, _jfif, readDataBlock());\n }\n if (markerLo > 224 && markerLo < 240 || markerLo == 254) {\n __privateGet(this, _APPn).push({\n "app": markerLo,\n "data": readDataBlock()\n });\n }\n if (markerLo == 219) {\n __privateGet(this, _qts).push(readDataBlock());\n }\n if (markerLo >= 192 && markerLo <= 194) {\n if (__privateGet(this, _frame))\n throw "Only single frame JPEGs supported";\n readUint16();\n __privateSet(this, _frame, {\n "extended": markerLo === 193,\n "progressive": markerLo === 194,\n "precision": data[offset++],\n "scanLines": readUint16(),\n "samplesPerLine": readUint16(),\n "components": [],\n "componentIds": {},\n "maxH": 1,\n "maxV": 1\n });\n if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels)\n throw "Image is too big.";\n var componentsCount = data[offset++], componentId;\n let maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h)\n maxH = h;\n if (maxV < v)\n maxV = v;\n const qId = data[offset + 2];\n const l = __privateGet(this, _frame).components.push({\n componentId,\n h,\n v,\n quantizationTable: qId\n });\n __privateGet(this, _frame).componentIds[componentId] = l - 1;\n offset += 3;\n }\n __privateGet(this, _frame).maxH = maxH;\n __privateGet(this, _frame).maxV = maxV;\n const mcusPerLine = Math.ceil(__privateGet(this, _frame).samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(__privateGet(this, _frame).scanLines / 8 / maxV);\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n component = __privateGet(this, _frame).components[i];\n const blocksPerLine = Math.ceil(Math.ceil(__privateGet(this, _frame).samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(__privateGet(this, _frame).scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n __privateGet(this, _frame).components[i] = {\n ...component,\n blocks: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu * 64),\n blocksDC: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu),\n blocksPerLine,\n blocksPerColumn,\n blocksPerLineForMcu,\n blocksPerColumnForMcu\n };\n }\n __privateGet(this, _frame).mcusPerLine = mcusPerLine;\n __privateGet(this, _frame).mcusPerColumn = mcusPerColumn;\n }\n if (markerLo == 196) {\n const huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n const v = _buildHuffmanTable(codeLengths, huffmanValues);\n if (huffmanTableSpec >> 4 === 0)\n huffmanTablesDC[huffmanTableSpec & 15] = v;\n else\n huffmanTablesAC[huffmanTableSpec & 15] = v;\n }\n }\n if (markerLo == 221) {\n resetInterval = readUint16();\n }\n if (markerLo == 218) {\n if (__privateGet(this, _frame) == null)\n throw "SOS before SOF";\n readUint16();\n const selectorsCount = data[offset++];\n const components = [];\n for (i = 0; i < selectorsCount; i++) {\n const componentIndex = __privateGet(this, _frame).componentIds[data[offset++]];\n component = __privateGet(this, _frame).components[componentIndex];\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset, __privateGet(this, _frame), components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n }\n if (markerLo == 217) {\n break;\n }\n } else {\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n }\n while (data[offset] != 255 && offset < data.length) {\n offset++;\n }\n if (data[offset] != 255) {\n throw "bad jpeg ";\n }\n }\n }\n if (!__privateGet(this, _frame))\n throw "bad jpeg";\n if (offset < data.length)\n __privateSet(this, _tail, data.subarray(offset));\n return this;\n }\n pack() {\n let byteout;\n let bytenew;\n let bytepos;\n let poslast;\n let outpos;\n let byte;\n function writeByte(value) {\n let t;\n byteout[outpos++] = value;\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function writeBlock(block) {\n let t;\n if (outpos + block.length > poslast) {\n t = new Uint8Array(byteout.length * 2 + block.length);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n byteout.set(block, outpos);\n outpos += block.length;\n }\n function writeAPP0(self2) {\n writeWord(65504);\n if (!__privateGet(self2, _jfif)) {\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n } else {\n writeWord(__privateGet(self2, _jfif).length + 2);\n writeBlock(__privateGet(self2, _jfif));\n }\n }\n function writeDQT(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _qts).length; i2++) {\n writeWord(65499);\n writeWord(__privateGet(self2, _qts)[i2].length + 2);\n writeBlock(__privateGet(self2, _qts)[i2]);\n }\n }\n function writeAPPn(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _APPn).length; i2++) {\n writeWord(65280 | __privateGet(self2, _APPn)[i2].app);\n writeWord(__privateGet(self2, _APPn)[i2].data.length + 2);\n writeBlock(__privateGet(self2, _APPn)[i2].data);\n }\n }\n function writeSOF0(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65472);\n writeWord(8 + __privateGet(self2, _frame).components.length * 3);\n writeByte(__privateGet(self2, _frame).precision);\n writeWord(__privateGet(self2, _frame).scanLines);\n writeWord(__privateGet(self2, _frame).samplesPerLine);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n writeByte(c2.h << 4 | c2.v);\n writeByte(c2.quantizationTable);\n }\n }\n function writeDHT(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65476);\n writeWord(31);\n writeByte(0);\n for (let i2 = 0; i2 < 16; i2++) {\n writeByte(std_dc_luminance_nrcodes[i2 + 1]);\n }\n for (let j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(16);\n for (let k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (let l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n if (__privateGet(self2, _frame).components.length != 1) {\n writeWord(65476);\n writeWord(31);\n writeByte(1);\n for (let m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (let n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(17);\n for (let o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (let p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n }\n function writeSOS(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65498);\n writeWord(6 + __privateGet(self2, _frame).components.length * 2);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n if (i2 === 0) {\n writeByte(0);\n } else {\n writeByte(17);\n }\n }\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(comp, POS, DC, HTDC, HTAC) {\n let pos, posval, t;\n if (bytepos === 0)\n bytenew = 0;\n if (!("blocks" in comp))\n throw "Blocks not parsed";\n const Diff = comp.blocksDC[POS >> 6] - DC;\n DC = comp.blocksDC[POS >> 6];\n if (Diff === 0) {\n posval = HTDC[0][1];\n bytenew <<= posval;\n bytenew += HTDC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n } else {\n pos = 32767 + Diff;\n posval = HTDC[category[pos]][1];\n bytenew <<= posval;\n bytenew += HTDC[category[pos]][0];\n bytepos += posval;\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n let end0pos = 63;\n for (; end0pos > 0 && comp.blocks[POS + end0pos] === 0; end0pos--) {\n }\n if (end0pos === 0) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n return DC;\n }\n let i2 = 1;\n let lng;\n while (i2 <= end0pos) {\n const startpos = i2;\n for (; comp.blocks[POS + i2] === 0 && i2 <= end0pos; ++i2) {\n }\n let nrzeroes = i2 - startpos;\n if (nrzeroes >= 16) {\n lng = nrzeroes >> 4;\n for (let nrmarker = 1; nrmarker <= lng; ++nrmarker) {\n posval = HTAC[240][1];\n bytenew <<= posval;\n bytenew += HTAC[240][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + comp.blocks[POS + i2];\n posval = HTAC[(nrzeroes << 4) + category[pos]][1];\n bytenew <<= posval;\n bytenew += HTAC[(nrzeroes << 4) + category[pos]][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n i2++;\n }\n if (end0pos != 63) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n return DC;\n }\n byteout = new Uint8Array(65536);\n poslast = 65536 - 128;\n outpos = 0;\n bytenew = 0;\n bytepos = 0;\n writeWord(65496);\n writeAPP0(this);\n writeAPPn(this);\n writeDQT(this);\n writeSOF0(this);\n writeDHT(this);\n writeSOS(this);\n bytenew = 0;\n bytepos = 0;\n if (!__privateGet(this, _frame))\n throw "Frame not ready";\n let c, mcuRow, mcuCol, blockRow, blockCol, mcu, i, v, h;\n const DCdiff = [];\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n DCdiff.push(0);\n }\n for (mcu = 0; mcu < __privateGet(this, _frame).mcusPerLine * __privateGet(this, _frame).mcusPerColumn; mcu++) {\n mcuRow = mcu / __privateGet(this, _frame).mcusPerLine | 0;\n mcuCol = mcu % __privateGet(this, _frame).mcusPerLine;\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n c = __privateGet(this, _frame).components[i];\n for (v = 0; v < c.v; v++) {\n blockRow = mcuRow * c.v + v;\n for (h = 0; h < c.h; h++) {\n blockCol = mcuCol * c.h + h;\n if (i === 0) {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], YDC_HT, YAC_HT);\n } else {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], UVDC_HT, UVAC_HT);\n }\n }\n }\n }\n }\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n }\n if (bytepos > 0) {\n bytenew <<= 8 - bytepos;\n bytenew += (1 << 8 - bytepos) - 1;\n byteout[outpos++] = 255 & bytenew;\n }\n writeWord(65497);\n if (__privateGet(this, _tail))\n writeBlock(__privateGet(this, _tail));\n return byteout.slice(0, outpos);\n }\n};\n__raw = new WeakMap();\n_jfif = new WeakMap();\n_APPn = new WeakMap();\n_qts = new WeakMap();\n_frame = new WeakMap();\n_tail = new WeakMap();\n__f5write = new WeakSet();\n_f5write_fn = function(coeff, data, k) {\n const coeff_count = coeff.length;\n let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, n, ii;\n let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0;\n n = (1 << k) - 1;\n byte_to_embed = k - 1;\n byte_to_embed ^= 0;\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed = 3;\n for (ii = 0; ii < coeff_count; ii++) {\n shuffled_index = ii;\n if (shuffled_index % 64 === 0 || coeff[shuffled_index] === 0)\n continue;\n const cc = coeff[shuffled_index];\n _examined++;\n if (cc > 0 && (cc & 1) != next_bit_to_embed) {\n coeff[shuffled_index]--;\n _changed++;\n } else if (cc < 0 && (cc & 1) == next_bit_to_embed) {\n coeff[shuffled_index]++;\n _changed++;\n }\n if (coeff[shuffled_index] !== 0) {\n _embedded++;\n if (available_bits_to_embed === 0) {\n if (k != 1 || data_idx >= data.length)\n break;\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n } else {\n _thrown++;\n }\n }\n if (k == 1 && _embedded < data.length * 8)\n throw "capacity exceeded " + _embedded / 8 + " " + data.length;\n if (k != 1) {\n let is_last_byte = false, k_bits_to_embed = 0;\n while (!is_last_byte || available_bits_to_embed !== 0 && is_last_byte) {\n k_bits_to_embed = 0;\n for (i = 0; i < k; i++) {\n if (available_bits_to_embed === 0) {\n if (data_idx >= data.length) {\n is_last_byte = true;\n break;\n }\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n k_bits_to_embed |= next_bit_to_embed << i;\n }\n const code_word = [];\n let ci = null;\n for (i = 0; i < n; i++) {\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n code_word.push(ci);\n }\n _examined += n;\n while (true) {\n var vhash = 0, extracted_bit;\n for (i = 0; i < code_word.length; i++) {\n if (coeff[code_word[i]] > 0) {\n extracted_bit = coeff[code_word[i]] & 1;\n } else {\n extracted_bit = 1 - (coeff[code_word[i]] & 1);\n }\n if (extracted_bit == 1)\n vhash ^= i + 1;\n }\n i = vhash ^ k_bits_to_embed;\n if (!i) {\n _embedded += k;\n break;\n }\n i--;\n coeff[code_word[i]] += coeff[code_word[i]] < 0 ? 1 : -1;\n _changed++;\n if (coeff[code_word[i]] === 0) {\n _thrown++;\n code_word.splice(i, 1);\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n _examined++;\n code_word.push(ci);\n } else {\n _embedded += k;\n break;\n }\n }\n }\n }\n return {\n "k": k,\n "embedded": _embedded / 8,\n "examined": _examined,\n "changed": _changed,\n "thrown": _thrown,\n "efficiency": (_embedded / _changed).toFixed(2)\n };\n};\n\n// src/jpg.ts\nvar key = import_buffer4.Buffer.from("CUNNYCUNNYCUNNY");\nvar f5inst = new f5stego(key);\nvar inject2 = async (b, links) => {\n if (b.size / 20 < links.join(" ").length)\n throw "Image too small to embed.";\n const arr = new Uint8Array(new Uint8Array(await b.arrayBuffer()));\n const buff = f5inst.embed(arr, new TextEncoder().encode(links.join(" ")), 1);\n return import_buffer4.Buffer.from(buff);\n};\nvar has_embed2 = (b) => {\n try {\n const res = f5inst.extract(b);\n if (!res)\n return false;\n if (res.length > 1024)\n return false;\n const str = import_buffer4.Buffer.from(res).toString();\n if (!str.match(/^[a-zA-Z0-9:/.\\-_ ]+$/))\n return false;\n return str;\n } catch {\n return false;\n }\n};\nvar extract2 = (b, ex) => {\n return decodeCoom3Payload(import_buffer4.Buffer.from(ex));\n};\nvar jpg_default = {\n match: (fn) => !!fn.match(/\\.jpe?g$/),\n has_embed: has_embed2,\n extract: extract2,\n inject: inject2\n};\n\n// src/thirdeye.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer5 = __toESM(require_buffer(), 1);\nvar import_jpeg_js = __toESM(require_jpeg_js(), 1);\n\n// src/phash.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar median = (data) => {\n const mdarr = data.slice(0);\n mdarr.sort((a, b) => a - b);\n if (mdarr.length % 2 === 0)\n return (mdarr[mdarr.length / 2 - 1] + mdarr[mdarr.length / 2]) / 2;\n return mdarr[Math.floor(mdarr.length / 2)];\n};\nvar translate_blocks_to_bits = function(blocks, pixels_per_block) {\n const half_block_value = pixels_per_block * 256 * 3 / 2;\n const bandsize = blocks.length / 4;\n for (let i = 0; i < 4; i++) {\n const m = median(blocks.slice(i * bandsize, (i + 1) * bandsize));\n for (let j = i * bandsize; j < (i + 1) * bandsize; j++) {\n const v = blocks[j];\n blocks[j] = Number(v > m || Math.abs(v - m) < 1 && m > half_block_value);\n }\n }\n};\nvar bits_to_hexhash = (bitsArray) => {\n const hex = [];\n for (let i = 0; i < bitsArray.length; i += 4) {\n const nibble = bitsArray.slice(i, i + 4);\n hex.push(parseInt(nibble.join(""), 2).toString(16));\n }\n return hex.join("");\n};\nvar bmvbhash_even = (data, bits) => {\n const blocksize_x = Math.floor(data.width / bits);\n const blocksize_y = Math.floor(data.height / bits);\n const result = [];\n for (let y = 0; y < bits; y++) {\n for (let x = 0; x < bits; x++) {\n let total = 0;\n for (let iy = 0; iy < blocksize_y; iy++) {\n for (let ix = 0; ix < blocksize_x; ix++) {\n const cx = x * blocksize_x + ix;\n const cy = y * blocksize_y + iy;\n const ii = (cy * data.width + cx) * 4;\n const alpha = data.data[ii + 3];\n if (alpha === 0) {\n total += 765;\n } else {\n total += data.data[ii] + data.data[ii + 1] + data.data[ii + 2];\n }\n }\n }\n result.push(total);\n }\n }\n translate_blocks_to_bits(result, blocksize_x * blocksize_y);\n return bits_to_hexhash(result);\n};\n\n// src/thirdeye.ts\nvar csettings3;\nsettings.subscribe((b) => {\n csettings3 = b;\n});\nvar gelquirk = (prefix) => (a) => {\n let base = a.post || a.data || a;\n if (!Array.isArray(base))\n return [];\n base = base.filter((e) => e.file_url);\n return base.map((e) => ({\n full_url: e.file_url,\n preview_url: e.preview_url || e.preview_url,\n source: e.source,\n ext: e.file_ext || e.file_url.substr(e.file_url.lastIndexOf(".") + 1),\n page: `${prefix}${e.id || e.parent_id}`,\n tags: (e.tag_string || (e.tags && (Array.isArray(e.tags) && (typeof e.tags[0] == "string" ? e.tags.join(" ") : e.tags.map((e2) => e2.name_en).join(" "))) || e.tags) || "").split(" ")\n })) || [];\n};\nvar experimentalApi = false;\nvar black = /* @__PURE__ */ new Set();\nvar phashEn = false;\nvar mindist = 5;\nsettings.subscribe((s) => {\n if (!s)\n return;\n experimentalApi = s.expte;\n boorus = s.rsources.map((e) => ({\n ...e,\n quirks: gelquirk(e.view)\n }));\n black = new Set(s.blacklist);\n mindist = s.mdist || 5;\n phashEn = s.phash;\n});\nvar boorus = [];\nvar unlockQueue = Promise.resolve();\nvar cache = {};\nvar findFileFrom = async (b, hex, abort) => {\n try {\n if (b.domain in cache && hex in cache[b.domain])\n return cache[b.domain][hex];\n const res = await ifetch(`https://${b.domain}${b.endpoint}${hex}`);\n const txt = await res.text();\n const pres = JSON.parse(txt);\n const tran = b.quirks(pres).filter((e) => !e.tags.some((e2) => black.has(e2)));\n if (!(b.domain in cache))\n cache[b.domain] = {};\n cache[b.domain][hex] = tran;\n return tran;\n } catch (e) {\n const error = e;\n if (!error.message.includes("Unexpected end of JSON input"))\n console.error(e);\n return [];\n }\n};\nvar extract3 = async (b, fn) => {\n if (!csettings3)\n throw new Error("Settings uninit");\n let result;\n let booru;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n if (result.length) {\n booru = e.name;\n break;\n }\n }\n let cachedFile;\n const prev = result[0].preview_url;\n const full = result[0].full_url;\n return [{\n source: result[0].source,\n page: {\n title: booru,\n url: result[0].page\n },\n filename: fn.substring(0, 33) + result[0].ext,\n thumbnail: csettings3.hotlink ? prev || full : import_buffer5.Buffer.from(await (await ifetch(prev || full)).arrayBuffer()),\n data: csettings3.hotlink ? full || prev : { url: full || prev }\n }];\n};\nvar phash = (b) => {\n const res = (0, import_jpeg_js.decode)(b);\n return bmvbhash_even(res, 8);\n};\nvar hammingDist = (a, b) => {\n let res = BigInt("0x" + a) ^ BigInt("0x" + b);\n let acc = 0;\n while (res != 0n) {\n acc += Number(res & 1n);\n res >>= 1n;\n }\n return acc;\n};\nvar has_embed3 = async (b, fn, prevlink) => {\n if (import_buffer5.Buffer.from(fn, "hex").equals(b))\n return false;\n let result = void 0;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n result = result.filter((e2) => e2.full_url || e2.preview_url);\n if (result.length)\n break;\n }\n if (result && result.length != 0 && phashEn && prevlink) {\n if (!result[0].preview_url)\n return true;\n const getHash = async (l) => {\n const ogreq = await ifetch(l);\n const origPreview = await ogreq.arrayBuffer();\n return phash(import_buffer5.Buffer.from(origPreview));\n };\n const [orighash, tehash] = await Promise.all([\n getHash(prevlink),\n getHash(result[0].preview_url)\n ]);\n const d = hammingDist(orighash, tehash);\n console.log(d, prevlink);\n return d > mindist;\n }\n return result && result.length != 0;\n};\nvar thirdeye_default = {\n skip: true,\n extract: extract3,\n has_embed: has_embed3,\n match: (fn) => !!fn.match(/^[0-9a-f]{32}\\.....?/)\n};\n\n// src/pomf.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer6 = __toESM(require_buffer(), 1);\nvar sources = [\n { host: "Catbox", prefix: "files.catbox.moe/" },\n { host: "Litter", prefix: "litter.catbox.moe/" },\n { host: "Zzzz", prefix: "z.zz.fo/" }\n];\nvar csettings4;\nsettings.subscribe((b) => {\n csettings4 = b;\n});\nvar getExt = (fn) => {\n const isB64 = fn.match(/^((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=))?\\.(gif|jpe?g|png|webm)/);\n const isExt = fn.match(/\\[.*=(.*)\\]/);\n let ext;\n let source;\n try {\n if (isB64) {\n ext = atob(isB64[1]);\n } else if (isExt) {\n ext = decodeURIComponent(isExt[1]);\n if (ext.startsWith("https://"))\n ext = ext.slice("https://".length);\n for (const cs of sources)\n if (ext.startsWith(cs.prefix)) {\n source = cs.prefix;\n ext = ext.slice(cs.prefix.length);\n break;\n }\n }\n } catch {\n }\n return { ext, source };\n};\nvar extract4 = async (b, fn) => {\n if (!csettings4)\n throw new Error("Settings uninit");\n const { ext, source } = getExt(fn);\n let rsource;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n await getHeaders("https://" + cs.prefix + ext);\n rsource = "https://" + cs.prefix + ext;\n break;\n } catch {\n }\n }\n return [{\n filename: ext,\n data: csettings4.hotlink ? rsource : { url: rsource },\n thumbnail: import_buffer6.Buffer.from(hasembed_default)\n }];\n};\nvar has_embed4 = async (b, fn) => {\n const { ext, source } = getExt(fn);\n if (!ext)\n return false;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n const e = await getHeaders("https://" + cs.prefix + ext);\n return true;\n } catch {\n }\n }\n return false;\n};\nvar pomf_default = {\n skip: true,\n extract: extract4,\n has_embed: has_embed4,\n match: (fn) => !!getExt(fn)\n};\n\n// src/processor.worker.ts\nconsole.log("Worker started");\nvar pendinggens = {};\nvar proxyAsyncGen = (id) => {\n return {\n next(arg) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n return(v) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n throw() {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n [Symbol.asyncIterator]() {\n return this;\n }\n };\n};\nvar deserializeMessage = (m) => {\n if (m instanceof MessagePort)\n return m;\n if (typeof m == "object" && m.type == "AsyncGenerator") {\n return proxyAsyncGen(m.id);\n }\n if (typeof m == "object") {\n for (const p in m) {\n m[p] = deserializeMessage(m[p]);\n }\n }\n return m;\n};\nvar processors = [thirdeye_default, pomf_default, pngv3_default, jpg_default];\nvar processImage = async (srcs, fn, hex, prevurl) => {\n const ret = await Promise.all(processors.filter((e) => e.match(fn)).map(async (proc) => {\n if (proc.skip) {\n const md5 = Buffer2.from(hex, "base64");\n if (await proc.has_embed(md5, fn, prevurl) === true) {\n return [await proc.extract(md5, fn), true];\n }\n return;\n }\n let succ = false;\n let cumul;\n do {\n try {\n const n = await srcs.next();\n if (n.done)\n return;\n const iter = streamRemote(n.value);\n if (!iter)\n return;\n cumul = Buffer2.alloc(0);\n let found;\n let chunk = { done: true };\n do {\n const { value, done } = await iter.next(typeof found === "boolean");\n if (done) {\n chunk = { done: true };\n } else {\n chunk = { done: false, value };\n cumul = Buffer2.concat([cumul, value]);\n const v = await proc.has_embed(cumul);\n if (typeof v == "string") {\n return [await proc.extract(cumul, v), false];\n }\n found = v;\n }\n } while (found !== false && !chunk.done);\n succ = true;\n await iter.next(true);\n if (found !== true) {\n return;\n }\n return [await proc.extract(cumul), false];\n } catch (err) {\n console.log(err);\n }\n } while (!succ);\n }));\n return ret.filter((e) => e).map((e) => e);\n};\nvar init2 = false;\n(async () => {\n onmessage = async (msg) => {\n const des = deserializeMessage(msg.data);\n switch (des.type) {\n case "ipc": {\n setupPort(des.port);\n const nset = await localLoad("settingsv2", initial_settings);\n settings.set(nset);\n break;\n }\n case "cmd": {\n switch (des.fun) {\n case "processImage": {\n if (!init2) {\n await new Promise((_) => {\n settings.subscribe((v) => {\n if (v)\n _();\n });\n });\n init2 = true;\n }\n const res = await processImage(des.args[0], des.args[1], des.args[2], des.args[3]);\n const tr = [];\n for (const ef of res) {\n for (const e of ef[0]) {\n if (e.thumbnail && Buffer2.isBuffer(e.thumbnail) || typeof e.thumbnail != "string")\n tr.push(e.thumbnail.buffer);\n if (Buffer2.isBuffer(e.data) || typeof e.data != "string" && !("url" in e.data))\n tr.push(e.data.buffer);\n }\n }\n postMessage({\n type: "reply",\n id: des.id,\n res\n }, [...new Set(tr)]);\n }\n }\n break;\n }\n case "ag": {\n const cb = pendinggens[des.id].shift();\n if (cb) {\n cb(des.res);\n }\n break;\n }\n }\n };\n})();\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n'); + return inlineWorker('var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));\nvar __decorateClass = (decorators, target, key2, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key2) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key2, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key2, result);\n return result;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError("Cannot " + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, "read from private field");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError("Cannot add the same private member more than once");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, "write to private field");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, "access private method");\n return method;\n};\nvar __toBinary = /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++)\n table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);\n for (var i2 = 0, j = 0; i2 < n; ) {\n var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n bytes[j++] = c0 << 2 | c1 >> 4;\n bytes[j++] = c1 << 4 | c2 >> 2;\n bytes[j++] = c2 << 6 | c3;\n }\n return bytes;\n };\n})();\n\n// \nvar init_define_BUILD_VERSION = __esm({\n ""() {\n }\n});\n\n// node_modules/base64-js/index.js\nvar require_base64_js = __commonJS({\n "node_modules/base64-js/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;\n var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\n for (i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n var i;\n var len;\n revLookup["-".charCodeAt(0)] = 62;\n revLookup["_".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error("Invalid string. Length must be a multiple of 4");\n }\n var validLen = b64.indexOf("=");\n if (validLen === -1)\n validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join("");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");\n }\n return parts.join("");\n }\n }\n});\n\n// node_modules/ieee754/index.js\nvar require_ieee754 = __commonJS({\n "node_modules/ieee754/index.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n});\n\n// node_modules/buffer/index.js\nvar require_buffer = __commonJS({\n "node_modules/buffer/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var base64 = require_base64_js();\n var ieee7542 = require_ieee754();\n var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null;\n exports.Buffer = Buffer13;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n Buffer13.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer13.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") {\n console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");\n }\n function typedArraySupport() {\n try {\n const arr = new Uint8Array(1);\n const proto = { foo: function() {\n return 42;\n } };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer13.prototype, "parent", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer13.prototype, "offset", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\'The value "\' + length + \'" is invalid for option "size"\');\n }\n const buf2 = new Uint8Array(length);\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function Buffer13(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n if (typeof encodingOrOffset === "string") {\n throw new TypeError(\'The "string" argument must be of type string. Received type number\');\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer13.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === "string") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === "number") {\n throw new TypeError(\'The "value" argument must not be of type number. Received type number\');\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer13.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b)\n return b;\n if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") {\n return Buffer13.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length);\n }\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n Buffer13.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer13.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer13, Uint8Array);\n function assertSize(size) {\n if (typeof size !== "number") {\n throw new TypeError(\'"size" argument must be of type number\');\n } else if (size < 0) {\n throw new RangeError(\'The value "\' + size + \'" is invalid for option "size"\');\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer13.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer13.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer13.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== "string" || encoding === "") {\n encoding = "utf8";\n }\n if (!Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf2 = createBuffer(length);\n const actual = buf2.write(string, encoding);\n if (actual !== length) {\n buf2 = buf2.slice(0, actual);\n }\n return buf2;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf2 = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf2[i] = array[i] & 255;\n }\n return buf2;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\'"offset" is outside of buffer bounds\');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\'"length" is outside of buffer bounds\');\n }\n let buf2;\n if (byteOffset === void 0 && length === void 0) {\n buf2 = new Uint8Array(array);\n } else if (length === void 0) {\n buf2 = new Uint8Array(array, byteOffset);\n } else {\n buf2 = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function fromObject(obj) {\n if (Buffer13.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf2 = createBuffer(len);\n if (buf2.length === 0) {\n return buf2;\n }\n obj.copy(buf2, 0, 0, len);\n return buf2;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== "number" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === "Buffer" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer13.alloc(+length);\n }\n Buffer13.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer13.prototype;\n };\n Buffer13.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array))\n a = Buffer13.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array))\n b = Buffer13.from(b, b.offset, b.byteLength);\n if (!Buffer13.isBuffer(a) || !Buffer13.isBuffer(b)) {\n throw new TypeError(\'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array\');\n }\n if (a === b)\n return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n Buffer13.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "latin1":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return true;\n default:\n return false;\n }\n };\n Buffer13.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n }\n if (list.length === 0) {\n return Buffer13.alloc(0);\n }\n let i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer13.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf2 = list[i];\n if (isInstance(buf2, Uint8Array)) {\n if (pos + buf2.length > buffer.length) {\n if (!Buffer13.isBuffer(buf2))\n buf2 = Buffer13.from(buf2);\n buf2.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf2, pos);\n }\n } else if (!Buffer13.isBuffer(buf2)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n } else {\n buf2.copy(buffer, pos);\n }\n pos += buf2.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer13.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== "string") {\n throw new TypeError(\'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type \' + typeof string);\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0)\n return 0;\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "ascii":\n case "latin1":\n case "binary":\n return len;\n case "utf8":\n case "utf-8":\n return utf8ToBytes(string).length;\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return len * 2;\n case "hex":\n return len >>> 1;\n case "base64":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length;\n }\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return "";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return "";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return "";\n }\n if (!encoding)\n encoding = "utf8";\n while (true) {\n switch (encoding) {\n case "hex":\n return hexSlice(this, start, end);\n case "utf8":\n case "utf-8":\n return utf8Slice(this, start, end);\n case "ascii":\n return asciiSlice(this, start, end);\n case "latin1":\n case "binary":\n return latin1Slice(this, start, end);\n case "base64":\n return base64Slice(this, start, end);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = (encoding + "").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer13.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 16-bits");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer13.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 32-bits");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer13.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 64-bits");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer13.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0)\n return "";\n if (arguments.length === 0)\n return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer13.prototype.toLocaleString = Buffer13.prototype.toString;\n Buffer13.prototype.equals = function equals(b) {\n if (!Buffer13.isBuffer(b))\n throw new TypeError("Argument must be a Buffer");\n if (this === b)\n return true;\n return Buffer13.compare(this, b) === 0;\n };\n Buffer13.prototype.inspect = function inspect() {\n let str = "";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim();\n if (this.length > max)\n str += " ... ";\n return "";\n };\n if (customInspectSymbol) {\n Buffer13.prototype[customInspectSymbol] = Buffer13.prototype.inspect;\n }\n Buffer13.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer13.from(target, target.offset, target.byteLength);\n }\n if (!Buffer13.isBuffer(target)) {\n throw new TypeError(\'The "target" argument must be one of type Buffer or Uint8Array. Received type \' + typeof target);\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError("out of range index");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target)\n return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0)\n return -1;\n if (typeof byteOffset === "string") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n if (byteOffset < 0)\n byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir)\n return -1;\n else\n byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir)\n byteOffset = 0;\n else\n return -1;\n }\n if (typeof val === "string") {\n val = Buffer13.from(val, encoding);\n }\n if (Buffer13.isBuffer(val)) {\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === "number") {\n val = val & 255;\n if (typeof Uint8Array.prototype.indexOf === "function") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError("val must be string, number or Buffer");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read2(buf2, i2) {\n if (indexSize === 1) {\n return buf2[i2];\n } else {\n return buf2.readUInt16BE(i2 * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read2(arr, i) === read2(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1)\n foundIndex = i;\n if (i - foundIndex + 1 === valLength)\n return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1)\n i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength)\n byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read2(arr, i + j) !== read2(val, j)) {\n found = false;\n break;\n }\n }\n if (found)\n return i;\n }\n }\n return -1;\n }\n Buffer13.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer13.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer13.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf2, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf2.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed))\n return i;\n buf2[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf2, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n function asciiWrite(buf2, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf2, offset, length);\n }\n function base64Write(buf2, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf2, offset, length);\n }\n function ucs2Write(buf2, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n Buffer13.prototype.write = function write2(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = "utf8";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === "string") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0)\n encoding = "utf8";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");\n }\n const remaining = this.length - offset;\n if (length === void 0 || length > remaining)\n length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError("Attempt to write outside buffer bounds");\n }\n if (!encoding)\n encoding = "utf8";\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "hex":\n return hexWrite(this, string, offset, length);\n case "utf8":\n case "utf-8":\n return utf8Write(this, string, offset, length);\n case "ascii":\n case "latin1":\n case "binary":\n return asciiWrite(this, string, offset, length);\n case "base64":\n return base64Write(this, string, offset, length);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer13.prototype.toJSON = function toJSON() {\n return {\n type: "Buffer",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf2, start, end) {\n if (start === 0 && end === buf2.length) {\n return base64.fromByteArray(buf2);\n } else {\n return base64.fromByteArray(buf2.slice(start, end));\n }\n }\n function utf8Slice(buf2, start, end) {\n end = Math.min(buf2.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf2[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf2[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n fourthByte = buf2[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = "";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i]);\n }\n return ret;\n }\n function hexSlice(buf2, start, end) {\n const len = buf2.length;\n if (!start || start < 0)\n start = 0;\n if (!end || end < 0 || end > len)\n end = len;\n let out = "";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf2[i]];\n }\n return out;\n }\n function utf16leSlice(buf2, start, end) {\n const bytes = buf2.slice(start, end);\n let res = "";\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer13.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0)\n start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0)\n end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start)\n end = start;\n const newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer13.prototype);\n return newBuf;\n };\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0)\n throw new RangeError("offset is not uint");\n if (offset + ext > length)\n throw new RangeError("Trying to access beyond buffer length");\n }\n Buffer13.prototype.readUintLE = Buffer13.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUintBE = Buffer13.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n let val = this[offset + --byteLength2];\n let mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUint8 = Buffer13.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer13.prototype.readUint16LE = Buffer13.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer13.prototype.readUint16BE = Buffer13.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer13.prototype.readUint32LE = Buffer13.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer13.prototype.readUint32BE = Buffer13.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer13.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer13.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer13.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let i = byteLength2;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128))\n return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer13.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer13.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer13.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer13.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer13.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, true, 23, 4);\n };\n Buffer13.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, false, 23, 4);\n };\n Buffer13.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, true, 52, 8);\n };\n Buffer13.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, false, 52, 8);\n };\n function checkInt(buf2, value, offset, ext, max, min) {\n if (!Buffer13.isBuffer(buf2))\n throw new TypeError(\'"buffer" argument must be a Buffer instance\');\n if (value > max || value < min)\n throw new RangeError(\'"value" argument is out of bounds\');\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n }\n Buffer13.prototype.writeUintLE = Buffer13.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUintBE = Buffer13.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUint8 = Buffer13.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeUint16LE = Buffer13.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeUint16BE = Buffer13.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeUint32LE = Buffer13.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeUint32BE = Buffer13.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset + 7] = lo;\n lo = lo >> 8;\n buf2[offset + 6] = lo;\n lo = lo >> 8;\n buf2[offset + 5] = lo;\n lo = lo >> 8;\n buf2[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset + 3] = hi;\n hi = hi >> 8;\n buf2[offset + 2] = hi;\n hi = hi >> 8;\n buf2[offset + 1] = hi;\n hi = hi >> 8;\n buf2[offset] = hi;\n return offset + 8;\n }\n Buffer13.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 127, -128);\n if (value < 0)\n value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer13.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0)\n value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n Buffer13.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n function checkIEEE754(buf2, value, offset, ext, max, min) {\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n if (offset < 0)\n throw new RangeError("Index out of range");\n }\n function writeFloat(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer13.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer13.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer13.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer13.isBuffer(target))\n throw new TypeError("argument should be a Buffer");\n if (!start)\n start = 0;\n if (!end && end !== 0)\n end = this.length;\n if (targetStart >= target.length)\n targetStart = target.length;\n if (!targetStart)\n targetStart = 0;\n if (end > 0 && end < start)\n end = start;\n if (end === start)\n return 0;\n if (target.length === 0 || this.length === 0)\n return 0;\n if (targetStart < 0) {\n throw new RangeError("targetStart out of bounds");\n }\n if (start < 0 || start >= this.length)\n throw new RangeError("Index out of range");\n if (end < 0)\n throw new RangeError("sourceEnd out of bounds");\n if (end > this.length)\n end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === "function") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n Buffer13.prototype.fill = function fill(val, start, end, encoding) {\n if (typeof val === "string") {\n if (typeof start === "string") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === "string") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== void 0 && typeof encoding !== "string") {\n throw new TypeError("encoding must be a string");\n }\n if (typeof encoding === "string" && !Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === "utf8" && code < 128 || encoding === "latin1") {\n val = code;\n }\n }\n } else if (typeof val === "number") {\n val = val & 255;\n } else if (typeof val === "boolean") {\n val = Number(val);\n }\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError("Out of range index");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val)\n val = 0;\n let i;\n if (typeof val === "number") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer13.isBuffer(val) ? val : Buffer13.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError(\'The value "\' + val + \'" is invalid for argument "value"\');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, "message", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n this.name = `${this.name} [${sym}]`;\n this.stack;\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, "code", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n return "Attempt to access memory outside buffer bounds";\n }, RangeError);\n E("ERR_INVALID_ARG_TYPE", function(name, actual) {\n return `The "${name}" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E("ERR_OUT_OF_RANGE", function(str, range, input) {\n let msg = `The value of "${str}" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === "bigint") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += "n";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n let res = "";\n let i = val.length;\n const start = val[0] === "-" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n function checkBounds(buf2, offset, byteLength2) {\n validateNumber(offset, "offset");\n if (buf2[offset] === void 0 || buf2[offset + byteLength2] === void 0) {\n boundsError(offset, buf2.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf2, offset, byteLength2) {\n if (value > max || value < min) {\n const n = typeof min === "bigint" ? "n" : "";\n let range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n throw new errors.ERR_OUT_OF_RANGE("value", range, value);\n }\n checkBounds(buf2, offset, byteLength2);\n }\n function validateNumber(value, name) {\n if (typeof value !== "number") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value);\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split("=")[0];\n str = str.trim().replace(INVALID_BASE64_RE, "");\n if (str.length < 2)\n return "";\n while (str.length % 4 !== 0) {\n str = str + "=";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error("Invalid code point");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0)\n break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length)\n break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n const alphabet = "0123456789abcdef";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error("BigInt not supported");\n }\n }\n});\n\n// esbuild.inject.js\nvar Buffer2;\nvar init_esbuild_inject = __esm({\n "esbuild.inject.js"() {\n "use strict";\n Buffer2 = require_buffer().Buffer;\n if (true) {\n if (false) {\n const ocreate = unsafeWindow.document.createElement.bind(document);\n unsafeWindow.document.createElement = (tag) => {\n if (tag != "meta")\n return ocreate(tag);\n unsafeWindow.document.createElement = ocreate;\n return unsafeWindow.document.createElement("link");\n };\n }\n if (false) {\n if (typeof cloneInto != "undefined")\n console.log("CLONE INTO DEFINED");\n else\n console.log("CLONE INTO NOT DEFINED");\n let a = 1;\n console.log(a++);\n const unsafeWindow2 = window;\n console.log(a++);\n const ocreate = unsafeWindow2.document.createElement.bind(document);\n console.log(a++);\n exportFunction((tag) => {\n if (tag != "meta")\n return ocreate(tag);\n unsafeWindow2.document.createElement = ocreate;\n return unsafeWindow2.document.createElement("link");\n }, window.document, { defineAs: "createElement" });\n console.log(a++);\n }\n }\n }\n});\n\n// node_modules/crc-32/crc32.js\nvar require_crc32 = __commonJS({\n "node_modules/crc-32/crc32.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var CRC32;\n (function(factory) {\n if (typeof DO_NOT_EXPORT_CRC === "undefined") {\n if (typeof exports === "object") {\n factory(exports);\n } else if (typeof define === "function" && define.amd) {\n define(function() {\n var module2 = {};\n factory(module2);\n return module2;\n });\n } else {\n factory(CRC32 = {});\n }\n } else {\n factory(CRC32 = {});\n }\n })(function(CRC322) {\n CRC322.version = "1.2.0";\n function signed_crc_table() {\n var c = 0, table = new Array(256);\n for (var n = 0; n != 256; ++n) {\n c = n;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n table[n] = c;\n }\n return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;\n }\n var T = signed_crc_table();\n function crc32_bstr(bstr, seed) {\n var C = seed ^ -1, L = bstr.length - 1;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n }\n if (i === L)\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i)) & 255];\n return C ^ -1;\n }\n function crc32_buf(buf2, seed) {\n if (buf2.length > 1e4)\n return crc32_buf_8(buf2, seed);\n var C = seed ^ -1, L = buf2.length - 3;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 3)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_buf_8(buf2, seed) {\n var C = seed ^ -1, L = buf2.length - 7;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 7)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_str(str, seed) {\n var C = seed ^ -1;\n for (var i = 0, L = str.length, c, d; i < L; ) {\n c = str.charCodeAt(i++);\n if (c < 128) {\n C = C >>> 8 ^ T[(C ^ c) & 255];\n } else if (c < 2048) {\n C = C >>> 8 ^ T[(C ^ (192 | c >> 6 & 31)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n } else if (c >= 55296 && c < 57344) {\n c = (c & 1023) + 64;\n d = str.charCodeAt(i++) & 1023;\n C = C >>> 8 ^ T[(C ^ (240 | c >> 8 & 7)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 2 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d & 63)) & 255];\n } else {\n C = C >>> 8 ^ T[(C ^ (224 | c >> 12 & 15)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 6 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n }\n }\n return C ^ -1;\n }\n CRC322.table = T;\n CRC322.bstr = crc32_bstr;\n CRC322.buf = crc32_buf;\n CRC322.str = crc32_str;\n });\n }\n});\n\n// node_modules/events/events.js\nvar require_events = __commonJS({\n "node_modules/events/events.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var R = typeof Reflect === "object" ? Reflect : null;\n var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === "function") {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn)\n console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = void 0;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = void 0;\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== "function") {\n throw new TypeError(\'The "listener" argument must be of type Function. Received type \' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, "defaultMaxListeners", {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError(\'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received \' + arg + ".");\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function() {\n if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || void 0;\n };\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {\n throw new RangeError(\'The value of "n" is out of range. It must be a non-negative number. Received \' + n + ".");\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === void 0)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++)\n args.push(arguments[i]);\n var doError = type === "error";\n var events = this._events;\n if (events !== void 0)\n doError = doError && events.error === void 0;\n else if (!doError)\n return false;\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n throw er;\n }\n var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));\n err.context = er;\n throw err;\n }\n var handler = events[type];\n if (handler === void 0)\n return false;\n if (typeof handler === "function") {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === void 0) {\n events = target._events = /* @__PURE__ */ Object.create(null);\n target._eventsCount = 0;\n } else {\n if (events.newListener !== void 0) {\n target.emit("newListener", type, listener.listener ? listener.listener : listener);\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === void 0) {\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === "function") {\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");\n w.name = "MaxListenersExceededWarning";\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: void 0, target, type, listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once2(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === void 0)\n return this;\n list = events[type];\n if (list === void 0)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit("removeListener", type, list.listener || listener);\n }\n } else if (typeof list !== "function") {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== void 0)\n this.emit("removeListener", type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === void 0)\n return this;\n if (events.removeListener === void 0) {\n if (arguments.length === 0) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== void 0) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key2;\n for (i = 0; i < keys.length; ++i) {\n key2 = keys[i];\n if (key2 === "removeListener")\n continue;\n this.removeAllListeners(key2);\n }\n this.removeAllListeners("removeListener");\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === "function") {\n this.removeListener(type, listeners);\n } else if (listeners !== void 0) {\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === void 0)\n return [];\n var evlistener = events[type];\n if (evlistener === void 0)\n return [];\n if (typeof evlistener === "function")\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === "function") {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== void 0) {\n var evlistener = events[type];\n if (typeof evlistener === "function") {\n return 1;\n } else if (evlistener !== void 0) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === "function") {\n emitter.removeListener("error", errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== "error") {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === "function") {\n eventTargetAgnosticAddListener(emitter, "error", handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === "function") {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === "function") {\n emitter.addEventListener(name, function wrapListener(arg) {\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError(\'The "emitter" argument must be of type EventEmitter. Received type \' + typeof emitter);\n }\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/stream-browser.js\nvar require_stream_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/stream-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = require_events().EventEmitter;\n }\n});\n\n// (disabled):node_modules/util/util.js\nvar require_util = __commonJS({\n "(disabled):node_modules/util/util.js"() {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/buffer_list.js\nvar require_buffer_list = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly)\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key2) {\n _defineProperty(target, key2, source[key2]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key2) {\n Object.defineProperty(target, key2, Object.getOwnPropertyDescriptor(source, key2));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require_buffer();\n var Buffer13 = _require.Buffer;\n var _require2 = require_util();\n var inspect = _require2.inspect;\n var custom = inspect && inspect.custom || "inspect";\n function copyBuffer(src, target, offset) {\n Buffer13.prototype.copy.call(src, target, offset);\n }\n module.exports = /* @__PURE__ */ function() {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: "push",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0)\n this.tail.next = entry;\n else\n this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: "unshift",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0)\n this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: "shift",\n value: function shift() {\n if (this.length === 0)\n return;\n var ret = this.head.data;\n if (this.length === 1)\n this.head = this.tail = null;\n else\n this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: "clear",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: "join",\n value: function join(s) {\n if (this.length === 0)\n return "";\n var p = this.head;\n var ret = "" + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: "concat",\n value: function concat(n) {\n if (this.length === 0)\n return Buffer13.alloc(0);\n var ret = Buffer13.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n }, {\n key: "consume",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n ret = this.shift();\n } else {\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: "first",\n value: function first() {\n return this.head.data;\n }\n }, {\n key: "_getString",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length)\n ret += str;\n else\n ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: "_getBuffer",\n value: function _getBuffer(n) {\n var ret = Buffer13.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf2 = p.data;\n var nb = n > buf2.length ? buf2.length : n;\n buf2.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf2.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf2.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n depth: 0,\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/destroy.js\nvar require_destroy = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function(err2) {\n if (!cb && err2) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self2, err) {\n emitErrorNT(self2, err);\n emitCloseNT(self2);\n }\n function emitCloseNT(self2) {\n if (self2._writableState && !self2._writableState.emitClose)\n return;\n if (self2._readableState && !self2._readableState.emitClose)\n return;\n self2.emit("close");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self2, err) {\n self2.emit("error", err);\n }\n function errorOrDestroy(stream, err) {\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy)\n stream.destroy(err);\n else\n stream.emit("error", err);\n }\n module.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n };\n }\n});\n\n// node_modules/readable-stream/errors-browser.js\nvar require_errors_browser = __commonJS({\n "node_modules/readable-stream/errors-browser.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n var codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === "string") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inheritsLoose(NodeError2, _Base);\n function NodeError2(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError2;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(", "), ", or ") + expected[len - 1];\n } else if (len === 2) {\n return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);\n } else {\n return "of ".concat(thing, " ").concat(expected[0]);\n }\n } else {\n return "of ".concat(thing, " ").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== "number") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) {\n return \'The value "\' + value + \'" is invalid for option "\' + name + \'"\';\n }, TypeError);\n createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) {\n var determiner;\n if (typeof expected === "string" && startsWith(expected, "not ")) {\n determiner = "must not be";\n expected = expected.replace(/^not /, "");\n } else {\n determiner = "must be";\n }\n var msg;\n if (endsWith(name, " argument")) {\n msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n } else {\n var type = includes(name, ".") ? "property" : "argument";\n msg = \'The "\'.concat(name, \'" \').concat(type, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n }\n msg += ". Received type ".concat(typeof actual);\n return msg;\n }, TypeError);\n createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");\n createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) {\n return "The " + name + " method is not implemented";\n });\n createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close");\n createErrorType("ERR_STREAM_DESTROYED", function(name) {\n return "Cannot call " + name + " after a stream was destroyed";\n });\n createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");\n createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");\n createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end");\n createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);\n createErrorType("ERR_UNKNOWN_ENCODING", function(arg) {\n return "Unknown encoding: " + arg;\n }, TypeError);\n createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");\n module.exports.codes = codes;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/state.js\nvar require_state = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/state.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : "highWaterMark";\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n return state.objectMode ? 16 : 16 * 1024;\n }\n module.exports = {\n getHighWaterMark\n };\n }\n});\n\n// node_modules/inherits/inherits_browser.js\nvar require_inherits_browser = __commonJS({\n "node_modules/inherits/inherits_browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n if (typeof Object.create === "function") {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n});\n\n// node_modules/util-deprecate/browser.js\nvar require_browser = __commonJS({\n "node_modules/util-deprecate/browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = deprecate;\n function deprecate(fn, msg) {\n if (config("noDeprecation")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config("throwDeprecation")) {\n throw new Error(msg);\n } else if (config("traceDeprecation")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n }\n function config(name) {\n try {\n if (!self.localStorage)\n return false;\n } catch (_) {\n return false;\n }\n var val = self.localStorage[name];\n if (val == null)\n return false;\n return String(val).toLowerCase() === "true";\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_writable.js\nvar require_stream_writable = __commonJS({\n "node_modules/readable-stream/lib/_stream_writable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Writable;\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function() {\n onCorkedFinish(_this, state);\n };\n }\n var Duplex;\n Writable.WritableState = WritableState;\n var internalUtil = {\n deprecate: require_browser()\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;\n var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;\n var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n require_inherits_browser()(Writable, Stream);\n function nop() {\n }\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.writableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex);\n this.finalCalled = false;\n this.needDrain = false;\n this.ending = false;\n this.ended = false;\n this.finished = false;\n this.destroyed = false;\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.length = 0;\n this.writing = false;\n this.corked = 0;\n this.sync = true;\n this.bufferProcessing = false;\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n this.writecb = null;\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n this.pendingcb = 0;\n this.prefinished = false;\n this.errorEmitted = false;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.bufferedRequestCount = 0;\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function() {\n try {\n Object.defineProperty(WritableState.prototype, "buffer", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")\n });\n } catch (_) {\n }\n })();\n var realHasInstance;\n if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object))\n return true;\n if (this !== Writable)\n return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance2(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || require_stream_duplex();\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this))\n return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n this.writable = true;\n if (options) {\n if (typeof options.write === "function")\n this._write = options.write;\n if (typeof options.writev === "function")\n this._writev = options.writev;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n if (typeof options.final === "function")\n this._final = options.final;\n }\n Stream.call(this);\n }\n Writable.prototype.pipe = function() {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n }\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== "string" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer13.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf)\n encoding = "buffer";\n else if (!encoding)\n encoding = state.defaultEncoding;\n if (typeof cb !== "function")\n cb = nop;\n if (state.ending)\n writeAfterEnd(this, cb);\n else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function() {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function() {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest)\n clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n if (typeof encoding === "string")\n encoding = encoding.toLowerCase();\n if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1))\n throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") {\n chunk = Buffer13.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = "buffer";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n if (!ret)\n state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed)\n state.onwrite(new ERR_STREAM_DESTROYED("write"));\n else if (writev)\n stream._writev(chunk, state.onwrite);\n else\n stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n process.nextTick(cb, er);\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== "function")\n throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er)\n onwriteError(stream, state, sync, er, cb);\n else {\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished)\n onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit("drain");\n }\n }\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf)\n allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, "", holder.finish);\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n if (state.writing) {\n break;\n }\n }\n if (entry === null)\n state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === "function") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== void 0)\n this.write(chunk, encoding);\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n if (!state.ending)\n endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function(err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit("prefinish");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === "function" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit("prefinish");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit("finish");\n if (state.autoDestroy) {\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished)\n process.nextTick(cb);\n else\n stream.once("finish", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._writableState === void 0) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n if (!this._writableState) {\n return;\n }\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_duplex.js\nvar require_stream_duplex = __commonJS({\n "node_modules/readable-stream/lib/_stream_duplex.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var objectKeys = Object.keys || function(obj) {\n var keys2 = [];\n for (var key2 in obj) {\n keys2.push(key2);\n }\n return keys2;\n };\n module.exports = Duplex;\n var Readable = require_stream_readable();\n var Writable = require_stream_writable();\n require_inherits_browser()(Duplex, Readable);\n {\n keys = objectKeys(Writable.prototype);\n for (v = 0; v < keys.length; v++) {\n method = keys[v];\n if (!Duplex.prototype[method])\n Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n var keys;\n var method;\n var v;\n function Duplex(options) {\n if (!(this instanceof Duplex))\n return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false)\n this.readable = false;\n if (options.writable === false)\n this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once("end", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function onend() {\n if (this._writableState.ended)\n return;\n process.nextTick(onEndNT, this);\n }\n function onEndNT(self2) {\n self2.end();\n }\n Object.defineProperty(Duplex.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return;\n }\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n }\n});\n\n// node_modules/safe-buffer/index.js\nvar require_safe_buffer = __commonJS({\n "node_modules/safe-buffer/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var buffer = require_buffer();\n var Buffer13 = buffer.Buffer;\n function copyProps(src, dst) {\n for (var key2 in src) {\n dst[key2] = src[key2];\n }\n }\n if (Buffer13.from && Buffer13.alloc && Buffer13.allocUnsafe && Buffer13.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer13(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer13.prototype);\n copyProps(Buffer13, SafeBuffer);\n SafeBuffer.from = function(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n throw new TypeError("Argument must not be a number");\n }\n return Buffer13(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function(size, fill, encoding) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n var buf2 = Buffer13(size);\n if (fill !== void 0) {\n if (typeof encoding === "string") {\n buf2.fill(fill, encoding);\n } else {\n buf2.fill(fill);\n }\n } else {\n buf2.fill(0);\n }\n return buf2;\n };\n SafeBuffer.allocUnsafe = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return Buffer13(size);\n };\n SafeBuffer.allocUnsafeSlow = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return buffer.SlowBuffer(size);\n };\n }\n});\n\n// node_modules/string_decoder/lib/string_decoder.js\nvar require_string_decoder = __commonJS({\n "node_modules/string_decoder/lib/string_decoder.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var Buffer13 = require_safe_buffer().Buffer;\n var isEncoding = Buffer13.isEncoding || function(encoding) {\n encoding = "" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n case "raw":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc)\n return "utf8";\n var retried;\n while (true) {\n switch (enc) {\n case "utf8":\n case "utf-8":\n return "utf8";\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return "utf16le";\n case "latin1":\n case "binary":\n return "latin1";\n case "base64":\n case "ascii":\n case "hex":\n return enc;\n default:\n if (retried)\n return;\n enc = ("" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== "string" && (Buffer13.isEncoding === isEncoding || !isEncoding(enc)))\n throw new Error("Unknown encoding: " + enc);\n return nenc || enc;\n }\n exports.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case "utf16le":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case "utf8":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case "base64":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer13.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function(buf2) {\n if (buf2.length === 0)\n return "";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf2);\n if (r === void 0)\n return "";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf2.length)\n return r ? r + this.text(buf2, i) : this.text(buf2, i);\n return r || "";\n };\n StringDecoder.prototype.end = utf8End;\n StringDecoder.prototype.text = utf8Text;\n StringDecoder.prototype.fillLast = function(buf2) {\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf2.length);\n this.lastNeed -= buf2.length;\n };\n function utf8CheckByte(byte) {\n if (byte <= 127)\n return 0;\n else if (byte >> 5 === 6)\n return 2;\n else if (byte >> 4 === 14)\n return 3;\n else if (byte >> 3 === 30)\n return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n function utf8CheckIncomplete(self2, buf2, i) {\n var j = buf2.length - 1;\n if (j < i)\n return 0;\n var nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2)\n nb = 0;\n else\n self2.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n function utf8CheckExtraBytes(self2, buf2, p) {\n if ((buf2[0] & 192) !== 128) {\n self2.lastNeed = 0;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 1 && buf2.length > 1) {\n if ((buf2[1] & 192) !== 128) {\n self2.lastNeed = 1;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 2 && buf2.length > 2) {\n if ((buf2[2] & 192) !== 128) {\n self2.lastNeed = 2;\n return "\\uFFFD";\n }\n }\n }\n }\n function utf8FillLast(buf2) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf2, p);\n if (r !== void 0)\n return r;\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, p, 0, buf2.length);\n this.lastNeed -= buf2.length;\n }\n function utf8Text(buf2, i) {\n var total = utf8CheckIncomplete(this, buf2, i);\n if (!this.lastNeed)\n return buf2.toString("utf8", i);\n this.lastTotal = total;\n var end = buf2.length - (total - this.lastNeed);\n buf2.copy(this.lastChar, 0, end);\n return buf2.toString("utf8", i, end);\n }\n function utf8End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + "\\uFFFD";\n return r;\n }\n function utf16Text(buf2, i) {\n if ((buf2.length - i) % 2 === 0) {\n var r = buf2.toString("utf16le", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf2[buf2.length - 1];\n return buf2.toString("utf16le", i, buf2.length - 1);\n }\n function utf16End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString("utf16le", 0, end);\n }\n return r;\n }\n function base64Text(buf2, i) {\n var n = (buf2.length - i) % 3;\n if (n === 0)\n return buf2.toString("base64", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf2[buf2.length - 1];\n } else {\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n }\n return buf2.toString("base64", i, buf2.length - n);\n }\n function base64End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed);\n return r;\n }\n function simpleWrite(buf2) {\n return buf2.toString(this.encoding);\n }\n function simpleEnd(buf2) {\n return buf2 && buf2.length ? this.write(buf2) : "";\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/end-of-stream.js\nvar require_end_of_stream = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop2() {\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === "function")\n return eos(stream, null, opts);\n if (!opts)\n opts = {};\n callback = once(callback || noop2);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable2 = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish2() {\n if (!stream.writable)\n onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish2() {\n writable2 = false;\n writableEnded = true;\n if (!readable)\n callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend2() {\n readable = false;\n readableEnded = true;\n if (!writable2)\n callback.call(stream);\n };\n var onerror = function onerror2(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose2() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable2 && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest2() {\n stream.req.on("finish", onfinish);\n };\n if (isRequest(stream)) {\n stream.on("complete", onfinish);\n stream.on("abort", onclose);\n if (stream.req)\n onrequest();\n else\n stream.on("request", onrequest);\n } else if (writable2 && !stream._writableState) {\n stream.on("end", onlegacyfinish);\n stream.on("close", onlegacyfinish);\n }\n stream.on("end", onend);\n stream.on("finish", onfinish);\n if (opts.error !== false)\n stream.on("error", onerror);\n stream.on("close", onclose);\n return function() {\n stream.removeListener("complete", onfinish);\n stream.removeListener("abort", onclose);\n stream.removeListener("request", onrequest);\n if (stream.req)\n stream.req.removeListener("finish", onfinish);\n stream.removeListener("end", onlegacyfinish);\n stream.removeListener("close", onlegacyfinish);\n stream.removeListener("finish", onfinish);\n stream.removeListener("end", onend);\n stream.removeListener("error", onerror);\n stream.removeListener("close", onclose);\n };\n }\n module.exports = eos;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/async_iterator.js\nvar require_async_iterator = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var _Object$setPrototypeO;\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n var finished = require_end_of_stream();\n var kLastResolve = Symbol("lastResolve");\n var kLastReject = Symbol("lastReject");\n var kError = Symbol("error");\n var kEnded = Symbol("ended");\n var kLastPromise = Symbol("lastPromise");\n var kHandlePromise = Symbol("handlePromise");\n var kStream = Symbol("stream");\n function createIterResult(value, done) {\n return {\n value,\n done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n process.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function(resolve, reject) {\n lastPromise.then(function() {\n if (iter[kEnded]) {\n resolve(createIterResult(void 0, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function() {\n });\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(void 0, true));\n }\n if (this[kStream].destroyed) {\n return new Promise(function(resolve, reject) {\n process.nextTick(function() {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(void 0, true));\n }\n });\n });\n }\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {\n return this;\n }), _defineProperty(_Object$setPrototypeO, "return", function _return() {\n var _this2 = this;\n return new Promise(function(resolve, reject) {\n _this2[kStream].destroy(null, function(err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(void 0, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function(err) {\n if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {\n var reject = iterator[kLastReject];\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(void 0, true));\n }\n iterator[kEnded] = true;\n });\n stream.on("readable", onReadable.bind(null, iterator));\n return iterator;\n };\n module.exports = createReadableStreamAsyncIterator;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/from-browser.js\nvar require_from_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/from-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = function() {\n throw new Error("Readable.from is not available in the browser");\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_readable.js\nvar require_stream_readable = __commonJS({\n "node_modules/readable-stream/lib/_stream_readable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Readable;\n var Duplex;\n Readable.ReadableState = ReadableState;\n var EE = require_events().EventEmitter;\n var EElistenerCount = function EElistenerCount2(emitter, type) {\n return emitter.listeners(type).length;\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var debugUtil = require_util();\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog("stream");\n } else {\n debug = function debug2() {\n };\n }\n var BufferList = require_buffer_list();\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n require_inherits_browser()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = ["error", "close", "destroy", "pause", "resume"];\n function prependListener(emitter, event, fn) {\n if (typeof emitter.prependListener === "function")\n return emitter.prependListener(event, fn);\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.readableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex);\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n this.sync = true;\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.destroyed = false;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.awaitDrain = 0;\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || require_stream_duplex();\n if (!(this instanceof Readable))\n return new Readable(options);\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n this.readable = true;\n if (options) {\n if (typeof options.read === "function")\n this._read = options.read;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n if (!this._readableState) {\n return;\n }\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n Readable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === "string") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer13.from(chunk, encoding);\n encoding = "";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n Readable.prototype.unshift = function(chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug("readableAddChunk", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck)\n er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer13.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted)\n errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else\n addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0)\n addChunk(stream, state, chunk, false);\n else\n maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit("data", chunk);\n } else {\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront)\n state.buffer.unshift(chunk);\n else\n state.buffer.push(chunk);\n if (state.needReadable)\n emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function() {\n return this._readableState.flowing === false;\n };\n Readable.prototype.setEncoding = function(enc) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n this._readableState.encoding = this._readableState.decoder.encoding;\n var p = this._readableState.buffer.head;\n var content = "";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== "")\n this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended)\n return 0;\n if (state.objectMode)\n return 1;\n if (n !== n) {\n if (state.flowing && state.length)\n return state.buffer.head.data.length;\n else\n return state.length;\n }\n if (n > state.highWaterMark)\n state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length)\n return n;\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n Readable.prototype.read = function(n) {\n debug("read", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0)\n state.emittedReadable = false;\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug("read: emitReadable", state.length, state.ended);\n if (state.length === 0 && state.ended)\n endReadable(this);\n else\n emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n if (n === 0 && state.ended) {\n if (state.length === 0)\n endReadable(this);\n return null;\n }\n var doRead = state.needReadable;\n debug("need readable", doRead);\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug("length less than watermark", doRead);\n }\n if (state.ended || state.reading) {\n doRead = false;\n debug("reading or ended", doRead);\n } else if (doRead) {\n debug("do read");\n state.reading = true;\n state.sync = true;\n if (state.length === 0)\n state.needReadable = true;\n this._read(state.highWaterMark);\n state.sync = false;\n if (!state.reading)\n n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0)\n ret = fromList(n, state);\n else\n ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n if (!state.ended)\n state.needReadable = true;\n if (nOrig !== n && state.ended)\n endReadable(this);\n }\n if (ret !== null)\n this.emit("data", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug("onEofChunk");\n if (state.ended)\n return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n emitReadable(stream);\n } else {\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n function emitReadable(stream) {\n var state = stream._readableState;\n debug("emitReadable", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug("emitReadable", state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug("emitReadable_", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit("readable");\n state.emittedReadable = false;\n }\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug("maybeReadMore read 0");\n stream.read(0);\n if (len === state.length)\n break;\n }\n state.readingMore = false;\n }\n Readable.prototype._read = function(n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()"));\n };\n Readable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted)\n process.nextTick(endFn);\n else\n src.once("end", endFn);\n dest.on("unpipe", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug("onunpipe");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug("onend");\n dest.end();\n }\n var ondrain = pipeOnDrain(src);\n dest.on("drain", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug("cleanup");\n dest.removeListener("close", onclose);\n dest.removeListener("finish", onfinish);\n dest.removeListener("drain", ondrain);\n dest.removeListener("error", onerror);\n dest.removeListener("unpipe", onunpipe);\n src.removeListener("end", onend);\n src.removeListener("end", unpipe);\n src.removeListener("data", ondata);\n cleanedUp = true;\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain))\n ondrain();\n }\n src.on("data", ondata);\n function ondata(chunk) {\n debug("ondata");\n var ret = dest.write(chunk);\n debug("dest.write", ret);\n if (ret === false) {\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug("false write response, pause", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n function onerror(er) {\n debug("onerror", er);\n unpipe();\n dest.removeListener("error", onerror);\n if (EElistenerCount(dest, "error") === 0)\n errorOrDestroy(dest, er);\n }\n prependListener(dest, "error", onerror);\n function onclose() {\n dest.removeListener("finish", onfinish);\n unpipe();\n }\n dest.once("close", onclose);\n function onfinish() {\n debug("onfinish");\n dest.removeListener("close", onclose);\n unpipe();\n }\n dest.once("finish", onfinish);\n function unpipe() {\n debug("unpipe");\n src.unpipe(dest);\n }\n dest.emit("pipe", src);\n if (!state.flowing) {\n debug("pipe resume");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug("pipeOnDrain", state.awaitDrain);\n if (state.awaitDrain)\n state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, "data")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n if (state.pipesCount === 0)\n return this;\n if (state.pipesCount === 1) {\n if (dest && dest !== state.pipes)\n return this;\n if (!dest)\n dest = state.pipes;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest)\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n }\n if (!dest) {\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit("unpipe", this, {\n hasUnpiped: false\n });\n }\n return this;\n }\n var index = indexOf(state.pipes, dest);\n if (index === -1)\n return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1)\n state.pipes = state.pipes[0];\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n };\n Readable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === "data") {\n state.readableListening = this.listenerCount("readable") > 0;\n if (state.flowing !== false)\n this.resume();\n } else if (ev === "readable") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug("on readable", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function(ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === "readable") {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function(ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === "readable" || ev === void 0) {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self2) {\n var state = self2._readableState;\n state.readableListening = self2.listenerCount("readable") > 0;\n if (state.resumeScheduled && !state.paused) {\n state.flowing = true;\n } else if (self2.listenerCount("data") > 0) {\n self2.resume();\n }\n }\n function nReadingNextTick(self2) {\n debug("readable nexttick read 0");\n self2.read(0);\n }\n Readable.prototype.resume = function() {\n var state = this._readableState;\n if (!state.flowing) {\n debug("resume");\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug("resume", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit("resume");\n flow(stream);\n if (state.flowing && !state.reading)\n stream.read(0);\n }\n Readable.prototype.pause = function() {\n debug("call pause flowing=%j", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug("pause");\n this._readableState.flowing = false;\n this.emit("pause");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug("flow", state.flowing);\n while (state.flowing && stream.read() !== null) {\n ;\n }\n }\n Readable.prototype.wrap = function(stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on("end", function() {\n debug("wrapped end");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length)\n _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on("data", function(chunk) {\n debug("wrapped data");\n if (state.decoder)\n chunk = state.decoder.write(chunk);\n if (state.objectMode && (chunk === null || chunk === void 0))\n return;\n else if (!state.objectMode && (!chunk || !chunk.length))\n return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n for (var i in stream) {\n if (this[i] === void 0 && typeof stream[i] === "function") {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n this._read = function(n2) {\n debug("wrapped _read", n2);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === "function") {\n Readable.prototype[Symbol.asyncIterator] = function() {\n if (createReadableStreamAsyncIterator === void 0) {\n createReadableStreamAsyncIterator = require_async_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, "readableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, "readableBuffer", {\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, "readableFlowing", {\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, "readableLength", {\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n function fromList(n, state) {\n if (state.length === 0)\n return null;\n var ret;\n if (state.objectMode)\n ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n if (state.decoder)\n ret = state.buffer.join("");\n else if (state.buffer.length === 1)\n ret = state.buffer.first();\n else\n ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug("endReadable", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug("endReadableNT", state.endEmitted, state.length);\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit("end");\n if (state.autoDestroy) {\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === "function") {\n Readable.from = function(iterable, opts) {\n if (from === void 0) {\n from = require_from_browser();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x)\n return i;\n }\n return -1;\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_transform.js\nvar require_stream_transform = __commonJS({\n "node_modules/readable-stream/lib/_stream_transform.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Transform;\n var _require$codes = require_errors_browser().codes;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;\n var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = require_stream_duplex();\n require_inherits_browser()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit("error", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform))\n return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n this._readableState.needReadable = true;\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === "function")\n this._transform = options.transform;\n if (typeof options.flush === "function")\n this._flush = options.flush;\n }\n this.on("prefinish", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === "function" && !this._readableState.destroyed) {\n this._flush(function(er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n Transform.prototype._transform = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"));\n };\n Transform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark)\n this._read(rs.highWaterMark);\n }\n };\n Transform.prototype._read = function(n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function(err, cb) {\n Duplex.prototype._destroy.call(this, err, function(err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er)\n return stream.emit("error", er);\n if (data != null)\n stream.push(data);\n if (stream._writableState.length)\n throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming)\n throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_passthrough.js\nvar require_stream_passthrough = __commonJS({\n "node_modules/readable-stream/lib/_stream_passthrough.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = PassThrough;\n var Transform = require_stream_transform();\n require_inherits_browser()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough))\n return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n };\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/pipeline.js\nvar require_pipeline = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var eos;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = require_errors_browser().codes;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop2(err) {\n if (err)\n throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on("close", function() {\n closed = true;\n });\n if (eos === void 0)\n eos = require_end_of_stream();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function(err) {\n if (err)\n return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function(err) {\n if (closed)\n return;\n if (destroyed)\n return;\n destroyed = true;\n if (isRequest(stream))\n return stream.abort();\n if (typeof stream.destroy === "function")\n return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED("pipe"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length)\n return noop2;\n if (typeof streams[streams.length - 1] !== "function")\n return noop2;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0]))\n streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS("streams");\n }\n var error;\n var destroys = streams.map(function(stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function(err) {\n if (!error)\n error = err;\n if (err)\n destroys.forEach(call);\n if (reading)\n return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n module.exports = pipeline;\n }\n});\n\n// node_modules/readable-stream/readable-browser.js\nvar require_readable_browser = __commonJS({\n "node_modules/readable-stream/readable-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports = module.exports = require_stream_readable();\n exports.Stream = exports;\n exports.Readable = exports;\n exports.Writable = require_stream_writable();\n exports.Duplex = require_stream_duplex();\n exports.Transform = require_stream_transform();\n exports.PassThrough = require_stream_passthrough();\n exports.finished = require_end_of_stream();\n exports.pipeline = require_pipeline();\n }\n});\n\n// node_modules/readable-web-to-node-stream/lib/index.js\nvar require_lib = __commonJS({\n "node_modules/readable-web-to-node-stream/lib/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n Object.defineProperty(exports, "__esModule", { value: true });\n exports.ReadableWebToNodeStream = void 0;\n var readable_stream_1 = require_readable_browser();\n var ReadableWebToNodeStream2 = class extends readable_stream_1.Readable {\n constructor(stream) {\n super();\n this.bytesRead = 0;\n this.released = false;\n this.reader = stream.getReader();\n }\n async _read() {\n if (this.released) {\n this.push(null);\n return;\n }\n this.pendingRead = this.reader.read();\n const data = await this.pendingRead;\n delete this.pendingRead;\n if (data.done || this.released) {\n this.push(null);\n } else {\n this.bytesRead += data.value.length;\n this.push(data.value);\n }\n }\n async waitForReadToComplete() {\n if (this.pendingRead) {\n await this.pendingRead;\n }\n }\n async close() {\n await this.syncAndRelease();\n }\n async syncAndRelease() {\n this.released = true;\n await this.waitForReadToComplete();\n await this.reader.releaseLock();\n }\n };\n exports.ReadableWebToNodeStream = ReadableWebToNodeStream2;\n }\n});\n\n// node_modules/base-x/src/index.js\nvar require_src = __commonJS({\n "node_modules/base-x/src/index.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function base(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError("Alphabet too long");\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + " is ambiguous");\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode2(source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError("Expected Uint8Array");\n }\n if (source.length === 0) {\n return "";\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i2 = 0;\n for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== "string") {\n throw new TypeError("Expected String");\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i2 = 0;\n for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n psz++;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j2 = zeroes;\n while (it4 !== size) {\n vch[j2++] = b256[it4++];\n }\n return vch;\n }\n function decode3(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error("Non-base" + BASE + " character");\n }\n return {\n encode: encode2,\n decodeUnsafe,\n decode: decode3\n };\n }\n module.exports = base;\n }\n});\n\n// node_modules/bs58/index.js\nvar require_bs58 = __commonJS({\n "node_modules/bs58/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var basex = require_src();\n var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";\n module.exports = basex(ALPHABET);\n }\n});\n\n// node_modules/jpeg-js/lib/encoder.js\nvar require_encoder = __commonJS({\n "node_modules/jpeg-js/lib/encoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var btoa = btoa || function(buf2) {\n return Buffer2.from(buf2).toString("base64");\n };\n function JPEGEncoder(quality) {\n var self2 = this;\n var fround = Math.round;\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT2;\n var UVDC_HT2;\n var YAC_HT2;\n var UVAC_HT2;\n var bitcode2 = new Array(65535);\n var category2 = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n var std_dc_luminance_nrcodes2 = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\n var std_dc_luminance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes2 = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\n var std_ac_luminance_values2 = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n var std_dc_chrominance_nrcodes2 = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\n var std_dc_chrominance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes2 = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\n var std_ac_chrominance_values2 = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n if (t < 1) {\n t = 1;\n } else if (t > 255) {\n t = 255;\n }\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n if (u < 1) {\n u = 1;\n } else if (u > 255) {\n u = 255;\n }\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n fdtbl_UV[k] = 1 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n k++;\n }\n }\n }\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n function initHuffmanTbl() {\n YDC_HT2 = computeHuffmanTbl(std_dc_luminance_nrcodes2, std_dc_luminance_values2);\n UVDC_HT2 = computeHuffmanTbl(std_dc_chrominance_nrcodes2, std_dc_chrominance_values2);\n YAC_HT2 = computeHuffmanTbl(std_ac_luminance_nrcodes2, std_ac_luminance_values2);\n UVAC_HT2 = computeHuffmanTbl(std_ac_chrominance_nrcodes2, std_ac_chrominance_values2);\n }\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n for (var nr = nrlower; nr < nrupper; nr++) {\n category2[32767 + nr] = cat;\n bitcode2[32767 + nr] = [];\n bitcode2[32767 + nr][1] = cat;\n bitcode2[32767 + nr][0] = nr;\n }\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category2[32767 + nrneg] = cat;\n bitcode2[32767 + nrneg] = [];\n bitcode2[32767 + nrneg][1] = cat;\n bitcode2[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[i + 256 >> 0] = 38470 * i;\n RGB_YUV_TABLE[i + 512 >> 0] = 7471 * i + 32768;\n RGB_YUV_TABLE[i + 768 >> 0] = -11059 * i;\n RGB_YUV_TABLE[i + 1024 >> 0] = -21709 * i;\n RGB_YUV_TABLE[i + 1280 >> 0] = 32768 * i + 8421375;\n RGB_YUV_TABLE[i + 1536 >> 0] = -27439 * i;\n RGB_YUV_TABLE[i + 1792 >> 0] = -5329 * i;\n }\n }\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & 1 << posval) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 255) {\n writeByte(255);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n function writeByte(value) {\n byteout.push(value);\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n var tmp10 = tmp0 + tmp3;\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n data[dataOff] = tmp10 + tmp11;\n data[dataOff + 4] = tmp10 - tmp11;\n var z1 = (tmp12 + tmp13) * 0.707106781;\n data[dataOff + 2] = tmp13 + z1;\n data[dataOff + 6] = tmp13 - z1;\n tmp10 = tmp4 + tmp5;\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n var z5 = (tmp10 - tmp12) * 0.382683433;\n var z2 = 0.5411961 * tmp10 + z5;\n var z4 = 1.306562965 * tmp12 + z5;\n var z3 = tmp11 * 0.707106781;\n var z11 = tmp7 + z3;\n var z13 = tmp7 - z3;\n data[dataOff + 5] = z13 + z2;\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n dataOff += 8;\n }\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n var tmp10p2 = tmp0p2 + tmp3p2;\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n data[dataOff] = tmp10p2 + tmp11p2;\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781;\n data[dataOff + 16] = tmp13p2 + z1p2;\n data[dataOff + 48] = tmp13p2 - z1p2;\n tmp10p2 = tmp4p2 + tmp5p2;\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433;\n var z2p2 = 0.5411961 * tmp10p2 + z5p2;\n var z4p2 = 1.306562965 * tmp12p2 + z5p2;\n var z3p2 = tmp11p2 * 0.707106781;\n var z11p2 = tmp7p2 + z3p2;\n var z13p2 = tmp7p2 - z3p2;\n data[dataOff + 40] = z13p2 + z2p2;\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n dataOff++;\n }\n var fDCTQuant2;\n for (i = 0; i < I64; ++i) {\n fDCTQuant2 = data[i] * fdtbl[i];\n outputfDCTQuant[i] = fDCTQuant2 > 0 ? fDCTQuant2 + 0.5 | 0 : fDCTQuant2 - 0.5 | 0;\n }\n return outputfDCTQuant;\n }\n function writeAPP0() {\n writeWord(65504);\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n }\n function writeAPP1(exifBuffer) {\n if (!exifBuffer)\n return;\n writeWord(65505);\n if (exifBuffer[0] === 69 && exifBuffer[1] === 120 && exifBuffer[2] === 105 && exifBuffer[3] === 102) {\n writeWord(exifBuffer.length + 2);\n } else {\n writeWord(exifBuffer.length + 5 + 2);\n writeByte(69);\n writeByte(120);\n writeByte(105);\n writeByte(102);\n writeByte(0);\n }\n for (var i = 0; i < exifBuffer.length; i++) {\n writeByte(exifBuffer[i]);\n }\n }\n function writeSOF0(width, height) {\n writeWord(65472);\n writeWord(17);\n writeByte(8);\n writeWord(height);\n writeWord(width);\n writeByte(3);\n writeByte(1);\n writeByte(17);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(1);\n writeByte(3);\n writeByte(17);\n writeByte(1);\n }\n function writeDQT() {\n writeWord(65499);\n writeWord(132);\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n function writeDHT() {\n writeWord(65476);\n writeWord(418);\n writeByte(0);\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes2[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values2[j]);\n }\n writeByte(16);\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes2[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values2[l]);\n }\n writeByte(1);\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes2[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values2[n]);\n }\n writeByte(17);\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes2[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values2[p]);\n }\n }\n function writeCOM(comments) {\n if (typeof comments === "undefined" || comments.constructor !== Array)\n return;\n comments.forEach((e) => {\n if (typeof e !== "string")\n return;\n writeWord(65534);\n var l = e.length;\n writeWord(l + 2);\n var i;\n for (i = 0; i < l; i++)\n writeByte(e.charCodeAt(i));\n });\n }\n function writeSOS() {\n writeWord(65498);\n writeWord(12);\n writeByte(3);\n writeByte(1);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(3);\n writeByte(17);\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0];\n var M16zeroes = HTAC[240];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n if (Diff == 0) {\n writeBits(HTDC[0]);\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category2[pos]]);\n writeBits(bitcode2[pos]);\n }\n var end0pos = 63;\n for (; end0pos > 0 && DU[end0pos] == 0; end0pos--) {\n }\n ;\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n for (; DU[i] == 0 && i <= end0pos; ++i) {\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category2[pos]]);\n writeBits(bitcode2[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n clt[i] = sfcc(i);\n }\n }\n this.encode = function(image, quality2) {\n var time_start = new Date().getTime();\n if (quality2)\n setQuality(quality2);\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n writeWord(65496);\n writeAPP0();\n writeCOM(image.comments);\n writeAPP1(image.exifBuffer);\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n bytenew = 0;\n bytepos = 7;\n this.encode.displayName = "_encode_";\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n var quadWidth = width * 4;\n var tripleWidth = width * 3;\n var x, y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n p = start;\n col = -1;\n row = 0;\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3;\n col = (pos & 7) * 4;\n p = start + row * quadWidth + col;\n if (y + row >= height) {\n p -= quadWidth * (y + 1 + row - height);\n }\n if (x + col >= quadWidth) {\n p -= x + col - quadWidth + 4;\n }\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n YDU[pos] = (RGB_YUV_TABLE[r] + RGB_YUV_TABLE[g + 256 >> 0] + RGB_YUV_TABLE[b + 512 >> 0] >> 16) - 128;\n UDU[pos] = (RGB_YUV_TABLE[r + 768 >> 0] + RGB_YUV_TABLE[g + 1024 >> 0] + RGB_YUV_TABLE[b + 1280 >> 0] >> 16) - 128;\n VDU[pos] = (RGB_YUV_TABLE[r + 1280 >> 0] + RGB_YUV_TABLE[g + 1536 >> 0] + RGB_YUV_TABLE[b + 1792 >> 0] >> 16) - 128;\n }\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT2, YAC_HT2);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT2, UVAC_HT2);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT2, UVAC_HT2);\n x += 32;\n }\n y += 8;\n }\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << bytepos + 1) - 1;\n writeBits(fillbits);\n }\n writeWord(65497);\n if (typeof module === "undefined")\n return new Uint8Array(byteout);\n return Buffer2.from(byteout);\n var jpegDataUri = "data:image/jpeg;base64," + btoa(byteout.join(""));\n byteout = [];\n var duration = new Date().getTime() - time_start;\n return jpegDataUri;\n };\n function setQuality(quality2) {\n if (quality2 <= 0) {\n quality2 = 1;\n }\n if (quality2 > 100) {\n quality2 = 100;\n }\n if (currentQuality == quality2)\n return;\n var sf = 0;\n if (quality2 < 50) {\n sf = Math.floor(5e3 / quality2);\n } else {\n sf = Math.floor(200 - quality2 * 2);\n }\n initQuantTables(sf);\n currentQuality = quality2;\n }\n function init3() {\n var time_start = new Date().getTime();\n if (!quality)\n quality = 50;\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n setQuality(quality);\n var duration = new Date().getTime() - time_start;\n }\n init3();\n }\n if (typeof module !== "undefined") {\n module.exports = encode2;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].encode = encode2;\n }\n function encode2(imgData, qu) {\n if (typeof qu === "undefined")\n qu = 50;\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(imgData, qu);\n return {\n data,\n width: imgData.width,\n height: imgData.height\n };\n }\n }\n});\n\n// node_modules/jpeg-js/lib/decoder.js\nvar require_decoder = __commonJS({\n "node_modules/jpeg-js/lib/decoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var JpegImage = function jpegImage() {\n "use strict";\n var dctZigZag = new Int32Array([\n 0,\n 1,\n 8,\n 16,\n 9,\n 2,\n 3,\n 10,\n 17,\n 24,\n 32,\n 25,\n 18,\n 11,\n 4,\n 5,\n 12,\n 19,\n 26,\n 33,\n 40,\n 48,\n 41,\n 34,\n 27,\n 20,\n 13,\n 6,\n 7,\n 14,\n 21,\n 28,\n 35,\n 42,\n 49,\n 56,\n 57,\n 50,\n 43,\n 36,\n 29,\n 22,\n 15,\n 23,\n 30,\n 37,\n 44,\n 51,\n 58,\n 59,\n 52,\n 45,\n 38,\n 31,\n 39,\n 46,\n 53,\n 60,\n 61,\n 54,\n 47,\n 55,\n 62,\n 63\n ]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n function constructor() {\n }\n function buildHuffmanTable2(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, opts) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH, maxV = frame.maxV;\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 255) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new Error("unexpected marker: " + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree, bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === "number")\n return node;\n if (typeof node !== "object")\n throw new Error("invalid huffman sequence");\n }\n return null;\n }\n function receive(length) {\n var n2 = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null)\n return;\n n2 = n2 << 1 | bit;\n length--;\n }\n return n2;\n }\n function receiveAndExtend(length) {\n var n2 = receive(length);\n if (n2 >= 1 << length - 1)\n return n2;\n return n2 + (-1 << length) + 1;\n }\n function decodeBaseline(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n zz[0] = component2.pred += diff;\n var k2 = 1;\n while (k2 < 64) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15)\n break;\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s);\n k2++;\n }\n }\n function decodeDCFirst(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n zz[0] = component2.pred += diff;\n }\n function decodeDCSuccessive(component2, zz) {\n zz[0] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component2, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k2 = spectralStart, e = spectralEnd;\n while (k2 <= e) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k2++;\n }\n }\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component2, zz) {\n var k2 = spectralStart, e = spectralEnd, r = 0;\n while (k2 <= e) {\n var z = dctZigZag[k2];\n var direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0:\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1)\n throw new Error("invalid ACn encoding");\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n r--;\n if (r === 0)\n successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n break;\n }\n k2++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0)\n successiveACState = 0;\n }\n }\n function decodeMcu(component2, decode4, mcu2, row, col) {\n var mcuRow = mcu2 / mcusPerLine | 0;\n var mcuCol = mcu2 % mcusPerLine;\n var blockRow = mcuRow * component2.v + row;\n var blockCol = mcuCol * component2.h + col;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component2, decode4, mcu2) {\n var blockRow = mcu2 / component2.blocksPerLine | 0;\n var blockCol = mcu2 % component2.blocksPerLine;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0, marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval)\n resetInterval = mcuExpected;\n var h, v;\n while (mcu < mcuExpected) {\n for (i = 0; i < componentsLength; i++)\n components[i].pred = 0;\n eobrun = 0;\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n if (mcu === mcuExpected)\n break;\n }\n }\n if (mcu === mcuExpected) {\n do {\n if (data[offset] === 255) {\n if (data[offset + 1] !== 0) {\n break;\n }\n }\n offset += 1;\n } while (offset < data.length - 2);\n }\n bitsCount = 0;\n marker = data[offset] << 8 | data[offset + 1];\n if (marker < 65280) {\n throw new Error("marker was not found");\n }\n if (marker >= 65488 && marker <= 65495) {\n offset += 2;\n } else\n break;\n }\n return offset - startOffset;\n }\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var R = new Int32Array(64), r = new Uint8Array(64);\n function quantizeAndInverse(zz, dataOut, dataIn) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var p = dataIn;\n var i2;\n for (i2 = 0; i2 < 64; i2++)\n p[i2] = zz[i2] * qt[i2];\n for (i2 = 0; i2 < 8; ++i2) {\n var row = 8 * i2;\n if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 && p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 && p[7 + row] == 0) {\n t = dctSqrt2 * p[0 + row] + 512 >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 + row] + 128 >> 8;\n v1 = dctSqrt2 * p[4 + row] + 128 >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8;\n v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n for (i2 = 0; i2 < 8; ++i2) {\n var col = i2;\n if (p[1 * 8 + col] == 0 && p[2 * 8 + col] == 0 && p[3 * 8 + col] == 0 && p[4 * 8 + col] == 0 && p[5 * 8 + col] == 0 && p[6 * 8 + col] == 0 && p[7 * 8 + col] == 0) {\n t = dctSqrt2 * dataIn[i2 + 0] + 8192 >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12;\n v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n for (i2 = 0; i2 < 64; ++i2) {\n var sample2 = 128 + (p[i2] + 8 >> 4);\n dataOut[i2] = sample2 < 0 ? 0 : sample2 > 255 ? 255 : sample2;\n }\n }\n requestMemoryAllocation(samplesPerLine * blocksPerColumn * 8);\n var i, j;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (i = 0; i < 8; i++)\n lines.push(new Uint8Array(samplesPerLine));\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n var offset = 0, sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var line = lines[scanLine + j];\n for (i = 0; i < 8; i++)\n line[sample + i] = r[offset++];\n }\n }\n }\n return lines;\n }\n function clampTo8bit(a) {\n return a < 0 ? 0 : a > 255 ? 255 : a;\n }\n constructor.prototype = {\n load: function load(path) {\n var xhr = new XMLHttpRequest();\n xhr.open("GET", path, true);\n xhr.responseType = "arraybuffer";\n xhr.onload = function() {\n var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n this.parse(data);\n if (this.onload)\n this.onload();\n }.bind(this);\n xhr.send(null);\n },\n parse: function parse(data) {\n var maxResolutionInPixels = this.opts.maxResolutionInMP * 1e3 * 1e3;\n var offset = 0, length = data.length;\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length2 = readUint16();\n var array = data.subarray(offset, offset + length2 - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame2) {\n var maxH2 = 1, maxV2 = 1;\n var component2, componentId2;\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n if (maxH2 < component2.h)\n maxH2 = component2.h;\n if (maxV2 < component2.v)\n maxV2 = component2.v;\n }\n }\n var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / maxH2);\n var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / maxV2);\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component2.h / maxH2);\n var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component2.v / maxV2);\n var blocksPerLineForMcu = mcusPerLine * component2.h;\n var blocksPerColumnForMcu = mcusPerColumn * component2.v;\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\n var blocks = [];\n requestMemoryAllocation(blocksToAllocate * 256);\n for (var i2 = 0; i2 < blocksPerColumnForMcu; i2++) {\n var row = [];\n for (var j2 = 0; j2 < blocksPerLineForMcu; j2++)\n row.push(new Int32Array(64));\n blocks.push(row);\n }\n component2.blocksPerLine = blocksPerLine;\n component2.blocksPerColumn = blocksPerColumn;\n component2.blocks = blocks;\n }\n }\n frame2.maxH = maxH2;\n frame2.maxV = maxV2;\n frame2.mcusPerLine = mcusPerLine;\n frame2.mcusPerColumn = mcusPerColumn;\n }\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [], frames = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n var malformedDataOffset = -1;\n this.comments = [];\n if (fileMarker != 65496) {\n throw new Error("SOI not found");\n }\n fileMarker = readUint16();\n while (fileMarker != 65497) {\n var i, j, l;\n switch (fileMarker) {\n case 65280:\n break;\n case 65504:\n case 65505:\n case 65506:\n case 65507:\n case 65508:\n case 65509:\n case 65510:\n case 65511:\n case 65512:\n case 65513:\n case 65514:\n case 65515:\n case 65516:\n case 65517:\n case 65518:\n case 65519:\n case 65534:\n var appData = readDataBlock();\n if (fileMarker === 65534) {\n var comment = String.fromCharCode.apply(null, appData);\n this.comments.push(comment);\n }\n if (fileMarker === 65504) {\n if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n if (fileMarker === 65505) {\n if (appData[0] === 69 && appData[1] === 120 && appData[2] === 105 && appData[3] === 102 && appData[4] === 0) {\n this.exifBuffer = appData.subarray(5, appData.length);\n }\n }\n if (fileMarker === 65518) {\n if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) {\n adobe = {\n version: appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n case 65499:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n requestMemoryAllocation(64 * 4);\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else\n throw new Error("DQT: invalid table spec");\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 65472:\n case 65473:\n case 65474:\n readUint16();\n frame = {};\n frame.extended = fileMarker === 65473;\n frame.progressive = fileMarker === 65474;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = {};\n frame.componentsOrder = [];\n var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\n if (pixelsInFrame > maxResolutionInPixels) {\n var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\n throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\n }\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n var qId = data[offset + 2];\n if (h <= 0 || v <= 0) {\n throw new Error("Invalid sampling factor, expected values above 0");\n }\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId\n };\n offset += 3;\n }\n prepareComponents(frame);\n frames.push(frame);\n break;\n case 65476:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n requestMemoryAllocation(16 + codeLengthSum);\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable2(codeLengths, huffmanValues);\n }\n break;\n case 65501:\n readUint16();\n resetInterval = readUint16();\n break;\n case 65500:\n readUint16();\n readUint16();\n break;\n case 65498:\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n component = frame.components[data[offset++]];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, this.opts);\n offset += processed;\n break;\n case 65535:\n if (data[offset] !== 255) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n break;\n } else if (fileMarker === 224 || fileMarker == 225) {\n if (malformedDataOffset !== -1) {\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\n }\n malformedDataOffset = offset - 1;\n const nextOffset = readUint16();\n if (data[offset + nextOffset - 2] === 255) {\n offset += nextOffset - 2;\n break;\n }\n }\n throw new Error("unknown JPEG marker " + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n if (frames.length != 1)\n throw new Error("only single frame JPEGs supported");\n for (var i = 0; i < frames.length; i++) {\n var cp = frames[i].components;\n for (var j in cp) {\n cp[j].quantizationTable = quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (var i = 0; i < frame.componentsOrder.length; i++) {\n var component = frame.components[frame.componentsOrder[i]];\n this.components.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV\n });\n }\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width, scaleY = this.height / height;\n var component1, component2, component3, component4;\n var component1Line, component2Line, component3Line, component4Line;\n var x, y;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var dataLength = width * height * this.components.length;\n requestMemoryAllocation(dataLength);\n var data = new Uint8Array(dataLength);\n switch (this.components.length) {\n case 1:\n component1 = this.components[0];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 2:\n component1 = this.components[0];\n component2 = this.components[1];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n Y = component2Line[0 | x * component2.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 3:\n colorTransform = true;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n R = component1Line[0 | x * component1.scaleX * scaleX];\n G = component2Line[0 | x * component2.scaleX * scaleX];\n B = component3Line[0 | x * component3.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n R = clampTo8bit(Y + 1.402 * (Cr - 128));\n G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n B = clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = R;\n data[offset++] = G;\n data[offset++] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe)\n throw new Error("Unsupported color mode (4 components)");\n colorTransform = false;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n component4 = this.components[3];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n component4Line = component4.lines[0 | y * component4.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n C = component1Line[0 | x * component1.scaleX * scaleX];\n M = component2Line[0 | x * component2.scaleX * scaleX];\n Ye = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = 255 - C;\n data[offset++] = 255 - M;\n data[offset++] = 255 - Ye;\n data[offset++] = 255 - K;\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n return data;\n },\n copyToImageData: function copyToImageData(imageData, formatAsRGBA) {\n var width = imageData.width, height = imageData.height;\n var imageDataArray = imageData.data;\n var data = this.getData(width, height);\n var i = 0, j = 0, x, y;\n var Y, K, C, M, R, G, B;\n switch (this.components.length) {\n case 1:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n Y = data[i++];\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 3:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n R = data[i++];\n G = data[i++];\n B = data[i++];\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 4:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n C = data[i++];\n M = data[i++];\n Y = data[i++];\n K = data[i++];\n R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n }\n };\n var totalBytesAllocated = 0;\n var maxMemoryUsageBytes = 0;\n function requestMemoryAllocation(increaseAmount = 0) {\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\n }\n totalBytesAllocated = totalMemoryImpactBytes;\n }\n constructor.resetMaxMemoryUsage = function(maxMemoryUsageBytes_) {\n totalBytesAllocated = 0;\n maxMemoryUsageBytes = maxMemoryUsageBytes_;\n };\n constructor.getBytesAllocated = function() {\n return totalBytesAllocated;\n };\n constructor.requestMemoryAllocation = requestMemoryAllocation;\n return constructor;\n }();\n if (typeof module !== "undefined") {\n module.exports = decode3;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].decode = decode3;\n }\n function decode3(jpegData, userOpts = {}) {\n var defaultOpts = {\n colorTransform: void 0,\n useTArray: false,\n formatAsRGBA: true,\n tolerantDecoding: true,\n maxResolutionInMP: 100,\n maxMemoryUsageInMB: 512\n };\n var opts = { ...defaultOpts, ...userOpts };\n var arr = new Uint8Array(jpegData);\n var decoder = new JpegImage();\n decoder.opts = opts;\n JpegImage.resetMaxMemoryUsage(opts.maxMemoryUsageInMB * 1024 * 1024);\n decoder.parse(arr);\n var channels = opts.formatAsRGBA ? 4 : 3;\n var bytesNeeded = decoder.width * decoder.height * channels;\n try {\n JpegImage.requestMemoryAllocation(bytesNeeded);\n var image = {\n width: decoder.width,\n height: decoder.height,\n exifBuffer: decoder.exifBuffer,\n data: opts.useTArray ? new Uint8Array(bytesNeeded) : Buffer2.alloc(bytesNeeded)\n };\n if (decoder.comments.length > 0) {\n image["comments"] = decoder.comments;\n }\n } catch (err) {\n if (err instanceof RangeError) {\n throw new Error("Could not allocate enough memory for the image. Required: " + bytesNeeded);\n }\n if (err instanceof ReferenceError) {\n if (err.message === "Buffer is not defined") {\n throw new Error("Buffer is not globally defined in this environment. Consider setting useTArray to true");\n }\n }\n throw err;\n }\n decoder.copyToImageData(image, opts.formatAsRGBA);\n return image;\n }\n }\n});\n\n// node_modules/jpeg-js/index.js\nvar require_jpeg_js = __commonJS({\n "node_modules/jpeg-js/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var encode2 = require_encoder();\n var decode3 = require_decoder();\n module.exports = {\n encode: encode2,\n decode: decode3\n };\n }\n});\n\n// src/processor.worker.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/platform.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/requests.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar xmlhttprequest;\nif (false)\n xmlhttprequest = typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : typeof GM != "undefined" ? GM.xmlHttpRequest : window["GM_xmlhttpRequest"];\nvar GM_fetch = (...[url, opt, lisn]) => {\n function blobTo(to, blob) {\n if (to == "arrayBuffer" && blob.arrayBuffer) {\n const ret = blob.arrayBuffer();\n if (ret)\n return ret;\n }\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = function(event) {\n if (!event)\n return;\n if (to == "base64")\n resolve(event.target.result);\n else\n resolve(event.target.result);\n };\n if (to == "arrayBuffer")\n fileReader.readAsArrayBuffer(blob);\n else if (to == "base64")\n fileReader.readAsDataURL(blob);\n else if (to == "text")\n fileReader.readAsText(blob, "utf-8");\n else\n reject(new Error("unknown to"));\n });\n }\n return new Promise((resolve, reject) => {\n const gmopt = {\n url: url.toString(),\n data: opt?.body,\n responseType: "blob",\n headers: opt?.headers,\n method: opt?.method || "GET",\n ...lisn ? {\n onprogress: (prog) => {\n if (prog.loaded != prog.total && prog.total != 0)\n lisn.dispatchEvent(new CustomEvent("progress", { detail: [prog.loaded, prog.total] }));\n }\n } : {},\n onload: (resp) => {\n if (resp.status / 100 >= 4) {\n reject(new Error("Server Error: " + resp.status));\n return;\n }\n const blob = resp.response;\n const ref = resp;\n ref.blob = () => Promise.resolve(blob);\n ref.arrayBuffer = () => blobTo("arrayBuffer", blob);\n ref.text = () => blobTo("text", blob);\n ref.json = async () => JSON.parse(await blobTo("text", blob));\n resolve(resp);\n },\n ontimeout: () => reject(new Error("fetch timeout")),\n onerror: (...args) => {\n reject(new Error("fetch error"));\n },\n onabort: () => reject(new Error("fetch abort"))\n };\n xmlhttprequest(gmopt);\n });\n};\n\n// src/platform.ts\nvar lqueue = {};\nvar localSet = (key2, value) => localStorage.setItem("__pee__" + key2, JSON.stringify(value));\nvar port1;\nconsole.log("worker", false);\nvar msgBuff = [];\nvar setupPort = (port) => {\n port1 = port;\n port1.onmessage = (ev) => {\n lqueue[ev.data.id](ev.data);\n };\n if (true) {\n for (const msg of msgBuff) {\n port.postMessage(msg[0], { transfer: msg[1] });\n }\n msgBuff = [];\n }\n};\nif (true) {\n port1 = {\n onmessage(ev) {\n lqueue[ev.data.id](ev.data);\n },\n postMessage(msg, tr) {\n msgBuff.push([msg, tr]);\n }\n };\n}\nvar gid = 0;\nvar sendCmd = (cmd, tr, overwrite = false, todelete = false) => {\n const prom = new Promise((_) => {\n const id = gid++;\n if (overwrite)\n cmd.id = id;\n lqueue[id] = (e) => {\n _(e.res);\n if (todelete)\n delete lqueue[id];\n };\n port1.postMessage({ id, ...cmd }, tr || []);\n });\n return prom;\n};\nvar bridge = (name, f) => {\n if (false)\n return f;\n if (false)\n return f;\n return (...args) => {\n return sendCmd({ name, args });\n };\n};\nvar Bridged = (ctor) => {\n const keys = Object.getOwnPropertyNames(ctor).filter((k) => typeof ctor[k] == "function");\n for (const k of keys)\n ctor[k] = bridge(k, ctor[k]);\n};\nif (false) {\n}\nvar Platform = class {\n static async openInTab(src, opts) {\n if (false) {\n return GM.openInTab(src, opts);\n }\n const obj = false ? chrome : browser;\n let i;\n if (opts.insert)\n i = (await obj.tabs.getCurrent()).index + 1;\n return obj.tabs.create({ active: opts.active, url: src, index: i });\n }\n static async getValue(key2, def) {\n const isinls = "__pee__" + key2 in localStorage;\n let ret;\n if (isinls) {\n let it = localStorage.getItem("__pee__" + key2);\n if (it === "undefined")\n it = null;\n ret = { ...def, ...JSON.parse(it || "{}") };\n } else\n ret = def;\n if (true) {\n if (isinls) {\n delete localStorage["__pee__" + key2];\n await chrome.storage.local.set({\n [key2]: JSON.stringify(ret)\n });\n } else {\n const d = await chrome.storage.local.get([key2]);\n if (typeof d[key2] == "string")\n return { ...def, ...await JSON.parse("" + d[key2] || "{}") };\n }\n }\n return ret;\n }\n static setValue(name, val) {\n localSet(name, val);\n }\n};\nPlatform.cmdid = 0;\nPlatform = __decorateClass([\n Bridged\n], Platform);\nvar corsFetch = async (input, init3, lsn) => {\n const id = gid++;\n let transfer = [];\n if (init3?.body) {\n if (false) {\n [init3.body, transfer] = await braveserialize(init3.body);\n }\n }\n const prom = new Promise((_, rej) => {\n let gcontroller;\n let buffer = [];\n let finished = false;\n const rs = new ReadableStream({\n start(controller) {\n gcontroller = controller;\n buffer.forEach((b) => gcontroller?.enqueue(b));\n buffer = [];\n if (finished) {\n gcontroller.close();\n }\n }\n });\n let s;\n s = 0;\n const cmdbuff = [];\n lqueue[id] = async (e) => {\n if (e.progress) {\n if (lsn)\n lsn.dispatchEvent(new CustomEvent("progress", { detail: e.progress }));\n }\n if (e.pushData) {\n if (e.s > s) {\n let idx = 0;\n while (idx < cmdbuff.length) {\n if (cmdbuff[idx].s > e.s)\n break;\n idx++;\n }\n cmdbuff.splice(idx, 0, e);\n return;\n }\n const processCmd = (e2) => {\n if (e2.pushData.data) {\n const data = new Uint8Array(e2.pushData.data);\n if (gcontroller)\n gcontroller.enqueue(data);\n else\n buffer.push(data);\n } else {\n if (gcontroller)\n gcontroller?.close();\n else\n finished = true;\n }\n };\n await processCmd(e);\n s++;\n while (cmdbuff[0]?.s == s) {\n await processCmd(cmdbuff.shift());\n s++;\n }\n }\n if (e.setRes) {\n const arrayBuffer = async () => {\n const r = rs.getReader();\n await sendCmd({ name: "fullyRead", fid: id });\n const abs = [];\n let res;\n do {\n res = await r.read();\n if (res.done)\n break;\n abs.push(res.value);\n } while (!res.done);\n const sum = abs.reduce((a, b) => a + b.byteLength, 0);\n const ret = new Uint8Array(sum);\n abs.reduce((ptr, arr) => {\n ret.set(arr, ptr);\n return ptr + arr.byteLength;\n }, 0);\n r.releaseLock();\n return ret;\n };\n const blob = async () => new Blob([await arrayBuffer()]);\n const text = async () => new TextDecoder().decode(await arrayBuffer());\n const json = async () => JSON.parse(await text());\n if (e.ok)\n _({\n body: rs,\n ok: e.ok,\n headers: e.headers,\n redirected: e.redirected,\n type: e.type,\n url: e.url,\n status: e.status,\n bodyUsed: e.bodyUsed,\n statusText: e.statusText,\n clone() {\n return this;\n },\n arrayBuffer,\n blob,\n text,\n json,\n async formData() {\n return new FormData();\n }\n });\n else {\n rej(new Error(`${e.url} - ${e.status}`));\n }\n }\n };\n port1.postMessage({\n id,\n name: "corsFetch",\n args: [input, init3]\n }, transfer);\n });\n return prom;\n};\nasync function getHeaders(s) {\n if (false)\n return headerStringToObject(await GM_head(s));\n const res = await ifetch(s, {\n method: "HEAD"\n });\n return res.headers;\n}\nasync function ifetch(...[url, opt, lisn]) {\n if (true)\n return corsFetch(url.toString(), opt, lisn);\n return GM_fetch(url, opt, lisn);\n}\nasync function* streamRemote(url, chunkSize = 72 * 1024, fetchRestOnNonCanceled = true) {\n let size = Number.POSITIVE_INFINITY;\n let ptr = 0;\n let fetchSize = chunkSize;\n while (ptr != size) {\n let obj;\n const fres = await ifetch(url, { headers: { range: `bytes=${ptr}-${ptr + fetchSize - 1}` } });\n if (false) {\n obj = headerStringToObject(fres.responseHeaders);\n } else {\n obj = fres.headers;\n }\n if (!("content-length" in obj)) {\n console.warn("no content lenght???", url);\n break;\n }\n if ("content-range" in obj) {\n size = +obj["content-range"].split("/")[1];\n }\n const len = +obj["content-length"];\n ptr += len;\n if (fetchRestOnNonCanceled)\n fetchSize = size;\n const val = Buffer2.from(await fres.arrayBuffer());\n const e = yield val;\n if (e) {\n break;\n }\n }\n}\n\n// src/stores.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/store/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/internal/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === "function";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function");\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nvar resolved_promise = Promise.resolve();\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nvar SvelteElement;\nif (typeof HTMLElement === "function") {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: "open" });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n for (const key2 in this.$$.slotted) {\n this.appendChild(this.$$.slotted[key2]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n\n// node_modules/svelte/store/index.mjs\nvar subscriber_queue = [];\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe2(run2, invalidate = noop) {\n const subscriber = [run2, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run2(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe: subscribe2 };\n}\n\n// src/stores.ts\nvar localLoad = async (key2, def) => {\n const ret = await Platform.getValue(key2, def);\n return ret;\n};\nvar localSet2 = (key2, value) => {\n if (true) {\n return;\n }\n if (true)\n chrome.storage.local.set({ [key2]: JSON.stringify(value) });\n else\n localStorage.setItem("__pee__" + key2, JSON.stringify(value));\n};\nvar initial_settings = {\n loop: true,\n dh: false,\n pmeth: 5,\n xpv: false,\n xpi: false,\n hyd: false,\n notcata: false,\n ak: "",\n auto_embed: 0,\n auto_tags: "",\n te: false,\n eye: false,\n ca: false,\n pre: false,\n prev: false,\n sh: false,\n ep: false,\n tm: false,\n dvc: false,\n expte: false,\n mdist: -1,\n phash: false,\n hotlink: false,\n jpeg: false,\n vercheck: false,\n cache: void 0,\n fhost: 0,\n maxe: 5,\n conc: 8,\n ho: false,\n blacklist: [],\n rsources: []\n};\nvar settings = writable();\nvar appState = writable({\n isCatalog: false,\n is4chanX: false,\n akValid: false,\n herror: "",\n client: null,\n processing: 0,\n processed: 0,\n foundPosts: []\n});\nsettings.subscribe((newVal) => {\n if (newVal)\n localSet2("settingsv2", newVal);\n});\n\n// src/pngv3.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer3 = __toESM(require_buffer(), 1);\n\n// src/png.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_crc_32 = __toESM(require_crc32(), 1);\nvar import_buffer = __toESM(require_buffer(), 1);\nvar PNGDecoder = class {\n constructor(reader, strict = true) {\n this.reader = reader;\n this.strict = strict;\n this.req = 8;\n this.ptr = 8;\n this.stopped = false;\n this.repr = import_buffer.Buffer.from([]);\n }\n async catchup() {\n while (this.repr.byteLength < this.req) {\n const chunk = await this.reader.read();\n if (chunk.done) {\n if (this.strict)\n throw new Error(`Unexpected EOF, got ${this.repr.byteLength}, required ${this.req}, ${chunk.value}`);\n this.stopped = true;\n return;\n }\n this.repr = import_buffer.Buffer.concat([this.repr, chunk.value]);\n }\n }\n async *chunks() {\n while (true) {\n this.req += 8;\n await this.catchup();\n if (this.stopped)\n break;\n const length = this.repr.readUInt32BE(this.ptr);\n const name = this.repr.slice(this.ptr + 4, this.ptr + 8).toString();\n this.ptr += 4;\n this.req += length + 4;\n await this.catchup();\n yield [\n name,\n this.repr.slice(this.ptr, this.ptr + length + 4),\n this.ptr + length > this.repr.length ? -1 : this.repr.readUInt32BE(this.ptr + length + 4),\n this.ptr\n ];\n if (this.stopped)\n break;\n this.ptr += length + 8;\n if (name == "IEND")\n break;\n }\n }\n async dtor() {\n }\n};\nvar PNGEncoder = class {\n constructor(bytes) {\n this.writer = bytes.getWriter();\n this.writer.write(import_buffer.Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]));\n }\n async insertchunk(chunk) {\n let b = import_buffer.Buffer.alloc(4);\n const buff = chunk[1];\n b.writeInt32BE(buff.length - 4, 0);\n await this.writer.write(b);\n await this.writer.write(buff);\n b = import_buffer.Buffer.alloc(4);\n b.writeInt32BE((0, import_crc_32.buf)(buff), 0);\n await this.writer.write(b);\n }\n async dtor() {\n this.writer.releaseLock();\n }\n};\n\n// src/utils.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer2 = __toESM(require_buffer(), 1);\n\n// src/assets/hasembed.png\nvar hasembed_default = __toBinary("iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAABHPGVmAAAAMFBMVEX+/v3c3c2moZhda1ODfnfKvK49RDgCAgIbHxpsGhv6BQT9hIOV0Hh4pWO03Z//5coEk9oIAAAHdUlEQVR42qWZDXurIAyFhcDJsS31///bKzEWHX6sd2fPVqYbLycJwXXDTiGKSMrDkQKGc8WwjhCHa0WoSY5u5guIYIUk5BuGEc4oUYZTaVztUq4ZWZtSfzulCyPrCAjXEGgT+9vncQhoRtI1I1BnIdEouYecG5FmZPhNRsLn9T4l3fIjwq8gcXlFv9xwXpPriDLcKHjGYeX1RW0J2uBWUid3FsPPm+flz7Qd3FtJbqhzkuSiYHIzcq8Ybb7KiCRju5PlqirdNdLwewlT2u/IcNUrEvyVwzfKAbvEhHS1RrBF6ysK1ZRvGW0DxhbekGOSlGKzfxgIbpyE8XqJEI9W8GZN6ioi2VU9osSWk8jx8byCMC1zw5JHEiIwOY4YHmM8PDx0sZ/Gx6w9JeQcq3JoRZUUFeFLD+G1qBSh6vB4jBchjzI8NpSQE6BNgAiiodQINg4hvF9NxeYY02mFShw+lAogCUCAFhAiW3wpS/wNsGPQphjloP2FmINtkIdJoCSkvH5OIYZUxAURXk0CcsmJaQRi2IVdLGe1dJ7z7ZEkDNApDEFY27drYwRqC1shdR4dIalKBBhbwg3RCB3Edj39KNmnQ1QtZeoQJ4lIijF4kKzQZkaLUq+3zQ0iz+kwwkYFygrZUaahyr7m52TbHYa4gQxFwBT7u0XICtGO0fZFhAfqzskyHV69KkUbxeeefOQ2XjeyXEjx2JQDCgbdUAbTh5fdxr2RSBpFDillUNMmXB9bibxFFGOEIv6z9tqlxSH6CVirNL1nENGrtlCPKJWuNEijNFHlykHxfYCU1vyqXRRFo1CVJAzSU0bVKxsgpKyzoBRrLrTpy7ZWyroZDylm/lxic9ugYhapmvnSAmbfBId0FD2OlZQWB5JiSzWJFBGSHsMNRWGQnkJ2DDdP+SQDJPzk8/wV240esGY67SG6JgTHmVCQCo9JEiNQZZq82sUpdiaUspoOg/YU8n1sJE3zfLBoCGk2INT5aiTFKFoxhl9ro9QS7ijUGA4hzFNVpMKObskZBBTzxSykRUp1xkFjSIB6cRhkRxk1DXsI1zxMroRqw5iJBKRSUjVTaCbEn3SMUzhoJ/jp1hzI6z3vamBalaEEYUOSFWdmzOE6yeAcooNQ47A4efsRJCyhXmKamiIISh0FKhd8qGZIxMRGGQI6iN99z2sf3BGY67BodoDPqOpJEmX0OFo5LIPho9A7yX6jyijUWHugp6RppsBtESs6qiqMkhqlgzSbwb6E4t0CmH4okqu5sE2XWQbDOUTWe2kZVQjKLMr0UwEy9YrKClOcQ8rbjdhSLExWSYVp6oWpV6DWFAnzOcQO1DkJ5Dx428FdP4T5aNU2q6gydlbIMwjs1A7WDV5vY8xieQmnE2U1bRYhmtzKMUTs8eNlkLL0CQRhKcAZg+qU0LBmBXIMYakbJBhEizE0TplSKOdGXOmHFeIAQlmiFd4VQpUCUnReICCMJ5B0AAnKXRVvI1VsR1SEQQBy2YMgKutQoqvihly/SR3EMuAnu0NYjQEWXup0oqir8rSz0kNgrXAHsXr27QHV6UyfxG8vQvM2XG6jhxjZ22KyhnRdXnlfDjJxB+Hr1UP8JKUvN0/nygKJnT+2Humh6iCiSraOFacvlZRxWGWMc4gH4Xvl7TuyjbFWl2DNCUUw/a+IBnFGgxRygRAk/x8iG8jrFBInIfN/QwLCCUQsTss4b3dHTpK+BGo8hlBLg4QpKnZbQb6DSAcxoUKgxSETkv+8K32f+R4iNV5CMUhN3o9Gy/AFBAqEDuInlRDGu26090oKQo6cKDwp4BEkfQUpRYC+ulTFkrKHpP+F1NgjO6T1xE+8yKMTNn8JMQq2ENEqWbYjscuhiV9Vl3fCAg47I1WweBmkSayTfbcbSZ8Xw86IaYnXz1Mq5/BlW1G+XMPOiAkFykJMf1M6hOhW0PhHCCjrzMPWiItI1L9Cco27SVripblItjPyH6NFfmb+QLBrHVn1z9Fqjw5DlxF6zf6NEeup0RK/jGUHyRHyXXAQfrZgvhoErJSCLSRSVZF/v2wwHRtxiD8FcwuBplQx4Xd1hH5BXI2UskAUxVKygcyfjFDG35VR6tuWwpyQhJRBjSIbSJ6gFTKlOr6PlIR+j0AAKyeRkWoQFWqTTBEzJNUSS3eR4kHqApmGNEqFxOH5GBcIdCPa2Z5gfyyH60jhKKBkPXRH1iyE+ob5AqFuZcs3K8R1Og6NUsdh1nOmCOeBQTr5O0tMWeOUbk+RnvEYqsYRglOI0mudFUd+QwmV8Xi6FT2HtHd/kjn6gpJJ+fxr4TFyfObnGURl37Tl18c607zy1crD/mnVIL2XJlX+MlRknqduVkynECoRg/1mAvmr5xSxsnLIdA/xomaVklKZt91FvaxunTQRIqgQyHIQMN8hPBeTG7mFeG+uascmTjBBqMpHczANpucdhHht9LkYekLCksN1wqbHDYQsHcTE/V91GcaOWXvK4xYiW0bplgCA9OKQmRq1UZ7ZY3UDIXZGuAOQ68AApqROabqHlDMjNKlKzGG31a8o/wBpRk19RswBZgAAAABJRU5ErkJggg==");\n\n// src/filehosts.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction parseForm(data) {\n const form = new FormData();\n Object.entries(data).filter(([key2, value]) => value !== null).map(([key2, value]) => form.append(key2, value));\n return form;\n}\nvar lolisafe = (domain, serving = domain) => ({\n domain,\n serving,\n async uploadFile(f) {\n const resp = await ifetch(`https://${domain}/api/upload`, {\n headers: {\n accept: "application/json"\n },\n "body": parseForm({\n reqtype: "fileupload",\n "files[]": new File([f], "f.pee")\n }),\n "method": "POST"\n });\n const res = await resp.json();\n return res.files.map((e) => e.url)[0];\n }\n});\nvar catbox = (domain, serving) => ({\n domain,\n serving,\n async uploadFile(inj) {\n const resp = await ifetch(`https://${domain}/user/api.php`, {\n method: "POST",\n body: parseForm({\n reqtype: "fileupload",\n fileToUpload: inj\n })\n });\n return resp.text();\n }\n});\nvar filehosts = [\n catbox("catbox.moe", "files.catbox.moe"),\n catbox("pomf.moe", "a.pomf.cat"),\n lolisafe("take-me-to.space"),\n lolisafe("zz.ht", "z.zz.fo")\n];\n\n// node_modules/file-type/browser.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer4 = __toESM(require_buffer(), 1);\nvar import_readable_web_to_node_stream = __toESM(require_lib(), 1);\n\n// node_modules/file-type/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer3 = __toESM(require_buffer(), 1);\n\n// node_modules/token-types/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar ieee754 = __toESM(require_ieee754(), 1);\nvar import_node_buffer = __toESM(require_buffer(), 1);\nvar AnsiStringType = class {\n constructor(len) {\n this.len = len;\n }\n static decode(buffer, offset, until) {\n let str = "";\n for (let i = offset; i < until; ++i) {\n str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));\n }\n return str;\n }\n static inRange(a, min, max) {\n return min <= a && a <= max;\n }\n static codePointToString(cp) {\n if (cp <= 65535) {\n return String.fromCharCode(cp);\n } else {\n cp -= 65536;\n return String.fromCharCode((cp >> 10) + 55296, (cp & 1023) + 56320);\n }\n }\n static singleByteDecoder(bite) {\n if (AnsiStringType.inRange(bite, 0, 127)) {\n return bite;\n }\n const codePoint = AnsiStringType.windows1252[bite - 128];\n if (codePoint === null) {\n throw Error("invaliding encoding");\n }\n return codePoint;\n }\n get(buffer, offset = 0) {\n return AnsiStringType.decode(buffer, offset, offset + this.len);\n }\n};\nAnsiStringType.windows1252 = [\n 8364,\n 129,\n 8218,\n 402,\n 8222,\n 8230,\n 8224,\n 8225,\n 710,\n 8240,\n 352,\n 8249,\n 338,\n 141,\n 381,\n 143,\n 144,\n 8216,\n 8217,\n 8220,\n 8221,\n 8226,\n 8211,\n 8212,\n 732,\n 8482,\n 353,\n 8250,\n 339,\n 157,\n 382,\n 376,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 174,\n 175,\n 176,\n 177,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 187,\n 188,\n 189,\n 190,\n 191,\n 192,\n 193,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 219,\n 220,\n 221,\n 222,\n 223,\n 224,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 235,\n 236,\n 237,\n 238,\n 239,\n 240,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250,\n 251,\n 252,\n 253,\n 254,\n 255\n];\n\n// node_modules/strtok3/lib/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/ReadStreamTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/EndOfFileStream.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/Deferred.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\nvar maxStreamReadSize = 1 * 1024 * 1024;\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\nvar import_node_buffer2 = __toESM(require_buffer(), 1);\n\n// node_modules/strtok3/lib/BufferTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/util.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/supported.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar extensions = [\n "jpg",\n "png",\n "apng",\n "gif",\n "webp",\n "flif",\n "xcf",\n "cr2",\n "cr3",\n "orf",\n "arw",\n "dng",\n "nef",\n "rw2",\n "raf",\n "tif",\n "bmp",\n "icns",\n "jxr",\n "psd",\n "indd",\n "zip",\n "tar",\n "rar",\n "gz",\n "bz2",\n "7z",\n "dmg",\n "mp4",\n "mid",\n "mkv",\n "webm",\n "mov",\n "avi",\n "mpg",\n "mp2",\n "mp3",\n "m4a",\n "oga",\n "ogg",\n "ogv",\n "opus",\n "flac",\n "wav",\n "spx",\n "amr",\n "pdf",\n "epub",\n "elf",\n "exe",\n "swf",\n "rtf",\n "wasm",\n "woff",\n "woff2",\n "eot",\n "ttf",\n "otf",\n "ico",\n "flv",\n "ps",\n "xz",\n "sqlite",\n "nes",\n "crx",\n "xpi",\n "cab",\n "deb",\n "ar",\n "rpm",\n "Z",\n "lz",\n "cfb",\n "mxf",\n "mts",\n "blend",\n "bpg",\n "docx",\n "pptx",\n "xlsx",\n "3gp",\n "3g2",\n "jp2",\n "jpm",\n "jpx",\n "mj2",\n "aif",\n "qcp",\n "odt",\n "ods",\n "odp",\n "xml",\n "mobi",\n "heic",\n "cur",\n "ktx",\n "ape",\n "wv",\n "dcm",\n "ics",\n "glb",\n "pcap",\n "dsf",\n "lnk",\n "alias",\n "voc",\n "ac3",\n "m4v",\n "m4p",\n "m4b",\n "f4v",\n "f4p",\n "f4b",\n "f4a",\n "mie",\n "asf",\n "ogm",\n "ogx",\n "mpc",\n "arrow",\n "shp",\n "aac",\n "mp1",\n "it",\n "s3m",\n "xm",\n "ai",\n "skp",\n "avif",\n "eps",\n "lzh",\n "pgp",\n "asar",\n "stl",\n "chm",\n "3mf",\n "zst",\n "jxl",\n "vcf"\n];\nvar mimeTypes = [\n "image/jpeg",\n "image/png",\n "image/gif",\n "image/webp",\n "image/flif",\n "image/x-xcf",\n "image/x-canon-cr2",\n "image/x-canon-cr3",\n "image/tiff",\n "image/bmp",\n "image/vnd.ms-photo",\n "image/vnd.adobe.photoshop",\n "application/x-indesign",\n "application/epub+zip",\n "application/x-xpinstall",\n "application/vnd.oasis.opendocument.text",\n "application/vnd.oasis.opendocument.spreadsheet",\n "application/vnd.oasis.opendocument.presentation",\n "application/vnd.openxmlformats-officedocument.wordprocessingml.document",\n "application/vnd.openxmlformats-officedocument.presentationml.presentation",\n "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",\n "application/zip",\n "application/x-tar",\n "application/x-rar-compressed",\n "application/gzip",\n "application/x-bzip2",\n "application/x-7z-compressed",\n "application/x-apple-diskimage",\n "application/x-apache-arrow",\n "video/mp4",\n "audio/midi",\n "video/x-matroska",\n "video/webm",\n "video/quicktime",\n "video/vnd.avi",\n "audio/vnd.wave",\n "audio/qcelp",\n "audio/x-ms-asf",\n "video/x-ms-asf",\n "application/vnd.ms-asf",\n "video/mpeg",\n "video/3gpp",\n "audio/mpeg",\n "audio/mp4",\n "audio/opus",\n "video/ogg",\n "audio/ogg",\n "application/ogg",\n "audio/x-flac",\n "audio/ape",\n "audio/wavpack",\n "audio/amr",\n "application/pdf",\n "application/x-elf",\n "application/x-msdownload",\n "application/x-shockwave-flash",\n "application/rtf",\n "application/wasm",\n "font/woff",\n "font/woff2",\n "application/vnd.ms-fontobject",\n "font/ttf",\n "font/otf",\n "image/x-icon",\n "video/x-flv",\n "application/postscript",\n "application/eps",\n "application/x-xz",\n "application/x-sqlite3",\n "application/x-nintendo-nes-rom",\n "application/x-google-chrome-extension",\n "application/vnd.ms-cab-compressed",\n "application/x-deb",\n "application/x-unix-archive",\n "application/x-rpm",\n "application/x-compress",\n "application/x-lzip",\n "application/x-cfb",\n "application/x-mie",\n "application/mxf",\n "video/mp2t",\n "application/x-blender",\n "image/bpg",\n "image/jp2",\n "image/jpx",\n "image/jpm",\n "image/mj2",\n "audio/aiff",\n "application/xml",\n "application/x-mobipocket-ebook",\n "image/heif",\n "image/heif-sequence",\n "image/heic",\n "image/heic-sequence",\n "image/icns",\n "image/ktx",\n "application/dicom",\n "audio/x-musepack",\n "text/calendar",\n "text/vcard",\n "model/gltf-binary",\n "application/vnd.tcpdump.pcap",\n "audio/x-dsf",\n "application/x.ms.shortcut",\n "application/x.apple.alias",\n "audio/x-voc",\n "audio/vnd.dolby.dd-raw",\n "audio/x-m4a",\n "image/apng",\n "image/x-olympus-orf",\n "image/x-sony-arw",\n "image/x-adobe-dng",\n "image/x-nikon-nef",\n "image/x-panasonic-rw2",\n "image/x-fujifilm-raf",\n "video/x-m4v",\n "video/3gpp2",\n "application/x-esri-shape",\n "audio/aac",\n "audio/x-it",\n "audio/x-s3m",\n "audio/x-xm",\n "video/MP1S",\n "video/MP2P",\n "application/vnd.sketchup.skp",\n "image/avif",\n "application/x-lzh-compressed",\n "application/pgp-encrypted",\n "application/x-asar",\n "model/stl",\n "application/vnd.ms-htmlhelp",\n "model/3mf",\n "image/jxl",\n "application/zstd"\n];\n\n// node_modules/file-type/core.js\nvar supportedExtensions = new Set(extensions);\nvar supportedMimeTypes = new Set(mimeTypes);\n\n// src/utils.ts\nvar csettings;\nsettings.subscribe((b) => {\n csettings = b;\n});\nvar threadDataCache = writable();\nvar cthreadDataCache;\nthreadDataCache.subscribe((newval) => {\n cthreadDataCache = newval;\n});\nvar decodeCoom3Payload = async (buff) => {\n if (!csettings)\n throw new Error("Settings uninit");\n const allowed_domains = filehosts.map((e) => e.serving.replaceAll(".", "\\\\."));\n const pees = buff.toString().split(" ").slice(0, csettings.maxe).filter((e) => allowed_domains.some((v) => e.match(`https://(.*\\\\.)?${v}/`)));\n return (await Promise.all(pees.map(async (pee) => {\n try {\n const m = pee.match(/(?https?):\\/\\/(?.*?)(?\\/.*)/);\n if (!m)\n return;\n const { domain, file } = m.groups;\n const headers = await getHeaders(pee);\n const res = await ifetch(pee, {\n headers: { range: "bytes=0-32767", "user-agent": "" },\n mode: "cors",\n referrerPolicy: "no-referrer"\n });\n const size = +headers["content-length"] || 0;\n const header = import_buffer2.Buffer.from(await res.arrayBuffer());\n let hptr = 0;\n if (header.slice(0, 4).toString() == "PEE\\0")\n hptr += 4;\n else\n return;\n const flags = header[hptr];\n const hasFn = !!(flags & 1);\n const hasTags = !!(flags & 2);\n const hasThumbnail = !!(flags & 4);\n let [ptr, ptr2] = [hptr + 1, hptr + 1];\n let fn = "embedded";\n let tags = [];\n let thumb = import_buffer2.Buffer.from(hasembed_default);\n if (hasFn) {\n while (header[ptr2] != 0)\n ptr2++;\n fn = header.slice(ptr, ptr2).toString();\n ptr = ++ptr2;\n }\n if (hasTags) {\n while (header[ptr2] != 0)\n ptr2++;\n tags = header.slice(ptr, ptr2).toString().split(/\\s+/);\n }\n let thumbsize = 0;\n if (hasThumbnail) {\n thumbsize = header.readInt32LE(ptr);\n ptr += 4;\n if (header.byteLength >= ptr + thumbsize)\n thumb = header.slice(ptr, ptr + thumbsize);\n else\n thumb = import_buffer2.Buffer.from(await (await ifetch(pee, { headers: { "user-agent": "", range: `bytes=${ptr}-${ptr + thumbsize}` } })).arrayBuffer());\n ptr += thumbsize;\n }\n const unzip = { url: pee, headers: { "user-agent": "", range: `bytes=${ptr}-${size - 1}` } };\n let data;\n data = unzip;\n if (size < 3072) {\n thumb = data = import_buffer2.Buffer.from(await (await ifetch(unzip.url, { headers: unzip.headers })).arrayBuffer());\n }\n return {\n filename: fn,\n data,\n thumbnail: thumb\n };\n } catch (e) {\n console.warn(e);\n }\n }))).filter((e) => e).map((e) => e);\n};\n\n// src/pngv3.ts\nvar bs58 = __toESM(require_bs58(), 1);\n\n// src/bitstream.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar revbyte = (n, len = 8) => {\n let acc = 0;\n let n2 = n;\n let len2 = len;\n while (len2) {\n acc = acc * 2 + (n2 & 1);\n n2 >>= 1;\n len2--;\n }\n return acc;\n};\nvar BitstreamReader = class {\n constructor() {\n this.buffers = [];\n this.bufferedLength = 0;\n this._offsetIntoBuffer = 0;\n this._bufferIndex = 0;\n this._offset = 0;\n this.skippedLength = 0;\n }\n get bufferIndex() {\n return this._bufferIndex;\n }\n get offset() {\n return this._offset;\n }\n get available() {\n return this.bufferedLength - this.skippedLength;\n }\n getBit(offset) {\n const byte = this.buffers[0][offset >> 3];\n return +!!(byte & 1 << (offset & 7));\n }\n readSync(length) {\n let value = 0;\n if (this._offset >> 3 > this.buffers[0].byteLength) {\n throw "Out of data";\n }\n for (let i = length - 1; i >= 0; --i) {\n value = value * 2 + this.getBit(this._offset + i);\n }\n this._offset += length;\n this.bufferedLength -= length;\n return value;\n }\n addBuffer(buffer) {\n this.buffers.push(buffer);\n this.bufferedLength += buffer.length * 8;\n }\n};\nvar BitstreamWriter = class {\n constructor(stream, bufferSize = 1) {\n this.stream = stream;\n this.pendingBits = 0;\n this.bufferoffset = 0;\n this._offset = 0;\n bufferSize = 1;\n this.buffer = new Uint8Array(bufferSize);\n }\n get offset() {\n return this._offset;\n }\n get byteOffset() {\n return this.pendingBits;\n }\n end() {\n this.flush();\n }\n flush() {\n this.stream.write(new Uint8Array(this.buffer));\n this.bufferoffset = 0;\n this.buffer.fill(0);\n }\n setBit(b) {\n let byte = this.buffer[0];\n byte |= b << (this._offset & 7);\n this.buffer[0] = byte;\n this._offset += 1;\n if (++this.bufferoffset == this.buffer.length * 8) {\n this.flush();\n }\n }\n write(length, value) {\n while (length--) {\n this.setBit(value & 1);\n value >>= 1;\n }\n }\n};\n\n// src/dh-deflate.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar TINF_OK = 0;\nvar Tree = class {\n constructor() {\n this.table = new Uint16Array(16);\n this.trans = new Uint16Array(288);\n }\n};\nvar getPathTo = (tree, value) => {\n if (tree[0] === value)\n return "0";\n if (tree[1] === value)\n return "1";\n let p;\n if (typeof tree[0] != "number")\n p = getPathTo(tree[0], value);\n let b = "0";\n if (!p) {\n if (tree[1] && typeof tree[1] != "number")\n p = getPathTo(tree[1], value);\n b = "1";\n }\n if (p)\n return b + p;\n};\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n let p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\nvar Data = class {\n constructor(source, dests, to_hide, hidden) {\n this.source = source;\n this.dests = dests;\n this.to_hide = to_hide;\n this.hidden = hidden;\n this.pathMap = /* @__PURE__ */ new Map();\n this.dest = [];\n this.ltree = new Tree();\n this.dtree = new Tree();\n }\n computeReverse() {\n this.rltree = buildHuffmanTable(this.ltree.table, this.ltree.trans)[0];\n this.rdtree = buildHuffmanTable(this.dtree.table, this.dtree.trans)[0];\n this.adists = new Set(this.rdtree.flat(16));\n }\n};\nvar sltree = new Tree();\nvar sdtree = new Tree();\nvar rltree;\nvar rdtree;\nvar sadist;\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\nvar clcidx = new Uint8Array([\n 16,\n 17,\n 18,\n 0,\n 8,\n 7,\n 9,\n 6,\n 10,\n 5,\n 11,\n 4,\n 12,\n 3,\n 13,\n 2,\n 14,\n 1,\n 15\n]);\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\nfunction tinf_build_bits_base(bits, base, delta, first) {\n let i, sum;\n for (i = 0; i < delta; ++i)\n bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i)\n bits[i + delta] = i / delta | 0;\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\nfunction tinf_build_fixed_trees(lt, dt) {\n let i;\n for (i = 0; i < 7; ++i)\n lt.table[i] = 0;\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n for (i = 0; i < 24; ++i)\n lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i)\n lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i)\n lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i)\n lt.trans[24 + 144 + 8 + i] = 144 + i;\n for (i = 0; i < 5; ++i)\n dt.table[i] = 0;\n dt.table[5] = 32;\n for (i = 0; i < 32; ++i)\n dt.trans[i] = i;\n}\nvar offs = new Uint16Array(16);\nfunction tinf_build_tree(t, lengths2, off, num) {\n let i, sum;\n for (i = 0; i < 16; ++i)\n t.table[i] = 0;\n for (i = 0; i < num; ++i)\n t.table[lengths2[off + i]]++;\n t.table[0] = 0;\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n for (i = 0; i < num; ++i) {\n if (lengths2[off + i])\n t.trans[offs[lengths2[off + i]]++] = i;\n }\n}\nfunction tinf_getbit(d) {\n const v = d.source.readSync(1);\n return v;\n}\nvar loff = 0;\nvar loffs = [];\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n const v = d.source.readSync(num) + base;\n loff = v;\n loffs.push(v);\n if (loffs.length > 4) {\n loffs.shift();\n }\n return v;\n}\nfunction tinf_decode_symbol(d, t, copy = true, ext = {}) {\n let sum = 0, cur = 0, len = 0;\n let s = 0;\n do {\n const b = d.source.readSync(1);\n copy && d.hidden?.write(1, b);\n s = s << 1 | b;\n cur = 2 * cur + b;\n ++len;\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n ext.length = len;\n ext.sym = s;\n return t.trans[sum + cur];\n}\nfunction tinf_decode_trees(d, lt, dt, copy = true) {\n let i, num, length;\n const hlit = tinf_read_bits(d, 5, 257);\n copy && d.hidden?.write(5, hlit - 257);\n const hdist = tinf_read_bits(d, 5, 1);\n copy && d.hidden?.write(5, hdist - 1);\n const hclen = tinf_read_bits(d, 4, 4);\n copy && d.hidden?.write(4, hclen - 4);\n for (i = 0; i < 19; ++i)\n lengths[i] = 0;\n for (i = 0; i < hclen; ++i) {\n const clen = tinf_read_bits(d, 3, 0);\n copy && d.hidden?.write(3, clen);\n lengths[clcidx[i]] = clen;\n }\n tinf_build_tree(code_tree, lengths, 0, 19);\n for (num = 0; num < hlit + hdist; ) {\n const sym = tinf_decode_symbol(d, code_tree, copy);\n let prev;\n switch (sym) {\n case 16:\n prev = lengths[num - 1];\n length = tinf_read_bits(d, 2, 3);\n copy && d.hidden?.write(2, length - 3);\n for (; length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n length = tinf_read_bits(d, 3, 3);\n copy && d.hidden?.write(3, length - 3);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n length = tinf_read_bits(d, 7, 11);\n copy && d.hidden?.write(7, length - 11);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n lengths[num++] = sym;\n break;\n }\n }\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\nvar get_symbol = (value, bits_table, base_table) => {\n let i = 0;\n for (i = 0; i < base_table.length; ++i) {\n if (base_table[i] > value) {\n i--;\n return [i, bits_table[i], value - base_table[i]];\n }\n }\n i--;\n return [i, bits_table[i], value - base_table[i]];\n};\nvar encode_symbol = (sym, tree, pathMap) => {\n const code = getPathTo(tree, sym);\n const v = {\n length: code?.length,\n val: parseInt(code, 2)\n };\n return v;\n};\nvar capacity = 0;\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n let sym = tinf_decode_symbol(d, lt);\n if (sym === 256) {\n return TINF_OK;\n }\n if (sym < 256) {\n d.dest.push(sym);\n } else {\n sym -= 257;\n const length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n if (length_bits[sym])\n d.hidden?.write(length_bits[sym], length - length_base[sym]);\n const ext = { length: 0, sym: 0 };\n const dist = tinf_decode_symbol(d, dt, false, ext);\n let backoffset = tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n const offs2 = d.dest.length - backoffset;\n let match;\n const skip = !d.to_hide || d.to_hide && d.to_hide instanceof BitstreamReader && d.to_hide.available == 0;\n if (!skip && (match = Buffer2.from(d.dest.slice(offs2, offs2 + length))).length == length) {\n let begin = d.dest.length - 32768;\n if (begin < 0)\n begin = 0;\n let matches = [];\n let o = 0;\n const slic = Buffer2.from(d.dest.slice(begin + o, d.dest.length));\n while (begin + o < d.dest.length) {\n const r = slic.slice(o, d.dest.length).indexOf(match);\n if (r >= 0) {\n matches.push(r + begin + o);\n o += r;\n } else {\n break;\n }\n o++;\n }\n if (matches.length > 1) {\n matches = matches.map((e) => -(e - d.dest.length)).filter((e) => {\n const [dsym2] = get_symbol(e, dist_bits, dist_base);\n return d.adists.has(dsym2);\n });\n matches.reverse();\n const v = Math.floor(Math.log2(matches.length));\n capacity += v;\n if (d.to_hide instanceof BitstreamReader) {\n if (d.to_hide.available) {\n const s = d.to_hide.readSync(Math.min(d.to_hide.available, v));\n backoffset = matches[s];\n }\n } else {\n const idx = matches.indexOf(backoffset);\n d.to_hide.write(v, idx);\n }\n }\n }\n const [dsym, dlen, doff] = get_symbol(backoffset, dist_bits, dist_base);\n const encdist = encode_symbol(dsym, d.rdtree, d.pathMap);\n d.hidden?.write(encdist.length, revbyte(encdist.val, encdist.length));\n d.hidden?.write(dlen, doff);\n for (let i = offs2; i < offs2 + length; ++i) {\n d.dest.push(d.dest[i]);\n }\n }\n }\n}\nfunction tinf_inflate_uncompressed_block(d) {\n if (d.source.offset & 7)\n d.source.readSync(8 - d.source.offset & 7);\n if (d.hidden && d.hidden.offset & 7)\n d.hidden?.write(8 - d.hidden.offset & 7, 0);\n const length = d.source.readSync(16);\n d.hidden?.write(16, length);\n const invlength = d.source.readSync(16);\n d.hidden?.write(16, invlength);\n if (length !== (~invlength & 65535)) {\n return -4;\n }\n for (let i = length; i; --i) {\n const v = d.source.readSync(8);\n d.dest.push(v);\n d.hidden?.write(8, v);\n }\n return TINF_OK;\n}\nfunction tinf_uncompress(source, decompressed, to_hide, hidden, opt = 0) {\n const decomp = decompressed ? new BitstreamWriter({ write: decompressed }) : null;\n const hid = hidden && new BitstreamWriter({ write: hidden }, 4);\n const d = new Data(source, decomp, to_hide, hid);\n let res;\n let bfinal, btype;\n do {\n bfinal = tinf_getbit(d);\n d.hidden?.write(1, bfinal);\n btype = tinf_read_bits(d, 2, 0);\n d.hidden?.write(2, btype);\n switch (btype) {\n case 0:\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n d.rdtree = rdtree;\n d.rltree = rltree;\n d.adists = sadist;\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n tinf_decode_trees(d, d.ltree, d.dtree);\n d.computeReverse();\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = -2;\n }\n if (res !== TINF_OK)\n throw new Error("Data error " + res);\n } while (!bfinal);\n decomp?.end();\n hid?.end();\n}\ntinf_build_fixed_trees(sltree, sdtree);\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\nrltree = buildHuffmanTable(sltree.table, sltree.trans)[0];\nrdtree = buildHuffmanTable(sdtree.table, sdtree.trans)[0];\nsadist = new Set(rdtree.flat(16));\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\n// src/pngv3.ts\nvar csettings2;\nsettings.subscribe((b) => {\n csettings2 = b;\n});\nvar CUM3 = import_buffer3.Buffer.from("doo\\0m");\nvar CUM4 = import_buffer3.Buffer.from("voo\\0m");\nvar CUM5 = import_buffer3.Buffer.from("boo\\0");\nvar CUM6 = import_buffer3.Buffer.from("Creation Time\\0");\nvar CUM7 = import_buffer3.Buffer.from("Software\\0");\nvar BufferReadStream = (b) => {\n const ret = new ReadableStream({\n pull(cont) {\n cont.enqueue(b);\n cont.close();\n }\n });\n return ret;\n};\nvar password = import_buffer3.Buffer.from("NOA");\nvar xor = (a, p) => {\n let n = 0;\n for (let i = 0; i < a.byteLength; ++i) {\n a[i] ^= p[n];\n n++;\n n %= p.byteLength;\n }\n};\nvar prefs = {\n "files.catbox.moe": "c",\n "a.pomf.cat": "p",\n "take-me-to.space": "t",\n "z.zz.fo": "z"\n};\nvar rprefs = {\n "c": "files.catbox.moe",\n "p": "a.pomf.cat",\n "t": "take-me-to.space",\n "z": "z.zz.fo"\n};\nvar extractFromRawDeflate = (b) => {\n const src = new BitstreamReader();\n src.addBuffer(b);\n const chnks = [];\n const hidden = new BitstreamWriter({\n write(chunk) {\n for (const i of chunk) {\n if (i >= 32 && i <= 128)\n chnks.push(i);\n else\n throw "Finish";\n }\n }\n });\n try {\n tinf_uncompress(src, void 0, hidden, void 0);\n } catch (e) {\n if (e == "Finish")\n return import_buffer3.Buffer.from(chnks);\n }\n return false;\n};\nvar extract = async (png, doextract = true) => {\n const reader = BufferReadStream(png).getReader();\n const sneed = new PNGDecoder(reader, false);\n const ret = [];\n let w;\n if (!csettings2)\n throw new Error("Settings uninit");\n try {\n let complete = false;\n const idats = [];\n for await (const [name, chunk, crc, offset] of sneed.chunks()) {\n let buff;\n switch (name) {\n case "tEXt":\n buff = chunk;\n if (buff.slice(4, 4 + CUM3.length).equals(CUM3)) {\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(buff.slice(4 + CUM3.length));\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM4.length).equals(CUM4)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM4.length);\n xor(passed, password);\n const k = await decodeCoom3Payload(passed);\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM5.length).equals(CUM5)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM5.length);\n const decoded = import_buffer3.Buffer.from(passed.toString(), "base64").toString().split(" ").map((e) => {\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n }\n if (w = [CUM6, CUM7].find((e) => buff.slice(4, 4 + e.length).equals(e))) {\n const passed = buff.slice(4 + w.length);\n if (!passed.toString().match(/^[0-9a-zA-Z+/=]+$/g))\n continue;\n const decoders = [\n (b) => import_buffer3.Buffer.from(b.toString(), "base64").toString(),\n (b) => import_buffer3.Buffer.from(bs58.decode(passed.toString())).toString()\n ];\n for (const d of decoders) {\n try {\n const decoded = d(passed).split(" ").map((e) => {\n if (!(e[0] in rprefs))\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n } catch (e) {\n }\n }\n }\n break;\n case "IDAT":\n if (ret.length)\n return ret;\n buff = chunk;\n idats.push(buff.slice(4));\n break;\n case "IEND":\n complete = true;\n default:\n break;\n }\n }\n if (idats.length) {\n let decoded;\n if ((decoded = extractFromRawDeflate(import_buffer3.Buffer.concat(idats).slice(2))) === false)\n return false;\n const dec = decoded.toString().split(" ").map((e) => {\n if (!(e[0] in rprefs) || e.length < 5)\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (doextract)\n return decodeCoom3Payload(import_buffer3.Buffer.from(dec));\n return true;\n }\n } catch (e) {\n if (e != "Uhh")\n console.error(e);\n } finally {\n reader.releaseLock();\n }\n};\nvar buildChunk = (tag, data) => {\n const ret = import_buffer3.Buffer.alloc(data.byteLength + 4);\n ret.write(tag.slice(0, 4), 0);\n data.copy(ret, 4);\n return ret;\n};\nvar BufferWriteStream = () => {\n let b = import_buffer3.Buffer.from([]);\n const ret = new WritableStream({\n write(chunk) {\n b = import_buffer3.Buffer.concat([b, chunk]);\n console.log("finished appending");\n }\n });\n return [ret, () => b];\n};\nvar embedInRawDeflate = (b, h) => {\n const src = new BitstreamReader();\n const hid = new BitstreamReader();\n hid.addBuffer(h);\n src.addBuffer(b);\n const chnks = [];\n tinf_uncompress(src, void 0, hid, (c) => chnks.push(c));\n return import_buffer3.Buffer.concat(chnks);\n};\nvar inject_data = async (container, injb) => {\n injb = import_buffer3.Buffer.concat([injb, import_buffer3.Buffer.from([0])]);\n if (!csettings2)\n throw new Error("Settings uninit");\n if (csettings2.pmeth < 5) {\n let magic = false;\n const [writestream2, extract6] = BufferWriteStream();\n const encoder = new PNGEncoder(writestream2);\n const decoder = new PNGDecoder(container.stream().getReader());\n for await (const [name, chunk, crc, offset] of decoder.chunks()) {\n if (magic && name != "IDAT")\n break;\n if (!magic && name == "IDAT") {\n const passed = import_buffer3.Buffer.from(injb);\n switch (csettings2.pmeth) {\n case 0:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM3, passed])), 0, 0]);\n break;\n case 1:\n xor(passed, password);\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM4, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 2:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM5, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 3:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM6, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 4:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM7, import_buffer3.Buffer.from(bs58.encode(passed))])), 0, 0]);\n break;\n }\n magic = true;\n }\n await encoder.insertchunk([name, chunk, crc, offset]);\n }\n await encoder.insertchunk([\n "IEND",\n buildChunk("IEND", import_buffer3.Buffer.from([])),\n 0,\n 0\n ]);\n return extract6();\n }\n let pdec = new PNGDecoder(container.stream().getReader());\n const concat = [];\n for await (const chk of pdec.chunks())\n if (chk[0] == "IDAT")\n concat.push(chk[1].slice(4));\n const comp = import_buffer3.Buffer.concat(concat);\n const head = comp.slice(0, 2);\n const chksum = comp.slice(-4);\n const idatblk = embedInRawDeflate(comp.slice(2, -4), injb);\n const [writestream, extract5] = BufferWriteStream();\n const penc = new PNGEncoder(writestream);\n pdec = new PNGDecoder(container.stream().getReader());\n let ins = false;\n for await (const chk of pdec.chunks()) {\n if (chk[0] != "IDAT") {\n await penc.insertchunk(chk);\n } else {\n if (!ins) {\n await penc.insertchunk(["IDAT", import_buffer3.Buffer.concat([import_buffer3.Buffer.from("IDAT"), head, idatblk, chksum]), 0, 0]);\n ins = true;\n }\n }\n }\n await penc.dtor();\n console.log("Finished writing");\n return extract5();\n};\nvar inject = async (container, links) => {\n links = links.map((link) => {\n for (const h of filehosts) {\n if (link.includes(h.serving)) {\n const end = link.split("/").slice(-1)[0];\n return `${prefs[h.serving]}${end}`;\n }\n }\n return "";\n });\n const injb = import_buffer3.Buffer.from(links.join(" "));\n return inject_data(container, injb);\n};\nvar has_embed = async (png) => {\n const r = await extract(png, false);\n return !!r;\n};\nvar pngv3_default = {\n extract,\n has_embed,\n inject,\n match: (fn) => !!fn.match(/\\.png$/)\n};\n\n// src/jpg.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer4 = __toESM(require_buffer(), 1);\n\n// src/f5stego.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction* f5get() {\n let extrBit = 0;\n let k = 0;\n for (let i = 0; i < 4; ++i) {\n const b2 = yield;\n k |= b2 << i;\n }\n k = (k & 15) + 1;\n let toread = 8;\n let len = 0;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const b = yield;\n toread += 8;\n if (b)\n toread += 7;\n else\n len *= 2;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const rlen = revbyte(len, b ? 23 : 16);\n len = rlen;\n if (len > 256)\n throw new Error("Too big for Smash");\n len *= 8;\n const chunks = [];\n const bw = new BitstreamWriter({\n write(chunk) {\n chunks.push(chunk);\n }\n });\n while (len) {\n extrBit = yield;\n bw.write(1, extrBit);\n len--;\n }\n bw.end();\n return Buffer2.concat(chunks).slice(0, rlen);\n}\nvar bitcode = new Array(65535);\nvar category = new Array(65535);\nvar std_dc_luminance_nrcodes = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\nvar std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_luminance_nrcodes = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\nvar std_ac_luminance_values = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nvar std_dc_chrominance_nrcodes = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\nvar std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_chrominance_nrcodes = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\nvar std_ac_chrominance_values = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nfunction _initCategoryNumber() {\n let nrlower = 1;\n let nrupper = 2;\n for (let cat = 1; cat <= 15; cat++) {\n for (let nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n for (let nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n}\n_initCategoryNumber();\nfunction _computeHuffmanTbl(nrcodes, std_table) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = [];\n for (let k = 1; k <= 16; k++) {\n for (let j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n}\nvar YDC_HT = _computeHuffmanTbl(std_dc_luminance_nrcodes, std_dc_luminance_values);\nvar UVDC_HT = _computeHuffmanTbl(std_dc_chrominance_nrcodes, std_dc_chrominance_values);\nvar YAC_HT = _computeHuffmanTbl(std_ac_luminance_nrcodes, std_ac_luminance_values);\nvar UVAC_HT = _computeHuffmanTbl(std_ac_chrominance_nrcodes, std_ac_chrominance_values);\nvar __raw, _jfif, _APPn, _qts, _frame, _tail, __f5write, _f5write_fn;\nvar f5stego = class {\n constructor(key2, maxPixels = 4096 * 4096) {\n this.maxPixels = maxPixels;\n __privateAdd(this, __f5write);\n __privateAdd(this, __raw, void 0);\n __privateAdd(this, _jfif, void 0);\n __privateAdd(this, _APPn, void 0);\n __privateAdd(this, _qts, void 0);\n __privateAdd(this, _frame, null);\n __privateAdd(this, _tail, null);\n }\n embed(image, data, k) {\n this.parse(image);\n this.f5put(data, k);\n return this.pack();\n }\n extract(image) {\n try {\n this.gengen = f5get();\n this.gengen.next();\n this.parse(image, true);\n return this.f5get();\n } catch (e) {\n if (e instanceof Buffer2)\n return e;\n throw e;\n }\n }\n f5put(data, k) {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let t, i, comp = __privateGet(this, _frame).components[0];\n if (data.length > 8388607)\n throw "Data too big. Max 8388607 bytes allowed.";\n if (data.length < 32768) {\n t = new Uint8Array(2 + data.length);\n t[0] = data.length & 255;\n t[1] = data.length >>> 8;\n t.set(data, 2);\n } else {\n t = new Uint8Array(3 + data.length);\n t[0] = data.length & 255;\n t[1] = (data.length >>> 8 & 127) + 128;\n t[2] = data.length >>> 15;\n t.set(data, 3);\n }\n if (comp.componentId != 1) {\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n return __privateMethod(this, __f5write, _f5write_fn).call(this, comp.blocks, t, k);\n }\n f5get() {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let comp = __privateGet(this, _frame).components[0];\n if (comp.componentId != 1) {\n for (let i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n const coeff = new Int16Array(comp.blocks.length);\n coeff.set(comp.blocks);\n let pos = -1, extrBit = 0, cCount = coeff.length - 1;\n let n, k = 0;\n let out = new Uint8Array(coeff.length / 8 | 0), extrByte = 0, outPos = 0, bitsAvail = 0, code = 0, hash = 0;\n while (bitsAvail < 4) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n k |= extrBit << bitsAvail;\n bitsAvail++;\n }\n k = (k & 15) + 1;\n n = (1 << k) - 1;\n bitsAvail = 0;\n if (k == 1) {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n extrByte |= extrBit << bitsAvail;\n bitsAvail++;\n if (bitsAvail == 8) {\n out[outPos++] = extrByte;\n extrByte = 0;\n bitsAvail = 0;\n }\n }\n } else {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n hash ^= extrBit * ++code;\n if (code == n) {\n extrByte |= hash << bitsAvail;\n bitsAvail += k;\n code = 0;\n hash = 0;\n while (bitsAvail >= 8) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n }\n }\n }\n while (bitsAvail > 0) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n let s = 2, l = out[0];\n if (out[1] & 128) {\n s++;\n l += ((out[1] & 127) << 8) + (out[2] << 15);\n } else {\n l += out[1] << 8;\n }\n return out.subarray(s, s + l);\n }\n parse(data, tolerant = false) {\n let offset = 0;\n function _buildHuffmanTable(nrcodes, values) {\n let codevalue = 0, pos_in_table = 0, HT = new Uint16Array(65536);\n for (let k = 0; k < 16; k++) {\n for (let j2 = 0; j2 < nrcodes[k]; j2++) {\n for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) {\n HT[i2] = values[pos_in_table] + (k + 1 << 8);\n }\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => {\n let startOffset = offset2, bitsData = 0, bitsCount = 0, eobrun = 0, p1 = 1 << successive, m1 = -1 << successive;\n const prevpos = 0;\n const decodeBaseline = (component2, pos) => {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n let diff = 0;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff;\n let k2 = 1, s, r;\n while (k2 < 64) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n bitsCount -= s;\n k2++;\n }\n };\n function decodeDCFirst(component2, pos) {\n let diff = 0;\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff << successive;\n }\n function decodeDCSuccessive(component2, pos) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocksDC[pos >> 6] |= (bitsData >>> --bitsCount & 1) << successive;\n }\n if (!frame)\n throw "Frame not parsed yet";\n function decodeACFirst(component2, pos) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k2 = spectralStart, s, r;\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r != 15) {\n eobrun = (1 << r) - 1;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n bitsCount -= s;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n component2.blocks[pos + k2] *= p1;\n k2++;\n }\n }\n function decodeACSuccessive(component2, pos) {\n let k2 = spectralStart, r, s;\n if (frame == null)\n throw "Frame not defined";\n if (!eobrun) {\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s) {\n if (s != 1)\n throw "bad jpeg";\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n s = bitsData >>> --bitsCount & 1 ? p1 : m1;\n } else {\n if (r != 15) {\n eobrun = 1 << r;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n }\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n } else {\n if (--r < 0)\n break;\n }\n k2++;\n }\n if (s)\n component2.blocks[pos + k2] = s;\n k2++;\n }\n }\n if (eobrun) {\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n }\n k2++;\n }\n eobrun--;\n }\n }\n let decodeFn;\n if (frame.progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y;\n let lastflushidx = 0;\n const flushBits = () => {\n if (!this.gengen)\n return;\n const component2 = components.find((e) => e.componentId == 1);\n while (component2.blocks[lastflushidx + 1] !== void 0) {\n const blk = component2.blocks[lastflushidx];\n if (blk != 0) {\n const v = blk < 0 ? 1 - (blk & 1) : blk & 1;\n const it = this.gengen.next(v);\n if (it.done) {\n throw it.value;\n }\n }\n lastflushidx++;\n }\n };\n if (components.length == 1) {\n mcusPerLine = components[0].blocksPerLine;\n mcusPerRow = components[0].blocksPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64);\n }\n }\n flushBits();\n }\n } else {\n mcusPerLine = frame.mcusPerLine;\n mcusPerRow = frame.mcusPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n for (j2 = 0; j2 < components[i2].v; j2++) {\n for (k = 0; k < components[i2].h; k++) {\n decodeFn(components[i2], ((y * components[i2].v + j2) * components[i2].blocksPerLineForMcu + x * components[i2].h + k) * 64);\n }\n }\n }\n }\n flushBits();\n }\n }\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n return offset2 - startOffset;\n };\n function readUint16() {\n const value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n __privateSet(this, __raw, data);\n __privateSet(this, _jfif, null);\n __privateSet(this, _APPn, []);\n __privateSet(this, _qts, []);\n __privateSet(this, _frame, null);\n __privateSet(this, _tail, null);\n let markerHi, markerLo, i, j, resetInterval, component;\n const huffmanTablesAC = [];\n const huffmanTablesDC = [];\n while (1) {\n if (offset >= data.length) {\n if (tolerant)\n break;\n throw "unexpected EOF";\n }\n markerHi = data[offset++];\n markerLo = data[offset++];\n if (markerHi == 255) {\n if (markerLo == 224) {\n __privateSet(this, _jfif, readDataBlock());\n }\n if (markerLo > 224 && markerLo < 240 || markerLo == 254) {\n __privateGet(this, _APPn).push({\n "app": markerLo,\n "data": readDataBlock()\n });\n }\n if (markerLo == 219) {\n __privateGet(this, _qts).push(readDataBlock());\n }\n if (markerLo >= 192 && markerLo <= 194) {\n if (__privateGet(this, _frame))\n throw "Only single frame JPEGs supported";\n readUint16();\n __privateSet(this, _frame, {\n "extended": markerLo === 193,\n "progressive": markerLo === 194,\n "precision": data[offset++],\n "scanLines": readUint16(),\n "samplesPerLine": readUint16(),\n "components": [],\n "componentIds": {},\n "maxH": 1,\n "maxV": 1\n });\n if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels)\n throw "Image is too big.";\n var componentsCount = data[offset++], componentId;\n let maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h)\n maxH = h;\n if (maxV < v)\n maxV = v;\n const qId = data[offset + 2];\n const l = __privateGet(this, _frame).components.push({\n componentId,\n h,\n v,\n quantizationTable: qId\n });\n __privateGet(this, _frame).componentIds[componentId] = l - 1;\n offset += 3;\n }\n __privateGet(this, _frame).maxH = maxH;\n __privateGet(this, _frame).maxV = maxV;\n const mcusPerLine = Math.ceil(__privateGet(this, _frame).samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(__privateGet(this, _frame).scanLines / 8 / maxV);\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n component = __privateGet(this, _frame).components[i];\n const blocksPerLine = Math.ceil(Math.ceil(__privateGet(this, _frame).samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(__privateGet(this, _frame).scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n __privateGet(this, _frame).components[i] = {\n ...component,\n blocks: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu * 64),\n blocksDC: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu),\n blocksPerLine,\n blocksPerColumn,\n blocksPerLineForMcu,\n blocksPerColumnForMcu\n };\n }\n __privateGet(this, _frame).mcusPerLine = mcusPerLine;\n __privateGet(this, _frame).mcusPerColumn = mcusPerColumn;\n }\n if (markerLo == 196) {\n const huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n const v = _buildHuffmanTable(codeLengths, huffmanValues);\n if (huffmanTableSpec >> 4 === 0)\n huffmanTablesDC[huffmanTableSpec & 15] = v;\n else\n huffmanTablesAC[huffmanTableSpec & 15] = v;\n }\n }\n if (markerLo == 221) {\n resetInterval = readUint16();\n }\n if (markerLo == 218) {\n if (__privateGet(this, _frame) == null)\n throw "SOS before SOF";\n readUint16();\n const selectorsCount = data[offset++];\n const components = [];\n for (i = 0; i < selectorsCount; i++) {\n const componentIndex = __privateGet(this, _frame).componentIds[data[offset++]];\n component = __privateGet(this, _frame).components[componentIndex];\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset, __privateGet(this, _frame), components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n }\n if (markerLo == 217) {\n break;\n }\n } else {\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n }\n while (data[offset] != 255 && offset < data.length) {\n offset++;\n }\n if (data[offset] != 255) {\n throw "bad jpeg ";\n }\n }\n }\n if (!__privateGet(this, _frame))\n throw "bad jpeg";\n if (offset < data.length)\n __privateSet(this, _tail, data.subarray(offset));\n return this;\n }\n pack() {\n let byteout;\n let bytenew;\n let bytepos;\n let poslast;\n let outpos;\n let byte;\n function writeByte(value) {\n let t;\n byteout[outpos++] = value;\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function writeBlock(block) {\n let t;\n if (outpos + block.length > poslast) {\n t = new Uint8Array(byteout.length * 2 + block.length);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n byteout.set(block, outpos);\n outpos += block.length;\n }\n function writeAPP0(self2) {\n writeWord(65504);\n if (!__privateGet(self2, _jfif)) {\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n } else {\n writeWord(__privateGet(self2, _jfif).length + 2);\n writeBlock(__privateGet(self2, _jfif));\n }\n }\n function writeDQT(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _qts).length; i2++) {\n writeWord(65499);\n writeWord(__privateGet(self2, _qts)[i2].length + 2);\n writeBlock(__privateGet(self2, _qts)[i2]);\n }\n }\n function writeAPPn(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _APPn).length; i2++) {\n writeWord(65280 | __privateGet(self2, _APPn)[i2].app);\n writeWord(__privateGet(self2, _APPn)[i2].data.length + 2);\n writeBlock(__privateGet(self2, _APPn)[i2].data);\n }\n }\n function writeSOF0(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65472);\n writeWord(8 + __privateGet(self2, _frame).components.length * 3);\n writeByte(__privateGet(self2, _frame).precision);\n writeWord(__privateGet(self2, _frame).scanLines);\n writeWord(__privateGet(self2, _frame).samplesPerLine);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n writeByte(c2.h << 4 | c2.v);\n writeByte(c2.quantizationTable);\n }\n }\n function writeDHT(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65476);\n writeWord(31);\n writeByte(0);\n for (let i2 = 0; i2 < 16; i2++) {\n writeByte(std_dc_luminance_nrcodes[i2 + 1]);\n }\n for (let j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(16);\n for (let k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (let l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n if (__privateGet(self2, _frame).components.length != 1) {\n writeWord(65476);\n writeWord(31);\n writeByte(1);\n for (let m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (let n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(17);\n for (let o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (let p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n }\n function writeSOS(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65498);\n writeWord(6 + __privateGet(self2, _frame).components.length * 2);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n if (i2 === 0) {\n writeByte(0);\n } else {\n writeByte(17);\n }\n }\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(comp, POS, DC, HTDC, HTAC) {\n let pos, posval, t;\n if (bytepos === 0)\n bytenew = 0;\n if (!("blocks" in comp))\n throw "Blocks not parsed";\n const Diff = comp.blocksDC[POS >> 6] - DC;\n DC = comp.blocksDC[POS >> 6];\n if (Diff === 0) {\n posval = HTDC[0][1];\n bytenew <<= posval;\n bytenew += HTDC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n } else {\n pos = 32767 + Diff;\n posval = HTDC[category[pos]][1];\n bytenew <<= posval;\n bytenew += HTDC[category[pos]][0];\n bytepos += posval;\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n let end0pos = 63;\n for (; end0pos > 0 && comp.blocks[POS + end0pos] === 0; end0pos--) {\n }\n if (end0pos === 0) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n return DC;\n }\n let i2 = 1;\n let lng;\n while (i2 <= end0pos) {\n const startpos = i2;\n for (; comp.blocks[POS + i2] === 0 && i2 <= end0pos; ++i2) {\n }\n let nrzeroes = i2 - startpos;\n if (nrzeroes >= 16) {\n lng = nrzeroes >> 4;\n for (let nrmarker = 1; nrmarker <= lng; ++nrmarker) {\n posval = HTAC[240][1];\n bytenew <<= posval;\n bytenew += HTAC[240][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + comp.blocks[POS + i2];\n posval = HTAC[(nrzeroes << 4) + category[pos]][1];\n bytenew <<= posval;\n bytenew += HTAC[(nrzeroes << 4) + category[pos]][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n i2++;\n }\n if (end0pos != 63) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n return DC;\n }\n byteout = new Uint8Array(65536);\n poslast = 65536 - 128;\n outpos = 0;\n bytenew = 0;\n bytepos = 0;\n writeWord(65496);\n writeAPP0(this);\n writeAPPn(this);\n writeDQT(this);\n writeSOF0(this);\n writeDHT(this);\n writeSOS(this);\n bytenew = 0;\n bytepos = 0;\n if (!__privateGet(this, _frame))\n throw "Frame not ready";\n let c, mcuRow, mcuCol, blockRow, blockCol, mcu, i, v, h;\n const DCdiff = [];\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n DCdiff.push(0);\n }\n for (mcu = 0; mcu < __privateGet(this, _frame).mcusPerLine * __privateGet(this, _frame).mcusPerColumn; mcu++) {\n mcuRow = mcu / __privateGet(this, _frame).mcusPerLine | 0;\n mcuCol = mcu % __privateGet(this, _frame).mcusPerLine;\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n c = __privateGet(this, _frame).components[i];\n for (v = 0; v < c.v; v++) {\n blockRow = mcuRow * c.v + v;\n for (h = 0; h < c.h; h++) {\n blockCol = mcuCol * c.h + h;\n if (i === 0) {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], YDC_HT, YAC_HT);\n } else {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], UVDC_HT, UVAC_HT);\n }\n }\n }\n }\n }\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n }\n if (bytepos > 0) {\n bytenew <<= 8 - bytepos;\n bytenew += (1 << 8 - bytepos) - 1;\n byteout[outpos++] = 255 & bytenew;\n }\n writeWord(65497);\n if (__privateGet(this, _tail))\n writeBlock(__privateGet(this, _tail));\n return byteout.slice(0, outpos);\n }\n};\n__raw = new WeakMap();\n_jfif = new WeakMap();\n_APPn = new WeakMap();\n_qts = new WeakMap();\n_frame = new WeakMap();\n_tail = new WeakMap();\n__f5write = new WeakSet();\n_f5write_fn = function(coeff, data, k) {\n const coeff_count = coeff.length;\n let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, n, ii;\n let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0;\n n = (1 << k) - 1;\n byte_to_embed = k - 1;\n byte_to_embed ^= 0;\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed = 3;\n for (ii = 0; ii < coeff_count; ii++) {\n shuffled_index = ii;\n if (shuffled_index % 64 === 0 || coeff[shuffled_index] === 0)\n continue;\n const cc = coeff[shuffled_index];\n _examined++;\n if (cc > 0 && (cc & 1) != next_bit_to_embed) {\n coeff[shuffled_index]--;\n _changed++;\n } else if (cc < 0 && (cc & 1) == next_bit_to_embed) {\n coeff[shuffled_index]++;\n _changed++;\n }\n if (coeff[shuffled_index] !== 0) {\n _embedded++;\n if (available_bits_to_embed === 0) {\n if (k != 1 || data_idx >= data.length)\n break;\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n } else {\n _thrown++;\n }\n }\n if (k == 1 && _embedded < data.length * 8)\n throw "capacity exceeded " + _embedded / 8 + " " + data.length;\n if (k != 1) {\n let is_last_byte = false, k_bits_to_embed = 0;\n while (!is_last_byte || available_bits_to_embed !== 0 && is_last_byte) {\n k_bits_to_embed = 0;\n for (i = 0; i < k; i++) {\n if (available_bits_to_embed === 0) {\n if (data_idx >= data.length) {\n is_last_byte = true;\n break;\n }\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n k_bits_to_embed |= next_bit_to_embed << i;\n }\n const code_word = [];\n let ci = null;\n for (i = 0; i < n; i++) {\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n code_word.push(ci);\n }\n _examined += n;\n while (true) {\n var vhash = 0, extracted_bit;\n for (i = 0; i < code_word.length; i++) {\n if (coeff[code_word[i]] > 0) {\n extracted_bit = coeff[code_word[i]] & 1;\n } else {\n extracted_bit = 1 - (coeff[code_word[i]] & 1);\n }\n if (extracted_bit == 1)\n vhash ^= i + 1;\n }\n i = vhash ^ k_bits_to_embed;\n if (!i) {\n _embedded += k;\n break;\n }\n i--;\n coeff[code_word[i]] += coeff[code_word[i]] < 0 ? 1 : -1;\n _changed++;\n if (coeff[code_word[i]] === 0) {\n _thrown++;\n code_word.splice(i, 1);\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n _examined++;\n code_word.push(ci);\n } else {\n _embedded += k;\n break;\n }\n }\n }\n }\n return {\n "k": k,\n "embedded": _embedded / 8,\n "examined": _examined,\n "changed": _changed,\n "thrown": _thrown,\n "efficiency": (_embedded / _changed).toFixed(2)\n };\n};\n\n// src/jpg.ts\nvar key = import_buffer4.Buffer.from("CUNNYCUNNYCUNNY");\nvar f5inst = new f5stego(key);\nvar inject2 = async (b, links) => {\n if (b.size / 20 < links.join(" ").length)\n throw "Image too small to embed.";\n const arr = new Uint8Array(new Uint8Array(await b.arrayBuffer()));\n const buff = f5inst.embed(arr, new TextEncoder().encode(links.join(" ")), 1);\n return import_buffer4.Buffer.from(buff);\n};\nvar has_embed2 = (b) => {\n try {\n const res = f5inst.extract(b);\n if (!res)\n return false;\n if (res.length > 1024)\n return false;\n const str = import_buffer4.Buffer.from(res).toString();\n if (!str.match(/^[a-zA-Z0-9:/.\\-_ ]+$/))\n return false;\n return str;\n } catch {\n return false;\n }\n};\nvar extract2 = (b, ex) => {\n return decodeCoom3Payload(import_buffer4.Buffer.from(ex));\n};\nvar jpg_default = {\n match: (fn) => !!fn.match(/\\.jpe?g$/),\n has_embed: has_embed2,\n extract: extract2,\n inject: inject2\n};\n\n// src/thirdeye.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer5 = __toESM(require_buffer(), 1);\nvar import_jpeg_js = __toESM(require_jpeg_js(), 1);\n\n// src/phash.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar median = (data) => {\n const mdarr = data.slice(0);\n mdarr.sort((a, b) => a - b);\n if (mdarr.length % 2 === 0)\n return (mdarr[mdarr.length / 2 - 1] + mdarr[mdarr.length / 2]) / 2;\n return mdarr[Math.floor(mdarr.length / 2)];\n};\nvar translate_blocks_to_bits = function(blocks, pixels_per_block) {\n const half_block_value = pixels_per_block * 256 * 3 / 2;\n const bandsize = blocks.length / 4;\n for (let i = 0; i < 4; i++) {\n const m = median(blocks.slice(i * bandsize, (i + 1) * bandsize));\n for (let j = i * bandsize; j < (i + 1) * bandsize; j++) {\n const v = blocks[j];\n blocks[j] = Number(v > m || Math.abs(v - m) < 1 && m > half_block_value);\n }\n }\n};\nvar bits_to_hexhash = (bitsArray) => {\n const hex = [];\n for (let i = 0; i < bitsArray.length; i += 4) {\n const nibble = bitsArray.slice(i, i + 4);\n hex.push(parseInt(nibble.join(""), 2).toString(16));\n }\n return hex.join("");\n};\nvar bmvbhash_even = (data, bits) => {\n const blocksize_x = Math.floor(data.width / bits);\n const blocksize_y = Math.floor(data.height / bits);\n const result = [];\n for (let y = 0; y < bits; y++) {\n for (let x = 0; x < bits; x++) {\n let total = 0;\n for (let iy = 0; iy < blocksize_y; iy++) {\n for (let ix = 0; ix < blocksize_x; ix++) {\n const cx = x * blocksize_x + ix;\n const cy = y * blocksize_y + iy;\n const ii = (cy * data.width + cx) * 4;\n const alpha = data.data[ii + 3];\n if (alpha === 0) {\n total += 765;\n } else {\n total += data.data[ii] + data.data[ii + 1] + data.data[ii + 2];\n }\n }\n }\n result.push(total);\n }\n }\n translate_blocks_to_bits(result, blocksize_x * blocksize_y);\n return bits_to_hexhash(result);\n};\n\n// src/thirdeye.ts\nvar csettings3;\nsettings.subscribe((b) => {\n csettings3 = b;\n});\nvar gelquirk = (prefix) => (a) => {\n let base = a.post || a.data || a;\n if (!Array.isArray(base))\n return [];\n base = base.filter((e) => e.file_url);\n return base.map((e) => ({\n full_url: e.file_url,\n preview_url: e.preview_url || e.preview_url,\n source: e.source,\n ext: e.file_ext || e.file_url.substr(e.file_url.lastIndexOf(".") + 1),\n page: `${prefix}${e.id || e.parent_id}`,\n tags: (e.tag_string || (e.tags && (Array.isArray(e.tags) && (typeof e.tags[0] == "string" ? e.tags.join(" ") : e.tags.map((e2) => e2.name_en).join(" "))) || e.tags) || "").split(" ")\n })) || [];\n};\nvar experimentalApi = false;\nvar black = /* @__PURE__ */ new Set();\nvar phashEn = false;\nvar mindist = 5;\nsettings.subscribe((s) => {\n if (!s)\n return;\n experimentalApi = s.expte;\n boorus = s.rsources.map((e) => ({\n ...e,\n quirks: gelquirk(e.view)\n }));\n black = new Set(s.blacklist);\n mindist = s.mdist || 5;\n phashEn = s.phash;\n});\nvar boorus = [];\nvar unlockQueue = Promise.resolve();\nvar cache = {};\nvar findFileFrom = async (b, hex, abort) => {\n try {\n if (b.domain in cache && hex in cache[b.domain])\n return cache[b.domain][hex];\n const res = await ifetch(`https://${b.domain}${b.endpoint}${hex}`);\n const txt = await res.text();\n const pres = JSON.parse(txt);\n const tran = b.quirks(pres).filter((e) => !e.tags.some((e2) => black.has(e2)));\n if (!(b.domain in cache))\n cache[b.domain] = {};\n cache[b.domain][hex] = tran;\n return tran;\n } catch (e) {\n const error = e;\n if (!error.message.includes("Unexpected end of JSON input"))\n console.error(e);\n return [];\n }\n};\nvar extract3 = async (b, fn) => {\n if (!csettings3)\n throw new Error("Settings uninit");\n let result;\n let booru;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n if (result.length) {\n booru = e.name;\n break;\n }\n }\n let cachedFile;\n const prev = result[0].preview_url;\n const full = result[0].full_url;\n return [{\n source: result[0].source,\n page: {\n title: booru,\n url: result[0].page\n },\n filename: fn.substring(0, 33) + result[0].ext,\n thumbnail: csettings3.hotlink ? prev || full : import_buffer5.Buffer.from(await (await ifetch(prev || full)).arrayBuffer()),\n data: csettings3.hotlink ? full || prev : { url: full || prev }\n }];\n};\nvar phash = (b) => {\n const res = (0, import_jpeg_js.decode)(b);\n return bmvbhash_even(res, 8);\n};\nvar hammingDist = (a, b) => {\n let res = BigInt("0x" + a) ^ BigInt("0x" + b);\n let acc = 0;\n while (res != 0n) {\n acc += Number(res & 1n);\n res >>= 1n;\n }\n return acc;\n};\nvar has_embed3 = async (b, fn, prevlink) => {\n if (import_buffer5.Buffer.from(fn, "hex").equals(b))\n return false;\n let result = void 0;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n result = result.filter((e2) => e2.full_url || e2.preview_url);\n if (result.length)\n break;\n }\n if (result && result.length != 0 && phashEn && prevlink) {\n if (!result[0].preview_url)\n return true;\n const getHash = async (l) => {\n const ogreq = await ifetch(l);\n const origPreview = await ogreq.arrayBuffer();\n return phash(import_buffer5.Buffer.from(origPreview));\n };\n const [orighash, tehash] = await Promise.all([\n getHash(prevlink),\n getHash(result[0].preview_url)\n ]);\n const d = hammingDist(orighash, tehash);\n console.log(d, prevlink);\n return d > mindist;\n }\n return result && result.length != 0;\n};\nvar thirdeye_default = {\n skip: true,\n extract: extract3,\n has_embed: has_embed3,\n match: (fn) => !!fn.match(/^[0-9a-f]{32}\\.....?/)\n};\n\n// src/pomf.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer6 = __toESM(require_buffer(), 1);\nvar sources = [\n { host: "Catbox", prefix: "files.catbox.moe/" },\n { host: "Litter", prefix: "litter.catbox.moe/" },\n { host: "Zzzz", prefix: "z.zz.fo/" }\n];\nvar csettings4;\nsettings.subscribe((b) => {\n csettings4 = b;\n});\nvar getExt = (fn) => {\n const isB64 = fn.match(/^((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=))?\\.(gif|jpe?g|png|webm)/);\n const isExt = fn.match(/\\[.*=(.*)\\]/);\n let ext;\n let source;\n try {\n if (isB64) {\n ext = atob(isB64[1]);\n } else if (isExt) {\n ext = decodeURIComponent(isExt[1]);\n if (ext.startsWith("https://"))\n ext = ext.slice("https://".length);\n for (const cs of sources)\n if (ext.startsWith(cs.prefix)) {\n source = cs.prefix;\n ext = ext.slice(cs.prefix.length);\n break;\n }\n }\n } catch {\n }\n return { ext, source };\n};\nvar extract4 = async (b, fn) => {\n if (!csettings4)\n throw new Error("Settings uninit");\n const { ext, source } = getExt(fn);\n let rsource;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n await getHeaders("https://" + cs.prefix + ext);\n rsource = "https://" + cs.prefix + ext;\n break;\n } catch {\n }\n }\n return [{\n filename: ext,\n data: csettings4.hotlink ? rsource : { url: rsource },\n thumbnail: import_buffer6.Buffer.from(hasembed_default)\n }];\n};\nvar has_embed4 = async (b, fn) => {\n const { ext, source } = getExt(fn);\n if (!ext)\n return false;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n const e = await getHeaders("https://" + cs.prefix + ext);\n return true;\n } catch {\n }\n }\n return false;\n};\nvar pomf_default = {\n skip: true,\n extract: extract4,\n has_embed: has_embed4,\n match: (fn) => !!getExt(fn)\n};\n\n// src/processor.worker.ts\nconsole.log("Worker started");\nvar pendinggens = {};\nvar proxyAsyncGen = (id) => {\n return {\n next(arg) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n return(v) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n throw() {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n [Symbol.asyncIterator]() {\n return this;\n }\n };\n};\nvar deserializeMessage = (m) => {\n if (m instanceof MessagePort)\n return m;\n if (typeof m == "object" && m.type == "AsyncGenerator") {\n return proxyAsyncGen(m.id);\n }\n if (typeof m == "object") {\n for (const p in m) {\n m[p] = deserializeMessage(m[p]);\n }\n }\n return m;\n};\nvar processors = [thirdeye_default, pomf_default, pngv3_default, jpg_default];\nvar processImage = async (srcs, fn, hex, prevurl) => {\n const ret = await Promise.all(processors.filter((e) => e.match(fn)).map(async (proc) => {\n if (proc.skip) {\n const md5 = Buffer2.from(hex, "base64");\n if (await proc.has_embed(md5, fn, prevurl) === true) {\n return [await proc.extract(md5, fn), true];\n }\n return;\n }\n let succ = false;\n let cumul;\n do {\n try {\n const n = await srcs.next();\n if (n.done)\n return;\n const iter = streamRemote(n.value);\n if (!iter)\n return;\n cumul = Buffer2.alloc(0);\n let found;\n let chunk = { done: true };\n do {\n const { value, done } = await iter.next(typeof found === "boolean");\n if (done) {\n chunk = { done: true };\n } else {\n chunk = { done: false, value };\n cumul = Buffer2.concat([cumul, value]);\n const v = await proc.has_embed(cumul);\n if (typeof v == "string") {\n return [await proc.extract(cumul, v), false];\n }\n found = v;\n }\n } while (found !== false && !chunk.done);\n succ = true;\n await iter.next(true);\n if (found !== true) {\n return;\n }\n return [await proc.extract(cumul), false];\n } catch (err) {\n console.log(err);\n }\n } while (!succ);\n }));\n return ret.filter((e) => e).map((e) => e);\n};\nvar init2 = false;\n(async () => {\n onmessage = async (msg) => {\n const des = deserializeMessage(msg.data);\n switch (des.type) {\n case "ipc": {\n setupPort(des.port);\n const nset = await localLoad("settingsv2", initial_settings);\n settings.set(nset);\n break;\n }\n case "cmd": {\n switch (des.fun) {\n case "processImage": {\n if (!init2) {\n await new Promise((_) => {\n settings.subscribe((v) => {\n if (v)\n _();\n });\n });\n init2 = true;\n }\n const res = await processImage(des.args[0], des.args[1], des.args[2], des.args[3]);\n const tr = [];\n for (const ef of res) {\n for (const e of ef[0]) {\n if (e.thumbnail && Buffer2.isBuffer(e.thumbnail) || typeof e.thumbnail != "string")\n tr.push(e.thumbnail.buffer);\n if (Buffer2.isBuffer(e.data) || typeof e.data != "string" && !("url" in e.data))\n tr.push(e.data.buffer);\n }\n }\n postMessage({\n type: "reply",\n id: des.id,\n res\n }, [...new Set(tr)]);\n }\n }\n break;\n }\n case "ag": {\n const cb = pendinggens[des.id].shift();\n if (cb) {\n cb(des.res);\n }\n break;\n }\n }\n };\n})();\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n'); } // src/main.ts @@ -21807,12 +21834,16 @@ Use the WebExtension version of PEE if you want to use b4k!`); } } }); - const meta = document.querySelector('meta[name="referrer"]'); + let meta = document.querySelector('meta[name="referrer"]'); const customStyles = document.createElement("style"); customStyles.appendChild(document.createTextNode(global_default)); document.documentElement.insertBefore(customStyles, null); if (!navigator.userAgent.includes("Firefox") && meta) meta.setAttribute("content", "no-referrer"); + meta = document.createElement("meta"); + meta.setAttribute("http-equiv", "Content-Security-Policy"); + meta.setAttribute("content", "worker-src 'self' blob:"); + document.head.append(meta); appState.set({ ...cappState, is4chanX }); const lqp = getQueryProcessor(is4chanX); if (!lqp) @@ -21912,6 +21943,35 @@ Use the WebExtension version of PEE if you want to use b4k!`); mo2.observe(document.documentElement, { childList: true, subtree: true }); await bodyInit; } + document.addEventListener("QRDialogCreation", (e) => { + const a = document.createElement("span"); + const po = new PostOptions_default({ + target: a, + props: { processors, textinput: (e.detail || e.target).querySelector("textarea") } + }); + let prevFile; + let target; + const somethingChanged = async (m) => { + const currentFile = await getSelectedFile(); + if (prevFile != currentFile) { + prevFile = currentFile; + document.dispatchEvent(new CustomEvent("PEEFile", { detail: prevFile })); + } + }; + const obs = new MutationObserver(somethingChanged); + if (!cappState.is4chanX) { + target = e.detail; + a.style.display = "inline-block"; + target.querySelector("input[type=submit]")?.insertAdjacentElement("beforebegin", a); + const filesinp = target.querySelector("#qrFile"); + filesinp.addEventListener("change", somethingChanged); + } else { + target = e.target; + target.querySelector("#qr-filename-container")?.appendChild(a); + const filesinp = target.querySelector("#file-n-submit"); + obs.observe(filesinp, { attributes: true }); + } + }, { once: !cappState.is4chanX }); try { cp = new CommandProcessor(); } catch { @@ -21919,7 +21979,6 @@ Use the WebExtension version of PEE if you want to use b4k!`); fireNotification("error", "The page you're on has a CSP that prevents PEE from functionning properly.\n\n If using 4chanX, Add 'blob:' to the JS whitelist. Else, install PEE-companion."); else fireNotification("error", "You may be using 4chanX\n\nGo to 4chanX's settings, Advanced > JS Whitelist and add 'blob:' without quotes to the list."); - return; } if (!is4chanX && location.host.startsWith("boards.4chan")) { const notificationHost = document.createElement("span"); @@ -22037,35 +22096,6 @@ Use the WebExtension version of PEE if you want to use b4k!`); } } }); - document.addEventListener("QRDialogCreation", (e) => { - const a = document.createElement("span"); - const po = new PostOptions_default({ - target: a, - props: { processors, textinput: (e.detail || e.target).querySelector("textarea") } - }); - let prevFile; - let target; - const somethingChanged = async (m) => { - const currentFile = await getSelectedFile(); - if (prevFile != currentFile) { - prevFile = currentFile; - document.dispatchEvent(new CustomEvent("PEEFile", { detail: prevFile })); - } - }; - const obs = new MutationObserver(somethingChanged); - if (!cappState.is4chanX) { - target = e.detail; - a.style.display = "inline-block"; - target.querySelector("input[type=submit]")?.insertAdjacentElement("beforebegin", a); - const filesinp = target.querySelector("#qrFile"); - filesinp.addEventListener("change", somethingChanged); - } else { - target = e.target; - target.querySelector("#qr-filename-container")?.appendChild(a); - const filesinp = target.querySelector("#file-n-submit"); - obs.observe(filesinp, { attributes: true }); - } - }, { once: !cappState.is4chanX }); function processAttachments(post, ress) { if (ress.length == 0) return; diff --git a/firefox/dist/background.js b/firefox/dist/background.js index 36f3f50..c2262e9 100644 --- a/firefox/dist/background.js +++ b/firefox/dist/background.js @@ -1947,13 +1947,6 @@ ctor[k] = bridge(k, ctor[k]); }; if (false) { - popupport = chrome.runtime.connect({ name: "popup" }); - popupport.onMessage.addListener((msg) => { - if (msg.id in pendingcmds) { - pendingcmds[msg.id](msg); - delete pendingcmds[msg.id]; - } - }); } var Platform = class { static async openInTab(src, opts) { diff --git a/firefox/dist/main.js b/firefox/dist/main.js index 5bd85da..a72a7d7 100644 --- a/firefox/dist/main.js +++ b/firefox/dist/main.js @@ -73,7 +73,7 @@ var define_BUILD_VERSION_default; var init_define_BUILD_VERSION = __esm({ ""() { - define_BUILD_VERSION_default = [0, 323]; + define_BUILD_VERSION_default = [0, 324]; } }); @@ -8585,13 +8585,6 @@ var popupport; var pendingcmds = {}; if (false) { - popupport = chrome.runtime.connect({ name: "popup" }); - popupport.onMessage.addListener((msg) => { - if (msg.id in pendingcmds) { - pendingcmds[msg.id](msg); - delete pendingcmds[msg.id]; - } - }); } var Platform = class { static async openInTab(src, opts) { @@ -21639,7 +21632,7 @@ // src/processor.worker.ts function Worker2() { - return inlineWorker('var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));\nvar __decorateClass = (decorators, target, key2, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key2) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key2, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key2, result);\n return result;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError("Cannot " + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, "read from private field");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError("Cannot add the same private member more than once");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, "write to private field");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, "access private method");\n return method;\n};\nvar __toBinary = /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++)\n table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);\n for (var i2 = 0, j = 0; i2 < n; ) {\n var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n bytes[j++] = c0 << 2 | c1 >> 4;\n bytes[j++] = c1 << 4 | c2 >> 2;\n bytes[j++] = c2 << 6 | c3;\n }\n return bytes;\n };\n})();\n\n// \nvar init_define_BUILD_VERSION = __esm({\n ""() {\n }\n});\n\n// node_modules/base64-js/index.js\nvar require_base64_js = __commonJS({\n "node_modules/base64-js/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;\n var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\n for (i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n var i;\n var len;\n revLookup["-".charCodeAt(0)] = 62;\n revLookup["_".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error("Invalid string. Length must be a multiple of 4");\n }\n var validLen = b64.indexOf("=");\n if (validLen === -1)\n validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join("");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");\n }\n return parts.join("");\n }\n }\n});\n\n// node_modules/ieee754/index.js\nvar require_ieee754 = __commonJS({\n "node_modules/ieee754/index.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n});\n\n// node_modules/buffer/index.js\nvar require_buffer = __commonJS({\n "node_modules/buffer/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var base64 = require_base64_js();\n var ieee7542 = require_ieee754();\n var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null;\n exports.Buffer = Buffer13;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n Buffer13.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer13.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") {\n console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");\n }\n function typedArraySupport() {\n try {\n const arr = new Uint8Array(1);\n const proto = { foo: function() {\n return 42;\n } };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer13.prototype, "parent", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer13.prototype, "offset", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\'The value "\' + length + \'" is invalid for option "size"\');\n }\n const buf2 = new Uint8Array(length);\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function Buffer13(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n if (typeof encodingOrOffset === "string") {\n throw new TypeError(\'The "string" argument must be of type string. Received type number\');\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer13.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === "string") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === "number") {\n throw new TypeError(\'The "value" argument must not be of type number. Received type number\');\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer13.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b)\n return b;\n if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") {\n return Buffer13.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length);\n }\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n Buffer13.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer13.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer13, Uint8Array);\n function assertSize(size) {\n if (typeof size !== "number") {\n throw new TypeError(\'"size" argument must be of type number\');\n } else if (size < 0) {\n throw new RangeError(\'The value "\' + size + \'" is invalid for option "size"\');\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer13.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer13.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer13.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== "string" || encoding === "") {\n encoding = "utf8";\n }\n if (!Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf2 = createBuffer(length);\n const actual = buf2.write(string, encoding);\n if (actual !== length) {\n buf2 = buf2.slice(0, actual);\n }\n return buf2;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf2 = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf2[i] = array[i] & 255;\n }\n return buf2;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\'"offset" is outside of buffer bounds\');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\'"length" is outside of buffer bounds\');\n }\n let buf2;\n if (byteOffset === void 0 && length === void 0) {\n buf2 = new Uint8Array(array);\n } else if (length === void 0) {\n buf2 = new Uint8Array(array, byteOffset);\n } else {\n buf2 = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function fromObject(obj) {\n if (Buffer13.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf2 = createBuffer(len);\n if (buf2.length === 0) {\n return buf2;\n }\n obj.copy(buf2, 0, 0, len);\n return buf2;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== "number" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === "Buffer" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer13.alloc(+length);\n }\n Buffer13.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer13.prototype;\n };\n Buffer13.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array))\n a = Buffer13.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array))\n b = Buffer13.from(b, b.offset, b.byteLength);\n if (!Buffer13.isBuffer(a) || !Buffer13.isBuffer(b)) {\n throw new TypeError(\'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array\');\n }\n if (a === b)\n return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n Buffer13.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "latin1":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return true;\n default:\n return false;\n }\n };\n Buffer13.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n }\n if (list.length === 0) {\n return Buffer13.alloc(0);\n }\n let i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer13.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf2 = list[i];\n if (isInstance(buf2, Uint8Array)) {\n if (pos + buf2.length > buffer.length) {\n if (!Buffer13.isBuffer(buf2))\n buf2 = Buffer13.from(buf2);\n buf2.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf2, pos);\n }\n } else if (!Buffer13.isBuffer(buf2)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n } else {\n buf2.copy(buffer, pos);\n }\n pos += buf2.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer13.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== "string") {\n throw new TypeError(\'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type \' + typeof string);\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0)\n return 0;\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "ascii":\n case "latin1":\n case "binary":\n return len;\n case "utf8":\n case "utf-8":\n return utf8ToBytes(string).length;\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return len * 2;\n case "hex":\n return len >>> 1;\n case "base64":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length;\n }\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return "";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return "";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return "";\n }\n if (!encoding)\n encoding = "utf8";\n while (true) {\n switch (encoding) {\n case "hex":\n return hexSlice(this, start, end);\n case "utf8":\n case "utf-8":\n return utf8Slice(this, start, end);\n case "ascii":\n return asciiSlice(this, start, end);\n case "latin1":\n case "binary":\n return latin1Slice(this, start, end);\n case "base64":\n return base64Slice(this, start, end);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = (encoding + "").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer13.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 16-bits");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer13.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 32-bits");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer13.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 64-bits");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer13.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0)\n return "";\n if (arguments.length === 0)\n return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer13.prototype.toLocaleString = Buffer13.prototype.toString;\n Buffer13.prototype.equals = function equals(b) {\n if (!Buffer13.isBuffer(b))\n throw new TypeError("Argument must be a Buffer");\n if (this === b)\n return true;\n return Buffer13.compare(this, b) === 0;\n };\n Buffer13.prototype.inspect = function inspect() {\n let str = "";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim();\n if (this.length > max)\n str += " ... ";\n return "";\n };\n if (customInspectSymbol) {\n Buffer13.prototype[customInspectSymbol] = Buffer13.prototype.inspect;\n }\n Buffer13.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer13.from(target, target.offset, target.byteLength);\n }\n if (!Buffer13.isBuffer(target)) {\n throw new TypeError(\'The "target" argument must be one of type Buffer or Uint8Array. Received type \' + typeof target);\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError("out of range index");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target)\n return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0)\n return -1;\n if (typeof byteOffset === "string") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n if (byteOffset < 0)\n byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir)\n return -1;\n else\n byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir)\n byteOffset = 0;\n else\n return -1;\n }\n if (typeof val === "string") {\n val = Buffer13.from(val, encoding);\n }\n if (Buffer13.isBuffer(val)) {\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === "number") {\n val = val & 255;\n if (typeof Uint8Array.prototype.indexOf === "function") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError("val must be string, number or Buffer");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read2(buf2, i2) {\n if (indexSize === 1) {\n return buf2[i2];\n } else {\n return buf2.readUInt16BE(i2 * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read2(arr, i) === read2(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1)\n foundIndex = i;\n if (i - foundIndex + 1 === valLength)\n return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1)\n i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength)\n byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read2(arr, i + j) !== read2(val, j)) {\n found = false;\n break;\n }\n }\n if (found)\n return i;\n }\n }\n return -1;\n }\n Buffer13.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer13.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer13.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf2, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf2.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed))\n return i;\n buf2[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf2, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n function asciiWrite(buf2, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf2, offset, length);\n }\n function base64Write(buf2, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf2, offset, length);\n }\n function ucs2Write(buf2, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n Buffer13.prototype.write = function write2(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = "utf8";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === "string") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0)\n encoding = "utf8";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");\n }\n const remaining = this.length - offset;\n if (length === void 0 || length > remaining)\n length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError("Attempt to write outside buffer bounds");\n }\n if (!encoding)\n encoding = "utf8";\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "hex":\n return hexWrite(this, string, offset, length);\n case "utf8":\n case "utf-8":\n return utf8Write(this, string, offset, length);\n case "ascii":\n case "latin1":\n case "binary":\n return asciiWrite(this, string, offset, length);\n case "base64":\n return base64Write(this, string, offset, length);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer13.prototype.toJSON = function toJSON() {\n return {\n type: "Buffer",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf2, start, end) {\n if (start === 0 && end === buf2.length) {\n return base64.fromByteArray(buf2);\n } else {\n return base64.fromByteArray(buf2.slice(start, end));\n }\n }\n function utf8Slice(buf2, start, end) {\n end = Math.min(buf2.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf2[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf2[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n fourthByte = buf2[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = "";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i]);\n }\n return ret;\n }\n function hexSlice(buf2, start, end) {\n const len = buf2.length;\n if (!start || start < 0)\n start = 0;\n if (!end || end < 0 || end > len)\n end = len;\n let out = "";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf2[i]];\n }\n return out;\n }\n function utf16leSlice(buf2, start, end) {\n const bytes = buf2.slice(start, end);\n let res = "";\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer13.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0)\n start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0)\n end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start)\n end = start;\n const newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer13.prototype);\n return newBuf;\n };\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0)\n throw new RangeError("offset is not uint");\n if (offset + ext > length)\n throw new RangeError("Trying to access beyond buffer length");\n }\n Buffer13.prototype.readUintLE = Buffer13.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUintBE = Buffer13.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n let val = this[offset + --byteLength2];\n let mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUint8 = Buffer13.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer13.prototype.readUint16LE = Buffer13.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer13.prototype.readUint16BE = Buffer13.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer13.prototype.readUint32LE = Buffer13.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer13.prototype.readUint32BE = Buffer13.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer13.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer13.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer13.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let i = byteLength2;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128))\n return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer13.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer13.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer13.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer13.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer13.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, true, 23, 4);\n };\n Buffer13.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, false, 23, 4);\n };\n Buffer13.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, true, 52, 8);\n };\n Buffer13.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, false, 52, 8);\n };\n function checkInt(buf2, value, offset, ext, max, min) {\n if (!Buffer13.isBuffer(buf2))\n throw new TypeError(\'"buffer" argument must be a Buffer instance\');\n if (value > max || value < min)\n throw new RangeError(\'"value" argument is out of bounds\');\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n }\n Buffer13.prototype.writeUintLE = Buffer13.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUintBE = Buffer13.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUint8 = Buffer13.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeUint16LE = Buffer13.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeUint16BE = Buffer13.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeUint32LE = Buffer13.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeUint32BE = Buffer13.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset + 7] = lo;\n lo = lo >> 8;\n buf2[offset + 6] = lo;\n lo = lo >> 8;\n buf2[offset + 5] = lo;\n lo = lo >> 8;\n buf2[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset + 3] = hi;\n hi = hi >> 8;\n buf2[offset + 2] = hi;\n hi = hi >> 8;\n buf2[offset + 1] = hi;\n hi = hi >> 8;\n buf2[offset] = hi;\n return offset + 8;\n }\n Buffer13.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 127, -128);\n if (value < 0)\n value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer13.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0)\n value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n Buffer13.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n function checkIEEE754(buf2, value, offset, ext, max, min) {\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n if (offset < 0)\n throw new RangeError("Index out of range");\n }\n function writeFloat(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer13.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer13.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer13.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer13.isBuffer(target))\n throw new TypeError("argument should be a Buffer");\n if (!start)\n start = 0;\n if (!end && end !== 0)\n end = this.length;\n if (targetStart >= target.length)\n targetStart = target.length;\n if (!targetStart)\n targetStart = 0;\n if (end > 0 && end < start)\n end = start;\n if (end === start)\n return 0;\n if (target.length === 0 || this.length === 0)\n return 0;\n if (targetStart < 0) {\n throw new RangeError("targetStart out of bounds");\n }\n if (start < 0 || start >= this.length)\n throw new RangeError("Index out of range");\n if (end < 0)\n throw new RangeError("sourceEnd out of bounds");\n if (end > this.length)\n end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === "function") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n Buffer13.prototype.fill = function fill(val, start, end, encoding) {\n if (typeof val === "string") {\n if (typeof start === "string") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === "string") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== void 0 && typeof encoding !== "string") {\n throw new TypeError("encoding must be a string");\n }\n if (typeof encoding === "string" && !Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === "utf8" && code < 128 || encoding === "latin1") {\n val = code;\n }\n }\n } else if (typeof val === "number") {\n val = val & 255;\n } else if (typeof val === "boolean") {\n val = Number(val);\n }\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError("Out of range index");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val)\n val = 0;\n let i;\n if (typeof val === "number") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer13.isBuffer(val) ? val : Buffer13.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError(\'The value "\' + val + \'" is invalid for argument "value"\');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, "message", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n this.name = `${this.name} [${sym}]`;\n this.stack;\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, "code", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n return "Attempt to access memory outside buffer bounds";\n }, RangeError);\n E("ERR_INVALID_ARG_TYPE", function(name, actual) {\n return `The "${name}" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E("ERR_OUT_OF_RANGE", function(str, range, input) {\n let msg = `The value of "${str}" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === "bigint") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += "n";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n let res = "";\n let i = val.length;\n const start = val[0] === "-" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n function checkBounds(buf2, offset, byteLength2) {\n validateNumber(offset, "offset");\n if (buf2[offset] === void 0 || buf2[offset + byteLength2] === void 0) {\n boundsError(offset, buf2.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf2, offset, byteLength2) {\n if (value > max || value < min) {\n const n = typeof min === "bigint" ? "n" : "";\n let range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n throw new errors.ERR_OUT_OF_RANGE("value", range, value);\n }\n checkBounds(buf2, offset, byteLength2);\n }\n function validateNumber(value, name) {\n if (typeof value !== "number") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value);\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split("=")[0];\n str = str.trim().replace(INVALID_BASE64_RE, "");\n if (str.length < 2)\n return "";\n while (str.length % 4 !== 0) {\n str = str + "=";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error("Invalid code point");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0)\n break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length)\n break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n const alphabet = "0123456789abcdef";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error("BigInt not supported");\n }\n }\n});\n\n// esbuild.inject.js\nvar Buffer2;\nvar init_esbuild_inject = __esm({\n "esbuild.inject.js"() {\n "use strict";\n Buffer2 = require_buffer().Buffer;\n if (true) {\n if (false) {\n const ocreate = unsafeWindow.document.createElement.bind(document);\n unsafeWindow.document.createElement = (tag) => {\n if (tag != "meta")\n return ocreate(tag);\n unsafeWindow.document.createElement = ocreate;\n return unsafeWindow.document.createElement("link");\n };\n }\n if (false) {\n if (typeof cloneInto != "undefined")\n console.log("CLONE INTO DEFINED");\n else\n console.log("CLONE INTO NOT DEFINED");\n let a = 1;\n console.log(a++);\n const unsafeWindow2 = window;\n console.log(a++);\n const ocreate = unsafeWindow2.document.createElement.bind(document);\n console.log(a++);\n exportFunction((tag) => {\n if (tag != "meta")\n return ocreate(tag);\n unsafeWindow2.document.createElement = ocreate;\n return unsafeWindow2.document.createElement("link");\n }, window.document, { defineAs: "createElement" });\n console.log(a++);\n }\n }\n }\n});\n\n// node_modules/crc-32/crc32.js\nvar require_crc32 = __commonJS({\n "node_modules/crc-32/crc32.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var CRC32;\n (function(factory) {\n if (typeof DO_NOT_EXPORT_CRC === "undefined") {\n if (typeof exports === "object") {\n factory(exports);\n } else if (typeof define === "function" && define.amd) {\n define(function() {\n var module2 = {};\n factory(module2);\n return module2;\n });\n } else {\n factory(CRC32 = {});\n }\n } else {\n factory(CRC32 = {});\n }\n })(function(CRC322) {\n CRC322.version = "1.2.0";\n function signed_crc_table() {\n var c = 0, table = new Array(256);\n for (var n = 0; n != 256; ++n) {\n c = n;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n table[n] = c;\n }\n return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;\n }\n var T = signed_crc_table();\n function crc32_bstr(bstr, seed) {\n var C = seed ^ -1, L = bstr.length - 1;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n }\n if (i === L)\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i)) & 255];\n return C ^ -1;\n }\n function crc32_buf(buf2, seed) {\n if (buf2.length > 1e4)\n return crc32_buf_8(buf2, seed);\n var C = seed ^ -1, L = buf2.length - 3;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 3)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_buf_8(buf2, seed) {\n var C = seed ^ -1, L = buf2.length - 7;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 7)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_str(str, seed) {\n var C = seed ^ -1;\n for (var i = 0, L = str.length, c, d; i < L; ) {\n c = str.charCodeAt(i++);\n if (c < 128) {\n C = C >>> 8 ^ T[(C ^ c) & 255];\n } else if (c < 2048) {\n C = C >>> 8 ^ T[(C ^ (192 | c >> 6 & 31)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n } else if (c >= 55296 && c < 57344) {\n c = (c & 1023) + 64;\n d = str.charCodeAt(i++) & 1023;\n C = C >>> 8 ^ T[(C ^ (240 | c >> 8 & 7)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 2 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d & 63)) & 255];\n } else {\n C = C >>> 8 ^ T[(C ^ (224 | c >> 12 & 15)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 6 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n }\n }\n return C ^ -1;\n }\n CRC322.table = T;\n CRC322.bstr = crc32_bstr;\n CRC322.buf = crc32_buf;\n CRC322.str = crc32_str;\n });\n }\n});\n\n// node_modules/events/events.js\nvar require_events = __commonJS({\n "node_modules/events/events.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var R = typeof Reflect === "object" ? Reflect : null;\n var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === "function") {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn)\n console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = void 0;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = void 0;\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== "function") {\n throw new TypeError(\'The "listener" argument must be of type Function. Received type \' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, "defaultMaxListeners", {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError(\'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received \' + arg + ".");\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function() {\n if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || void 0;\n };\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {\n throw new RangeError(\'The value of "n" is out of range. It must be a non-negative number. Received \' + n + ".");\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === void 0)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++)\n args.push(arguments[i]);\n var doError = type === "error";\n var events = this._events;\n if (events !== void 0)\n doError = doError && events.error === void 0;\n else if (!doError)\n return false;\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n throw er;\n }\n var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));\n err.context = er;\n throw err;\n }\n var handler = events[type];\n if (handler === void 0)\n return false;\n if (typeof handler === "function") {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === void 0) {\n events = target._events = /* @__PURE__ */ Object.create(null);\n target._eventsCount = 0;\n } else {\n if (events.newListener !== void 0) {\n target.emit("newListener", type, listener.listener ? listener.listener : listener);\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === void 0) {\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === "function") {\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");\n w.name = "MaxListenersExceededWarning";\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: void 0, target, type, listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once2(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === void 0)\n return this;\n list = events[type];\n if (list === void 0)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit("removeListener", type, list.listener || listener);\n }\n } else if (typeof list !== "function") {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== void 0)\n this.emit("removeListener", type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === void 0)\n return this;\n if (events.removeListener === void 0) {\n if (arguments.length === 0) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== void 0) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key2;\n for (i = 0; i < keys.length; ++i) {\n key2 = keys[i];\n if (key2 === "removeListener")\n continue;\n this.removeAllListeners(key2);\n }\n this.removeAllListeners("removeListener");\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === "function") {\n this.removeListener(type, listeners);\n } else if (listeners !== void 0) {\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === void 0)\n return [];\n var evlistener = events[type];\n if (evlistener === void 0)\n return [];\n if (typeof evlistener === "function")\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === "function") {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== void 0) {\n var evlistener = events[type];\n if (typeof evlistener === "function") {\n return 1;\n } else if (evlistener !== void 0) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === "function") {\n emitter.removeListener("error", errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== "error") {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === "function") {\n eventTargetAgnosticAddListener(emitter, "error", handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === "function") {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === "function") {\n emitter.addEventListener(name, function wrapListener(arg) {\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError(\'The "emitter" argument must be of type EventEmitter. Received type \' + typeof emitter);\n }\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/stream-browser.js\nvar require_stream_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/stream-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = require_events().EventEmitter;\n }\n});\n\n// (disabled):node_modules/util/util.js\nvar require_util = __commonJS({\n "(disabled):node_modules/util/util.js"() {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/buffer_list.js\nvar require_buffer_list = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly)\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key2) {\n _defineProperty(target, key2, source[key2]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key2) {\n Object.defineProperty(target, key2, Object.getOwnPropertyDescriptor(source, key2));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require_buffer();\n var Buffer13 = _require.Buffer;\n var _require2 = require_util();\n var inspect = _require2.inspect;\n var custom = inspect && inspect.custom || "inspect";\n function copyBuffer(src, target, offset) {\n Buffer13.prototype.copy.call(src, target, offset);\n }\n module.exports = /* @__PURE__ */ function() {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: "push",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0)\n this.tail.next = entry;\n else\n this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: "unshift",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0)\n this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: "shift",\n value: function shift() {\n if (this.length === 0)\n return;\n var ret = this.head.data;\n if (this.length === 1)\n this.head = this.tail = null;\n else\n this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: "clear",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: "join",\n value: function join(s) {\n if (this.length === 0)\n return "";\n var p = this.head;\n var ret = "" + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: "concat",\n value: function concat(n) {\n if (this.length === 0)\n return Buffer13.alloc(0);\n var ret = Buffer13.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n }, {\n key: "consume",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n ret = this.shift();\n } else {\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: "first",\n value: function first() {\n return this.head.data;\n }\n }, {\n key: "_getString",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length)\n ret += str;\n else\n ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: "_getBuffer",\n value: function _getBuffer(n) {\n var ret = Buffer13.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf2 = p.data;\n var nb = n > buf2.length ? buf2.length : n;\n buf2.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf2.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf2.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n depth: 0,\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/destroy.js\nvar require_destroy = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function(err2) {\n if (!cb && err2) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self2, err) {\n emitErrorNT(self2, err);\n emitCloseNT(self2);\n }\n function emitCloseNT(self2) {\n if (self2._writableState && !self2._writableState.emitClose)\n return;\n if (self2._readableState && !self2._readableState.emitClose)\n return;\n self2.emit("close");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self2, err) {\n self2.emit("error", err);\n }\n function errorOrDestroy(stream, err) {\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy)\n stream.destroy(err);\n else\n stream.emit("error", err);\n }\n module.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n };\n }\n});\n\n// node_modules/readable-stream/errors-browser.js\nvar require_errors_browser = __commonJS({\n "node_modules/readable-stream/errors-browser.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n var codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === "string") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inheritsLoose(NodeError2, _Base);\n function NodeError2(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError2;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(", "), ", or ") + expected[len - 1];\n } else if (len === 2) {\n return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);\n } else {\n return "of ".concat(thing, " ").concat(expected[0]);\n }\n } else {\n return "of ".concat(thing, " ").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== "number") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) {\n return \'The value "\' + value + \'" is invalid for option "\' + name + \'"\';\n }, TypeError);\n createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) {\n var determiner;\n if (typeof expected === "string" && startsWith(expected, "not ")) {\n determiner = "must not be";\n expected = expected.replace(/^not /, "");\n } else {\n determiner = "must be";\n }\n var msg;\n if (endsWith(name, " argument")) {\n msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n } else {\n var type = includes(name, ".") ? "property" : "argument";\n msg = \'The "\'.concat(name, \'" \').concat(type, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n }\n msg += ". Received type ".concat(typeof actual);\n return msg;\n }, TypeError);\n createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");\n createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) {\n return "The " + name + " method is not implemented";\n });\n createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close");\n createErrorType("ERR_STREAM_DESTROYED", function(name) {\n return "Cannot call " + name + " after a stream was destroyed";\n });\n createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");\n createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");\n createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end");\n createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);\n createErrorType("ERR_UNKNOWN_ENCODING", function(arg) {\n return "Unknown encoding: " + arg;\n }, TypeError);\n createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");\n module.exports.codes = codes;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/state.js\nvar require_state = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/state.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : "highWaterMark";\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n return state.objectMode ? 16 : 16 * 1024;\n }\n module.exports = {\n getHighWaterMark\n };\n }\n});\n\n// node_modules/inherits/inherits_browser.js\nvar require_inherits_browser = __commonJS({\n "node_modules/inherits/inherits_browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n if (typeof Object.create === "function") {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n});\n\n// node_modules/util-deprecate/browser.js\nvar require_browser = __commonJS({\n "node_modules/util-deprecate/browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = deprecate;\n function deprecate(fn, msg) {\n if (config("noDeprecation")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config("throwDeprecation")) {\n throw new Error(msg);\n } else if (config("traceDeprecation")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n }\n function config(name) {\n try {\n if (!self.localStorage)\n return false;\n } catch (_) {\n return false;\n }\n var val = self.localStorage[name];\n if (val == null)\n return false;\n return String(val).toLowerCase() === "true";\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_writable.js\nvar require_stream_writable = __commonJS({\n "node_modules/readable-stream/lib/_stream_writable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Writable;\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function() {\n onCorkedFinish(_this, state);\n };\n }\n var Duplex;\n Writable.WritableState = WritableState;\n var internalUtil = {\n deprecate: require_browser()\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;\n var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;\n var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n require_inherits_browser()(Writable, Stream);\n function nop() {\n }\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.writableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex);\n this.finalCalled = false;\n this.needDrain = false;\n this.ending = false;\n this.ended = false;\n this.finished = false;\n this.destroyed = false;\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.length = 0;\n this.writing = false;\n this.corked = 0;\n this.sync = true;\n this.bufferProcessing = false;\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n this.writecb = null;\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n this.pendingcb = 0;\n this.prefinished = false;\n this.errorEmitted = false;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.bufferedRequestCount = 0;\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function() {\n try {\n Object.defineProperty(WritableState.prototype, "buffer", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")\n });\n } catch (_) {\n }\n })();\n var realHasInstance;\n if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object))\n return true;\n if (this !== Writable)\n return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance2(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || require_stream_duplex();\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this))\n return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n this.writable = true;\n if (options) {\n if (typeof options.write === "function")\n this._write = options.write;\n if (typeof options.writev === "function")\n this._writev = options.writev;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n if (typeof options.final === "function")\n this._final = options.final;\n }\n Stream.call(this);\n }\n Writable.prototype.pipe = function() {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n }\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== "string" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer13.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf)\n encoding = "buffer";\n else if (!encoding)\n encoding = state.defaultEncoding;\n if (typeof cb !== "function")\n cb = nop;\n if (state.ending)\n writeAfterEnd(this, cb);\n else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function() {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function() {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest)\n clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n if (typeof encoding === "string")\n encoding = encoding.toLowerCase();\n if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1))\n throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") {\n chunk = Buffer13.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = "buffer";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n if (!ret)\n state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed)\n state.onwrite(new ERR_STREAM_DESTROYED("write"));\n else if (writev)\n stream._writev(chunk, state.onwrite);\n else\n stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n process.nextTick(cb, er);\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== "function")\n throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er)\n onwriteError(stream, state, sync, er, cb);\n else {\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished)\n onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit("drain");\n }\n }\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf)\n allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, "", holder.finish);\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n if (state.writing) {\n break;\n }\n }\n if (entry === null)\n state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === "function") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== void 0)\n this.write(chunk, encoding);\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n if (!state.ending)\n endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function(err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit("prefinish");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === "function" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit("prefinish");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit("finish");\n if (state.autoDestroy) {\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished)\n process.nextTick(cb);\n else\n stream.once("finish", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._writableState === void 0) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n if (!this._writableState) {\n return;\n }\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_duplex.js\nvar require_stream_duplex = __commonJS({\n "node_modules/readable-stream/lib/_stream_duplex.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var objectKeys = Object.keys || function(obj) {\n var keys2 = [];\n for (var key2 in obj) {\n keys2.push(key2);\n }\n return keys2;\n };\n module.exports = Duplex;\n var Readable = require_stream_readable();\n var Writable = require_stream_writable();\n require_inherits_browser()(Duplex, Readable);\n {\n keys = objectKeys(Writable.prototype);\n for (v = 0; v < keys.length; v++) {\n method = keys[v];\n if (!Duplex.prototype[method])\n Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n var keys;\n var method;\n var v;\n function Duplex(options) {\n if (!(this instanceof Duplex))\n return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false)\n this.readable = false;\n if (options.writable === false)\n this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once("end", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function onend() {\n if (this._writableState.ended)\n return;\n process.nextTick(onEndNT, this);\n }\n function onEndNT(self2) {\n self2.end();\n }\n Object.defineProperty(Duplex.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return;\n }\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n }\n});\n\n// node_modules/safe-buffer/index.js\nvar require_safe_buffer = __commonJS({\n "node_modules/safe-buffer/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var buffer = require_buffer();\n var Buffer13 = buffer.Buffer;\n function copyProps(src, dst) {\n for (var key2 in src) {\n dst[key2] = src[key2];\n }\n }\n if (Buffer13.from && Buffer13.alloc && Buffer13.allocUnsafe && Buffer13.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer13(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer13.prototype);\n copyProps(Buffer13, SafeBuffer);\n SafeBuffer.from = function(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n throw new TypeError("Argument must not be a number");\n }\n return Buffer13(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function(size, fill, encoding) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n var buf2 = Buffer13(size);\n if (fill !== void 0) {\n if (typeof encoding === "string") {\n buf2.fill(fill, encoding);\n } else {\n buf2.fill(fill);\n }\n } else {\n buf2.fill(0);\n }\n return buf2;\n };\n SafeBuffer.allocUnsafe = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return Buffer13(size);\n };\n SafeBuffer.allocUnsafeSlow = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return buffer.SlowBuffer(size);\n };\n }\n});\n\n// node_modules/string_decoder/lib/string_decoder.js\nvar require_string_decoder = __commonJS({\n "node_modules/string_decoder/lib/string_decoder.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var Buffer13 = require_safe_buffer().Buffer;\n var isEncoding = Buffer13.isEncoding || function(encoding) {\n encoding = "" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n case "raw":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc)\n return "utf8";\n var retried;\n while (true) {\n switch (enc) {\n case "utf8":\n case "utf-8":\n return "utf8";\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return "utf16le";\n case "latin1":\n case "binary":\n return "latin1";\n case "base64":\n case "ascii":\n case "hex":\n return enc;\n default:\n if (retried)\n return;\n enc = ("" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== "string" && (Buffer13.isEncoding === isEncoding || !isEncoding(enc)))\n throw new Error("Unknown encoding: " + enc);\n return nenc || enc;\n }\n exports.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case "utf16le":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case "utf8":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case "base64":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer13.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function(buf2) {\n if (buf2.length === 0)\n return "";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf2);\n if (r === void 0)\n return "";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf2.length)\n return r ? r + this.text(buf2, i) : this.text(buf2, i);\n return r || "";\n };\n StringDecoder.prototype.end = utf8End;\n StringDecoder.prototype.text = utf8Text;\n StringDecoder.prototype.fillLast = function(buf2) {\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf2.length);\n this.lastNeed -= buf2.length;\n };\n function utf8CheckByte(byte) {\n if (byte <= 127)\n return 0;\n else if (byte >> 5 === 6)\n return 2;\n else if (byte >> 4 === 14)\n return 3;\n else if (byte >> 3 === 30)\n return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n function utf8CheckIncomplete(self2, buf2, i) {\n var j = buf2.length - 1;\n if (j < i)\n return 0;\n var nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2)\n nb = 0;\n else\n self2.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n function utf8CheckExtraBytes(self2, buf2, p) {\n if ((buf2[0] & 192) !== 128) {\n self2.lastNeed = 0;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 1 && buf2.length > 1) {\n if ((buf2[1] & 192) !== 128) {\n self2.lastNeed = 1;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 2 && buf2.length > 2) {\n if ((buf2[2] & 192) !== 128) {\n self2.lastNeed = 2;\n return "\\uFFFD";\n }\n }\n }\n }\n function utf8FillLast(buf2) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf2, p);\n if (r !== void 0)\n return r;\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, p, 0, buf2.length);\n this.lastNeed -= buf2.length;\n }\n function utf8Text(buf2, i) {\n var total = utf8CheckIncomplete(this, buf2, i);\n if (!this.lastNeed)\n return buf2.toString("utf8", i);\n this.lastTotal = total;\n var end = buf2.length - (total - this.lastNeed);\n buf2.copy(this.lastChar, 0, end);\n return buf2.toString("utf8", i, end);\n }\n function utf8End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + "\\uFFFD";\n return r;\n }\n function utf16Text(buf2, i) {\n if ((buf2.length - i) % 2 === 0) {\n var r = buf2.toString("utf16le", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf2[buf2.length - 1];\n return buf2.toString("utf16le", i, buf2.length - 1);\n }\n function utf16End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString("utf16le", 0, end);\n }\n return r;\n }\n function base64Text(buf2, i) {\n var n = (buf2.length - i) % 3;\n if (n === 0)\n return buf2.toString("base64", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf2[buf2.length - 1];\n } else {\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n }\n return buf2.toString("base64", i, buf2.length - n);\n }\n function base64End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed);\n return r;\n }\n function simpleWrite(buf2) {\n return buf2.toString(this.encoding);\n }\n function simpleEnd(buf2) {\n return buf2 && buf2.length ? this.write(buf2) : "";\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/end-of-stream.js\nvar require_end_of_stream = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop2() {\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === "function")\n return eos(stream, null, opts);\n if (!opts)\n opts = {};\n callback = once(callback || noop2);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable2 = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish2() {\n if (!stream.writable)\n onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish2() {\n writable2 = false;\n writableEnded = true;\n if (!readable)\n callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend2() {\n readable = false;\n readableEnded = true;\n if (!writable2)\n callback.call(stream);\n };\n var onerror = function onerror2(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose2() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable2 && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest2() {\n stream.req.on("finish", onfinish);\n };\n if (isRequest(stream)) {\n stream.on("complete", onfinish);\n stream.on("abort", onclose);\n if (stream.req)\n onrequest();\n else\n stream.on("request", onrequest);\n } else if (writable2 && !stream._writableState) {\n stream.on("end", onlegacyfinish);\n stream.on("close", onlegacyfinish);\n }\n stream.on("end", onend);\n stream.on("finish", onfinish);\n if (opts.error !== false)\n stream.on("error", onerror);\n stream.on("close", onclose);\n return function() {\n stream.removeListener("complete", onfinish);\n stream.removeListener("abort", onclose);\n stream.removeListener("request", onrequest);\n if (stream.req)\n stream.req.removeListener("finish", onfinish);\n stream.removeListener("end", onlegacyfinish);\n stream.removeListener("close", onlegacyfinish);\n stream.removeListener("finish", onfinish);\n stream.removeListener("end", onend);\n stream.removeListener("error", onerror);\n stream.removeListener("close", onclose);\n };\n }\n module.exports = eos;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/async_iterator.js\nvar require_async_iterator = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var _Object$setPrototypeO;\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n var finished = require_end_of_stream();\n var kLastResolve = Symbol("lastResolve");\n var kLastReject = Symbol("lastReject");\n var kError = Symbol("error");\n var kEnded = Symbol("ended");\n var kLastPromise = Symbol("lastPromise");\n var kHandlePromise = Symbol("handlePromise");\n var kStream = Symbol("stream");\n function createIterResult(value, done) {\n return {\n value,\n done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n process.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function(resolve, reject) {\n lastPromise.then(function() {\n if (iter[kEnded]) {\n resolve(createIterResult(void 0, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function() {\n });\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(void 0, true));\n }\n if (this[kStream].destroyed) {\n return new Promise(function(resolve, reject) {\n process.nextTick(function() {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(void 0, true));\n }\n });\n });\n }\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {\n return this;\n }), _defineProperty(_Object$setPrototypeO, "return", function _return() {\n var _this2 = this;\n return new Promise(function(resolve, reject) {\n _this2[kStream].destroy(null, function(err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(void 0, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function(err) {\n if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {\n var reject = iterator[kLastReject];\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(void 0, true));\n }\n iterator[kEnded] = true;\n });\n stream.on("readable", onReadable.bind(null, iterator));\n return iterator;\n };\n module.exports = createReadableStreamAsyncIterator;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/from-browser.js\nvar require_from_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/from-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = function() {\n throw new Error("Readable.from is not available in the browser");\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_readable.js\nvar require_stream_readable = __commonJS({\n "node_modules/readable-stream/lib/_stream_readable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Readable;\n var Duplex;\n Readable.ReadableState = ReadableState;\n var EE = require_events().EventEmitter;\n var EElistenerCount = function EElistenerCount2(emitter, type) {\n return emitter.listeners(type).length;\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var debugUtil = require_util();\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog("stream");\n } else {\n debug = function debug2() {\n };\n }\n var BufferList = require_buffer_list();\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n require_inherits_browser()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = ["error", "close", "destroy", "pause", "resume"];\n function prependListener(emitter, event, fn) {\n if (typeof emitter.prependListener === "function")\n return emitter.prependListener(event, fn);\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.readableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex);\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n this.sync = true;\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.destroyed = false;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.awaitDrain = 0;\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || require_stream_duplex();\n if (!(this instanceof Readable))\n return new Readable(options);\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n this.readable = true;\n if (options) {\n if (typeof options.read === "function")\n this._read = options.read;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n if (!this._readableState) {\n return;\n }\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n Readable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === "string") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer13.from(chunk, encoding);\n encoding = "";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n Readable.prototype.unshift = function(chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug("readableAddChunk", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck)\n er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer13.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted)\n errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else\n addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0)\n addChunk(stream, state, chunk, false);\n else\n maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit("data", chunk);\n } else {\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront)\n state.buffer.unshift(chunk);\n else\n state.buffer.push(chunk);\n if (state.needReadable)\n emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function() {\n return this._readableState.flowing === false;\n };\n Readable.prototype.setEncoding = function(enc) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n this._readableState.encoding = this._readableState.decoder.encoding;\n var p = this._readableState.buffer.head;\n var content = "";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== "")\n this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended)\n return 0;\n if (state.objectMode)\n return 1;\n if (n !== n) {\n if (state.flowing && state.length)\n return state.buffer.head.data.length;\n else\n return state.length;\n }\n if (n > state.highWaterMark)\n state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length)\n return n;\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n Readable.prototype.read = function(n) {\n debug("read", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0)\n state.emittedReadable = false;\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug("read: emitReadable", state.length, state.ended);\n if (state.length === 0 && state.ended)\n endReadable(this);\n else\n emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n if (n === 0 && state.ended) {\n if (state.length === 0)\n endReadable(this);\n return null;\n }\n var doRead = state.needReadable;\n debug("need readable", doRead);\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug("length less than watermark", doRead);\n }\n if (state.ended || state.reading) {\n doRead = false;\n debug("reading or ended", doRead);\n } else if (doRead) {\n debug("do read");\n state.reading = true;\n state.sync = true;\n if (state.length === 0)\n state.needReadable = true;\n this._read(state.highWaterMark);\n state.sync = false;\n if (!state.reading)\n n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0)\n ret = fromList(n, state);\n else\n ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n if (!state.ended)\n state.needReadable = true;\n if (nOrig !== n && state.ended)\n endReadable(this);\n }\n if (ret !== null)\n this.emit("data", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug("onEofChunk");\n if (state.ended)\n return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n emitReadable(stream);\n } else {\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n function emitReadable(stream) {\n var state = stream._readableState;\n debug("emitReadable", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug("emitReadable", state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug("emitReadable_", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit("readable");\n state.emittedReadable = false;\n }\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug("maybeReadMore read 0");\n stream.read(0);\n if (len === state.length)\n break;\n }\n state.readingMore = false;\n }\n Readable.prototype._read = function(n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()"));\n };\n Readable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted)\n process.nextTick(endFn);\n else\n src.once("end", endFn);\n dest.on("unpipe", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug("onunpipe");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug("onend");\n dest.end();\n }\n var ondrain = pipeOnDrain(src);\n dest.on("drain", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug("cleanup");\n dest.removeListener("close", onclose);\n dest.removeListener("finish", onfinish);\n dest.removeListener("drain", ondrain);\n dest.removeListener("error", onerror);\n dest.removeListener("unpipe", onunpipe);\n src.removeListener("end", onend);\n src.removeListener("end", unpipe);\n src.removeListener("data", ondata);\n cleanedUp = true;\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain))\n ondrain();\n }\n src.on("data", ondata);\n function ondata(chunk) {\n debug("ondata");\n var ret = dest.write(chunk);\n debug("dest.write", ret);\n if (ret === false) {\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug("false write response, pause", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n function onerror(er) {\n debug("onerror", er);\n unpipe();\n dest.removeListener("error", onerror);\n if (EElistenerCount(dest, "error") === 0)\n errorOrDestroy(dest, er);\n }\n prependListener(dest, "error", onerror);\n function onclose() {\n dest.removeListener("finish", onfinish);\n unpipe();\n }\n dest.once("close", onclose);\n function onfinish() {\n debug("onfinish");\n dest.removeListener("close", onclose);\n unpipe();\n }\n dest.once("finish", onfinish);\n function unpipe() {\n debug("unpipe");\n src.unpipe(dest);\n }\n dest.emit("pipe", src);\n if (!state.flowing) {\n debug("pipe resume");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug("pipeOnDrain", state.awaitDrain);\n if (state.awaitDrain)\n state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, "data")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n if (state.pipesCount === 0)\n return this;\n if (state.pipesCount === 1) {\n if (dest && dest !== state.pipes)\n return this;\n if (!dest)\n dest = state.pipes;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest)\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n }\n if (!dest) {\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit("unpipe", this, {\n hasUnpiped: false\n });\n }\n return this;\n }\n var index = indexOf(state.pipes, dest);\n if (index === -1)\n return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1)\n state.pipes = state.pipes[0];\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n };\n Readable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === "data") {\n state.readableListening = this.listenerCount("readable") > 0;\n if (state.flowing !== false)\n this.resume();\n } else if (ev === "readable") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug("on readable", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function(ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === "readable") {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function(ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === "readable" || ev === void 0) {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self2) {\n var state = self2._readableState;\n state.readableListening = self2.listenerCount("readable") > 0;\n if (state.resumeScheduled && !state.paused) {\n state.flowing = true;\n } else if (self2.listenerCount("data") > 0) {\n self2.resume();\n }\n }\n function nReadingNextTick(self2) {\n debug("readable nexttick read 0");\n self2.read(0);\n }\n Readable.prototype.resume = function() {\n var state = this._readableState;\n if (!state.flowing) {\n debug("resume");\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug("resume", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit("resume");\n flow(stream);\n if (state.flowing && !state.reading)\n stream.read(0);\n }\n Readable.prototype.pause = function() {\n debug("call pause flowing=%j", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug("pause");\n this._readableState.flowing = false;\n this.emit("pause");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug("flow", state.flowing);\n while (state.flowing && stream.read() !== null) {\n ;\n }\n }\n Readable.prototype.wrap = function(stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on("end", function() {\n debug("wrapped end");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length)\n _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on("data", function(chunk) {\n debug("wrapped data");\n if (state.decoder)\n chunk = state.decoder.write(chunk);\n if (state.objectMode && (chunk === null || chunk === void 0))\n return;\n else if (!state.objectMode && (!chunk || !chunk.length))\n return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n for (var i in stream) {\n if (this[i] === void 0 && typeof stream[i] === "function") {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n this._read = function(n2) {\n debug("wrapped _read", n2);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === "function") {\n Readable.prototype[Symbol.asyncIterator] = function() {\n if (createReadableStreamAsyncIterator === void 0) {\n createReadableStreamAsyncIterator = require_async_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, "readableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, "readableBuffer", {\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, "readableFlowing", {\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, "readableLength", {\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n function fromList(n, state) {\n if (state.length === 0)\n return null;\n var ret;\n if (state.objectMode)\n ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n if (state.decoder)\n ret = state.buffer.join("");\n else if (state.buffer.length === 1)\n ret = state.buffer.first();\n else\n ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug("endReadable", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug("endReadableNT", state.endEmitted, state.length);\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit("end");\n if (state.autoDestroy) {\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === "function") {\n Readable.from = function(iterable, opts) {\n if (from === void 0) {\n from = require_from_browser();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x)\n return i;\n }\n return -1;\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_transform.js\nvar require_stream_transform = __commonJS({\n "node_modules/readable-stream/lib/_stream_transform.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Transform;\n var _require$codes = require_errors_browser().codes;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;\n var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = require_stream_duplex();\n require_inherits_browser()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit("error", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform))\n return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n this._readableState.needReadable = true;\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === "function")\n this._transform = options.transform;\n if (typeof options.flush === "function")\n this._flush = options.flush;\n }\n this.on("prefinish", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === "function" && !this._readableState.destroyed) {\n this._flush(function(er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n Transform.prototype._transform = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"));\n };\n Transform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark)\n this._read(rs.highWaterMark);\n }\n };\n Transform.prototype._read = function(n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function(err, cb) {\n Duplex.prototype._destroy.call(this, err, function(err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er)\n return stream.emit("error", er);\n if (data != null)\n stream.push(data);\n if (stream._writableState.length)\n throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming)\n throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_passthrough.js\nvar require_stream_passthrough = __commonJS({\n "node_modules/readable-stream/lib/_stream_passthrough.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = PassThrough;\n var Transform = require_stream_transform();\n require_inherits_browser()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough))\n return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n };\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/pipeline.js\nvar require_pipeline = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var eos;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = require_errors_browser().codes;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop2(err) {\n if (err)\n throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on("close", function() {\n closed = true;\n });\n if (eos === void 0)\n eos = require_end_of_stream();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function(err) {\n if (err)\n return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function(err) {\n if (closed)\n return;\n if (destroyed)\n return;\n destroyed = true;\n if (isRequest(stream))\n return stream.abort();\n if (typeof stream.destroy === "function")\n return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED("pipe"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length)\n return noop2;\n if (typeof streams[streams.length - 1] !== "function")\n return noop2;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0]))\n streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS("streams");\n }\n var error;\n var destroys = streams.map(function(stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function(err) {\n if (!error)\n error = err;\n if (err)\n destroys.forEach(call);\n if (reading)\n return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n module.exports = pipeline;\n }\n});\n\n// node_modules/readable-stream/readable-browser.js\nvar require_readable_browser = __commonJS({\n "node_modules/readable-stream/readable-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports = module.exports = require_stream_readable();\n exports.Stream = exports;\n exports.Readable = exports;\n exports.Writable = require_stream_writable();\n exports.Duplex = require_stream_duplex();\n exports.Transform = require_stream_transform();\n exports.PassThrough = require_stream_passthrough();\n exports.finished = require_end_of_stream();\n exports.pipeline = require_pipeline();\n }\n});\n\n// node_modules/readable-web-to-node-stream/lib/index.js\nvar require_lib = __commonJS({\n "node_modules/readable-web-to-node-stream/lib/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n Object.defineProperty(exports, "__esModule", { value: true });\n exports.ReadableWebToNodeStream = void 0;\n var readable_stream_1 = require_readable_browser();\n var ReadableWebToNodeStream2 = class extends readable_stream_1.Readable {\n constructor(stream) {\n super();\n this.bytesRead = 0;\n this.released = false;\n this.reader = stream.getReader();\n }\n async _read() {\n if (this.released) {\n this.push(null);\n return;\n }\n this.pendingRead = this.reader.read();\n const data = await this.pendingRead;\n delete this.pendingRead;\n if (data.done || this.released) {\n this.push(null);\n } else {\n this.bytesRead += data.value.length;\n this.push(data.value);\n }\n }\n async waitForReadToComplete() {\n if (this.pendingRead) {\n await this.pendingRead;\n }\n }\n async close() {\n await this.syncAndRelease();\n }\n async syncAndRelease() {\n this.released = true;\n await this.waitForReadToComplete();\n await this.reader.releaseLock();\n }\n };\n exports.ReadableWebToNodeStream = ReadableWebToNodeStream2;\n }\n});\n\n// node_modules/base-x/src/index.js\nvar require_src = __commonJS({\n "node_modules/base-x/src/index.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function base(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError("Alphabet too long");\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + " is ambiguous");\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode2(source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError("Expected Uint8Array");\n }\n if (source.length === 0) {\n return "";\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i2 = 0;\n for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== "string") {\n throw new TypeError("Expected String");\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i2 = 0;\n for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n psz++;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j2 = zeroes;\n while (it4 !== size) {\n vch[j2++] = b256[it4++];\n }\n return vch;\n }\n function decode3(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error("Non-base" + BASE + " character");\n }\n return {\n encode: encode2,\n decodeUnsafe,\n decode: decode3\n };\n }\n module.exports = base;\n }\n});\n\n// node_modules/bs58/index.js\nvar require_bs58 = __commonJS({\n "node_modules/bs58/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var basex = require_src();\n var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";\n module.exports = basex(ALPHABET);\n }\n});\n\n// node_modules/jpeg-js/lib/encoder.js\nvar require_encoder = __commonJS({\n "node_modules/jpeg-js/lib/encoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var btoa = btoa || function(buf2) {\n return Buffer2.from(buf2).toString("base64");\n };\n function JPEGEncoder(quality) {\n var self2 = this;\n var fround = Math.round;\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT2;\n var UVDC_HT2;\n var YAC_HT2;\n var UVAC_HT2;\n var bitcode2 = new Array(65535);\n var category2 = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n var std_dc_luminance_nrcodes2 = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\n var std_dc_luminance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes2 = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\n var std_ac_luminance_values2 = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n var std_dc_chrominance_nrcodes2 = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\n var std_dc_chrominance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes2 = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\n var std_ac_chrominance_values2 = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n if (t < 1) {\n t = 1;\n } else if (t > 255) {\n t = 255;\n }\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n if (u < 1) {\n u = 1;\n } else if (u > 255) {\n u = 255;\n }\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n fdtbl_UV[k] = 1 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n k++;\n }\n }\n }\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n function initHuffmanTbl() {\n YDC_HT2 = computeHuffmanTbl(std_dc_luminance_nrcodes2, std_dc_luminance_values2);\n UVDC_HT2 = computeHuffmanTbl(std_dc_chrominance_nrcodes2, std_dc_chrominance_values2);\n YAC_HT2 = computeHuffmanTbl(std_ac_luminance_nrcodes2, std_ac_luminance_values2);\n UVAC_HT2 = computeHuffmanTbl(std_ac_chrominance_nrcodes2, std_ac_chrominance_values2);\n }\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n for (var nr = nrlower; nr < nrupper; nr++) {\n category2[32767 + nr] = cat;\n bitcode2[32767 + nr] = [];\n bitcode2[32767 + nr][1] = cat;\n bitcode2[32767 + nr][0] = nr;\n }\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category2[32767 + nrneg] = cat;\n bitcode2[32767 + nrneg] = [];\n bitcode2[32767 + nrneg][1] = cat;\n bitcode2[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[i + 256 >> 0] = 38470 * i;\n RGB_YUV_TABLE[i + 512 >> 0] = 7471 * i + 32768;\n RGB_YUV_TABLE[i + 768 >> 0] = -11059 * i;\n RGB_YUV_TABLE[i + 1024 >> 0] = -21709 * i;\n RGB_YUV_TABLE[i + 1280 >> 0] = 32768 * i + 8421375;\n RGB_YUV_TABLE[i + 1536 >> 0] = -27439 * i;\n RGB_YUV_TABLE[i + 1792 >> 0] = -5329 * i;\n }\n }\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & 1 << posval) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 255) {\n writeByte(255);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n function writeByte(value) {\n byteout.push(value);\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n var tmp10 = tmp0 + tmp3;\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n data[dataOff] = tmp10 + tmp11;\n data[dataOff + 4] = tmp10 - tmp11;\n var z1 = (tmp12 + tmp13) * 0.707106781;\n data[dataOff + 2] = tmp13 + z1;\n data[dataOff + 6] = tmp13 - z1;\n tmp10 = tmp4 + tmp5;\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n var z5 = (tmp10 - tmp12) * 0.382683433;\n var z2 = 0.5411961 * tmp10 + z5;\n var z4 = 1.306562965 * tmp12 + z5;\n var z3 = tmp11 * 0.707106781;\n var z11 = tmp7 + z3;\n var z13 = tmp7 - z3;\n data[dataOff + 5] = z13 + z2;\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n dataOff += 8;\n }\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n var tmp10p2 = tmp0p2 + tmp3p2;\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n data[dataOff] = tmp10p2 + tmp11p2;\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781;\n data[dataOff + 16] = tmp13p2 + z1p2;\n data[dataOff + 48] = tmp13p2 - z1p2;\n tmp10p2 = tmp4p2 + tmp5p2;\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433;\n var z2p2 = 0.5411961 * tmp10p2 + z5p2;\n var z4p2 = 1.306562965 * tmp12p2 + z5p2;\n var z3p2 = tmp11p2 * 0.707106781;\n var z11p2 = tmp7p2 + z3p2;\n var z13p2 = tmp7p2 - z3p2;\n data[dataOff + 40] = z13p2 + z2p2;\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n dataOff++;\n }\n var fDCTQuant2;\n for (i = 0; i < I64; ++i) {\n fDCTQuant2 = data[i] * fdtbl[i];\n outputfDCTQuant[i] = fDCTQuant2 > 0 ? fDCTQuant2 + 0.5 | 0 : fDCTQuant2 - 0.5 | 0;\n }\n return outputfDCTQuant;\n }\n function writeAPP0() {\n writeWord(65504);\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n }\n function writeAPP1(exifBuffer) {\n if (!exifBuffer)\n return;\n writeWord(65505);\n if (exifBuffer[0] === 69 && exifBuffer[1] === 120 && exifBuffer[2] === 105 && exifBuffer[3] === 102) {\n writeWord(exifBuffer.length + 2);\n } else {\n writeWord(exifBuffer.length + 5 + 2);\n writeByte(69);\n writeByte(120);\n writeByte(105);\n writeByte(102);\n writeByte(0);\n }\n for (var i = 0; i < exifBuffer.length; i++) {\n writeByte(exifBuffer[i]);\n }\n }\n function writeSOF0(width, height) {\n writeWord(65472);\n writeWord(17);\n writeByte(8);\n writeWord(height);\n writeWord(width);\n writeByte(3);\n writeByte(1);\n writeByte(17);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(1);\n writeByte(3);\n writeByte(17);\n writeByte(1);\n }\n function writeDQT() {\n writeWord(65499);\n writeWord(132);\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n function writeDHT() {\n writeWord(65476);\n writeWord(418);\n writeByte(0);\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes2[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values2[j]);\n }\n writeByte(16);\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes2[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values2[l]);\n }\n writeByte(1);\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes2[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values2[n]);\n }\n writeByte(17);\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes2[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values2[p]);\n }\n }\n function writeCOM(comments) {\n if (typeof comments === "undefined" || comments.constructor !== Array)\n return;\n comments.forEach((e) => {\n if (typeof e !== "string")\n return;\n writeWord(65534);\n var l = e.length;\n writeWord(l + 2);\n var i;\n for (i = 0; i < l; i++)\n writeByte(e.charCodeAt(i));\n });\n }\n function writeSOS() {\n writeWord(65498);\n writeWord(12);\n writeByte(3);\n writeByte(1);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(3);\n writeByte(17);\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0];\n var M16zeroes = HTAC[240];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n if (Diff == 0) {\n writeBits(HTDC[0]);\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category2[pos]]);\n writeBits(bitcode2[pos]);\n }\n var end0pos = 63;\n for (; end0pos > 0 && DU[end0pos] == 0; end0pos--) {\n }\n ;\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n for (; DU[i] == 0 && i <= end0pos; ++i) {\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category2[pos]]);\n writeBits(bitcode2[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n clt[i] = sfcc(i);\n }\n }\n this.encode = function(image, quality2) {\n var time_start = new Date().getTime();\n if (quality2)\n setQuality(quality2);\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n writeWord(65496);\n writeAPP0();\n writeCOM(image.comments);\n writeAPP1(image.exifBuffer);\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n bytenew = 0;\n bytepos = 7;\n this.encode.displayName = "_encode_";\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n var quadWidth = width * 4;\n var tripleWidth = width * 3;\n var x, y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n p = start;\n col = -1;\n row = 0;\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3;\n col = (pos & 7) * 4;\n p = start + row * quadWidth + col;\n if (y + row >= height) {\n p -= quadWidth * (y + 1 + row - height);\n }\n if (x + col >= quadWidth) {\n p -= x + col - quadWidth + 4;\n }\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n YDU[pos] = (RGB_YUV_TABLE[r] + RGB_YUV_TABLE[g + 256 >> 0] + RGB_YUV_TABLE[b + 512 >> 0] >> 16) - 128;\n UDU[pos] = (RGB_YUV_TABLE[r + 768 >> 0] + RGB_YUV_TABLE[g + 1024 >> 0] + RGB_YUV_TABLE[b + 1280 >> 0] >> 16) - 128;\n VDU[pos] = (RGB_YUV_TABLE[r + 1280 >> 0] + RGB_YUV_TABLE[g + 1536 >> 0] + RGB_YUV_TABLE[b + 1792 >> 0] >> 16) - 128;\n }\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT2, YAC_HT2);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT2, UVAC_HT2);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT2, UVAC_HT2);\n x += 32;\n }\n y += 8;\n }\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << bytepos + 1) - 1;\n writeBits(fillbits);\n }\n writeWord(65497);\n if (typeof module === "undefined")\n return new Uint8Array(byteout);\n return Buffer2.from(byteout);\n var jpegDataUri = "data:image/jpeg;base64," + btoa(byteout.join(""));\n byteout = [];\n var duration = new Date().getTime() - time_start;\n return jpegDataUri;\n };\n function setQuality(quality2) {\n if (quality2 <= 0) {\n quality2 = 1;\n }\n if (quality2 > 100) {\n quality2 = 100;\n }\n if (currentQuality == quality2)\n return;\n var sf = 0;\n if (quality2 < 50) {\n sf = Math.floor(5e3 / quality2);\n } else {\n sf = Math.floor(200 - quality2 * 2);\n }\n initQuantTables(sf);\n currentQuality = quality2;\n }\n function init3() {\n var time_start = new Date().getTime();\n if (!quality)\n quality = 50;\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n setQuality(quality);\n var duration = new Date().getTime() - time_start;\n }\n init3();\n }\n if (typeof module !== "undefined") {\n module.exports = encode2;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].encode = encode2;\n }\n function encode2(imgData, qu) {\n if (typeof qu === "undefined")\n qu = 50;\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(imgData, qu);\n return {\n data,\n width: imgData.width,\n height: imgData.height\n };\n }\n }\n});\n\n// node_modules/jpeg-js/lib/decoder.js\nvar require_decoder = __commonJS({\n "node_modules/jpeg-js/lib/decoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var JpegImage = function jpegImage() {\n "use strict";\n var dctZigZag = new Int32Array([\n 0,\n 1,\n 8,\n 16,\n 9,\n 2,\n 3,\n 10,\n 17,\n 24,\n 32,\n 25,\n 18,\n 11,\n 4,\n 5,\n 12,\n 19,\n 26,\n 33,\n 40,\n 48,\n 41,\n 34,\n 27,\n 20,\n 13,\n 6,\n 7,\n 14,\n 21,\n 28,\n 35,\n 42,\n 49,\n 56,\n 57,\n 50,\n 43,\n 36,\n 29,\n 22,\n 15,\n 23,\n 30,\n 37,\n 44,\n 51,\n 58,\n 59,\n 52,\n 45,\n 38,\n 31,\n 39,\n 46,\n 53,\n 60,\n 61,\n 54,\n 47,\n 55,\n 62,\n 63\n ]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n function constructor() {\n }\n function buildHuffmanTable2(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, opts) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH, maxV = frame.maxV;\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 255) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new Error("unexpected marker: " + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree, bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === "number")\n return node;\n if (typeof node !== "object")\n throw new Error("invalid huffman sequence");\n }\n return null;\n }\n function receive(length) {\n var n2 = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null)\n return;\n n2 = n2 << 1 | bit;\n length--;\n }\n return n2;\n }\n function receiveAndExtend(length) {\n var n2 = receive(length);\n if (n2 >= 1 << length - 1)\n return n2;\n return n2 + (-1 << length) + 1;\n }\n function decodeBaseline(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n zz[0] = component2.pred += diff;\n var k2 = 1;\n while (k2 < 64) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15)\n break;\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s);\n k2++;\n }\n }\n function decodeDCFirst(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n zz[0] = component2.pred += diff;\n }\n function decodeDCSuccessive(component2, zz) {\n zz[0] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component2, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k2 = spectralStart, e = spectralEnd;\n while (k2 <= e) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k2++;\n }\n }\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component2, zz) {\n var k2 = spectralStart, e = spectralEnd, r = 0;\n while (k2 <= e) {\n var z = dctZigZag[k2];\n var direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0:\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1)\n throw new Error("invalid ACn encoding");\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n r--;\n if (r === 0)\n successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n break;\n }\n k2++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0)\n successiveACState = 0;\n }\n }\n function decodeMcu(component2, decode4, mcu2, row, col) {\n var mcuRow = mcu2 / mcusPerLine | 0;\n var mcuCol = mcu2 % mcusPerLine;\n var blockRow = mcuRow * component2.v + row;\n var blockCol = mcuCol * component2.h + col;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component2, decode4, mcu2) {\n var blockRow = mcu2 / component2.blocksPerLine | 0;\n var blockCol = mcu2 % component2.blocksPerLine;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0, marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval)\n resetInterval = mcuExpected;\n var h, v;\n while (mcu < mcuExpected) {\n for (i = 0; i < componentsLength; i++)\n components[i].pred = 0;\n eobrun = 0;\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n if (mcu === mcuExpected)\n break;\n }\n }\n if (mcu === mcuExpected) {\n do {\n if (data[offset] === 255) {\n if (data[offset + 1] !== 0) {\n break;\n }\n }\n offset += 1;\n } while (offset < data.length - 2);\n }\n bitsCount = 0;\n marker = data[offset] << 8 | data[offset + 1];\n if (marker < 65280) {\n throw new Error("marker was not found");\n }\n if (marker >= 65488 && marker <= 65495) {\n offset += 2;\n } else\n break;\n }\n return offset - startOffset;\n }\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var R = new Int32Array(64), r = new Uint8Array(64);\n function quantizeAndInverse(zz, dataOut, dataIn) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var p = dataIn;\n var i2;\n for (i2 = 0; i2 < 64; i2++)\n p[i2] = zz[i2] * qt[i2];\n for (i2 = 0; i2 < 8; ++i2) {\n var row = 8 * i2;\n if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 && p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 && p[7 + row] == 0) {\n t = dctSqrt2 * p[0 + row] + 512 >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 + row] + 128 >> 8;\n v1 = dctSqrt2 * p[4 + row] + 128 >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8;\n v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n for (i2 = 0; i2 < 8; ++i2) {\n var col = i2;\n if (p[1 * 8 + col] == 0 && p[2 * 8 + col] == 0 && p[3 * 8 + col] == 0 && p[4 * 8 + col] == 0 && p[5 * 8 + col] == 0 && p[6 * 8 + col] == 0 && p[7 * 8 + col] == 0) {\n t = dctSqrt2 * dataIn[i2 + 0] + 8192 >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12;\n v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n for (i2 = 0; i2 < 64; ++i2) {\n var sample2 = 128 + (p[i2] + 8 >> 4);\n dataOut[i2] = sample2 < 0 ? 0 : sample2 > 255 ? 255 : sample2;\n }\n }\n requestMemoryAllocation(samplesPerLine * blocksPerColumn * 8);\n var i, j;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (i = 0; i < 8; i++)\n lines.push(new Uint8Array(samplesPerLine));\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n var offset = 0, sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var line = lines[scanLine + j];\n for (i = 0; i < 8; i++)\n line[sample + i] = r[offset++];\n }\n }\n }\n return lines;\n }\n function clampTo8bit(a) {\n return a < 0 ? 0 : a > 255 ? 255 : a;\n }\n constructor.prototype = {\n load: function load(path) {\n var xhr = new XMLHttpRequest();\n xhr.open("GET", path, true);\n xhr.responseType = "arraybuffer";\n xhr.onload = function() {\n var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n this.parse(data);\n if (this.onload)\n this.onload();\n }.bind(this);\n xhr.send(null);\n },\n parse: function parse(data) {\n var maxResolutionInPixels = this.opts.maxResolutionInMP * 1e3 * 1e3;\n var offset = 0, length = data.length;\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length2 = readUint16();\n var array = data.subarray(offset, offset + length2 - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame2) {\n var maxH2 = 1, maxV2 = 1;\n var component2, componentId2;\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n if (maxH2 < component2.h)\n maxH2 = component2.h;\n if (maxV2 < component2.v)\n maxV2 = component2.v;\n }\n }\n var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / maxH2);\n var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / maxV2);\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component2.h / maxH2);\n var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component2.v / maxV2);\n var blocksPerLineForMcu = mcusPerLine * component2.h;\n var blocksPerColumnForMcu = mcusPerColumn * component2.v;\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\n var blocks = [];\n requestMemoryAllocation(blocksToAllocate * 256);\n for (var i2 = 0; i2 < blocksPerColumnForMcu; i2++) {\n var row = [];\n for (var j2 = 0; j2 < blocksPerLineForMcu; j2++)\n row.push(new Int32Array(64));\n blocks.push(row);\n }\n component2.blocksPerLine = blocksPerLine;\n component2.blocksPerColumn = blocksPerColumn;\n component2.blocks = blocks;\n }\n }\n frame2.maxH = maxH2;\n frame2.maxV = maxV2;\n frame2.mcusPerLine = mcusPerLine;\n frame2.mcusPerColumn = mcusPerColumn;\n }\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [], frames = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n var malformedDataOffset = -1;\n this.comments = [];\n if (fileMarker != 65496) {\n throw new Error("SOI not found");\n }\n fileMarker = readUint16();\n while (fileMarker != 65497) {\n var i, j, l;\n switch (fileMarker) {\n case 65280:\n break;\n case 65504:\n case 65505:\n case 65506:\n case 65507:\n case 65508:\n case 65509:\n case 65510:\n case 65511:\n case 65512:\n case 65513:\n case 65514:\n case 65515:\n case 65516:\n case 65517:\n case 65518:\n case 65519:\n case 65534:\n var appData = readDataBlock();\n if (fileMarker === 65534) {\n var comment = String.fromCharCode.apply(null, appData);\n this.comments.push(comment);\n }\n if (fileMarker === 65504) {\n if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n if (fileMarker === 65505) {\n if (appData[0] === 69 && appData[1] === 120 && appData[2] === 105 && appData[3] === 102 && appData[4] === 0) {\n this.exifBuffer = appData.subarray(5, appData.length);\n }\n }\n if (fileMarker === 65518) {\n if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) {\n adobe = {\n version: appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n case 65499:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n requestMemoryAllocation(64 * 4);\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else\n throw new Error("DQT: invalid table spec");\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 65472:\n case 65473:\n case 65474:\n readUint16();\n frame = {};\n frame.extended = fileMarker === 65473;\n frame.progressive = fileMarker === 65474;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = {};\n frame.componentsOrder = [];\n var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\n if (pixelsInFrame > maxResolutionInPixels) {\n var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\n throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\n }\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n var qId = data[offset + 2];\n if (h <= 0 || v <= 0) {\n throw new Error("Invalid sampling factor, expected values above 0");\n }\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId\n };\n offset += 3;\n }\n prepareComponents(frame);\n frames.push(frame);\n break;\n case 65476:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n requestMemoryAllocation(16 + codeLengthSum);\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable2(codeLengths, huffmanValues);\n }\n break;\n case 65501:\n readUint16();\n resetInterval = readUint16();\n break;\n case 65500:\n readUint16();\n readUint16();\n break;\n case 65498:\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n component = frame.components[data[offset++]];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, this.opts);\n offset += processed;\n break;\n case 65535:\n if (data[offset] !== 255) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n break;\n } else if (fileMarker === 224 || fileMarker == 225) {\n if (malformedDataOffset !== -1) {\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\n }\n malformedDataOffset = offset - 1;\n const nextOffset = readUint16();\n if (data[offset + nextOffset - 2] === 255) {\n offset += nextOffset - 2;\n break;\n }\n }\n throw new Error("unknown JPEG marker " + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n if (frames.length != 1)\n throw new Error("only single frame JPEGs supported");\n for (var i = 0; i < frames.length; i++) {\n var cp = frames[i].components;\n for (var j in cp) {\n cp[j].quantizationTable = quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (var i = 0; i < frame.componentsOrder.length; i++) {\n var component = frame.components[frame.componentsOrder[i]];\n this.components.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV\n });\n }\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width, scaleY = this.height / height;\n var component1, component2, component3, component4;\n var component1Line, component2Line, component3Line, component4Line;\n var x, y;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var dataLength = width * height * this.components.length;\n requestMemoryAllocation(dataLength);\n var data = new Uint8Array(dataLength);\n switch (this.components.length) {\n case 1:\n component1 = this.components[0];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 2:\n component1 = this.components[0];\n component2 = this.components[1];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n Y = component2Line[0 | x * component2.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 3:\n colorTransform = true;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n R = component1Line[0 | x * component1.scaleX * scaleX];\n G = component2Line[0 | x * component2.scaleX * scaleX];\n B = component3Line[0 | x * component3.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n R = clampTo8bit(Y + 1.402 * (Cr - 128));\n G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n B = clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = R;\n data[offset++] = G;\n data[offset++] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe)\n throw new Error("Unsupported color mode (4 components)");\n colorTransform = false;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n component4 = this.components[3];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n component4Line = component4.lines[0 | y * component4.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n C = component1Line[0 | x * component1.scaleX * scaleX];\n M = component2Line[0 | x * component2.scaleX * scaleX];\n Ye = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = 255 - C;\n data[offset++] = 255 - M;\n data[offset++] = 255 - Ye;\n data[offset++] = 255 - K;\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n return data;\n },\n copyToImageData: function copyToImageData(imageData, formatAsRGBA) {\n var width = imageData.width, height = imageData.height;\n var imageDataArray = imageData.data;\n var data = this.getData(width, height);\n var i = 0, j = 0, x, y;\n var Y, K, C, M, R, G, B;\n switch (this.components.length) {\n case 1:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n Y = data[i++];\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 3:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n R = data[i++];\n G = data[i++];\n B = data[i++];\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 4:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n C = data[i++];\n M = data[i++];\n Y = data[i++];\n K = data[i++];\n R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n }\n };\n var totalBytesAllocated = 0;\n var maxMemoryUsageBytes = 0;\n function requestMemoryAllocation(increaseAmount = 0) {\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\n }\n totalBytesAllocated = totalMemoryImpactBytes;\n }\n constructor.resetMaxMemoryUsage = function(maxMemoryUsageBytes_) {\n totalBytesAllocated = 0;\n maxMemoryUsageBytes = maxMemoryUsageBytes_;\n };\n constructor.getBytesAllocated = function() {\n return totalBytesAllocated;\n };\n constructor.requestMemoryAllocation = requestMemoryAllocation;\n return constructor;\n }();\n if (typeof module !== "undefined") {\n module.exports = decode3;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].decode = decode3;\n }\n function decode3(jpegData, userOpts = {}) {\n var defaultOpts = {\n colorTransform: void 0,\n useTArray: false,\n formatAsRGBA: true,\n tolerantDecoding: true,\n maxResolutionInMP: 100,\n maxMemoryUsageInMB: 512\n };\n var opts = { ...defaultOpts, ...userOpts };\n var arr = new Uint8Array(jpegData);\n var decoder = new JpegImage();\n decoder.opts = opts;\n JpegImage.resetMaxMemoryUsage(opts.maxMemoryUsageInMB * 1024 * 1024);\n decoder.parse(arr);\n var channels = opts.formatAsRGBA ? 4 : 3;\n var bytesNeeded = decoder.width * decoder.height * channels;\n try {\n JpegImage.requestMemoryAllocation(bytesNeeded);\n var image = {\n width: decoder.width,\n height: decoder.height,\n exifBuffer: decoder.exifBuffer,\n data: opts.useTArray ? new Uint8Array(bytesNeeded) : Buffer2.alloc(bytesNeeded)\n };\n if (decoder.comments.length > 0) {\n image["comments"] = decoder.comments;\n }\n } catch (err) {\n if (err instanceof RangeError) {\n throw new Error("Could not allocate enough memory for the image. Required: " + bytesNeeded);\n }\n if (err instanceof ReferenceError) {\n if (err.message === "Buffer is not defined") {\n throw new Error("Buffer is not globally defined in this environment. Consider setting useTArray to true");\n }\n }\n throw err;\n }\n decoder.copyToImageData(image, opts.formatAsRGBA);\n return image;\n }\n }\n});\n\n// node_modules/jpeg-js/index.js\nvar require_jpeg_js = __commonJS({\n "node_modules/jpeg-js/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var encode2 = require_encoder();\n var decode3 = require_decoder();\n module.exports = {\n encode: encode2,\n decode: decode3\n };\n }\n});\n\n// src/processor.worker.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/platform.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/requests.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar xmlhttprequest;\nif (false)\n xmlhttprequest = typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : typeof GM != "undefined" ? GM.xmlHttpRequest : window["GM_xmlhttpRequest"];\nvar GM_fetch = (...[url, opt, lisn]) => {\n function blobTo(to, blob) {\n if (to == "arrayBuffer" && blob.arrayBuffer) {\n const ret = blob.arrayBuffer();\n if (ret)\n return ret;\n }\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = function(event) {\n if (!event)\n return;\n if (to == "base64")\n resolve(event.target.result);\n else\n resolve(event.target.result);\n };\n if (to == "arrayBuffer")\n fileReader.readAsArrayBuffer(blob);\n else if (to == "base64")\n fileReader.readAsDataURL(blob);\n else if (to == "text")\n fileReader.readAsText(blob, "utf-8");\n else\n reject(new Error("unknown to"));\n });\n }\n return new Promise((resolve, reject) => {\n const gmopt = {\n url: url.toString(),\n data: opt?.body,\n responseType: "blob",\n headers: opt?.headers,\n method: opt?.method || "GET",\n ...lisn ? {\n onprogress: (prog) => {\n if (prog.loaded != prog.total && prog.total != 0)\n lisn.dispatchEvent(new CustomEvent("progress", { detail: [prog.loaded, prog.total] }));\n }\n } : {},\n onload: (resp) => {\n if (resp.status / 100 >= 4) {\n reject(new Error("Server Error: " + resp.status));\n return;\n }\n const blob = resp.response;\n const ref = resp;\n ref.blob = () => Promise.resolve(blob);\n ref.arrayBuffer = () => blobTo("arrayBuffer", blob);\n ref.text = () => blobTo("text", blob);\n ref.json = async () => JSON.parse(await blobTo("text", blob));\n resolve(resp);\n },\n ontimeout: () => reject(new Error("fetch timeout")),\n onerror: (...args) => {\n reject(new Error("fetch error"));\n },\n onabort: () => reject(new Error("fetch abort"))\n };\n xmlhttprequest(gmopt);\n });\n};\n\n// src/platform.ts\nvar lqueue = {};\nvar localSet = (key2, value) => localStorage.setItem("__pee__" + key2, JSON.stringify(value));\nvar port1;\nconsole.log("worker", false);\nvar msgBuff = [];\nvar setupPort = (port) => {\n port1 = port;\n port1.onmessage = (ev) => {\n lqueue[ev.data.id](ev.data);\n };\n if (true) {\n for (const msg of msgBuff) {\n port.postMessage(msg[0], { transfer: msg[1] });\n }\n msgBuff = [];\n }\n};\nif (true) {\n port1 = {\n onmessage(ev) {\n lqueue[ev.data.id](ev.data);\n },\n postMessage(msg, tr) {\n msgBuff.push([msg, tr]);\n }\n };\n}\nvar gid = 0;\nvar sendCmd = (cmd, tr, overwrite = false, todelete = false) => {\n const prom = new Promise((_) => {\n const id = gid++;\n if (overwrite)\n cmd.id = id;\n lqueue[id] = (e) => {\n _(e.res);\n if (todelete)\n delete lqueue[id];\n };\n port1.postMessage({ id, ...cmd }, tr || []);\n });\n return prom;\n};\nvar bridge = (name, f) => {\n if (false)\n return f;\n if (false)\n return f;\n return (...args) => {\n return sendCmd({ name, args });\n };\n};\nvar Bridged = (ctor) => {\n const keys = Object.getOwnPropertyNames(ctor).filter((k) => typeof ctor[k] == "function");\n for (const k of keys)\n ctor[k] = bridge(k, ctor[k]);\n};\nif (false) {\n popupport = chrome.runtime.connect({ name: "popup" });\n popupport.onMessage.addListener((msg) => {\n if (msg.id in pendingcmds) {\n pendingcmds[msg.id](msg);\n delete pendingcmds[msg.id];\n }\n });\n}\nvar Platform = class {\n static async openInTab(src, opts) {\n if (false) {\n return GM.openInTab(src, opts);\n }\n const obj = false ? chrome : browser;\n let i;\n if (opts.insert)\n i = (await obj.tabs.getCurrent()).index + 1;\n return obj.tabs.create({ active: opts.active, url: src, index: i });\n }\n static async getValue(key2, def) {\n const isinls = "__pee__" + key2 in localStorage;\n let ret;\n if (isinls) {\n let it = localStorage.getItem("__pee__" + key2);\n if (it === "undefined")\n it = null;\n ret = { ...def, ...JSON.parse(it || "{}") };\n } else\n ret = def;\n if (true) {\n if (isinls) {\n delete localStorage["__pee__" + key2];\n await chrome.storage.local.set({\n [key2]: JSON.stringify(ret)\n });\n } else {\n const d = await chrome.storage.local.get([key2]);\n if (typeof d[key2] == "string")\n return { ...def, ...await JSON.parse("" + d[key2] || "{}") };\n }\n }\n return ret;\n }\n static setValue(name, val) {\n localSet(name, val);\n }\n};\nPlatform.cmdid = 0;\nPlatform = __decorateClass([\n Bridged\n], Platform);\nvar corsFetch = async (input, init3, lsn) => {\n const id = gid++;\n let transfer = [];\n if (init3?.body) {\n if (false) {\n [init3.body, transfer] = await braveserialize(init3.body);\n }\n }\n const prom = new Promise((_, rej) => {\n let gcontroller;\n let buffer = [];\n let finished = false;\n const rs = new ReadableStream({\n start(controller) {\n gcontroller = controller;\n buffer.forEach((b) => gcontroller?.enqueue(b));\n buffer = [];\n if (finished) {\n gcontroller.close();\n }\n }\n });\n let s;\n s = 0;\n const cmdbuff = [];\n lqueue[id] = async (e) => {\n if (e.progress) {\n if (lsn)\n lsn.dispatchEvent(new CustomEvent("progress", { detail: e.progress }));\n }\n if (e.pushData) {\n if (e.s > s) {\n let idx = 0;\n while (idx < cmdbuff.length) {\n if (cmdbuff[idx].s > e.s)\n break;\n idx++;\n }\n cmdbuff.splice(idx, 0, e);\n return;\n }\n const processCmd = (e2) => {\n if (e2.pushData.data) {\n const data = new Uint8Array(e2.pushData.data);\n if (gcontroller)\n gcontroller.enqueue(data);\n else\n buffer.push(data);\n } else {\n if (gcontroller)\n gcontroller?.close();\n else\n finished = true;\n }\n };\n await processCmd(e);\n s++;\n while (cmdbuff[0]?.s == s) {\n await processCmd(cmdbuff.shift());\n s++;\n }\n }\n if (e.setRes) {\n const arrayBuffer = async () => {\n const r = rs.getReader();\n await sendCmd({ name: "fullyRead", fid: id });\n const abs = [];\n let res;\n do {\n res = await r.read();\n if (res.done)\n break;\n abs.push(res.value);\n } while (!res.done);\n const sum = abs.reduce((a, b) => a + b.byteLength, 0);\n const ret = new Uint8Array(sum);\n abs.reduce((ptr, arr) => {\n ret.set(arr, ptr);\n return ptr + arr.byteLength;\n }, 0);\n r.releaseLock();\n return ret;\n };\n const blob = async () => new Blob([await arrayBuffer()]);\n const text = async () => new TextDecoder().decode(await arrayBuffer());\n const json = async () => JSON.parse(await text());\n if (e.ok)\n _({\n body: rs,\n ok: e.ok,\n headers: e.headers,\n redirected: e.redirected,\n type: e.type,\n url: e.url,\n status: e.status,\n bodyUsed: e.bodyUsed,\n statusText: e.statusText,\n clone() {\n return this;\n },\n arrayBuffer,\n blob,\n text,\n json,\n async formData() {\n return new FormData();\n }\n });\n else {\n rej(new Error(`${e.url} - ${e.status}`));\n }\n }\n };\n port1.postMessage({\n id,\n name: "corsFetch",\n args: [input, init3]\n }, transfer);\n });\n return prom;\n};\nasync function getHeaders(s) {\n if (false)\n return headerStringToObject(await GM_head(s));\n const res = await ifetch(s, {\n method: "HEAD"\n });\n return res.headers;\n}\nasync function ifetch(...[url, opt, lisn]) {\n if (true)\n return corsFetch(url.toString(), opt, lisn);\n return GM_fetch(url, opt, lisn);\n}\nasync function* streamRemote(url, chunkSize = 72 * 1024, fetchRestOnNonCanceled = true) {\n let size = Number.POSITIVE_INFINITY;\n let ptr = 0;\n let fetchSize = chunkSize;\n while (ptr != size) {\n let obj;\n const fres = await ifetch(url, { headers: { range: `bytes=${ptr}-${ptr + fetchSize - 1}` } });\n if (false) {\n obj = headerStringToObject(fres.responseHeaders);\n } else {\n obj = fres.headers;\n }\n if (!("content-length" in obj)) {\n console.warn("no content lenght???", url);\n break;\n }\n if ("content-range" in obj) {\n size = +obj["content-range"].split("/")[1];\n }\n const len = +obj["content-length"];\n ptr += len;\n if (fetchRestOnNonCanceled)\n fetchSize = size;\n const val = Buffer2.from(await fres.arrayBuffer());\n const e = yield val;\n if (e) {\n break;\n }\n }\n}\n\n// src/stores.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/store/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/internal/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === "function";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function");\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nvar resolved_promise = Promise.resolve();\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nvar SvelteElement;\nif (typeof HTMLElement === "function") {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: "open" });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n for (const key2 in this.$$.slotted) {\n this.appendChild(this.$$.slotted[key2]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n\n// node_modules/svelte/store/index.mjs\nvar subscriber_queue = [];\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe2(run2, invalidate = noop) {\n const subscriber = [run2, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run2(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe: subscribe2 };\n}\n\n// src/stores.ts\nvar localLoad = async (key2, def) => {\n const ret = await Platform.getValue(key2, def);\n return ret;\n};\nvar localSet2 = (key2, value) => {\n if (true) {\n return;\n }\n if (true)\n chrome.storage.local.set({ [key2]: JSON.stringify(value) });\n else\n localStorage.setItem("__pee__" + key2, JSON.stringify(value));\n};\nvar initial_settings = {\n loop: true,\n dh: false,\n pmeth: 5,\n xpv: false,\n xpi: false,\n hyd: false,\n notcata: false,\n ak: "",\n auto_embed: 0,\n auto_tags: "",\n te: false,\n eye: false,\n ca: false,\n pre: false,\n prev: false,\n sh: false,\n ep: false,\n tm: false,\n dvc: false,\n expte: false,\n mdist: -1,\n phash: false,\n hotlink: false,\n jpeg: false,\n vercheck: false,\n cache: void 0,\n fhost: 0,\n maxe: 5,\n conc: 8,\n ho: false,\n blacklist: [],\n rsources: []\n};\nvar settings = writable();\nvar appState = writable({\n isCatalog: false,\n is4chanX: false,\n akValid: false,\n herror: "",\n client: null,\n processing: 0,\n processed: 0,\n foundPosts: []\n});\nsettings.subscribe((newVal) => {\n if (newVal)\n localSet2("settingsv2", newVal);\n});\n\n// src/pngv3.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer3 = __toESM(require_buffer(), 1);\n\n// src/png.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_crc_32 = __toESM(require_crc32(), 1);\nvar import_buffer = __toESM(require_buffer(), 1);\nvar PNGDecoder = class {\n constructor(reader, strict = true) {\n this.reader = reader;\n this.strict = strict;\n this.req = 8;\n this.ptr = 8;\n this.stopped = false;\n this.repr = import_buffer.Buffer.from([]);\n }\n async catchup() {\n while (this.repr.byteLength < this.req) {\n const chunk = await this.reader.read();\n if (chunk.done) {\n if (this.strict)\n throw new Error(`Unexpected EOF, got ${this.repr.byteLength}, required ${this.req}, ${chunk.value}`);\n this.stopped = true;\n return;\n }\n this.repr = import_buffer.Buffer.concat([this.repr, chunk.value]);\n }\n }\n async *chunks() {\n while (true) {\n this.req += 8;\n await this.catchup();\n if (this.stopped)\n break;\n const length = this.repr.readUInt32BE(this.ptr);\n const name = this.repr.slice(this.ptr + 4, this.ptr + 8).toString();\n this.ptr += 4;\n this.req += length + 4;\n await this.catchup();\n yield [\n name,\n this.repr.slice(this.ptr, this.ptr + length + 4),\n this.ptr + length > this.repr.length ? -1 : this.repr.readUInt32BE(this.ptr + length + 4),\n this.ptr\n ];\n if (this.stopped)\n break;\n this.ptr += length + 8;\n if (name == "IEND")\n break;\n }\n }\n async dtor() {\n }\n};\nvar PNGEncoder = class {\n constructor(bytes) {\n this.writer = bytes.getWriter();\n this.writer.write(import_buffer.Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]));\n }\n async insertchunk(chunk) {\n let b = import_buffer.Buffer.alloc(4);\n const buff = chunk[1];\n b.writeInt32BE(buff.length - 4, 0);\n await this.writer.write(b);\n await this.writer.write(buff);\n b = import_buffer.Buffer.alloc(4);\n b.writeInt32BE((0, import_crc_32.buf)(buff), 0);\n await this.writer.write(b);\n }\n async dtor() {\n this.writer.releaseLock();\n }\n};\n\n// src/utils.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer2 = __toESM(require_buffer(), 1);\n\n// src/assets/hasembed.png\nvar hasembed_default = __toBinary("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");\n\n// src/filehosts.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction parseForm(data) {\n const form = new FormData();\n Object.entries(data).filter(([key2, value]) => value !== null).map(([key2, value]) => form.append(key2, value));\n return form;\n}\nvar lolisafe = (domain, serving = domain) => ({\n domain,\n serving,\n async uploadFile(f) {\n const resp = await ifetch(`https://${domain}/api/upload`, {\n headers: {\n accept: "application/json"\n },\n "body": parseForm({\n reqtype: "fileupload",\n "files[]": new File([f], "f.pee")\n }),\n "method": "POST"\n });\n const res = await resp.json();\n return res.files.map((e) => e.url)[0];\n }\n});\nvar catbox = (domain, serving) => ({\n domain,\n serving,\n async uploadFile(inj) {\n const resp = await ifetch(`https://${domain}/user/api.php`, {\n method: "POST",\n body: parseForm({\n reqtype: "fileupload",\n fileToUpload: inj\n })\n });\n return resp.text();\n }\n});\nvar filehosts = [\n catbox("catbox.moe", "files.catbox.moe"),\n catbox("pomf.moe", "a.pomf.cat"),\n lolisafe("take-me-to.space"),\n lolisafe("zz.ht", "z.zz.fo")\n];\n\n// node_modules/file-type/browser.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer4 = __toESM(require_buffer(), 1);\nvar import_readable_web_to_node_stream = __toESM(require_lib(), 1);\n\n// node_modules/file-type/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer3 = __toESM(require_buffer(), 1);\n\n// node_modules/token-types/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar ieee754 = __toESM(require_ieee754(), 1);\nvar import_node_buffer = __toESM(require_buffer(), 1);\nvar AnsiStringType = class {\n constructor(len) {\n this.len = len;\n }\n static decode(buffer, offset, until) {\n let str = "";\n for (let i = offset; i < until; ++i) {\n str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));\n }\n return str;\n }\n static inRange(a, min, max) {\n return min <= a && a <= max;\n }\n static codePointToString(cp) {\n if (cp <= 65535) {\n return String.fromCharCode(cp);\n } else {\n cp -= 65536;\n return String.fromCharCode((cp >> 10) + 55296, (cp & 1023) + 56320);\n }\n }\n static singleByteDecoder(bite) {\n if (AnsiStringType.inRange(bite, 0, 127)) {\n return bite;\n }\n const codePoint = AnsiStringType.windows1252[bite - 128];\n if (codePoint === null) {\n throw Error("invaliding encoding");\n }\n return codePoint;\n }\n get(buffer, offset = 0) {\n return AnsiStringType.decode(buffer, offset, offset + this.len);\n }\n};\nAnsiStringType.windows1252 = [\n 8364,\n 129,\n 8218,\n 402,\n 8222,\n 8230,\n 8224,\n 8225,\n 710,\n 8240,\n 352,\n 8249,\n 338,\n 141,\n 381,\n 143,\n 144,\n 8216,\n 8217,\n 8220,\n 8221,\n 8226,\n 8211,\n 8212,\n 732,\n 8482,\n 353,\n 8250,\n 339,\n 157,\n 382,\n 376,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 174,\n 175,\n 176,\n 177,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 187,\n 188,\n 189,\n 190,\n 191,\n 192,\n 193,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 219,\n 220,\n 221,\n 222,\n 223,\n 224,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 235,\n 236,\n 237,\n 238,\n 239,\n 240,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250,\n 251,\n 252,\n 253,\n 254,\n 255\n];\n\n// node_modules/strtok3/lib/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/ReadStreamTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/EndOfFileStream.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/Deferred.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\nvar maxStreamReadSize = 1 * 1024 * 1024;\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\nvar import_node_buffer2 = __toESM(require_buffer(), 1);\n\n// node_modules/strtok3/lib/BufferTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/util.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/supported.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar extensions = [\n "jpg",\n "png",\n "apng",\n "gif",\n "webp",\n "flif",\n "xcf",\n "cr2",\n "cr3",\n "orf",\n "arw",\n "dng",\n "nef",\n "rw2",\n "raf",\n "tif",\n "bmp",\n "icns",\n "jxr",\n "psd",\n "indd",\n "zip",\n "tar",\n "rar",\n "gz",\n "bz2",\n "7z",\n "dmg",\n "mp4",\n "mid",\n "mkv",\n "webm",\n "mov",\n "avi",\n "mpg",\n "mp2",\n "mp3",\n "m4a",\n "oga",\n "ogg",\n "ogv",\n "opus",\n "flac",\n "wav",\n "spx",\n "amr",\n "pdf",\n "epub",\n "elf",\n "exe",\n "swf",\n "rtf",\n "wasm",\n "woff",\n "woff2",\n "eot",\n "ttf",\n "otf",\n "ico",\n "flv",\n "ps",\n "xz",\n "sqlite",\n "nes",\n "crx",\n "xpi",\n "cab",\n "deb",\n "ar",\n "rpm",\n "Z",\n "lz",\n "cfb",\n "mxf",\n "mts",\n "blend",\n "bpg",\n "docx",\n "pptx",\n "xlsx",\n "3gp",\n "3g2",\n "jp2",\n "jpm",\n "jpx",\n "mj2",\n "aif",\n "qcp",\n "odt",\n "ods",\n "odp",\n "xml",\n "mobi",\n "heic",\n "cur",\n "ktx",\n "ape",\n "wv",\n "dcm",\n "ics",\n "glb",\n "pcap",\n "dsf",\n "lnk",\n "alias",\n "voc",\n "ac3",\n "m4v",\n "m4p",\n "m4b",\n "f4v",\n "f4p",\n "f4b",\n "f4a",\n "mie",\n "asf",\n "ogm",\n "ogx",\n "mpc",\n "arrow",\n "shp",\n "aac",\n "mp1",\n "it",\n "s3m",\n "xm",\n "ai",\n "skp",\n "avif",\n "eps",\n "lzh",\n "pgp",\n "asar",\n "stl",\n "chm",\n "3mf",\n "zst",\n "jxl",\n "vcf"\n];\nvar mimeTypes = [\n "image/jpeg",\n "image/png",\n "image/gif",\n "image/webp",\n "image/flif",\n "image/x-xcf",\n "image/x-canon-cr2",\n "image/x-canon-cr3",\n "image/tiff",\n "image/bmp",\n "image/vnd.ms-photo",\n "image/vnd.adobe.photoshop",\n "application/x-indesign",\n "application/epub+zip",\n "application/x-xpinstall",\n "application/vnd.oasis.opendocument.text",\n "application/vnd.oasis.opendocument.spreadsheet",\n "application/vnd.oasis.opendocument.presentation",\n "application/vnd.openxmlformats-officedocument.wordprocessingml.document",\n "application/vnd.openxmlformats-officedocument.presentationml.presentation",\n "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",\n "application/zip",\n "application/x-tar",\n "application/x-rar-compressed",\n "application/gzip",\n "application/x-bzip2",\n "application/x-7z-compressed",\n "application/x-apple-diskimage",\n "application/x-apache-arrow",\n "video/mp4",\n "audio/midi",\n "video/x-matroska",\n "video/webm",\n "video/quicktime",\n "video/vnd.avi",\n "audio/vnd.wave",\n "audio/qcelp",\n "audio/x-ms-asf",\n "video/x-ms-asf",\n "application/vnd.ms-asf",\n "video/mpeg",\n "video/3gpp",\n "audio/mpeg",\n "audio/mp4",\n "audio/opus",\n "video/ogg",\n "audio/ogg",\n "application/ogg",\n "audio/x-flac",\n "audio/ape",\n "audio/wavpack",\n "audio/amr",\n "application/pdf",\n "application/x-elf",\n "application/x-msdownload",\n "application/x-shockwave-flash",\n "application/rtf",\n "application/wasm",\n "font/woff",\n "font/woff2",\n "application/vnd.ms-fontobject",\n "font/ttf",\n "font/otf",\n "image/x-icon",\n "video/x-flv",\n "application/postscript",\n "application/eps",\n "application/x-xz",\n "application/x-sqlite3",\n "application/x-nintendo-nes-rom",\n "application/x-google-chrome-extension",\n "application/vnd.ms-cab-compressed",\n "application/x-deb",\n "application/x-unix-archive",\n "application/x-rpm",\n "application/x-compress",\n "application/x-lzip",\n "application/x-cfb",\n "application/x-mie",\n "application/mxf",\n "video/mp2t",\n "application/x-blender",\n "image/bpg",\n "image/jp2",\n "image/jpx",\n "image/jpm",\n "image/mj2",\n "audio/aiff",\n "application/xml",\n "application/x-mobipocket-ebook",\n "image/heif",\n "image/heif-sequence",\n "image/heic",\n "image/heic-sequence",\n "image/icns",\n "image/ktx",\n "application/dicom",\n "audio/x-musepack",\n "text/calendar",\n "text/vcard",\n "model/gltf-binary",\n "application/vnd.tcpdump.pcap",\n "audio/x-dsf",\n "application/x.ms.shortcut",\n "application/x.apple.alias",\n "audio/x-voc",\n "audio/vnd.dolby.dd-raw",\n "audio/x-m4a",\n "image/apng",\n "image/x-olympus-orf",\n "image/x-sony-arw",\n "image/x-adobe-dng",\n "image/x-nikon-nef",\n "image/x-panasonic-rw2",\n "image/x-fujifilm-raf",\n "video/x-m4v",\n "video/3gpp2",\n "application/x-esri-shape",\n "audio/aac",\n "audio/x-it",\n "audio/x-s3m",\n "audio/x-xm",\n "video/MP1S",\n "video/MP2P",\n "application/vnd.sketchup.skp",\n "image/avif",\n "application/x-lzh-compressed",\n "application/pgp-encrypted",\n "application/x-asar",\n "model/stl",\n "application/vnd.ms-htmlhelp",\n "model/3mf",\n "image/jxl",\n "application/zstd"\n];\n\n// node_modules/file-type/core.js\nvar supportedExtensions = new Set(extensions);\nvar supportedMimeTypes = new Set(mimeTypes);\n\n// src/utils.ts\nvar csettings;\nsettings.subscribe((b) => {\n csettings = b;\n});\nvar threadDataCache = writable();\nvar cthreadDataCache;\nthreadDataCache.subscribe((newval) => {\n cthreadDataCache = newval;\n});\nvar decodeCoom3Payload = async (buff) => {\n if (!csettings)\n throw new Error("Settings uninit");\n const allowed_domains = filehosts.map((e) => e.serving.replaceAll(".", "\\\\."));\n const pees = buff.toString().split(" ").slice(0, csettings.maxe).filter((e) => allowed_domains.some((v) => e.match(`https://(.*\\\\.)?${v}/`)));\n return (await Promise.all(pees.map(async (pee) => {\n try {\n const m = pee.match(/(?https?):\\/\\/(?.*?)(?\\/.*)/);\n if (!m)\n return;\n const { domain, file } = m.groups;\n const headers = await getHeaders(pee);\n const res = await ifetch(pee, {\n headers: { range: "bytes=0-32767", "user-agent": "" },\n mode: "cors",\n referrerPolicy: "no-referrer"\n });\n const size = +headers["content-length"] || 0;\n const header = import_buffer2.Buffer.from(await res.arrayBuffer());\n let hptr = 0;\n if (header.slice(0, 4).toString() == "PEE\\0")\n hptr += 4;\n else\n return;\n const flags = header[hptr];\n const hasFn = !!(flags & 1);\n const hasTags = !!(flags & 2);\n const hasThumbnail = !!(flags & 4);\n let [ptr, ptr2] = [hptr + 1, hptr + 1];\n let fn = "embedded";\n let tags = [];\n let thumb = import_buffer2.Buffer.from(hasembed_default);\n if (hasFn) {\n while (header[ptr2] != 0)\n ptr2++;\n fn = header.slice(ptr, ptr2).toString();\n ptr = ++ptr2;\n }\n if (hasTags) {\n while (header[ptr2] != 0)\n ptr2++;\n tags = header.slice(ptr, ptr2).toString().split(/\\s+/);\n }\n let thumbsize = 0;\n if (hasThumbnail) {\n thumbsize = header.readInt32LE(ptr);\n ptr += 4;\n if (header.byteLength >= ptr + thumbsize)\n thumb = header.slice(ptr, ptr + thumbsize);\n else\n thumb = import_buffer2.Buffer.from(await (await ifetch(pee, { headers: { "user-agent": "", range: `bytes=${ptr}-${ptr + thumbsize}` } })).arrayBuffer());\n ptr += thumbsize;\n }\n const unzip = { url: pee, headers: { "user-agent": "", range: `bytes=${ptr}-${size - 1}` } };\n let data;\n data = unzip;\n if (size < 3072) {\n thumb = data = import_buffer2.Buffer.from(await (await ifetch(unzip.url, { headers: unzip.headers })).arrayBuffer());\n }\n return {\n filename: fn,\n data,\n thumbnail: thumb\n };\n } catch (e) {\n console.warn(e);\n }\n }))).filter((e) => e).map((e) => e);\n};\n\n// src/pngv3.ts\nvar bs58 = __toESM(require_bs58(), 1);\n\n// src/bitstream.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar revbyte = (n, len = 8) => {\n let acc = 0;\n let n2 = n;\n let len2 = len;\n while (len2) {\n acc = acc * 2 + (n2 & 1);\n n2 >>= 1;\n len2--;\n }\n return acc;\n};\nvar BitstreamReader = class {\n constructor() {\n this.buffers = [];\n this.bufferedLength = 0;\n this._offsetIntoBuffer = 0;\n this._bufferIndex = 0;\n this._offset = 0;\n this.skippedLength = 0;\n }\n get bufferIndex() {\n return this._bufferIndex;\n }\n get offset() {\n return this._offset;\n }\n get available() {\n return this.bufferedLength - this.skippedLength;\n }\n getBit(offset) {\n const byte = this.buffers[0][offset >> 3];\n return +!!(byte & 1 << (offset & 7));\n }\n readSync(length) {\n let value = 0;\n if (this._offset >> 3 > this.buffers[0].byteLength) {\n throw "Out of data";\n }\n for (let i = length - 1; i >= 0; --i) {\n value = value * 2 + this.getBit(this._offset + i);\n }\n this._offset += length;\n this.bufferedLength -= length;\n return value;\n }\n addBuffer(buffer) {\n this.buffers.push(buffer);\n this.bufferedLength += buffer.length * 8;\n }\n};\nvar BitstreamWriter = class {\n constructor(stream, bufferSize = 1) {\n this.stream = stream;\n this.pendingBits = 0;\n this.bufferoffset = 0;\n this._offset = 0;\n bufferSize = 1;\n this.buffer = new Uint8Array(bufferSize);\n }\n get offset() {\n return this._offset;\n }\n get byteOffset() {\n return this.pendingBits;\n }\n end() {\n this.flush();\n }\n flush() {\n this.stream.write(new Uint8Array(this.buffer));\n this.bufferoffset = 0;\n this.buffer.fill(0);\n }\n setBit(b) {\n let byte = this.buffer[0];\n byte |= b << (this._offset & 7);\n this.buffer[0] = byte;\n this._offset += 1;\n if (++this.bufferoffset == this.buffer.length * 8) {\n this.flush();\n }\n }\n write(length, value) {\n while (length--) {\n this.setBit(value & 1);\n value >>= 1;\n }\n }\n};\n\n// src/dh-deflate.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar TINF_OK = 0;\nvar Tree = class {\n constructor() {\n this.table = new Uint16Array(16);\n this.trans = new Uint16Array(288);\n }\n};\nvar getPathTo = (tree, value) => {\n if (tree[0] === value)\n return "0";\n if (tree[1] === value)\n return "1";\n let p;\n if (typeof tree[0] != "number")\n p = getPathTo(tree[0], value);\n let b = "0";\n if (!p) {\n if (tree[1] && typeof tree[1] != "number")\n p = getPathTo(tree[1], value);\n b = "1";\n }\n if (p)\n return b + p;\n};\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n let p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\nvar Data = class {\n constructor(source, dests, to_hide, hidden) {\n this.source = source;\n this.dests = dests;\n this.to_hide = to_hide;\n this.hidden = hidden;\n this.pathMap = /* @__PURE__ */ new Map();\n this.dest = [];\n this.ltree = new Tree();\n this.dtree = new Tree();\n }\n computeReverse() {\n this.rltree = buildHuffmanTable(this.ltree.table, this.ltree.trans)[0];\n this.rdtree = buildHuffmanTable(this.dtree.table, this.dtree.trans)[0];\n this.adists = new Set(this.rdtree.flat(16));\n }\n};\nvar sltree = new Tree();\nvar sdtree = new Tree();\nvar rltree;\nvar rdtree;\nvar sadist;\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\nvar clcidx = new Uint8Array([\n 16,\n 17,\n 18,\n 0,\n 8,\n 7,\n 9,\n 6,\n 10,\n 5,\n 11,\n 4,\n 12,\n 3,\n 13,\n 2,\n 14,\n 1,\n 15\n]);\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\nfunction tinf_build_bits_base(bits, base, delta, first) {\n let i, sum;\n for (i = 0; i < delta; ++i)\n bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i)\n bits[i + delta] = i / delta | 0;\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\nfunction tinf_build_fixed_trees(lt, dt) {\n let i;\n for (i = 0; i < 7; ++i)\n lt.table[i] = 0;\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n for (i = 0; i < 24; ++i)\n lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i)\n lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i)\n lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i)\n lt.trans[24 + 144 + 8 + i] = 144 + i;\n for (i = 0; i < 5; ++i)\n dt.table[i] = 0;\n dt.table[5] = 32;\n for (i = 0; i < 32; ++i)\n dt.trans[i] = i;\n}\nvar offs = new Uint16Array(16);\nfunction tinf_build_tree(t, lengths2, off, num) {\n let i, sum;\n for (i = 0; i < 16; ++i)\n t.table[i] = 0;\n for (i = 0; i < num; ++i)\n t.table[lengths2[off + i]]++;\n t.table[0] = 0;\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n for (i = 0; i < num; ++i) {\n if (lengths2[off + i])\n t.trans[offs[lengths2[off + i]]++] = i;\n }\n}\nfunction tinf_getbit(d) {\n const v = d.source.readSync(1);\n return v;\n}\nvar loff = 0;\nvar loffs = [];\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n const v = d.source.readSync(num) + base;\n loff = v;\n loffs.push(v);\n if (loffs.length > 4) {\n loffs.shift();\n }\n return v;\n}\nfunction tinf_decode_symbol(d, t, copy = true, ext = {}) {\n let sum = 0, cur = 0, len = 0;\n let s = 0;\n do {\n const b = d.source.readSync(1);\n copy && d.hidden?.write(1, b);\n s = s << 1 | b;\n cur = 2 * cur + b;\n ++len;\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n ext.length = len;\n ext.sym = s;\n return t.trans[sum + cur];\n}\nfunction tinf_decode_trees(d, lt, dt, copy = true) {\n let i, num, length;\n const hlit = tinf_read_bits(d, 5, 257);\n copy && d.hidden?.write(5, hlit - 257);\n const hdist = tinf_read_bits(d, 5, 1);\n copy && d.hidden?.write(5, hdist - 1);\n const hclen = tinf_read_bits(d, 4, 4);\n copy && d.hidden?.write(4, hclen - 4);\n for (i = 0; i < 19; ++i)\n lengths[i] = 0;\n for (i = 0; i < hclen; ++i) {\n const clen = tinf_read_bits(d, 3, 0);\n copy && d.hidden?.write(3, clen);\n lengths[clcidx[i]] = clen;\n }\n tinf_build_tree(code_tree, lengths, 0, 19);\n for (num = 0; num < hlit + hdist; ) {\n const sym = tinf_decode_symbol(d, code_tree, copy);\n let prev;\n switch (sym) {\n case 16:\n prev = lengths[num - 1];\n length = tinf_read_bits(d, 2, 3);\n copy && d.hidden?.write(2, length - 3);\n for (; length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n length = tinf_read_bits(d, 3, 3);\n copy && d.hidden?.write(3, length - 3);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n length = tinf_read_bits(d, 7, 11);\n copy && d.hidden?.write(7, length - 11);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n lengths[num++] = sym;\n break;\n }\n }\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\nvar get_symbol = (value, bits_table, base_table) => {\n let i = 0;\n for (i = 0; i < base_table.length; ++i) {\n if (base_table[i] > value) {\n i--;\n return [i, bits_table[i], value - base_table[i]];\n }\n }\n i--;\n return [i, bits_table[i], value - base_table[i]];\n};\nvar encode_symbol = (sym, tree, pathMap) => {\n const code = getPathTo(tree, sym);\n const v = {\n length: code?.length,\n val: parseInt(code, 2)\n };\n return v;\n};\nvar capacity = 0;\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n let sym = tinf_decode_symbol(d, lt);\n if (sym === 256) {\n return TINF_OK;\n }\n if (sym < 256) {\n d.dest.push(sym);\n } else {\n sym -= 257;\n const length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n if (length_bits[sym])\n d.hidden?.write(length_bits[sym], length - length_base[sym]);\n const ext = { length: 0, sym: 0 };\n const dist = tinf_decode_symbol(d, dt, false, ext);\n let backoffset = tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n const offs2 = d.dest.length - backoffset;\n let match;\n const skip = !d.to_hide || d.to_hide && d.to_hide instanceof BitstreamReader && d.to_hide.available == 0;\n if (!skip && (match = Buffer2.from(d.dest.slice(offs2, offs2 + length))).length == length) {\n let begin = d.dest.length - 32768;\n if (begin < 0)\n begin = 0;\n let matches = [];\n let o = 0;\n const slic = Buffer2.from(d.dest.slice(begin + o, d.dest.length));\n while (begin + o < d.dest.length) {\n const r = slic.slice(o, d.dest.length).indexOf(match);\n if (r >= 0) {\n matches.push(r + begin + o);\n o += r;\n } else {\n break;\n }\n o++;\n }\n if (matches.length > 1) {\n matches = matches.map((e) => -(e - d.dest.length)).filter((e) => {\n const [dsym2] = get_symbol(e, dist_bits, dist_base);\n return d.adists.has(dsym2);\n });\n matches.reverse();\n const v = Math.floor(Math.log2(matches.length));\n capacity += v;\n if (d.to_hide instanceof BitstreamReader) {\n if (d.to_hide.available) {\n const s = d.to_hide.readSync(Math.min(d.to_hide.available, v));\n backoffset = matches[s];\n }\n } else {\n const idx = matches.indexOf(backoffset);\n d.to_hide.write(v, idx);\n }\n }\n }\n const [dsym, dlen, doff] = get_symbol(backoffset, dist_bits, dist_base);\n const encdist = encode_symbol(dsym, d.rdtree, d.pathMap);\n d.hidden?.write(encdist.length, revbyte(encdist.val, encdist.length));\n d.hidden?.write(dlen, doff);\n for (let i = offs2; i < offs2 + length; ++i) {\n d.dest.push(d.dest[i]);\n }\n }\n }\n}\nfunction tinf_inflate_uncompressed_block(d) {\n if (d.source.offset & 7)\n d.source.readSync(8 - d.source.offset & 7);\n if (d.hidden && d.hidden.offset & 7)\n d.hidden?.write(8 - d.hidden.offset & 7, 0);\n const length = d.source.readSync(16);\n d.hidden?.write(16, length);\n const invlength = d.source.readSync(16);\n d.hidden?.write(16, invlength);\n if (length !== (~invlength & 65535)) {\n return -4;\n }\n for (let i = length; i; --i) {\n const v = d.source.readSync(8);\n d.dest.push(v);\n d.hidden?.write(8, v);\n }\n return TINF_OK;\n}\nfunction tinf_uncompress(source, decompressed, to_hide, hidden, opt = 0) {\n const decomp = decompressed ? new BitstreamWriter({ write: decompressed }) : null;\n const hid = hidden && new BitstreamWriter({ write: hidden }, 4);\n const d = new Data(source, decomp, to_hide, hid);\n let res;\n let bfinal, btype;\n do {\n bfinal = tinf_getbit(d);\n d.hidden?.write(1, bfinal);\n btype = tinf_read_bits(d, 2, 0);\n d.hidden?.write(2, btype);\n switch (btype) {\n case 0:\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n d.rdtree = rdtree;\n d.rltree = rltree;\n d.adists = sadist;\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n tinf_decode_trees(d, d.ltree, d.dtree);\n d.computeReverse();\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = -2;\n }\n if (res !== TINF_OK)\n throw new Error("Data error " + res);\n } while (!bfinal);\n decomp?.end();\n hid?.end();\n}\ntinf_build_fixed_trees(sltree, sdtree);\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\nrltree = buildHuffmanTable(sltree.table, sltree.trans)[0];\nrdtree = buildHuffmanTable(sdtree.table, sdtree.trans)[0];\nsadist = new Set(rdtree.flat(16));\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\n// src/pngv3.ts\nvar csettings2;\nsettings.subscribe((b) => {\n csettings2 = b;\n});\nvar CUM3 = import_buffer3.Buffer.from("doo\\0m");\nvar CUM4 = import_buffer3.Buffer.from("voo\\0m");\nvar CUM5 = import_buffer3.Buffer.from("boo\\0");\nvar CUM6 = import_buffer3.Buffer.from("Creation Time\\0");\nvar CUM7 = import_buffer3.Buffer.from("Software\\0");\nvar BufferReadStream = (b) => {\n const ret = new ReadableStream({\n pull(cont) {\n cont.enqueue(b);\n cont.close();\n }\n });\n return ret;\n};\nvar password = import_buffer3.Buffer.from("NOA");\nvar xor = (a, p) => {\n let n = 0;\n for (let i = 0; i < a.byteLength; ++i) {\n a[i] ^= p[n];\n n++;\n n %= p.byteLength;\n }\n};\nvar prefs = {\n "files.catbox.moe": "c",\n "a.pomf.cat": "p",\n "take-me-to.space": "t",\n "z.zz.fo": "z"\n};\nvar rprefs = {\n "c": "files.catbox.moe",\n "p": "a.pomf.cat",\n "t": "take-me-to.space",\n "z": "z.zz.fo"\n};\nvar extractFromRawDeflate = (b) => {\n const src = new BitstreamReader();\n src.addBuffer(b);\n const chnks = [];\n const hidden = new BitstreamWriter({\n write(chunk) {\n for (const i of chunk) {\n if (i >= 32 && i <= 128)\n chnks.push(i);\n else\n throw "Finish";\n }\n }\n });\n try {\n tinf_uncompress(src, void 0, hidden, void 0);\n } catch (e) {\n if (e == "Finish")\n return import_buffer3.Buffer.from(chnks);\n }\n return false;\n};\nvar extract = async (png, doextract = true) => {\n const reader = BufferReadStream(png).getReader();\n const sneed = new PNGDecoder(reader, false);\n const ret = [];\n let w;\n if (!csettings2)\n throw new Error("Settings uninit");\n try {\n let complete = false;\n const idats = [];\n for await (const [name, chunk, crc, offset] of sneed.chunks()) {\n let buff;\n switch (name) {\n case "tEXt":\n buff = chunk;\n if (buff.slice(4, 4 + CUM3.length).equals(CUM3)) {\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(buff.slice(4 + CUM3.length));\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM4.length).equals(CUM4)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM4.length);\n xor(passed, password);\n const k = await decodeCoom3Payload(passed);\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM5.length).equals(CUM5)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM5.length);\n const decoded = import_buffer3.Buffer.from(passed.toString(), "base64").toString().split(" ").map((e) => {\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n }\n if (w = [CUM6, CUM7].find((e) => buff.slice(4, 4 + e.length).equals(e))) {\n const passed = buff.slice(4 + w.length);\n if (!passed.toString().match(/^[0-9a-zA-Z+/=]+$/g))\n continue;\n const decoders = [\n (b) => import_buffer3.Buffer.from(b.toString(), "base64").toString(),\n (b) => import_buffer3.Buffer.from(bs58.decode(passed.toString())).toString()\n ];\n for (const d of decoders) {\n try {\n const decoded = d(passed).split(" ").map((e) => {\n if (!(e[0] in rprefs))\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n } catch (e) {\n }\n }\n }\n break;\n case "IDAT":\n if (ret.length)\n return ret;\n buff = chunk;\n idats.push(buff.slice(4));\n break;\n case "IEND":\n complete = true;\n default:\n break;\n }\n }\n if (idats.length) {\n let decoded;\n if ((decoded = extractFromRawDeflate(import_buffer3.Buffer.concat(idats).slice(2))) === false)\n return false;\n const dec = decoded.toString().split(" ").map((e) => {\n if (!(e[0] in rprefs) || e.length < 5)\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (doextract)\n return decodeCoom3Payload(import_buffer3.Buffer.from(dec));\n return true;\n }\n } catch (e) {\n if (e != "Uhh")\n console.error(e);\n } finally {\n reader.releaseLock();\n }\n};\nvar buildChunk = (tag, data) => {\n const ret = import_buffer3.Buffer.alloc(data.byteLength + 4);\n ret.write(tag.slice(0, 4), 0);\n data.copy(ret, 4);\n return ret;\n};\nvar BufferWriteStream = () => {\n let b = import_buffer3.Buffer.from([]);\n const ret = new WritableStream({\n write(chunk) {\n b = import_buffer3.Buffer.concat([b, chunk]);\n console.log("finished appending");\n }\n });\n return [ret, () => b];\n};\nvar embedInRawDeflate = (b, h) => {\n const src = new BitstreamReader();\n const hid = new BitstreamReader();\n hid.addBuffer(h);\n src.addBuffer(b);\n const chnks = [];\n tinf_uncompress(src, void 0, hid, (c) => chnks.push(c));\n return import_buffer3.Buffer.concat(chnks);\n};\nvar inject_data = async (container, injb) => {\n injb = import_buffer3.Buffer.concat([injb, import_buffer3.Buffer.from([0])]);\n if (!csettings2)\n throw new Error("Settings uninit");\n if (csettings2.pmeth < 5) {\n let magic = false;\n const [writestream2, extract6] = BufferWriteStream();\n const encoder = new PNGEncoder(writestream2);\n const decoder = new PNGDecoder(container.stream().getReader());\n for await (const [name, chunk, crc, offset] of decoder.chunks()) {\n if (magic && name != "IDAT")\n break;\n if (!magic && name == "IDAT") {\n const passed = import_buffer3.Buffer.from(injb);\n switch (csettings2.pmeth) {\n case 0:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM3, passed])), 0, 0]);\n break;\n case 1:\n xor(passed, password);\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM4, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 2:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM5, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 3:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM6, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 4:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM7, import_buffer3.Buffer.from(bs58.encode(passed))])), 0, 0]);\n break;\n }\n magic = true;\n }\n await encoder.insertchunk([name, chunk, crc, offset]);\n }\n await encoder.insertchunk([\n "IEND",\n buildChunk("IEND", import_buffer3.Buffer.from([])),\n 0,\n 0\n ]);\n return extract6();\n }\n let pdec = new PNGDecoder(container.stream().getReader());\n const concat = [];\n for await (const chk of pdec.chunks())\n if (chk[0] == "IDAT")\n concat.push(chk[1].slice(4));\n const comp = import_buffer3.Buffer.concat(concat);\n const head = comp.slice(0, 2);\n const chksum = comp.slice(-4);\n const idatblk = embedInRawDeflate(comp.slice(2, -4), injb);\n const [writestream, extract5] = BufferWriteStream();\n const penc = new PNGEncoder(writestream);\n pdec = new PNGDecoder(container.stream().getReader());\n let ins = false;\n for await (const chk of pdec.chunks()) {\n if (chk[0] != "IDAT") {\n await penc.insertchunk(chk);\n } else {\n if (!ins) {\n await penc.insertchunk(["IDAT", import_buffer3.Buffer.concat([import_buffer3.Buffer.from("IDAT"), head, idatblk, chksum]), 0, 0]);\n ins = true;\n }\n }\n }\n await penc.dtor();\n console.log("Finished writing");\n return extract5();\n};\nvar inject = async (container, links) => {\n links = links.map((link) => {\n for (const h of filehosts) {\n if (link.includes(h.serving)) {\n const end = link.split("/").slice(-1)[0];\n return `${prefs[h.serving]}${end}`;\n }\n }\n return "";\n });\n const injb = import_buffer3.Buffer.from(links.join(" "));\n return inject_data(container, injb);\n};\nvar has_embed = async (png) => {\n const r = await extract(png, false);\n return !!r;\n};\nvar pngv3_default = {\n extract,\n has_embed,\n inject,\n match: (fn) => !!fn.match(/\\.png$/)\n};\n\n// src/jpg.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer4 = __toESM(require_buffer(), 1);\n\n// src/f5stego.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction* f5get() {\n let extrBit = 0;\n let k = 0;\n for (let i = 0; i < 4; ++i) {\n const b2 = yield;\n k |= b2 << i;\n }\n k = (k & 15) + 1;\n let toread = 8;\n let len = 0;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const b = yield;\n toread += 8;\n if (b)\n toread += 7;\n else\n len *= 2;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const rlen = revbyte(len, b ? 23 : 16);\n len = rlen;\n if (len > 256)\n throw new Error("Too big for Smash");\n len *= 8;\n const chunks = [];\n const bw = new BitstreamWriter({\n write(chunk) {\n chunks.push(chunk);\n }\n });\n while (len) {\n extrBit = yield;\n bw.write(1, extrBit);\n len--;\n }\n bw.end();\n return Buffer2.concat(chunks).slice(0, rlen);\n}\nvar bitcode = new Array(65535);\nvar category = new Array(65535);\nvar std_dc_luminance_nrcodes = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\nvar std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_luminance_nrcodes = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\nvar std_ac_luminance_values = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nvar std_dc_chrominance_nrcodes = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\nvar std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_chrominance_nrcodes = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\nvar std_ac_chrominance_values = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nfunction _initCategoryNumber() {\n let nrlower = 1;\n let nrupper = 2;\n for (let cat = 1; cat <= 15; cat++) {\n for (let nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n for (let nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n}\n_initCategoryNumber();\nfunction _computeHuffmanTbl(nrcodes, std_table) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = [];\n for (let k = 1; k <= 16; k++) {\n for (let j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n}\nvar YDC_HT = _computeHuffmanTbl(std_dc_luminance_nrcodes, std_dc_luminance_values);\nvar UVDC_HT = _computeHuffmanTbl(std_dc_chrominance_nrcodes, std_dc_chrominance_values);\nvar YAC_HT = _computeHuffmanTbl(std_ac_luminance_nrcodes, std_ac_luminance_values);\nvar UVAC_HT = _computeHuffmanTbl(std_ac_chrominance_nrcodes, std_ac_chrominance_values);\nvar __raw, _jfif, _APPn, _qts, _frame, _tail, __f5write, _f5write_fn;\nvar f5stego = class {\n constructor(key2, maxPixels = 4096 * 4096) {\n this.maxPixels = maxPixels;\n __privateAdd(this, __f5write);\n __privateAdd(this, __raw, void 0);\n __privateAdd(this, _jfif, void 0);\n __privateAdd(this, _APPn, void 0);\n __privateAdd(this, _qts, void 0);\n __privateAdd(this, _frame, null);\n __privateAdd(this, _tail, null);\n }\n embed(image, data, k) {\n this.parse(image);\n this.f5put(data, k);\n return this.pack();\n }\n extract(image) {\n try {\n this.gengen = f5get();\n this.gengen.next();\n this.parse(image, true);\n return this.f5get();\n } catch (e) {\n if (e instanceof Buffer2)\n return e;\n throw e;\n }\n }\n f5put(data, k) {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let t, i, comp = __privateGet(this, _frame).components[0];\n if (data.length > 8388607)\n throw "Data too big. Max 8388607 bytes allowed.";\n if (data.length < 32768) {\n t = new Uint8Array(2 + data.length);\n t[0] = data.length & 255;\n t[1] = data.length >>> 8;\n t.set(data, 2);\n } else {\n t = new Uint8Array(3 + data.length);\n t[0] = data.length & 255;\n t[1] = (data.length >>> 8 & 127) + 128;\n t[2] = data.length >>> 15;\n t.set(data, 3);\n }\n if (comp.componentId != 1) {\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n return __privateMethod(this, __f5write, _f5write_fn).call(this, comp.blocks, t, k);\n }\n f5get() {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let comp = __privateGet(this, _frame).components[0];\n if (comp.componentId != 1) {\n for (let i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n const coeff = new Int16Array(comp.blocks.length);\n coeff.set(comp.blocks);\n let pos = -1, extrBit = 0, cCount = coeff.length - 1;\n let n, k = 0;\n let out = new Uint8Array(coeff.length / 8 | 0), extrByte = 0, outPos = 0, bitsAvail = 0, code = 0, hash = 0;\n while (bitsAvail < 4) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n k |= extrBit << bitsAvail;\n bitsAvail++;\n }\n k = (k & 15) + 1;\n n = (1 << k) - 1;\n bitsAvail = 0;\n if (k == 1) {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n extrByte |= extrBit << bitsAvail;\n bitsAvail++;\n if (bitsAvail == 8) {\n out[outPos++] = extrByte;\n extrByte = 0;\n bitsAvail = 0;\n }\n }\n } else {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n hash ^= extrBit * ++code;\n if (code == n) {\n extrByte |= hash << bitsAvail;\n bitsAvail += k;\n code = 0;\n hash = 0;\n while (bitsAvail >= 8) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n }\n }\n }\n while (bitsAvail > 0) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n let s = 2, l = out[0];\n if (out[1] & 128) {\n s++;\n l += ((out[1] & 127) << 8) + (out[2] << 15);\n } else {\n l += out[1] << 8;\n }\n return out.subarray(s, s + l);\n }\n parse(data, tolerant = false) {\n let offset = 0;\n function _buildHuffmanTable(nrcodes, values) {\n let codevalue = 0, pos_in_table = 0, HT = new Uint16Array(65536);\n for (let k = 0; k < 16; k++) {\n for (let j2 = 0; j2 < nrcodes[k]; j2++) {\n for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) {\n HT[i2] = values[pos_in_table] + (k + 1 << 8);\n }\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => {\n let startOffset = offset2, bitsData = 0, bitsCount = 0, eobrun = 0, p1 = 1 << successive, m1 = -1 << successive;\n const prevpos = 0;\n const decodeBaseline = (component2, pos) => {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n let diff = 0;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff;\n let k2 = 1, s, r;\n while (k2 < 64) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n bitsCount -= s;\n k2++;\n }\n };\n function decodeDCFirst(component2, pos) {\n let diff = 0;\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff << successive;\n }\n function decodeDCSuccessive(component2, pos) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocksDC[pos >> 6] |= (bitsData >>> --bitsCount & 1) << successive;\n }\n if (!frame)\n throw "Frame not parsed yet";\n function decodeACFirst(component2, pos) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k2 = spectralStart, s, r;\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r != 15) {\n eobrun = (1 << r) - 1;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n bitsCount -= s;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n component2.blocks[pos + k2] *= p1;\n k2++;\n }\n }\n function decodeACSuccessive(component2, pos) {\n let k2 = spectralStart, r, s;\n if (frame == null)\n throw "Frame not defined";\n if (!eobrun) {\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s) {\n if (s != 1)\n throw "bad jpeg";\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n s = bitsData >>> --bitsCount & 1 ? p1 : m1;\n } else {\n if (r != 15) {\n eobrun = 1 << r;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n }\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n } else {\n if (--r < 0)\n break;\n }\n k2++;\n }\n if (s)\n component2.blocks[pos + k2] = s;\n k2++;\n }\n }\n if (eobrun) {\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n }\n k2++;\n }\n eobrun--;\n }\n }\n let decodeFn;\n if (frame.progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y;\n let lastflushidx = 0;\n const flushBits = () => {\n if (!this.gengen)\n return;\n const component2 = components.find((e) => e.componentId == 1);\n while (component2.blocks[lastflushidx + 1] !== void 0) {\n const blk = component2.blocks[lastflushidx];\n if (blk != 0) {\n const v = blk < 0 ? 1 - (blk & 1) : blk & 1;\n const it = this.gengen.next(v);\n if (it.done) {\n throw it.value;\n }\n }\n lastflushidx++;\n }\n };\n if (components.length == 1) {\n mcusPerLine = components[0].blocksPerLine;\n mcusPerRow = components[0].blocksPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64);\n }\n }\n flushBits();\n }\n } else {\n mcusPerLine = frame.mcusPerLine;\n mcusPerRow = frame.mcusPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n for (j2 = 0; j2 < components[i2].v; j2++) {\n for (k = 0; k < components[i2].h; k++) {\n decodeFn(components[i2], ((y * components[i2].v + j2) * components[i2].blocksPerLineForMcu + x * components[i2].h + k) * 64);\n }\n }\n }\n }\n flushBits();\n }\n }\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n return offset2 - startOffset;\n };\n function readUint16() {\n const value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n __privateSet(this, __raw, data);\n __privateSet(this, _jfif, null);\n __privateSet(this, _APPn, []);\n __privateSet(this, _qts, []);\n __privateSet(this, _frame, null);\n __privateSet(this, _tail, null);\n let markerHi, markerLo, i, j, resetInterval, component;\n const huffmanTablesAC = [];\n const huffmanTablesDC = [];\n while (1) {\n if (offset >= data.length) {\n if (tolerant)\n break;\n throw "unexpected EOF";\n }\n markerHi = data[offset++];\n markerLo = data[offset++];\n if (markerHi == 255) {\n if (markerLo == 224) {\n __privateSet(this, _jfif, readDataBlock());\n }\n if (markerLo > 224 && markerLo < 240 || markerLo == 254) {\n __privateGet(this, _APPn).push({\n "app": markerLo,\n "data": readDataBlock()\n });\n }\n if (markerLo == 219) {\n __privateGet(this, _qts).push(readDataBlock());\n }\n if (markerLo >= 192 && markerLo <= 194) {\n if (__privateGet(this, _frame))\n throw "Only single frame JPEGs supported";\n readUint16();\n __privateSet(this, _frame, {\n "extended": markerLo === 193,\n "progressive": markerLo === 194,\n "precision": data[offset++],\n "scanLines": readUint16(),\n "samplesPerLine": readUint16(),\n "components": [],\n "componentIds": {},\n "maxH": 1,\n "maxV": 1\n });\n if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels)\n throw "Image is too big.";\n var componentsCount = data[offset++], componentId;\n let maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h)\n maxH = h;\n if (maxV < v)\n maxV = v;\n const qId = data[offset + 2];\n const l = __privateGet(this, _frame).components.push({\n componentId,\n h,\n v,\n quantizationTable: qId\n });\n __privateGet(this, _frame).componentIds[componentId] = l - 1;\n offset += 3;\n }\n __privateGet(this, _frame).maxH = maxH;\n __privateGet(this, _frame).maxV = maxV;\n const mcusPerLine = Math.ceil(__privateGet(this, _frame).samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(__privateGet(this, _frame).scanLines / 8 / maxV);\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n component = __privateGet(this, _frame).components[i];\n const blocksPerLine = Math.ceil(Math.ceil(__privateGet(this, _frame).samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(__privateGet(this, _frame).scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n __privateGet(this, _frame).components[i] = {\n ...component,\n blocks: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu * 64),\n blocksDC: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu),\n blocksPerLine,\n blocksPerColumn,\n blocksPerLineForMcu,\n blocksPerColumnForMcu\n };\n }\n __privateGet(this, _frame).mcusPerLine = mcusPerLine;\n __privateGet(this, _frame).mcusPerColumn = mcusPerColumn;\n }\n if (markerLo == 196) {\n const huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n const v = _buildHuffmanTable(codeLengths, huffmanValues);\n if (huffmanTableSpec >> 4 === 0)\n huffmanTablesDC[huffmanTableSpec & 15] = v;\n else\n huffmanTablesAC[huffmanTableSpec & 15] = v;\n }\n }\n if (markerLo == 221) {\n resetInterval = readUint16();\n }\n if (markerLo == 218) {\n if (__privateGet(this, _frame) == null)\n throw "SOS before SOF";\n readUint16();\n const selectorsCount = data[offset++];\n const components = [];\n for (i = 0; i < selectorsCount; i++) {\n const componentIndex = __privateGet(this, _frame).componentIds[data[offset++]];\n component = __privateGet(this, _frame).components[componentIndex];\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset, __privateGet(this, _frame), components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n }\n if (markerLo == 217) {\n break;\n }\n } else {\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n }\n while (data[offset] != 255 && offset < data.length) {\n offset++;\n }\n if (data[offset] != 255) {\n throw "bad jpeg ";\n }\n }\n }\n if (!__privateGet(this, _frame))\n throw "bad jpeg";\n if (offset < data.length)\n __privateSet(this, _tail, data.subarray(offset));\n return this;\n }\n pack() {\n let byteout;\n let bytenew;\n let bytepos;\n let poslast;\n let outpos;\n let byte;\n function writeByte(value) {\n let t;\n byteout[outpos++] = value;\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function writeBlock(block) {\n let t;\n if (outpos + block.length > poslast) {\n t = new Uint8Array(byteout.length * 2 + block.length);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n byteout.set(block, outpos);\n outpos += block.length;\n }\n function writeAPP0(self2) {\n writeWord(65504);\n if (!__privateGet(self2, _jfif)) {\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n } else {\n writeWord(__privateGet(self2, _jfif).length + 2);\n writeBlock(__privateGet(self2, _jfif));\n }\n }\n function writeDQT(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _qts).length; i2++) {\n writeWord(65499);\n writeWord(__privateGet(self2, _qts)[i2].length + 2);\n writeBlock(__privateGet(self2, _qts)[i2]);\n }\n }\n function writeAPPn(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _APPn).length; i2++) {\n writeWord(65280 | __privateGet(self2, _APPn)[i2].app);\n writeWord(__privateGet(self2, _APPn)[i2].data.length + 2);\n writeBlock(__privateGet(self2, _APPn)[i2].data);\n }\n }\n function writeSOF0(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65472);\n writeWord(8 + __privateGet(self2, _frame).components.length * 3);\n writeByte(__privateGet(self2, _frame).precision);\n writeWord(__privateGet(self2, _frame).scanLines);\n writeWord(__privateGet(self2, _frame).samplesPerLine);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n writeByte(c2.h << 4 | c2.v);\n writeByte(c2.quantizationTable);\n }\n }\n function writeDHT(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65476);\n writeWord(31);\n writeByte(0);\n for (let i2 = 0; i2 < 16; i2++) {\n writeByte(std_dc_luminance_nrcodes[i2 + 1]);\n }\n for (let j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(16);\n for (let k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (let l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n if (__privateGet(self2, _frame).components.length != 1) {\n writeWord(65476);\n writeWord(31);\n writeByte(1);\n for (let m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (let n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(17);\n for (let o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (let p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n }\n function writeSOS(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65498);\n writeWord(6 + __privateGet(self2, _frame).components.length * 2);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n if (i2 === 0) {\n writeByte(0);\n } else {\n writeByte(17);\n }\n }\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(comp, POS, DC, HTDC, HTAC) {\n let pos, posval, t;\n if (bytepos === 0)\n bytenew = 0;\n if (!("blocks" in comp))\n throw "Blocks not parsed";\n const Diff = comp.blocksDC[POS >> 6] - DC;\n DC = comp.blocksDC[POS >> 6];\n if (Diff === 0) {\n posval = HTDC[0][1];\n bytenew <<= posval;\n bytenew += HTDC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n } else {\n pos = 32767 + Diff;\n posval = HTDC[category[pos]][1];\n bytenew <<= posval;\n bytenew += HTDC[category[pos]][0];\n bytepos += posval;\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n let end0pos = 63;\n for (; end0pos > 0 && comp.blocks[POS + end0pos] === 0; end0pos--) {\n }\n if (end0pos === 0) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n return DC;\n }\n let i2 = 1;\n let lng;\n while (i2 <= end0pos) {\n const startpos = i2;\n for (; comp.blocks[POS + i2] === 0 && i2 <= end0pos; ++i2) {\n }\n let nrzeroes = i2 - startpos;\n if (nrzeroes >= 16) {\n lng = nrzeroes >> 4;\n for (let nrmarker = 1; nrmarker <= lng; ++nrmarker) {\n posval = HTAC[240][1];\n bytenew <<= posval;\n bytenew += HTAC[240][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + comp.blocks[POS + i2];\n posval = HTAC[(nrzeroes << 4) + category[pos]][1];\n bytenew <<= posval;\n bytenew += HTAC[(nrzeroes << 4) + category[pos]][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n i2++;\n }\n if (end0pos != 63) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n return DC;\n }\n byteout = new Uint8Array(65536);\n poslast = 65536 - 128;\n outpos = 0;\n bytenew = 0;\n bytepos = 0;\n writeWord(65496);\n writeAPP0(this);\n writeAPPn(this);\n writeDQT(this);\n writeSOF0(this);\n writeDHT(this);\n writeSOS(this);\n bytenew = 0;\n bytepos = 0;\n if (!__privateGet(this, _frame))\n throw "Frame not ready";\n let c, mcuRow, mcuCol, blockRow, blockCol, mcu, i, v, h;\n const DCdiff = [];\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n DCdiff.push(0);\n }\n for (mcu = 0; mcu < __privateGet(this, _frame).mcusPerLine * __privateGet(this, _frame).mcusPerColumn; mcu++) {\n mcuRow = mcu / __privateGet(this, _frame).mcusPerLine | 0;\n mcuCol = mcu % __privateGet(this, _frame).mcusPerLine;\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n c = __privateGet(this, _frame).components[i];\n for (v = 0; v < c.v; v++) {\n blockRow = mcuRow * c.v + v;\n for (h = 0; h < c.h; h++) {\n blockCol = mcuCol * c.h + h;\n if (i === 0) {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], YDC_HT, YAC_HT);\n } else {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], UVDC_HT, UVAC_HT);\n }\n }\n }\n }\n }\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n }\n if (bytepos > 0) {\n bytenew <<= 8 - bytepos;\n bytenew += (1 << 8 - bytepos) - 1;\n byteout[outpos++] = 255 & bytenew;\n }\n writeWord(65497);\n if (__privateGet(this, _tail))\n writeBlock(__privateGet(this, _tail));\n return byteout.slice(0, outpos);\n }\n};\n__raw = new WeakMap();\n_jfif = new WeakMap();\n_APPn = new WeakMap();\n_qts = new WeakMap();\n_frame = new WeakMap();\n_tail = new WeakMap();\n__f5write = new WeakSet();\n_f5write_fn = function(coeff, data, k) {\n const coeff_count = coeff.length;\n let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, n, ii;\n let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0;\n n = (1 << k) - 1;\n byte_to_embed = k - 1;\n byte_to_embed ^= 0;\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed = 3;\n for (ii = 0; ii < coeff_count; ii++) {\n shuffled_index = ii;\n if (shuffled_index % 64 === 0 || coeff[shuffled_index] === 0)\n continue;\n const cc = coeff[shuffled_index];\n _examined++;\n if (cc > 0 && (cc & 1) != next_bit_to_embed) {\n coeff[shuffled_index]--;\n _changed++;\n } else if (cc < 0 && (cc & 1) == next_bit_to_embed) {\n coeff[shuffled_index]++;\n _changed++;\n }\n if (coeff[shuffled_index] !== 0) {\n _embedded++;\n if (available_bits_to_embed === 0) {\n if (k != 1 || data_idx >= data.length)\n break;\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n } else {\n _thrown++;\n }\n }\n if (k == 1 && _embedded < data.length * 8)\n throw "capacity exceeded " + _embedded / 8 + " " + data.length;\n if (k != 1) {\n let is_last_byte = false, k_bits_to_embed = 0;\n while (!is_last_byte || available_bits_to_embed !== 0 && is_last_byte) {\n k_bits_to_embed = 0;\n for (i = 0; i < k; i++) {\n if (available_bits_to_embed === 0) {\n if (data_idx >= data.length) {\n is_last_byte = true;\n break;\n }\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n k_bits_to_embed |= next_bit_to_embed << i;\n }\n const code_word = [];\n let ci = null;\n for (i = 0; i < n; i++) {\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n code_word.push(ci);\n }\n _examined += n;\n while (true) {\n var vhash = 0, extracted_bit;\n for (i = 0; i < code_word.length; i++) {\n if (coeff[code_word[i]] > 0) {\n extracted_bit = coeff[code_word[i]] & 1;\n } else {\n extracted_bit = 1 - (coeff[code_word[i]] & 1);\n }\n if (extracted_bit == 1)\n vhash ^= i + 1;\n }\n i = vhash ^ k_bits_to_embed;\n if (!i) {\n _embedded += k;\n break;\n }\n i--;\n coeff[code_word[i]] += coeff[code_word[i]] < 0 ? 1 : -1;\n _changed++;\n if (coeff[code_word[i]] === 0) {\n _thrown++;\n code_word.splice(i, 1);\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n _examined++;\n code_word.push(ci);\n } else {\n _embedded += k;\n break;\n }\n }\n }\n }\n return {\n "k": k,\n "embedded": _embedded / 8,\n "examined": _examined,\n "changed": _changed,\n "thrown": _thrown,\n "efficiency": (_embedded / _changed).toFixed(2)\n };\n};\n\n// src/jpg.ts\nvar key = import_buffer4.Buffer.from("CUNNYCUNNYCUNNY");\nvar f5inst = new f5stego(key);\nvar inject2 = async (b, links) => {\n if (b.size / 20 < links.join(" ").length)\n throw "Image too small to embed.";\n const arr = new Uint8Array(new Uint8Array(await b.arrayBuffer()));\n const buff = f5inst.embed(arr, new TextEncoder().encode(links.join(" ")), 1);\n return import_buffer4.Buffer.from(buff);\n};\nvar has_embed2 = (b) => {\n try {\n const res = f5inst.extract(b);\n if (!res)\n return false;\n if (res.length > 1024)\n return false;\n const str = import_buffer4.Buffer.from(res).toString();\n if (!str.match(/^[a-zA-Z0-9:/.\\-_ ]+$/))\n return false;\n return str;\n } catch {\n return false;\n }\n};\nvar extract2 = (b, ex) => {\n return decodeCoom3Payload(import_buffer4.Buffer.from(ex));\n};\nvar jpg_default = {\n match: (fn) => !!fn.match(/\\.jpe?g$/),\n has_embed: has_embed2,\n extract: extract2,\n inject: inject2\n};\n\n// src/thirdeye.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer5 = __toESM(require_buffer(), 1);\nvar import_jpeg_js = __toESM(require_jpeg_js(), 1);\n\n// src/phash.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar median = (data) => {\n const mdarr = data.slice(0);\n mdarr.sort((a, b) => a - b);\n if (mdarr.length % 2 === 0)\n return (mdarr[mdarr.length / 2 - 1] + mdarr[mdarr.length / 2]) / 2;\n return mdarr[Math.floor(mdarr.length / 2)];\n};\nvar translate_blocks_to_bits = function(blocks, pixels_per_block) {\n const half_block_value = pixels_per_block * 256 * 3 / 2;\n const bandsize = blocks.length / 4;\n for (let i = 0; i < 4; i++) {\n const m = median(blocks.slice(i * bandsize, (i + 1) * bandsize));\n for (let j = i * bandsize; j < (i + 1) * bandsize; j++) {\n const v = blocks[j];\n blocks[j] = Number(v > m || Math.abs(v - m) < 1 && m > half_block_value);\n }\n }\n};\nvar bits_to_hexhash = (bitsArray) => {\n const hex = [];\n for (let i = 0; i < bitsArray.length; i += 4) {\n const nibble = bitsArray.slice(i, i + 4);\n hex.push(parseInt(nibble.join(""), 2).toString(16));\n }\n return hex.join("");\n};\nvar bmvbhash_even = (data, bits) => {\n const blocksize_x = Math.floor(data.width / bits);\n const blocksize_y = Math.floor(data.height / bits);\n const result = [];\n for (let y = 0; y < bits; y++) {\n for (let x = 0; x < bits; x++) {\n let total = 0;\n for (let iy = 0; iy < blocksize_y; iy++) {\n for (let ix = 0; ix < blocksize_x; ix++) {\n const cx = x * blocksize_x + ix;\n const cy = y * blocksize_y + iy;\n const ii = (cy * data.width + cx) * 4;\n const alpha = data.data[ii + 3];\n if (alpha === 0) {\n total += 765;\n } else {\n total += data.data[ii] + data.data[ii + 1] + data.data[ii + 2];\n }\n }\n }\n result.push(total);\n }\n }\n translate_blocks_to_bits(result, blocksize_x * blocksize_y);\n return bits_to_hexhash(result);\n};\n\n// src/thirdeye.ts\nvar csettings3;\nsettings.subscribe((b) => {\n csettings3 = b;\n});\nvar gelquirk = (prefix) => (a) => {\n let base = a.post || a.data || a;\n if (!Array.isArray(base))\n return [];\n base = base.filter((e) => e.file_url);\n return base.map((e) => ({\n full_url: e.file_url,\n preview_url: e.preview_url || e.preview_url,\n source: e.source,\n ext: e.file_ext || e.file_url.substr(e.file_url.lastIndexOf(".") + 1),\n page: `${prefix}${e.id || e.parent_id}`,\n tags: (e.tag_string || (e.tags && (Array.isArray(e.tags) && (typeof e.tags[0] == "string" ? e.tags.join(" ") : e.tags.map((e2) => e2.name_en).join(" "))) || e.tags) || "").split(" ")\n })) || [];\n};\nvar experimentalApi = false;\nvar black = /* @__PURE__ */ new Set();\nvar phashEn = false;\nvar mindist = 5;\nsettings.subscribe((s) => {\n if (!s)\n return;\n experimentalApi = s.expte;\n boorus = s.rsources.map((e) => ({\n ...e,\n quirks: gelquirk(e.view)\n }));\n black = new Set(s.blacklist);\n mindist = s.mdist || 5;\n phashEn = s.phash;\n});\nvar boorus = [];\nvar unlockQueue = Promise.resolve();\nvar cache = {};\nvar findFileFrom = async (b, hex, abort) => {\n try {\n if (b.domain in cache && hex in cache[b.domain])\n return cache[b.domain][hex];\n const res = await ifetch(`https://${b.domain}${b.endpoint}${hex}`);\n const txt = await res.text();\n const pres = JSON.parse(txt);\n const tran = b.quirks(pres).filter((e) => !e.tags.some((e2) => black.has(e2)));\n if (!(b.domain in cache))\n cache[b.domain] = {};\n cache[b.domain][hex] = tran;\n return tran;\n } catch (e) {\n const error = e;\n if (!error.message.includes("Unexpected end of JSON input"))\n console.error(e);\n return [];\n }\n};\nvar extract3 = async (b, fn) => {\n if (!csettings3)\n throw new Error("Settings uninit");\n let result;\n let booru;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n if (result.length) {\n booru = e.name;\n break;\n }\n }\n let cachedFile;\n const prev = result[0].preview_url;\n const full = result[0].full_url;\n return [{\n source: result[0].source,\n page: {\n title: booru,\n url: result[0].page\n },\n filename: fn.substring(0, 33) + result[0].ext,\n thumbnail: csettings3.hotlink ? prev || full : import_buffer5.Buffer.from(await (await ifetch(prev || full)).arrayBuffer()),\n data: csettings3.hotlink ? full || prev : { url: full || prev }\n }];\n};\nvar phash = (b) => {\n const res = (0, import_jpeg_js.decode)(b);\n return bmvbhash_even(res, 8);\n};\nvar hammingDist = (a, b) => {\n let res = BigInt("0x" + a) ^ BigInt("0x" + b);\n let acc = 0;\n while (res != 0n) {\n acc += Number(res & 1n);\n res >>= 1n;\n }\n return acc;\n};\nvar has_embed3 = async (b, fn, prevlink) => {\n if (import_buffer5.Buffer.from(fn, "hex").equals(b))\n return false;\n let result = void 0;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n result = result.filter((e2) => e2.full_url || e2.preview_url);\n if (result.length)\n break;\n }\n if (result && result.length != 0 && phashEn && prevlink) {\n if (!result[0].preview_url)\n return true;\n const getHash = async (l) => {\n const ogreq = await ifetch(l);\n const origPreview = await ogreq.arrayBuffer();\n return phash(import_buffer5.Buffer.from(origPreview));\n };\n const [orighash, tehash] = await Promise.all([\n getHash(prevlink),\n getHash(result[0].preview_url)\n ]);\n const d = hammingDist(orighash, tehash);\n console.log(d, prevlink);\n return d > mindist;\n }\n return result && result.length != 0;\n};\nvar thirdeye_default = {\n skip: true,\n extract: extract3,\n has_embed: has_embed3,\n match: (fn) => !!fn.match(/^[0-9a-f]{32}\\.....?/)\n};\n\n// src/pomf.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer6 = __toESM(require_buffer(), 1);\nvar sources = [\n { host: "Catbox", prefix: "files.catbox.moe/" },\n { host: "Litter", prefix: "litter.catbox.moe/" },\n { host: "Zzzz", prefix: "z.zz.fo/" }\n];\nvar csettings4;\nsettings.subscribe((b) => {\n csettings4 = b;\n});\nvar getExt = (fn) => {\n const isB64 = fn.match(/^((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=))?\\.(gif|jpe?g|png|webm)/);\n const isExt = fn.match(/\\[.*=(.*)\\]/);\n let ext;\n let source;\n try {\n if (isB64) {\n ext = atob(isB64[1]);\n } else if (isExt) {\n ext = decodeURIComponent(isExt[1]);\n if (ext.startsWith("https://"))\n ext = ext.slice("https://".length);\n for (const cs of sources)\n if (ext.startsWith(cs.prefix)) {\n source = cs.prefix;\n ext = ext.slice(cs.prefix.length);\n break;\n }\n }\n } catch {\n }\n return { ext, source };\n};\nvar extract4 = async (b, fn) => {\n if (!csettings4)\n throw new Error("Settings uninit");\n const { ext, source } = getExt(fn);\n let rsource;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n await getHeaders("https://" + cs.prefix + ext);\n rsource = "https://" + cs.prefix + ext;\n break;\n } catch {\n }\n }\n return [{\n filename: ext,\n data: csettings4.hotlink ? rsource : { url: rsource },\n thumbnail: import_buffer6.Buffer.from(hasembed_default)\n }];\n};\nvar has_embed4 = async (b, fn) => {\n const { ext, source } = getExt(fn);\n if (!ext)\n return false;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n const e = await getHeaders("https://" + cs.prefix + ext);\n return true;\n } catch {\n }\n }\n return false;\n};\nvar pomf_default = {\n skip: true,\n extract: extract4,\n has_embed: has_embed4,\n match: (fn) => !!getExt(fn)\n};\n\n// src/processor.worker.ts\nconsole.log("Worker started");\nvar pendinggens = {};\nvar proxyAsyncGen = (id) => {\n return {\n next(arg) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n return(v) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n throw() {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n [Symbol.asyncIterator]() {\n return this;\n }\n };\n};\nvar deserializeMessage = (m) => {\n if (m instanceof MessagePort)\n return m;\n if (typeof m == "object" && m.type == "AsyncGenerator") {\n return proxyAsyncGen(m.id);\n }\n if (typeof m == "object") {\n for (const p in m) {\n m[p] = deserializeMessage(m[p]);\n }\n }\n return m;\n};\nvar processors = [thirdeye_default, pomf_default, pngv3_default, jpg_default];\nvar processImage = async (srcs, fn, hex, prevurl) => {\n const ret = await Promise.all(processors.filter((e) => e.match(fn)).map(async (proc) => {\n if (proc.skip) {\n const md5 = Buffer2.from(hex, "base64");\n if (await proc.has_embed(md5, fn, prevurl) === true) {\n return [await proc.extract(md5, fn), true];\n }\n return;\n }\n let succ = false;\n let cumul;\n do {\n try {\n const n = await srcs.next();\n if (n.done)\n return;\n const iter = streamRemote(n.value);\n if (!iter)\n return;\n cumul = Buffer2.alloc(0);\n let found;\n let chunk = { done: true };\n do {\n const { value, done } = await iter.next(typeof found === "boolean");\n if (done) {\n chunk = { done: true };\n } else {\n chunk = { done: false, value };\n cumul = Buffer2.concat([cumul, value]);\n const v = await proc.has_embed(cumul);\n if (typeof v == "string") {\n return [await proc.extract(cumul, v), false];\n }\n found = v;\n }\n } while (found !== false && !chunk.done);\n succ = true;\n await iter.next(true);\n if (found !== true) {\n return;\n }\n return [await proc.extract(cumul), false];\n } catch (err) {\n console.log(err);\n }\n } while (!succ);\n }));\n return ret.filter((e) => e).map((e) => e);\n};\nvar init2 = false;\n(async () => {\n onmessage = async (msg) => {\n const des = deserializeMessage(msg.data);\n switch (des.type) {\n case "ipc": {\n setupPort(des.port);\n const nset = await localLoad("settingsv2", initial_settings);\n settings.set(nset);\n break;\n }\n case "cmd": {\n switch (des.fun) {\n case "processImage": {\n if (!init2) {\n await new Promise((_) => {\n settings.subscribe((v) => {\n if (v)\n _();\n });\n });\n init2 = true;\n }\n const res = await processImage(des.args[0], des.args[1], des.args[2], des.args[3]);\n const tr = [];\n for (const ef of res) {\n for (const e of ef[0]) {\n if (e.thumbnail && Buffer2.isBuffer(e.thumbnail) || typeof e.thumbnail != "string")\n tr.push(e.thumbnail.buffer);\n if (Buffer2.isBuffer(e.data) || typeof e.data != "string" && !("url" in e.data))\n tr.push(e.data.buffer);\n }\n }\n postMessage({\n type: "reply",\n id: des.id,\n res\n }, [...new Set(tr)]);\n }\n }\n break;\n }\n case "ag": {\n const cb = pendinggens[des.id].shift();\n if (cb) {\n cb(des.res);\n }\n break;\n }\n }\n };\n})();\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n'); + return inlineWorker('var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));\nvar __decorateClass = (decorators, target, key2, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key2) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key2, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key2, result);\n return result;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError("Cannot " + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, "read from private field");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError("Cannot add the same private member more than once");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, "write to private field");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, "access private method");\n return method;\n};\nvar __toBinary = /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++)\n table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);\n for (var i2 = 0, j = 0; i2 < n; ) {\n var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n bytes[j++] = c0 << 2 | c1 >> 4;\n bytes[j++] = c1 << 4 | c2 >> 2;\n bytes[j++] = c2 << 6 | c3;\n }\n return bytes;\n };\n})();\n\n// \nvar init_define_BUILD_VERSION = __esm({\n ""() {\n }\n});\n\n// node_modules/base64-js/index.js\nvar require_base64_js = __commonJS({\n "node_modules/base64-js/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;\n var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\n for (i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n var i;\n var len;\n revLookup["-".charCodeAt(0)] = 62;\n revLookup["_".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error("Invalid string. Length must be a multiple of 4");\n }\n var validLen = b64.indexOf("=");\n if (validLen === -1)\n validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join("");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");\n }\n return parts.join("");\n }\n }\n});\n\n// node_modules/ieee754/index.js\nvar require_ieee754 = __commonJS({\n "node_modules/ieee754/index.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n});\n\n// node_modules/buffer/index.js\nvar require_buffer = __commonJS({\n "node_modules/buffer/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var base64 = require_base64_js();\n var ieee7542 = require_ieee754();\n var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null;\n exports.Buffer = Buffer13;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n Buffer13.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer13.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") {\n console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");\n }\n function typedArraySupport() {\n try {\n const arr = new Uint8Array(1);\n const proto = { foo: function() {\n return 42;\n } };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer13.prototype, "parent", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer13.prototype, "offset", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\'The value "\' + length + \'" is invalid for option "size"\');\n }\n const buf2 = new Uint8Array(length);\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function Buffer13(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n if (typeof encodingOrOffset === "string") {\n throw new TypeError(\'The "string" argument must be of type string. Received type number\');\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer13.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === "string") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === "number") {\n throw new TypeError(\'The "value" argument must not be of type number. Received type number\');\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer13.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b)\n return b;\n if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") {\n return Buffer13.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length);\n }\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n Buffer13.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer13.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer13, Uint8Array);\n function assertSize(size) {\n if (typeof size !== "number") {\n throw new TypeError(\'"size" argument must be of type number\');\n } else if (size < 0) {\n throw new RangeError(\'The value "\' + size + \'" is invalid for option "size"\');\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer13.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer13.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer13.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== "string" || encoding === "") {\n encoding = "utf8";\n }\n if (!Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf2 = createBuffer(length);\n const actual = buf2.write(string, encoding);\n if (actual !== length) {\n buf2 = buf2.slice(0, actual);\n }\n return buf2;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf2 = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf2[i] = array[i] & 255;\n }\n return buf2;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\'"offset" is outside of buffer bounds\');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\'"length" is outside of buffer bounds\');\n }\n let buf2;\n if (byteOffset === void 0 && length === void 0) {\n buf2 = new Uint8Array(array);\n } else if (length === void 0) {\n buf2 = new Uint8Array(array, byteOffset);\n } else {\n buf2 = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function fromObject(obj) {\n if (Buffer13.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf2 = createBuffer(len);\n if (buf2.length === 0) {\n return buf2;\n }\n obj.copy(buf2, 0, 0, len);\n return buf2;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== "number" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === "Buffer" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer13.alloc(+length);\n }\n Buffer13.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer13.prototype;\n };\n Buffer13.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array))\n a = Buffer13.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array))\n b = Buffer13.from(b, b.offset, b.byteLength);\n if (!Buffer13.isBuffer(a) || !Buffer13.isBuffer(b)) {\n throw new TypeError(\'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array\');\n }\n if (a === b)\n return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n Buffer13.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "latin1":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return true;\n default:\n return false;\n }\n };\n Buffer13.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n }\n if (list.length === 0) {\n return Buffer13.alloc(0);\n }\n let i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer13.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf2 = list[i];\n if (isInstance(buf2, Uint8Array)) {\n if (pos + buf2.length > buffer.length) {\n if (!Buffer13.isBuffer(buf2))\n buf2 = Buffer13.from(buf2);\n buf2.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf2, pos);\n }\n } else if (!Buffer13.isBuffer(buf2)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n } else {\n buf2.copy(buffer, pos);\n }\n pos += buf2.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer13.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== "string") {\n throw new TypeError(\'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type \' + typeof string);\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0)\n return 0;\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "ascii":\n case "latin1":\n case "binary":\n return len;\n case "utf8":\n case "utf-8":\n return utf8ToBytes(string).length;\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return len * 2;\n case "hex":\n return len >>> 1;\n case "base64":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length;\n }\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return "";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return "";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return "";\n }\n if (!encoding)\n encoding = "utf8";\n while (true) {\n switch (encoding) {\n case "hex":\n return hexSlice(this, start, end);\n case "utf8":\n case "utf-8":\n return utf8Slice(this, start, end);\n case "ascii":\n return asciiSlice(this, start, end);\n case "latin1":\n case "binary":\n return latin1Slice(this, start, end);\n case "base64":\n return base64Slice(this, start, end);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = (encoding + "").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer13.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 16-bits");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer13.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 32-bits");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer13.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 64-bits");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer13.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0)\n return "";\n if (arguments.length === 0)\n return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer13.prototype.toLocaleString = Buffer13.prototype.toString;\n Buffer13.prototype.equals = function equals(b) {\n if (!Buffer13.isBuffer(b))\n throw new TypeError("Argument must be a Buffer");\n if (this === b)\n return true;\n return Buffer13.compare(this, b) === 0;\n };\n Buffer13.prototype.inspect = function inspect() {\n let str = "";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim();\n if (this.length > max)\n str += " ... ";\n return "";\n };\n if (customInspectSymbol) {\n Buffer13.prototype[customInspectSymbol] = Buffer13.prototype.inspect;\n }\n Buffer13.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer13.from(target, target.offset, target.byteLength);\n }\n if (!Buffer13.isBuffer(target)) {\n throw new TypeError(\'The "target" argument must be one of type Buffer or Uint8Array. Received type \' + typeof target);\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError("out of range index");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target)\n return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0)\n return -1;\n if (typeof byteOffset === "string") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n if (byteOffset < 0)\n byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir)\n return -1;\n else\n byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir)\n byteOffset = 0;\n else\n return -1;\n }\n if (typeof val === "string") {\n val = Buffer13.from(val, encoding);\n }\n if (Buffer13.isBuffer(val)) {\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === "number") {\n val = val & 255;\n if (typeof Uint8Array.prototype.indexOf === "function") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError("val must be string, number or Buffer");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read2(buf2, i2) {\n if (indexSize === 1) {\n return buf2[i2];\n } else {\n return buf2.readUInt16BE(i2 * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read2(arr, i) === read2(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1)\n foundIndex = i;\n if (i - foundIndex + 1 === valLength)\n return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1)\n i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength)\n byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read2(arr, i + j) !== read2(val, j)) {\n found = false;\n break;\n }\n }\n if (found)\n return i;\n }\n }\n return -1;\n }\n Buffer13.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer13.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer13.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf2, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf2.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed))\n return i;\n buf2[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf2, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n function asciiWrite(buf2, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf2, offset, length);\n }\n function base64Write(buf2, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf2, offset, length);\n }\n function ucs2Write(buf2, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n Buffer13.prototype.write = function write2(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = "utf8";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === "string") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0)\n encoding = "utf8";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");\n }\n const remaining = this.length - offset;\n if (length === void 0 || length > remaining)\n length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError("Attempt to write outside buffer bounds");\n }\n if (!encoding)\n encoding = "utf8";\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "hex":\n return hexWrite(this, string, offset, length);\n case "utf8":\n case "utf-8":\n return utf8Write(this, string, offset, length);\n case "ascii":\n case "latin1":\n case "binary":\n return asciiWrite(this, string, offset, length);\n case "base64":\n return base64Write(this, string, offset, length);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer13.prototype.toJSON = function toJSON() {\n return {\n type: "Buffer",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf2, start, end) {\n if (start === 0 && end === buf2.length) {\n return base64.fromByteArray(buf2);\n } else {\n return base64.fromByteArray(buf2.slice(start, end));\n }\n }\n function utf8Slice(buf2, start, end) {\n end = Math.min(buf2.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf2[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf2[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n fourthByte = buf2[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = "";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i]);\n }\n return ret;\n }\n function hexSlice(buf2, start, end) {\n const len = buf2.length;\n if (!start || start < 0)\n start = 0;\n if (!end || end < 0 || end > len)\n end = len;\n let out = "";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf2[i]];\n }\n return out;\n }\n function utf16leSlice(buf2, start, end) {\n const bytes = buf2.slice(start, end);\n let res = "";\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer13.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0)\n start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0)\n end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start)\n end = start;\n const newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer13.prototype);\n return newBuf;\n };\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0)\n throw new RangeError("offset is not uint");\n if (offset + ext > length)\n throw new RangeError("Trying to access beyond buffer length");\n }\n Buffer13.prototype.readUintLE = Buffer13.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUintBE = Buffer13.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n let val = this[offset + --byteLength2];\n let mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUint8 = Buffer13.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer13.prototype.readUint16LE = Buffer13.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer13.prototype.readUint16BE = Buffer13.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer13.prototype.readUint32LE = Buffer13.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer13.prototype.readUint32BE = Buffer13.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer13.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer13.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer13.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let i = byteLength2;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128))\n return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer13.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer13.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer13.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer13.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer13.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, true, 23, 4);\n };\n Buffer13.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, false, 23, 4);\n };\n Buffer13.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, true, 52, 8);\n };\n Buffer13.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, false, 52, 8);\n };\n function checkInt(buf2, value, offset, ext, max, min) {\n if (!Buffer13.isBuffer(buf2))\n throw new TypeError(\'"buffer" argument must be a Buffer instance\');\n if (value > max || value < min)\n throw new RangeError(\'"value" argument is out of bounds\');\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n }\n Buffer13.prototype.writeUintLE = Buffer13.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUintBE = Buffer13.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUint8 = Buffer13.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeUint16LE = Buffer13.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeUint16BE = Buffer13.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeUint32LE = Buffer13.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeUint32BE = Buffer13.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset + 7] = lo;\n lo = lo >> 8;\n buf2[offset + 6] = lo;\n lo = lo >> 8;\n buf2[offset + 5] = lo;\n lo = lo >> 8;\n buf2[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset + 3] = hi;\n hi = hi >> 8;\n buf2[offset + 2] = hi;\n hi = hi >> 8;\n buf2[offset + 1] = hi;\n hi = hi >> 8;\n buf2[offset] = hi;\n return offset + 8;\n }\n Buffer13.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 127, -128);\n if (value < 0)\n value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer13.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0)\n value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n Buffer13.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n function checkIEEE754(buf2, value, offset, ext, max, min) {\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n if (offset < 0)\n throw new RangeError("Index out of range");\n }\n function writeFloat(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer13.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer13.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer13.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer13.isBuffer(target))\n throw new TypeError("argument should be a Buffer");\n if (!start)\n start = 0;\n if (!end && end !== 0)\n end = this.length;\n if (targetStart >= target.length)\n targetStart = target.length;\n if (!targetStart)\n targetStart = 0;\n if (end > 0 && end < start)\n end = start;\n if (end === start)\n return 0;\n if (target.length === 0 || this.length === 0)\n return 0;\n if (targetStart < 0) {\n throw new RangeError("targetStart out of bounds");\n }\n if (start < 0 || start >= this.length)\n throw new RangeError("Index out of range");\n if (end < 0)\n throw new RangeError("sourceEnd out of bounds");\n if (end > this.length)\n end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === "function") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n Buffer13.prototype.fill = function fill(val, start, end, encoding) {\n if (typeof val === "string") {\n if (typeof start === "string") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === "string") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== void 0 && typeof encoding !== "string") {\n throw new TypeError("encoding must be a string");\n }\n if (typeof encoding === "string" && !Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === "utf8" && code < 128 || encoding === "latin1") {\n val = code;\n }\n }\n } else if (typeof val === "number") {\n val = val & 255;\n } else if (typeof val === "boolean") {\n val = Number(val);\n }\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError("Out of range index");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val)\n val = 0;\n let i;\n if (typeof val === "number") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer13.isBuffer(val) ? val : Buffer13.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError(\'The value "\' + val + \'" is invalid for argument "value"\');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, "message", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n this.name = `${this.name} [${sym}]`;\n this.stack;\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, "code", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n return "Attempt to access memory outside buffer bounds";\n }, RangeError);\n E("ERR_INVALID_ARG_TYPE", function(name, actual) {\n return `The "${name}" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E("ERR_OUT_OF_RANGE", function(str, range, input) {\n let msg = `The value of "${str}" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === "bigint") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += "n";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n let res = "";\n let i = val.length;\n const start = val[0] === "-" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n function checkBounds(buf2, offset, byteLength2) {\n validateNumber(offset, "offset");\n if (buf2[offset] === void 0 || buf2[offset + byteLength2] === void 0) {\n boundsError(offset, buf2.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf2, offset, byteLength2) {\n if (value > max || value < min) {\n const n = typeof min === "bigint" ? "n" : "";\n let range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n throw new errors.ERR_OUT_OF_RANGE("value", range, value);\n }\n checkBounds(buf2, offset, byteLength2);\n }\n function validateNumber(value, name) {\n if (typeof value !== "number") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value);\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split("=")[0];\n str = str.trim().replace(INVALID_BASE64_RE, "");\n if (str.length < 2)\n return "";\n while (str.length % 4 !== 0) {\n str = str + "=";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error("Invalid code point");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0)\n break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length)\n break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n const alphabet = "0123456789abcdef";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error("BigInt not supported");\n }\n }\n});\n\n// esbuild.inject.js\nvar Buffer2;\nvar init_esbuild_inject = __esm({\n "esbuild.inject.js"() {\n "use strict";\n Buffer2 = require_buffer().Buffer;\n if (true) {\n if (false) {\n const ocreate = unsafeWindow.document.createElement.bind(document);\n unsafeWindow.document.createElement = (tag) => {\n if (tag != "meta")\n return ocreate(tag);\n unsafeWindow.document.createElement = ocreate;\n return unsafeWindow.document.createElement("link");\n };\n }\n if (false) {\n if (typeof cloneInto != "undefined")\n console.log("CLONE INTO DEFINED");\n else\n console.log("CLONE INTO NOT DEFINED");\n let a = 1;\n console.log(a++);\n const unsafeWindow2 = window;\n console.log(a++);\n const ocreate = unsafeWindow2.document.createElement.bind(document);\n console.log(a++);\n exportFunction((tag) => {\n if (tag != "meta")\n return ocreate(tag);\n unsafeWindow2.document.createElement = ocreate;\n return unsafeWindow2.document.createElement("link");\n }, window.document, { defineAs: "createElement" });\n console.log(a++);\n }\n }\n }\n});\n\n// node_modules/crc-32/crc32.js\nvar require_crc32 = __commonJS({\n "node_modules/crc-32/crc32.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var CRC32;\n (function(factory) {\n if (typeof DO_NOT_EXPORT_CRC === "undefined") {\n if (typeof exports === "object") {\n factory(exports);\n } else if (typeof define === "function" && define.amd) {\n define(function() {\n var module2 = {};\n factory(module2);\n return module2;\n });\n } else {\n factory(CRC32 = {});\n }\n } else {\n factory(CRC32 = {});\n }\n })(function(CRC322) {\n CRC322.version = "1.2.0";\n function signed_crc_table() {\n var c = 0, table = new Array(256);\n for (var n = 0; n != 256; ++n) {\n c = n;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n table[n] = c;\n }\n return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;\n }\n var T = signed_crc_table();\n function crc32_bstr(bstr, seed) {\n var C = seed ^ -1, L = bstr.length - 1;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n }\n if (i === L)\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i)) & 255];\n return C ^ -1;\n }\n function crc32_buf(buf2, seed) {\n if (buf2.length > 1e4)\n return crc32_buf_8(buf2, seed);\n var C = seed ^ -1, L = buf2.length - 3;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 3)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_buf_8(buf2, seed) {\n var C = seed ^ -1, L = buf2.length - 7;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 7)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_str(str, seed) {\n var C = seed ^ -1;\n for (var i = 0, L = str.length, c, d; i < L; ) {\n c = str.charCodeAt(i++);\n if (c < 128) {\n C = C >>> 8 ^ T[(C ^ c) & 255];\n } else if (c < 2048) {\n C = C >>> 8 ^ T[(C ^ (192 | c >> 6 & 31)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n } else if (c >= 55296 && c < 57344) {\n c = (c & 1023) + 64;\n d = str.charCodeAt(i++) & 1023;\n C = C >>> 8 ^ T[(C ^ (240 | c >> 8 & 7)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 2 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d & 63)) & 255];\n } else {\n C = C >>> 8 ^ T[(C ^ (224 | c >> 12 & 15)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 6 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n }\n }\n return C ^ -1;\n }\n CRC322.table = T;\n CRC322.bstr = crc32_bstr;\n CRC322.buf = crc32_buf;\n CRC322.str = crc32_str;\n });\n }\n});\n\n// node_modules/events/events.js\nvar require_events = __commonJS({\n "node_modules/events/events.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var R = typeof Reflect === "object" ? Reflect : null;\n var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === "function") {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn)\n console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = void 0;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = void 0;\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== "function") {\n throw new TypeError(\'The "listener" argument must be of type Function. Received type \' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, "defaultMaxListeners", {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError(\'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received \' + arg + ".");\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function() {\n if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || void 0;\n };\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {\n throw new RangeError(\'The value of "n" is out of range. It must be a non-negative number. Received \' + n + ".");\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === void 0)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++)\n args.push(arguments[i]);\n var doError = type === "error";\n var events = this._events;\n if (events !== void 0)\n doError = doError && events.error === void 0;\n else if (!doError)\n return false;\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n throw er;\n }\n var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));\n err.context = er;\n throw err;\n }\n var handler = events[type];\n if (handler === void 0)\n return false;\n if (typeof handler === "function") {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === void 0) {\n events = target._events = /* @__PURE__ */ Object.create(null);\n target._eventsCount = 0;\n } else {\n if (events.newListener !== void 0) {\n target.emit("newListener", type, listener.listener ? listener.listener : listener);\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === void 0) {\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === "function") {\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");\n w.name = "MaxListenersExceededWarning";\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: void 0, target, type, listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once2(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === void 0)\n return this;\n list = events[type];\n if (list === void 0)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit("removeListener", type, list.listener || listener);\n }\n } else if (typeof list !== "function") {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== void 0)\n this.emit("removeListener", type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === void 0)\n return this;\n if (events.removeListener === void 0) {\n if (arguments.length === 0) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== void 0) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key2;\n for (i = 0; i < keys.length; ++i) {\n key2 = keys[i];\n if (key2 === "removeListener")\n continue;\n this.removeAllListeners(key2);\n }\n this.removeAllListeners("removeListener");\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === "function") {\n this.removeListener(type, listeners);\n } else if (listeners !== void 0) {\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === void 0)\n return [];\n var evlistener = events[type];\n if (evlistener === void 0)\n return [];\n if (typeof evlistener === "function")\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === "function") {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== void 0) {\n var evlistener = events[type];\n if (typeof evlistener === "function") {\n return 1;\n } else if (evlistener !== void 0) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === "function") {\n emitter.removeListener("error", errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== "error") {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === "function") {\n eventTargetAgnosticAddListener(emitter, "error", handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === "function") {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === "function") {\n emitter.addEventListener(name, function wrapListener(arg) {\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError(\'The "emitter" argument must be of type EventEmitter. Received type \' + typeof emitter);\n }\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/stream-browser.js\nvar require_stream_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/stream-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = require_events().EventEmitter;\n }\n});\n\n// (disabled):node_modules/util/util.js\nvar require_util = __commonJS({\n "(disabled):node_modules/util/util.js"() {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/buffer_list.js\nvar require_buffer_list = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly)\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key2) {\n _defineProperty(target, key2, source[key2]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key2) {\n Object.defineProperty(target, key2, Object.getOwnPropertyDescriptor(source, key2));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require_buffer();\n var Buffer13 = _require.Buffer;\n var _require2 = require_util();\n var inspect = _require2.inspect;\n var custom = inspect && inspect.custom || "inspect";\n function copyBuffer(src, target, offset) {\n Buffer13.prototype.copy.call(src, target, offset);\n }\n module.exports = /* @__PURE__ */ function() {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: "push",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0)\n this.tail.next = entry;\n else\n this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: "unshift",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0)\n this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: "shift",\n value: function shift() {\n if (this.length === 0)\n return;\n var ret = this.head.data;\n if (this.length === 1)\n this.head = this.tail = null;\n else\n this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: "clear",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: "join",\n value: function join(s) {\n if (this.length === 0)\n return "";\n var p = this.head;\n var ret = "" + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: "concat",\n value: function concat(n) {\n if (this.length === 0)\n return Buffer13.alloc(0);\n var ret = Buffer13.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n }, {\n key: "consume",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n ret = this.shift();\n } else {\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: "first",\n value: function first() {\n return this.head.data;\n }\n }, {\n key: "_getString",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length)\n ret += str;\n else\n ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: "_getBuffer",\n value: function _getBuffer(n) {\n var ret = Buffer13.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf2 = p.data;\n var nb = n > buf2.length ? buf2.length : n;\n buf2.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf2.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf2.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n depth: 0,\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/destroy.js\nvar require_destroy = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function(err2) {\n if (!cb && err2) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self2, err) {\n emitErrorNT(self2, err);\n emitCloseNT(self2);\n }\n function emitCloseNT(self2) {\n if (self2._writableState && !self2._writableState.emitClose)\n return;\n if (self2._readableState && !self2._readableState.emitClose)\n return;\n self2.emit("close");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self2, err) {\n self2.emit("error", err);\n }\n function errorOrDestroy(stream, err) {\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy)\n stream.destroy(err);\n else\n stream.emit("error", err);\n }\n module.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n };\n }\n});\n\n// node_modules/readable-stream/errors-browser.js\nvar require_errors_browser = __commonJS({\n "node_modules/readable-stream/errors-browser.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n var codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === "string") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inheritsLoose(NodeError2, _Base);\n function NodeError2(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError2;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(", "), ", or ") + expected[len - 1];\n } else if (len === 2) {\n return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);\n } else {\n return "of ".concat(thing, " ").concat(expected[0]);\n }\n } else {\n return "of ".concat(thing, " ").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== "number") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) {\n return \'The value "\' + value + \'" is invalid for option "\' + name + \'"\';\n }, TypeError);\n createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) {\n var determiner;\n if (typeof expected === "string" && startsWith(expected, "not ")) {\n determiner = "must not be";\n expected = expected.replace(/^not /, "");\n } else {\n determiner = "must be";\n }\n var msg;\n if (endsWith(name, " argument")) {\n msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n } else {\n var type = includes(name, ".") ? "property" : "argument";\n msg = \'The "\'.concat(name, \'" \').concat(type, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n }\n msg += ". Received type ".concat(typeof actual);\n return msg;\n }, TypeError);\n createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");\n createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) {\n return "The " + name + " method is not implemented";\n });\n createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close");\n createErrorType("ERR_STREAM_DESTROYED", function(name) {\n return "Cannot call " + name + " after a stream was destroyed";\n });\n createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");\n createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");\n createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end");\n createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);\n createErrorType("ERR_UNKNOWN_ENCODING", function(arg) {\n return "Unknown encoding: " + arg;\n }, TypeError);\n createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");\n module.exports.codes = codes;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/state.js\nvar require_state = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/state.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : "highWaterMark";\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n return state.objectMode ? 16 : 16 * 1024;\n }\n module.exports = {\n getHighWaterMark\n };\n }\n});\n\n// node_modules/inherits/inherits_browser.js\nvar require_inherits_browser = __commonJS({\n "node_modules/inherits/inherits_browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n if (typeof Object.create === "function") {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n});\n\n// node_modules/util-deprecate/browser.js\nvar require_browser = __commonJS({\n "node_modules/util-deprecate/browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = deprecate;\n function deprecate(fn, msg) {\n if (config("noDeprecation")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config("throwDeprecation")) {\n throw new Error(msg);\n } else if (config("traceDeprecation")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n }\n function config(name) {\n try {\n if (!self.localStorage)\n return false;\n } catch (_) {\n return false;\n }\n var val = self.localStorage[name];\n if (val == null)\n return false;\n return String(val).toLowerCase() === "true";\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_writable.js\nvar require_stream_writable = __commonJS({\n "node_modules/readable-stream/lib/_stream_writable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Writable;\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function() {\n onCorkedFinish(_this, state);\n };\n }\n var Duplex;\n Writable.WritableState = WritableState;\n var internalUtil = {\n deprecate: require_browser()\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;\n var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;\n var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n require_inherits_browser()(Writable, Stream);\n function nop() {\n }\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.writableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex);\n this.finalCalled = false;\n this.needDrain = false;\n this.ending = false;\n this.ended = false;\n this.finished = false;\n this.destroyed = false;\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.length = 0;\n this.writing = false;\n this.corked = 0;\n this.sync = true;\n this.bufferProcessing = false;\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n this.writecb = null;\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n this.pendingcb = 0;\n this.prefinished = false;\n this.errorEmitted = false;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.bufferedRequestCount = 0;\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function() {\n try {\n Object.defineProperty(WritableState.prototype, "buffer", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")\n });\n } catch (_) {\n }\n })();\n var realHasInstance;\n if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object))\n return true;\n if (this !== Writable)\n return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance2(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || require_stream_duplex();\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this))\n return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n this.writable = true;\n if (options) {\n if (typeof options.write === "function")\n this._write = options.write;\n if (typeof options.writev === "function")\n this._writev = options.writev;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n if (typeof options.final === "function")\n this._final = options.final;\n }\n Stream.call(this);\n }\n Writable.prototype.pipe = function() {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n }\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== "string" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer13.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf)\n encoding = "buffer";\n else if (!encoding)\n encoding = state.defaultEncoding;\n if (typeof cb !== "function")\n cb = nop;\n if (state.ending)\n writeAfterEnd(this, cb);\n else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function() {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function() {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest)\n clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n if (typeof encoding === "string")\n encoding = encoding.toLowerCase();\n if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1))\n throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") {\n chunk = Buffer13.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = "buffer";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n if (!ret)\n state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed)\n state.onwrite(new ERR_STREAM_DESTROYED("write"));\n else if (writev)\n stream._writev(chunk, state.onwrite);\n else\n stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n process.nextTick(cb, er);\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== "function")\n throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er)\n onwriteError(stream, state, sync, er, cb);\n else {\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished)\n onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit("drain");\n }\n }\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf)\n allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, "", holder.finish);\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n if (state.writing) {\n break;\n }\n }\n if (entry === null)\n state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === "function") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== void 0)\n this.write(chunk, encoding);\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n if (!state.ending)\n endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function(err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit("prefinish");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === "function" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit("prefinish");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit("finish");\n if (state.autoDestroy) {\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished)\n process.nextTick(cb);\n else\n stream.once("finish", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._writableState === void 0) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n if (!this._writableState) {\n return;\n }\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_duplex.js\nvar require_stream_duplex = __commonJS({\n "node_modules/readable-stream/lib/_stream_duplex.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var objectKeys = Object.keys || function(obj) {\n var keys2 = [];\n for (var key2 in obj) {\n keys2.push(key2);\n }\n return keys2;\n };\n module.exports = Duplex;\n var Readable = require_stream_readable();\n var Writable = require_stream_writable();\n require_inherits_browser()(Duplex, Readable);\n {\n keys = objectKeys(Writable.prototype);\n for (v = 0; v < keys.length; v++) {\n method = keys[v];\n if (!Duplex.prototype[method])\n Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n var keys;\n var method;\n var v;\n function Duplex(options) {\n if (!(this instanceof Duplex))\n return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false)\n this.readable = false;\n if (options.writable === false)\n this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once("end", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function onend() {\n if (this._writableState.ended)\n return;\n process.nextTick(onEndNT, this);\n }\n function onEndNT(self2) {\n self2.end();\n }\n Object.defineProperty(Duplex.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return;\n }\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n }\n});\n\n// node_modules/safe-buffer/index.js\nvar require_safe_buffer = __commonJS({\n "node_modules/safe-buffer/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var buffer = require_buffer();\n var Buffer13 = buffer.Buffer;\n function copyProps(src, dst) {\n for (var key2 in src) {\n dst[key2] = src[key2];\n }\n }\n if (Buffer13.from && Buffer13.alloc && Buffer13.allocUnsafe && Buffer13.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer13(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer13.prototype);\n copyProps(Buffer13, SafeBuffer);\n SafeBuffer.from = function(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n throw new TypeError("Argument must not be a number");\n }\n return Buffer13(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function(size, fill, encoding) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n var buf2 = Buffer13(size);\n if (fill !== void 0) {\n if (typeof encoding === "string") {\n buf2.fill(fill, encoding);\n } else {\n buf2.fill(fill);\n }\n } else {\n buf2.fill(0);\n }\n return buf2;\n };\n SafeBuffer.allocUnsafe = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return Buffer13(size);\n };\n SafeBuffer.allocUnsafeSlow = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return buffer.SlowBuffer(size);\n };\n }\n});\n\n// node_modules/string_decoder/lib/string_decoder.js\nvar require_string_decoder = __commonJS({\n "node_modules/string_decoder/lib/string_decoder.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var Buffer13 = require_safe_buffer().Buffer;\n var isEncoding = Buffer13.isEncoding || function(encoding) {\n encoding = "" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n case "raw":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc)\n return "utf8";\n var retried;\n while (true) {\n switch (enc) {\n case "utf8":\n case "utf-8":\n return "utf8";\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return "utf16le";\n case "latin1":\n case "binary":\n return "latin1";\n case "base64":\n case "ascii":\n case "hex":\n return enc;\n default:\n if (retried)\n return;\n enc = ("" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== "string" && (Buffer13.isEncoding === isEncoding || !isEncoding(enc)))\n throw new Error("Unknown encoding: " + enc);\n return nenc || enc;\n }\n exports.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case "utf16le":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case "utf8":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case "base64":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer13.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function(buf2) {\n if (buf2.length === 0)\n return "";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf2);\n if (r === void 0)\n return "";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf2.length)\n return r ? r + this.text(buf2, i) : this.text(buf2, i);\n return r || "";\n };\n StringDecoder.prototype.end = utf8End;\n StringDecoder.prototype.text = utf8Text;\n StringDecoder.prototype.fillLast = function(buf2) {\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf2.length);\n this.lastNeed -= buf2.length;\n };\n function utf8CheckByte(byte) {\n if (byte <= 127)\n return 0;\n else if (byte >> 5 === 6)\n return 2;\n else if (byte >> 4 === 14)\n return 3;\n else if (byte >> 3 === 30)\n return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n function utf8CheckIncomplete(self2, buf2, i) {\n var j = buf2.length - 1;\n if (j < i)\n return 0;\n var nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2)\n nb = 0;\n else\n self2.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n function utf8CheckExtraBytes(self2, buf2, p) {\n if ((buf2[0] & 192) !== 128) {\n self2.lastNeed = 0;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 1 && buf2.length > 1) {\n if ((buf2[1] & 192) !== 128) {\n self2.lastNeed = 1;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 2 && buf2.length > 2) {\n if ((buf2[2] & 192) !== 128) {\n self2.lastNeed = 2;\n return "\\uFFFD";\n }\n }\n }\n }\n function utf8FillLast(buf2) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf2, p);\n if (r !== void 0)\n return r;\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, p, 0, buf2.length);\n this.lastNeed -= buf2.length;\n }\n function utf8Text(buf2, i) {\n var total = utf8CheckIncomplete(this, buf2, i);\n if (!this.lastNeed)\n return buf2.toString("utf8", i);\n this.lastTotal = total;\n var end = buf2.length - (total - this.lastNeed);\n buf2.copy(this.lastChar, 0, end);\n return buf2.toString("utf8", i, end);\n }\n function utf8End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + "\\uFFFD";\n return r;\n }\n function utf16Text(buf2, i) {\n if ((buf2.length - i) % 2 === 0) {\n var r = buf2.toString("utf16le", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf2[buf2.length - 1];\n return buf2.toString("utf16le", i, buf2.length - 1);\n }\n function utf16End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString("utf16le", 0, end);\n }\n return r;\n }\n function base64Text(buf2, i) {\n var n = (buf2.length - i) % 3;\n if (n === 0)\n return buf2.toString("base64", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf2[buf2.length - 1];\n } else {\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n }\n return buf2.toString("base64", i, buf2.length - n);\n }\n function base64End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed);\n return r;\n }\n function simpleWrite(buf2) {\n return buf2.toString(this.encoding);\n }\n function simpleEnd(buf2) {\n return buf2 && buf2.length ? this.write(buf2) : "";\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/end-of-stream.js\nvar require_end_of_stream = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop2() {\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === "function")\n return eos(stream, null, opts);\n if (!opts)\n opts = {};\n callback = once(callback || noop2);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable2 = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish2() {\n if (!stream.writable)\n onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish2() {\n writable2 = false;\n writableEnded = true;\n if (!readable)\n callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend2() {\n readable = false;\n readableEnded = true;\n if (!writable2)\n callback.call(stream);\n };\n var onerror = function onerror2(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose2() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable2 && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest2() {\n stream.req.on("finish", onfinish);\n };\n if (isRequest(stream)) {\n stream.on("complete", onfinish);\n stream.on("abort", onclose);\n if (stream.req)\n onrequest();\n else\n stream.on("request", onrequest);\n } else if (writable2 && !stream._writableState) {\n stream.on("end", onlegacyfinish);\n stream.on("close", onlegacyfinish);\n }\n stream.on("end", onend);\n stream.on("finish", onfinish);\n if (opts.error !== false)\n stream.on("error", onerror);\n stream.on("close", onclose);\n return function() {\n stream.removeListener("complete", onfinish);\n stream.removeListener("abort", onclose);\n stream.removeListener("request", onrequest);\n if (stream.req)\n stream.req.removeListener("finish", onfinish);\n stream.removeListener("end", onlegacyfinish);\n stream.removeListener("close", onlegacyfinish);\n stream.removeListener("finish", onfinish);\n stream.removeListener("end", onend);\n stream.removeListener("error", onerror);\n stream.removeListener("close", onclose);\n };\n }\n module.exports = eos;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/async_iterator.js\nvar require_async_iterator = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var _Object$setPrototypeO;\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n var finished = require_end_of_stream();\n var kLastResolve = Symbol("lastResolve");\n var kLastReject = Symbol("lastReject");\n var kError = Symbol("error");\n var kEnded = Symbol("ended");\n var kLastPromise = Symbol("lastPromise");\n var kHandlePromise = Symbol("handlePromise");\n var kStream = Symbol("stream");\n function createIterResult(value, done) {\n return {\n value,\n done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n process.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function(resolve, reject) {\n lastPromise.then(function() {\n if (iter[kEnded]) {\n resolve(createIterResult(void 0, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function() {\n });\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(void 0, true));\n }\n if (this[kStream].destroyed) {\n return new Promise(function(resolve, reject) {\n process.nextTick(function() {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(void 0, true));\n }\n });\n });\n }\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {\n return this;\n }), _defineProperty(_Object$setPrototypeO, "return", function _return() {\n var _this2 = this;\n return new Promise(function(resolve, reject) {\n _this2[kStream].destroy(null, function(err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(void 0, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function(err) {\n if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {\n var reject = iterator[kLastReject];\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(void 0, true));\n }\n iterator[kEnded] = true;\n });\n stream.on("readable", onReadable.bind(null, iterator));\n return iterator;\n };\n module.exports = createReadableStreamAsyncIterator;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/from-browser.js\nvar require_from_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/from-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = function() {\n throw new Error("Readable.from is not available in the browser");\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_readable.js\nvar require_stream_readable = __commonJS({\n "node_modules/readable-stream/lib/_stream_readable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Readable;\n var Duplex;\n Readable.ReadableState = ReadableState;\n var EE = require_events().EventEmitter;\n var EElistenerCount = function EElistenerCount2(emitter, type) {\n return emitter.listeners(type).length;\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var debugUtil = require_util();\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog("stream");\n } else {\n debug = function debug2() {\n };\n }\n var BufferList = require_buffer_list();\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n require_inherits_browser()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = ["error", "close", "destroy", "pause", "resume"];\n function prependListener(emitter, event, fn) {\n if (typeof emitter.prependListener === "function")\n return emitter.prependListener(event, fn);\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.readableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex);\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n this.sync = true;\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.destroyed = false;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.awaitDrain = 0;\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || require_stream_duplex();\n if (!(this instanceof Readable))\n return new Readable(options);\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n this.readable = true;\n if (options) {\n if (typeof options.read === "function")\n this._read = options.read;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n if (!this._readableState) {\n return;\n }\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n Readable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === "string") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer13.from(chunk, encoding);\n encoding = "";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n Readable.prototype.unshift = function(chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug("readableAddChunk", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck)\n er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer13.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted)\n errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else\n addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0)\n addChunk(stream, state, chunk, false);\n else\n maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit("data", chunk);\n } else {\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront)\n state.buffer.unshift(chunk);\n else\n state.buffer.push(chunk);\n if (state.needReadable)\n emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function() {\n return this._readableState.flowing === false;\n };\n Readable.prototype.setEncoding = function(enc) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n this._readableState.encoding = this._readableState.decoder.encoding;\n var p = this._readableState.buffer.head;\n var content = "";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== "")\n this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended)\n return 0;\n if (state.objectMode)\n return 1;\n if (n !== n) {\n if (state.flowing && state.length)\n return state.buffer.head.data.length;\n else\n return state.length;\n }\n if (n > state.highWaterMark)\n state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length)\n return n;\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n Readable.prototype.read = function(n) {\n debug("read", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0)\n state.emittedReadable = false;\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug("read: emitReadable", state.length, state.ended);\n if (state.length === 0 && state.ended)\n endReadable(this);\n else\n emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n if (n === 0 && state.ended) {\n if (state.length === 0)\n endReadable(this);\n return null;\n }\n var doRead = state.needReadable;\n debug("need readable", doRead);\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug("length less than watermark", doRead);\n }\n if (state.ended || state.reading) {\n doRead = false;\n debug("reading or ended", doRead);\n } else if (doRead) {\n debug("do read");\n state.reading = true;\n state.sync = true;\n if (state.length === 0)\n state.needReadable = true;\n this._read(state.highWaterMark);\n state.sync = false;\n if (!state.reading)\n n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0)\n ret = fromList(n, state);\n else\n ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n if (!state.ended)\n state.needReadable = true;\n if (nOrig !== n && state.ended)\n endReadable(this);\n }\n if (ret !== null)\n this.emit("data", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug("onEofChunk");\n if (state.ended)\n return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n emitReadable(stream);\n } else {\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n function emitReadable(stream) {\n var state = stream._readableState;\n debug("emitReadable", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug("emitReadable", state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug("emitReadable_", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit("readable");\n state.emittedReadable = false;\n }\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug("maybeReadMore read 0");\n stream.read(0);\n if (len === state.length)\n break;\n }\n state.readingMore = false;\n }\n Readable.prototype._read = function(n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()"));\n };\n Readable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted)\n process.nextTick(endFn);\n else\n src.once("end", endFn);\n dest.on("unpipe", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug("onunpipe");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug("onend");\n dest.end();\n }\n var ondrain = pipeOnDrain(src);\n dest.on("drain", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug("cleanup");\n dest.removeListener("close", onclose);\n dest.removeListener("finish", onfinish);\n dest.removeListener("drain", ondrain);\n dest.removeListener("error", onerror);\n dest.removeListener("unpipe", onunpipe);\n src.removeListener("end", onend);\n src.removeListener("end", unpipe);\n src.removeListener("data", ondata);\n cleanedUp = true;\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain))\n ondrain();\n }\n src.on("data", ondata);\n function ondata(chunk) {\n debug("ondata");\n var ret = dest.write(chunk);\n debug("dest.write", ret);\n if (ret === false) {\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug("false write response, pause", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n function onerror(er) {\n debug("onerror", er);\n unpipe();\n dest.removeListener("error", onerror);\n if (EElistenerCount(dest, "error") === 0)\n errorOrDestroy(dest, er);\n }\n prependListener(dest, "error", onerror);\n function onclose() {\n dest.removeListener("finish", onfinish);\n unpipe();\n }\n dest.once("close", onclose);\n function onfinish() {\n debug("onfinish");\n dest.removeListener("close", onclose);\n unpipe();\n }\n dest.once("finish", onfinish);\n function unpipe() {\n debug("unpipe");\n src.unpipe(dest);\n }\n dest.emit("pipe", src);\n if (!state.flowing) {\n debug("pipe resume");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug("pipeOnDrain", state.awaitDrain);\n if (state.awaitDrain)\n state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, "data")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n if (state.pipesCount === 0)\n return this;\n if (state.pipesCount === 1) {\n if (dest && dest !== state.pipes)\n return this;\n if (!dest)\n dest = state.pipes;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest)\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n }\n if (!dest) {\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit("unpipe", this, {\n hasUnpiped: false\n });\n }\n return this;\n }\n var index = indexOf(state.pipes, dest);\n if (index === -1)\n return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1)\n state.pipes = state.pipes[0];\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n };\n Readable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === "data") {\n state.readableListening = this.listenerCount("readable") > 0;\n if (state.flowing !== false)\n this.resume();\n } else if (ev === "readable") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug("on readable", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function(ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === "readable") {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function(ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === "readable" || ev === void 0) {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self2) {\n var state = self2._readableState;\n state.readableListening = self2.listenerCount("readable") > 0;\n if (state.resumeScheduled && !state.paused) {\n state.flowing = true;\n } else if (self2.listenerCount("data") > 0) {\n self2.resume();\n }\n }\n function nReadingNextTick(self2) {\n debug("readable nexttick read 0");\n self2.read(0);\n }\n Readable.prototype.resume = function() {\n var state = this._readableState;\n if (!state.flowing) {\n debug("resume");\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug("resume", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit("resume");\n flow(stream);\n if (state.flowing && !state.reading)\n stream.read(0);\n }\n Readable.prototype.pause = function() {\n debug("call pause flowing=%j", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug("pause");\n this._readableState.flowing = false;\n this.emit("pause");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug("flow", state.flowing);\n while (state.flowing && stream.read() !== null) {\n ;\n }\n }\n Readable.prototype.wrap = function(stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on("end", function() {\n debug("wrapped end");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length)\n _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on("data", function(chunk) {\n debug("wrapped data");\n if (state.decoder)\n chunk = state.decoder.write(chunk);\n if (state.objectMode && (chunk === null || chunk === void 0))\n return;\n else if (!state.objectMode && (!chunk || !chunk.length))\n return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n for (var i in stream) {\n if (this[i] === void 0 && typeof stream[i] === "function") {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n this._read = function(n2) {\n debug("wrapped _read", n2);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === "function") {\n Readable.prototype[Symbol.asyncIterator] = function() {\n if (createReadableStreamAsyncIterator === void 0) {\n createReadableStreamAsyncIterator = require_async_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, "readableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, "readableBuffer", {\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, "readableFlowing", {\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, "readableLength", {\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n function fromList(n, state) {\n if (state.length === 0)\n return null;\n var ret;\n if (state.objectMode)\n ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n if (state.decoder)\n ret = state.buffer.join("");\n else if (state.buffer.length === 1)\n ret = state.buffer.first();\n else\n ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug("endReadable", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug("endReadableNT", state.endEmitted, state.length);\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit("end");\n if (state.autoDestroy) {\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === "function") {\n Readable.from = function(iterable, opts) {\n if (from === void 0) {\n from = require_from_browser();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x)\n return i;\n }\n return -1;\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_transform.js\nvar require_stream_transform = __commonJS({\n "node_modules/readable-stream/lib/_stream_transform.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Transform;\n var _require$codes = require_errors_browser().codes;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;\n var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = require_stream_duplex();\n require_inherits_browser()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit("error", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform))\n return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n this._readableState.needReadable = true;\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === "function")\n this._transform = options.transform;\n if (typeof options.flush === "function")\n this._flush = options.flush;\n }\n this.on("prefinish", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === "function" && !this._readableState.destroyed) {\n this._flush(function(er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n Transform.prototype._transform = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"));\n };\n Transform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark)\n this._read(rs.highWaterMark);\n }\n };\n Transform.prototype._read = function(n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function(err, cb) {\n Duplex.prototype._destroy.call(this, err, function(err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er)\n return stream.emit("error", er);\n if (data != null)\n stream.push(data);\n if (stream._writableState.length)\n throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming)\n throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_passthrough.js\nvar require_stream_passthrough = __commonJS({\n "node_modules/readable-stream/lib/_stream_passthrough.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = PassThrough;\n var Transform = require_stream_transform();\n require_inherits_browser()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough))\n return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n };\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/pipeline.js\nvar require_pipeline = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var eos;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = require_errors_browser().codes;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop2(err) {\n if (err)\n throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on("close", function() {\n closed = true;\n });\n if (eos === void 0)\n eos = require_end_of_stream();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function(err) {\n if (err)\n return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function(err) {\n if (closed)\n return;\n if (destroyed)\n return;\n destroyed = true;\n if (isRequest(stream))\n return stream.abort();\n if (typeof stream.destroy === "function")\n return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED("pipe"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length)\n return noop2;\n if (typeof streams[streams.length - 1] !== "function")\n return noop2;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0]))\n streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS("streams");\n }\n var error;\n var destroys = streams.map(function(stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function(err) {\n if (!error)\n error = err;\n if (err)\n destroys.forEach(call);\n if (reading)\n return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n module.exports = pipeline;\n }\n});\n\n// node_modules/readable-stream/readable-browser.js\nvar require_readable_browser = __commonJS({\n "node_modules/readable-stream/readable-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports = module.exports = require_stream_readable();\n exports.Stream = exports;\n exports.Readable = exports;\n exports.Writable = require_stream_writable();\n exports.Duplex = require_stream_duplex();\n exports.Transform = require_stream_transform();\n exports.PassThrough = require_stream_passthrough();\n exports.finished = require_end_of_stream();\n exports.pipeline = require_pipeline();\n }\n});\n\n// node_modules/readable-web-to-node-stream/lib/index.js\nvar require_lib = __commonJS({\n "node_modules/readable-web-to-node-stream/lib/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n Object.defineProperty(exports, "__esModule", { value: true });\n exports.ReadableWebToNodeStream = void 0;\n var readable_stream_1 = require_readable_browser();\n var ReadableWebToNodeStream2 = class extends readable_stream_1.Readable {\n constructor(stream) {\n super();\n this.bytesRead = 0;\n this.released = false;\n this.reader = stream.getReader();\n }\n async _read() {\n if (this.released) {\n this.push(null);\n return;\n }\n this.pendingRead = this.reader.read();\n const data = await this.pendingRead;\n delete this.pendingRead;\n if (data.done || this.released) {\n this.push(null);\n } else {\n this.bytesRead += data.value.length;\n this.push(data.value);\n }\n }\n async waitForReadToComplete() {\n if (this.pendingRead) {\n await this.pendingRead;\n }\n }\n async close() {\n await this.syncAndRelease();\n }\n async syncAndRelease() {\n this.released = true;\n await this.waitForReadToComplete();\n await this.reader.releaseLock();\n }\n };\n exports.ReadableWebToNodeStream = ReadableWebToNodeStream2;\n }\n});\n\n// node_modules/base-x/src/index.js\nvar require_src = __commonJS({\n "node_modules/base-x/src/index.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function base(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError("Alphabet too long");\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + " is ambiguous");\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode2(source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError("Expected Uint8Array");\n }\n if (source.length === 0) {\n return "";\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i2 = 0;\n for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== "string") {\n throw new TypeError("Expected String");\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i2 = 0;\n for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n psz++;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j2 = zeroes;\n while (it4 !== size) {\n vch[j2++] = b256[it4++];\n }\n return vch;\n }\n function decode3(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error("Non-base" + BASE + " character");\n }\n return {\n encode: encode2,\n decodeUnsafe,\n decode: decode3\n };\n }\n module.exports = base;\n }\n});\n\n// node_modules/bs58/index.js\nvar require_bs58 = __commonJS({\n "node_modules/bs58/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var basex = require_src();\n var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";\n module.exports = basex(ALPHABET);\n }\n});\n\n// node_modules/jpeg-js/lib/encoder.js\nvar require_encoder = __commonJS({\n "node_modules/jpeg-js/lib/encoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var btoa = btoa || function(buf2) {\n return Buffer2.from(buf2).toString("base64");\n };\n function JPEGEncoder(quality) {\n var self2 = this;\n var fround = Math.round;\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT2;\n var UVDC_HT2;\n var YAC_HT2;\n var UVAC_HT2;\n var bitcode2 = new Array(65535);\n var category2 = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n var std_dc_luminance_nrcodes2 = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\n var std_dc_luminance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes2 = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\n var std_ac_luminance_values2 = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n var std_dc_chrominance_nrcodes2 = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\n var std_dc_chrominance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes2 = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\n var std_ac_chrominance_values2 = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n if (t < 1) {\n t = 1;\n } else if (t > 255) {\n t = 255;\n }\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n if (u < 1) {\n u = 1;\n } else if (u > 255) {\n u = 255;\n }\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n fdtbl_UV[k] = 1 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n k++;\n }\n }\n }\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n function initHuffmanTbl() {\n YDC_HT2 = computeHuffmanTbl(std_dc_luminance_nrcodes2, std_dc_luminance_values2);\n UVDC_HT2 = computeHuffmanTbl(std_dc_chrominance_nrcodes2, std_dc_chrominance_values2);\n YAC_HT2 = computeHuffmanTbl(std_ac_luminance_nrcodes2, std_ac_luminance_values2);\n UVAC_HT2 = computeHuffmanTbl(std_ac_chrominance_nrcodes2, std_ac_chrominance_values2);\n }\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n for (var nr = nrlower; nr < nrupper; nr++) {\n category2[32767 + nr] = cat;\n bitcode2[32767 + nr] = [];\n bitcode2[32767 + nr][1] = cat;\n bitcode2[32767 + nr][0] = nr;\n }\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category2[32767 + nrneg] = cat;\n bitcode2[32767 + nrneg] = [];\n bitcode2[32767 + nrneg][1] = cat;\n bitcode2[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[i + 256 >> 0] = 38470 * i;\n RGB_YUV_TABLE[i + 512 >> 0] = 7471 * i + 32768;\n RGB_YUV_TABLE[i + 768 >> 0] = -11059 * i;\n RGB_YUV_TABLE[i + 1024 >> 0] = -21709 * i;\n RGB_YUV_TABLE[i + 1280 >> 0] = 32768 * i + 8421375;\n RGB_YUV_TABLE[i + 1536 >> 0] = -27439 * i;\n RGB_YUV_TABLE[i + 1792 >> 0] = -5329 * i;\n }\n }\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & 1 << posval) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 255) {\n writeByte(255);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n function writeByte(value) {\n byteout.push(value);\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n var tmp10 = tmp0 + tmp3;\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n data[dataOff] = tmp10 + tmp11;\n data[dataOff + 4] = tmp10 - tmp11;\n var z1 = (tmp12 + tmp13) * 0.707106781;\n data[dataOff + 2] = tmp13 + z1;\n data[dataOff + 6] = tmp13 - z1;\n tmp10 = tmp4 + tmp5;\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n var z5 = (tmp10 - tmp12) * 0.382683433;\n var z2 = 0.5411961 * tmp10 + z5;\n var z4 = 1.306562965 * tmp12 + z5;\n var z3 = tmp11 * 0.707106781;\n var z11 = tmp7 + z3;\n var z13 = tmp7 - z3;\n data[dataOff + 5] = z13 + z2;\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n dataOff += 8;\n }\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n var tmp10p2 = tmp0p2 + tmp3p2;\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n data[dataOff] = tmp10p2 + tmp11p2;\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781;\n data[dataOff + 16] = tmp13p2 + z1p2;\n data[dataOff + 48] = tmp13p2 - z1p2;\n tmp10p2 = tmp4p2 + tmp5p2;\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433;\n var z2p2 = 0.5411961 * tmp10p2 + z5p2;\n var z4p2 = 1.306562965 * tmp12p2 + z5p2;\n var z3p2 = tmp11p2 * 0.707106781;\n var z11p2 = tmp7p2 + z3p2;\n var z13p2 = tmp7p2 - z3p2;\n data[dataOff + 40] = z13p2 + z2p2;\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n dataOff++;\n }\n var fDCTQuant2;\n for (i = 0; i < I64; ++i) {\n fDCTQuant2 = data[i] * fdtbl[i];\n outputfDCTQuant[i] = fDCTQuant2 > 0 ? fDCTQuant2 + 0.5 | 0 : fDCTQuant2 - 0.5 | 0;\n }\n return outputfDCTQuant;\n }\n function writeAPP0() {\n writeWord(65504);\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n }\n function writeAPP1(exifBuffer) {\n if (!exifBuffer)\n return;\n writeWord(65505);\n if (exifBuffer[0] === 69 && exifBuffer[1] === 120 && exifBuffer[2] === 105 && exifBuffer[3] === 102) {\n writeWord(exifBuffer.length + 2);\n } else {\n writeWord(exifBuffer.length + 5 + 2);\n writeByte(69);\n writeByte(120);\n writeByte(105);\n writeByte(102);\n writeByte(0);\n }\n for (var i = 0; i < exifBuffer.length; i++) {\n writeByte(exifBuffer[i]);\n }\n }\n function writeSOF0(width, height) {\n writeWord(65472);\n writeWord(17);\n writeByte(8);\n writeWord(height);\n writeWord(width);\n writeByte(3);\n writeByte(1);\n writeByte(17);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(1);\n writeByte(3);\n writeByte(17);\n writeByte(1);\n }\n function writeDQT() {\n writeWord(65499);\n writeWord(132);\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n function writeDHT() {\n writeWord(65476);\n writeWord(418);\n writeByte(0);\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes2[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values2[j]);\n }\n writeByte(16);\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes2[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values2[l]);\n }\n writeByte(1);\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes2[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values2[n]);\n }\n writeByte(17);\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes2[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values2[p]);\n }\n }\n function writeCOM(comments) {\n if (typeof comments === "undefined" || comments.constructor !== Array)\n return;\n comments.forEach((e) => {\n if (typeof e !== "string")\n return;\n writeWord(65534);\n var l = e.length;\n writeWord(l + 2);\n var i;\n for (i = 0; i < l; i++)\n writeByte(e.charCodeAt(i));\n });\n }\n function writeSOS() {\n writeWord(65498);\n writeWord(12);\n writeByte(3);\n writeByte(1);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(3);\n writeByte(17);\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0];\n var M16zeroes = HTAC[240];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n if (Diff == 0) {\n writeBits(HTDC[0]);\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category2[pos]]);\n writeBits(bitcode2[pos]);\n }\n var end0pos = 63;\n for (; end0pos > 0 && DU[end0pos] == 0; end0pos--) {\n }\n ;\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n for (; DU[i] == 0 && i <= end0pos; ++i) {\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category2[pos]]);\n writeBits(bitcode2[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n clt[i] = sfcc(i);\n }\n }\n this.encode = function(image, quality2) {\n var time_start = new Date().getTime();\n if (quality2)\n setQuality(quality2);\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n writeWord(65496);\n writeAPP0();\n writeCOM(image.comments);\n writeAPP1(image.exifBuffer);\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n bytenew = 0;\n bytepos = 7;\n this.encode.displayName = "_encode_";\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n var quadWidth = width * 4;\n var tripleWidth = width * 3;\n var x, y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n p = start;\n col = -1;\n row = 0;\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3;\n col = (pos & 7) * 4;\n p = start + row * quadWidth + col;\n if (y + row >= height) {\n p -= quadWidth * (y + 1 + row - height);\n }\n if (x + col >= quadWidth) {\n p -= x + col - quadWidth + 4;\n }\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n YDU[pos] = (RGB_YUV_TABLE[r] + RGB_YUV_TABLE[g + 256 >> 0] + RGB_YUV_TABLE[b + 512 >> 0] >> 16) - 128;\n UDU[pos] = (RGB_YUV_TABLE[r + 768 >> 0] + RGB_YUV_TABLE[g + 1024 >> 0] + RGB_YUV_TABLE[b + 1280 >> 0] >> 16) - 128;\n VDU[pos] = (RGB_YUV_TABLE[r + 1280 >> 0] + RGB_YUV_TABLE[g + 1536 >> 0] + RGB_YUV_TABLE[b + 1792 >> 0] >> 16) - 128;\n }\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT2, YAC_HT2);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT2, UVAC_HT2);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT2, UVAC_HT2);\n x += 32;\n }\n y += 8;\n }\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << bytepos + 1) - 1;\n writeBits(fillbits);\n }\n writeWord(65497);\n if (typeof module === "undefined")\n return new Uint8Array(byteout);\n return Buffer2.from(byteout);\n var jpegDataUri = "data:image/jpeg;base64," + btoa(byteout.join(""));\n byteout = [];\n var duration = new Date().getTime() - time_start;\n return jpegDataUri;\n };\n function setQuality(quality2) {\n if (quality2 <= 0) {\n quality2 = 1;\n }\n if (quality2 > 100) {\n quality2 = 100;\n }\n if (currentQuality == quality2)\n return;\n var sf = 0;\n if (quality2 < 50) {\n sf = Math.floor(5e3 / quality2);\n } else {\n sf = Math.floor(200 - quality2 * 2);\n }\n initQuantTables(sf);\n currentQuality = quality2;\n }\n function init3() {\n var time_start = new Date().getTime();\n if (!quality)\n quality = 50;\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n setQuality(quality);\n var duration = new Date().getTime() - time_start;\n }\n init3();\n }\n if (typeof module !== "undefined") {\n module.exports = encode2;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].encode = encode2;\n }\n function encode2(imgData, qu) {\n if (typeof qu === "undefined")\n qu = 50;\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(imgData, qu);\n return {\n data,\n width: imgData.width,\n height: imgData.height\n };\n }\n }\n});\n\n// node_modules/jpeg-js/lib/decoder.js\nvar require_decoder = __commonJS({\n "node_modules/jpeg-js/lib/decoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var JpegImage = function jpegImage() {\n "use strict";\n var dctZigZag = new Int32Array([\n 0,\n 1,\n 8,\n 16,\n 9,\n 2,\n 3,\n 10,\n 17,\n 24,\n 32,\n 25,\n 18,\n 11,\n 4,\n 5,\n 12,\n 19,\n 26,\n 33,\n 40,\n 48,\n 41,\n 34,\n 27,\n 20,\n 13,\n 6,\n 7,\n 14,\n 21,\n 28,\n 35,\n 42,\n 49,\n 56,\n 57,\n 50,\n 43,\n 36,\n 29,\n 22,\n 15,\n 23,\n 30,\n 37,\n 44,\n 51,\n 58,\n 59,\n 52,\n 45,\n 38,\n 31,\n 39,\n 46,\n 53,\n 60,\n 61,\n 54,\n 47,\n 55,\n 62,\n 63\n ]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n function constructor() {\n }\n function buildHuffmanTable2(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, opts) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH, maxV = frame.maxV;\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 255) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new Error("unexpected marker: " + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree, bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === "number")\n return node;\n if (typeof node !== "object")\n throw new Error("invalid huffman sequence");\n }\n return null;\n }\n function receive(length) {\n var n2 = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null)\n return;\n n2 = n2 << 1 | bit;\n length--;\n }\n return n2;\n }\n function receiveAndExtend(length) {\n var n2 = receive(length);\n if (n2 >= 1 << length - 1)\n return n2;\n return n2 + (-1 << length) + 1;\n }\n function decodeBaseline(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n zz[0] = component2.pred += diff;\n var k2 = 1;\n while (k2 < 64) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15)\n break;\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s);\n k2++;\n }\n }\n function decodeDCFirst(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n zz[0] = component2.pred += diff;\n }\n function decodeDCSuccessive(component2, zz) {\n zz[0] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component2, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k2 = spectralStart, e = spectralEnd;\n while (k2 <= e) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k2++;\n }\n }\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component2, zz) {\n var k2 = spectralStart, e = spectralEnd, r = 0;\n while (k2 <= e) {\n var z = dctZigZag[k2];\n var direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0:\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1)\n throw new Error("invalid ACn encoding");\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n r--;\n if (r === 0)\n successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n break;\n }\n k2++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0)\n successiveACState = 0;\n }\n }\n function decodeMcu(component2, decode4, mcu2, row, col) {\n var mcuRow = mcu2 / mcusPerLine | 0;\n var mcuCol = mcu2 % mcusPerLine;\n var blockRow = mcuRow * component2.v + row;\n var blockCol = mcuCol * component2.h + col;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component2, decode4, mcu2) {\n var blockRow = mcu2 / component2.blocksPerLine | 0;\n var blockCol = mcu2 % component2.blocksPerLine;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0, marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval)\n resetInterval = mcuExpected;\n var h, v;\n while (mcu < mcuExpected) {\n for (i = 0; i < componentsLength; i++)\n components[i].pred = 0;\n eobrun = 0;\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n if (mcu === mcuExpected)\n break;\n }\n }\n if (mcu === mcuExpected) {\n do {\n if (data[offset] === 255) {\n if (data[offset + 1] !== 0) {\n break;\n }\n }\n offset += 1;\n } while (offset < data.length - 2);\n }\n bitsCount = 0;\n marker = data[offset] << 8 | data[offset + 1];\n if (marker < 65280) {\n throw new Error("marker was not found");\n }\n if (marker >= 65488 && marker <= 65495) {\n offset += 2;\n } else\n break;\n }\n return offset - startOffset;\n }\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var R = new Int32Array(64), r = new Uint8Array(64);\n function quantizeAndInverse(zz, dataOut, dataIn) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var p = dataIn;\n var i2;\n for (i2 = 0; i2 < 64; i2++)\n p[i2] = zz[i2] * qt[i2];\n for (i2 = 0; i2 < 8; ++i2) {\n var row = 8 * i2;\n if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 && p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 && p[7 + row] == 0) {\n t = dctSqrt2 * p[0 + row] + 512 >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 + row] + 128 >> 8;\n v1 = dctSqrt2 * p[4 + row] + 128 >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8;\n v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n for (i2 = 0; i2 < 8; ++i2) {\n var col = i2;\n if (p[1 * 8 + col] == 0 && p[2 * 8 + col] == 0 && p[3 * 8 + col] == 0 && p[4 * 8 + col] == 0 && p[5 * 8 + col] == 0 && p[6 * 8 + col] == 0 && p[7 * 8 + col] == 0) {\n t = dctSqrt2 * dataIn[i2 + 0] + 8192 >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12;\n v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n for (i2 = 0; i2 < 64; ++i2) {\n var sample2 = 128 + (p[i2] + 8 >> 4);\n dataOut[i2] = sample2 < 0 ? 0 : sample2 > 255 ? 255 : sample2;\n }\n }\n requestMemoryAllocation(samplesPerLine * blocksPerColumn * 8);\n var i, j;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (i = 0; i < 8; i++)\n lines.push(new Uint8Array(samplesPerLine));\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n var offset = 0, sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var line = lines[scanLine + j];\n for (i = 0; i < 8; i++)\n line[sample + i] = r[offset++];\n }\n }\n }\n return lines;\n }\n function clampTo8bit(a) {\n return a < 0 ? 0 : a > 255 ? 255 : a;\n }\n constructor.prototype = {\n load: function load(path) {\n var xhr = new XMLHttpRequest();\n xhr.open("GET", path, true);\n xhr.responseType = "arraybuffer";\n xhr.onload = function() {\n var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n this.parse(data);\n if (this.onload)\n this.onload();\n }.bind(this);\n xhr.send(null);\n },\n parse: function parse(data) {\n var maxResolutionInPixels = this.opts.maxResolutionInMP * 1e3 * 1e3;\n var offset = 0, length = data.length;\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length2 = readUint16();\n var array = data.subarray(offset, offset + length2 - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame2) {\n var maxH2 = 1, maxV2 = 1;\n var component2, componentId2;\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n if (maxH2 < component2.h)\n maxH2 = component2.h;\n if (maxV2 < component2.v)\n maxV2 = component2.v;\n }\n }\n var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / maxH2);\n var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / maxV2);\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component2.h / maxH2);\n var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component2.v / maxV2);\n var blocksPerLineForMcu = mcusPerLine * component2.h;\n var blocksPerColumnForMcu = mcusPerColumn * component2.v;\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\n var blocks = [];\n requestMemoryAllocation(blocksToAllocate * 256);\n for (var i2 = 0; i2 < blocksPerColumnForMcu; i2++) {\n var row = [];\n for (var j2 = 0; j2 < blocksPerLineForMcu; j2++)\n row.push(new Int32Array(64));\n blocks.push(row);\n }\n component2.blocksPerLine = blocksPerLine;\n component2.blocksPerColumn = blocksPerColumn;\n component2.blocks = blocks;\n }\n }\n frame2.maxH = maxH2;\n frame2.maxV = maxV2;\n frame2.mcusPerLine = mcusPerLine;\n frame2.mcusPerColumn = mcusPerColumn;\n }\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [], frames = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n var malformedDataOffset = -1;\n this.comments = [];\n if (fileMarker != 65496) {\n throw new Error("SOI not found");\n }\n fileMarker = readUint16();\n while (fileMarker != 65497) {\n var i, j, l;\n switch (fileMarker) {\n case 65280:\n break;\n case 65504:\n case 65505:\n case 65506:\n case 65507:\n case 65508:\n case 65509:\n case 65510:\n case 65511:\n case 65512:\n case 65513:\n case 65514:\n case 65515:\n case 65516:\n case 65517:\n case 65518:\n case 65519:\n case 65534:\n var appData = readDataBlock();\n if (fileMarker === 65534) {\n var comment = String.fromCharCode.apply(null, appData);\n this.comments.push(comment);\n }\n if (fileMarker === 65504) {\n if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n if (fileMarker === 65505) {\n if (appData[0] === 69 && appData[1] === 120 && appData[2] === 105 && appData[3] === 102 && appData[4] === 0) {\n this.exifBuffer = appData.subarray(5, appData.length);\n }\n }\n if (fileMarker === 65518) {\n if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) {\n adobe = {\n version: appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n case 65499:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n requestMemoryAllocation(64 * 4);\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else\n throw new Error("DQT: invalid table spec");\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 65472:\n case 65473:\n case 65474:\n readUint16();\n frame = {};\n frame.extended = fileMarker === 65473;\n frame.progressive = fileMarker === 65474;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = {};\n frame.componentsOrder = [];\n var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\n if (pixelsInFrame > maxResolutionInPixels) {\n var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\n throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\n }\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n var qId = data[offset + 2];\n if (h <= 0 || v <= 0) {\n throw new Error("Invalid sampling factor, expected values above 0");\n }\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId\n };\n offset += 3;\n }\n prepareComponents(frame);\n frames.push(frame);\n break;\n case 65476:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n requestMemoryAllocation(16 + codeLengthSum);\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable2(codeLengths, huffmanValues);\n }\n break;\n case 65501:\n readUint16();\n resetInterval = readUint16();\n break;\n case 65500:\n readUint16();\n readUint16();\n break;\n case 65498:\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n component = frame.components[data[offset++]];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, this.opts);\n offset += processed;\n break;\n case 65535:\n if (data[offset] !== 255) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n break;\n } else if (fileMarker === 224 || fileMarker == 225) {\n if (malformedDataOffset !== -1) {\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\n }\n malformedDataOffset = offset - 1;\n const nextOffset = readUint16();\n if (data[offset + nextOffset - 2] === 255) {\n offset += nextOffset - 2;\n break;\n }\n }\n throw new Error("unknown JPEG marker " + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n if (frames.length != 1)\n throw new Error("only single frame JPEGs supported");\n for (var i = 0; i < frames.length; i++) {\n var cp = frames[i].components;\n for (var j in cp) {\n cp[j].quantizationTable = quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (var i = 0; i < frame.componentsOrder.length; i++) {\n var component = frame.components[frame.componentsOrder[i]];\n this.components.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV\n });\n }\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width, scaleY = this.height / height;\n var component1, component2, component3, component4;\n var component1Line, component2Line, component3Line, component4Line;\n var x, y;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var dataLength = width * height * this.components.length;\n requestMemoryAllocation(dataLength);\n var data = new Uint8Array(dataLength);\n switch (this.components.length) {\n case 1:\n component1 = this.components[0];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 2:\n component1 = this.components[0];\n component2 = this.components[1];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n Y = component2Line[0 | x * component2.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 3:\n colorTransform = true;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n R = component1Line[0 | x * component1.scaleX * scaleX];\n G = component2Line[0 | x * component2.scaleX * scaleX];\n B = component3Line[0 | x * component3.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n R = clampTo8bit(Y + 1.402 * (Cr - 128));\n G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n B = clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = R;\n data[offset++] = G;\n data[offset++] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe)\n throw new Error("Unsupported color mode (4 components)");\n colorTransform = false;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n component4 = this.components[3];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n component4Line = component4.lines[0 | y * component4.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n C = component1Line[0 | x * component1.scaleX * scaleX];\n M = component2Line[0 | x * component2.scaleX * scaleX];\n Ye = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = 255 - C;\n data[offset++] = 255 - M;\n data[offset++] = 255 - Ye;\n data[offset++] = 255 - K;\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n return data;\n },\n copyToImageData: function copyToImageData(imageData, formatAsRGBA) {\n var width = imageData.width, height = imageData.height;\n var imageDataArray = imageData.data;\n var data = this.getData(width, height);\n var i = 0, j = 0, x, y;\n var Y, K, C, M, R, G, B;\n switch (this.components.length) {\n case 1:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n Y = data[i++];\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 3:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n R = data[i++];\n G = data[i++];\n B = data[i++];\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 4:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n C = data[i++];\n M = data[i++];\n Y = data[i++];\n K = data[i++];\n R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n }\n };\n var totalBytesAllocated = 0;\n var maxMemoryUsageBytes = 0;\n function requestMemoryAllocation(increaseAmount = 0) {\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\n }\n totalBytesAllocated = totalMemoryImpactBytes;\n }\n constructor.resetMaxMemoryUsage = function(maxMemoryUsageBytes_) {\n totalBytesAllocated = 0;\n maxMemoryUsageBytes = maxMemoryUsageBytes_;\n };\n constructor.getBytesAllocated = function() {\n return totalBytesAllocated;\n };\n constructor.requestMemoryAllocation = requestMemoryAllocation;\n return constructor;\n }();\n if (typeof module !== "undefined") {\n module.exports = decode3;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].decode = decode3;\n }\n function decode3(jpegData, userOpts = {}) {\n var defaultOpts = {\n colorTransform: void 0,\n useTArray: false,\n formatAsRGBA: true,\n tolerantDecoding: true,\n maxResolutionInMP: 100,\n maxMemoryUsageInMB: 512\n };\n var opts = { ...defaultOpts, ...userOpts };\n var arr = new Uint8Array(jpegData);\n var decoder = new JpegImage();\n decoder.opts = opts;\n JpegImage.resetMaxMemoryUsage(opts.maxMemoryUsageInMB * 1024 * 1024);\n decoder.parse(arr);\n var channels = opts.formatAsRGBA ? 4 : 3;\n var bytesNeeded = decoder.width * decoder.height * channels;\n try {\n JpegImage.requestMemoryAllocation(bytesNeeded);\n var image = {\n width: decoder.width,\n height: decoder.height,\n exifBuffer: decoder.exifBuffer,\n data: opts.useTArray ? new Uint8Array(bytesNeeded) : Buffer2.alloc(bytesNeeded)\n };\n if (decoder.comments.length > 0) {\n image["comments"] = decoder.comments;\n }\n } catch (err) {\n if (err instanceof RangeError) {\n throw new Error("Could not allocate enough memory for the image. Required: " + bytesNeeded);\n }\n if (err instanceof ReferenceError) {\n if (err.message === "Buffer is not defined") {\n throw new Error("Buffer is not globally defined in this environment. Consider setting useTArray to true");\n }\n }\n throw err;\n }\n decoder.copyToImageData(image, opts.formatAsRGBA);\n return image;\n }\n }\n});\n\n// node_modules/jpeg-js/index.js\nvar require_jpeg_js = __commonJS({\n "node_modules/jpeg-js/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var encode2 = require_encoder();\n var decode3 = require_decoder();\n module.exports = {\n encode: encode2,\n decode: decode3\n };\n }\n});\n\n// src/processor.worker.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/platform.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/requests.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar xmlhttprequest;\nif (false)\n xmlhttprequest = typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : typeof GM != "undefined" ? GM.xmlHttpRequest : window["GM_xmlhttpRequest"];\nvar GM_fetch = (...[url, opt, lisn]) => {\n function blobTo(to, blob) {\n if (to == "arrayBuffer" && blob.arrayBuffer) {\n const ret = blob.arrayBuffer();\n if (ret)\n return ret;\n }\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = function(event) {\n if (!event)\n return;\n if (to == "base64")\n resolve(event.target.result);\n else\n resolve(event.target.result);\n };\n if (to == "arrayBuffer")\n fileReader.readAsArrayBuffer(blob);\n else if (to == "base64")\n fileReader.readAsDataURL(blob);\n else if (to == "text")\n fileReader.readAsText(blob, "utf-8");\n else\n reject(new Error("unknown to"));\n });\n }\n return new Promise((resolve, reject) => {\n const gmopt = {\n url: url.toString(),\n data: opt?.body,\n responseType: "blob",\n headers: opt?.headers,\n method: opt?.method || "GET",\n ...lisn ? {\n onprogress: (prog) => {\n if (prog.loaded != prog.total && prog.total != 0)\n lisn.dispatchEvent(new CustomEvent("progress", { detail: [prog.loaded, prog.total] }));\n }\n } : {},\n onload: (resp) => {\n if (resp.status / 100 >= 4) {\n reject(new Error("Server Error: " + resp.status));\n return;\n }\n const blob = resp.response;\n const ref = resp;\n ref.blob = () => Promise.resolve(blob);\n ref.arrayBuffer = () => blobTo("arrayBuffer", blob);\n ref.text = () => blobTo("text", blob);\n ref.json = async () => JSON.parse(await blobTo("text", blob));\n resolve(resp);\n },\n ontimeout: () => reject(new Error("fetch timeout")),\n onerror: (...args) => {\n reject(new Error("fetch error"));\n },\n onabort: () => reject(new Error("fetch abort"))\n };\n xmlhttprequest(gmopt);\n });\n};\n\n// src/platform.ts\nvar lqueue = {};\nvar localSet = (key2, value) => localStorage.setItem("__pee__" + key2, JSON.stringify(value));\nvar port1;\nconsole.log("worker", false);\nvar msgBuff = [];\nvar setupPort = (port) => {\n port1 = port;\n port1.onmessage = (ev) => {\n lqueue[ev.data.id](ev.data);\n };\n if (true) {\n for (const msg of msgBuff) {\n port.postMessage(msg[0], { transfer: msg[1] });\n }\n msgBuff = [];\n }\n};\nif (true) {\n port1 = {\n onmessage(ev) {\n lqueue[ev.data.id](ev.data);\n },\n postMessage(msg, tr) {\n msgBuff.push([msg, tr]);\n }\n };\n}\nvar gid = 0;\nvar sendCmd = (cmd, tr, overwrite = false, todelete = false) => {\n const prom = new Promise((_) => {\n const id = gid++;\n if (overwrite)\n cmd.id = id;\n lqueue[id] = (e) => {\n _(e.res);\n if (todelete)\n delete lqueue[id];\n };\n port1.postMessage({ id, ...cmd }, tr || []);\n });\n return prom;\n};\nvar bridge = (name, f) => {\n if (false)\n return f;\n if (false)\n return f;\n return (...args) => {\n return sendCmd({ name, args });\n };\n};\nvar Bridged = (ctor) => {\n const keys = Object.getOwnPropertyNames(ctor).filter((k) => typeof ctor[k] == "function");\n for (const k of keys)\n ctor[k] = bridge(k, ctor[k]);\n};\nif (false) {\n}\nvar Platform = class {\n static async openInTab(src, opts) {\n if (false) {\n return GM.openInTab(src, opts);\n }\n const obj = false ? chrome : browser;\n let i;\n if (opts.insert)\n i = (await obj.tabs.getCurrent()).index + 1;\n return obj.tabs.create({ active: opts.active, url: src, index: i });\n }\n static async getValue(key2, def) {\n const isinls = "__pee__" + key2 in localStorage;\n let ret;\n if (isinls) {\n let it = localStorage.getItem("__pee__" + key2);\n if (it === "undefined")\n it = null;\n ret = { ...def, ...JSON.parse(it || "{}") };\n } else\n ret = def;\n if (true) {\n if (isinls) {\n delete localStorage["__pee__" + key2];\n await chrome.storage.local.set({\n [key2]: JSON.stringify(ret)\n });\n } else {\n const d = await chrome.storage.local.get([key2]);\n if (typeof d[key2] == "string")\n return { ...def, ...await JSON.parse("" + d[key2] || "{}") };\n }\n }\n return ret;\n }\n static setValue(name, val) {\n localSet(name, val);\n }\n};\nPlatform.cmdid = 0;\nPlatform = __decorateClass([\n Bridged\n], Platform);\nvar corsFetch = async (input, init3, lsn) => {\n const id = gid++;\n let transfer = [];\n if (init3?.body) {\n if (false) {\n [init3.body, transfer] = await braveserialize(init3.body);\n }\n }\n const prom = new Promise((_, rej) => {\n let gcontroller;\n let buffer = [];\n let finished = false;\n const rs = new ReadableStream({\n start(controller) {\n gcontroller = controller;\n buffer.forEach((b) => gcontroller?.enqueue(b));\n buffer = [];\n if (finished) {\n gcontroller.close();\n }\n }\n });\n let s;\n s = 0;\n const cmdbuff = [];\n lqueue[id] = async (e) => {\n if (e.progress) {\n if (lsn)\n lsn.dispatchEvent(new CustomEvent("progress", { detail: e.progress }));\n }\n if (e.pushData) {\n if (e.s > s) {\n let idx = 0;\n while (idx < cmdbuff.length) {\n if (cmdbuff[idx].s > e.s)\n break;\n idx++;\n }\n cmdbuff.splice(idx, 0, e);\n return;\n }\n const processCmd = (e2) => {\n if (e2.pushData.data) {\n const data = new Uint8Array(e2.pushData.data);\n if (gcontroller)\n gcontroller.enqueue(data);\n else\n buffer.push(data);\n } else {\n if (gcontroller)\n gcontroller?.close();\n else\n finished = true;\n }\n };\n await processCmd(e);\n s++;\n while (cmdbuff[0]?.s == s) {\n await processCmd(cmdbuff.shift());\n s++;\n }\n }\n if (e.setRes) {\n const arrayBuffer = async () => {\n const r = rs.getReader();\n await sendCmd({ name: "fullyRead", fid: id });\n const abs = [];\n let res;\n do {\n res = await r.read();\n if (res.done)\n break;\n abs.push(res.value);\n } while (!res.done);\n const sum = abs.reduce((a, b) => a + b.byteLength, 0);\n const ret = new Uint8Array(sum);\n abs.reduce((ptr, arr) => {\n ret.set(arr, ptr);\n return ptr + arr.byteLength;\n }, 0);\n r.releaseLock();\n return ret;\n };\n const blob = async () => new Blob([await arrayBuffer()]);\n const text = async () => new TextDecoder().decode(await arrayBuffer());\n const json = async () => JSON.parse(await text());\n if (e.ok)\n _({\n body: rs,\n ok: e.ok,\n headers: e.headers,\n redirected: e.redirected,\n type: e.type,\n url: e.url,\n status: e.status,\n bodyUsed: e.bodyUsed,\n statusText: e.statusText,\n clone() {\n return this;\n },\n arrayBuffer,\n blob,\n text,\n json,\n async formData() {\n return new FormData();\n }\n });\n else {\n rej(new Error(`${e.url} - ${e.status}`));\n }\n }\n };\n port1.postMessage({\n id,\n name: "corsFetch",\n args: [input, init3]\n }, transfer);\n });\n return prom;\n};\nasync function getHeaders(s) {\n if (false)\n return headerStringToObject(await GM_head(s));\n const res = await ifetch(s, {\n method: "HEAD"\n });\n return res.headers;\n}\nasync function ifetch(...[url, opt, lisn]) {\n if (true)\n return corsFetch(url.toString(), opt, lisn);\n return GM_fetch(url, opt, lisn);\n}\nasync function* streamRemote(url, chunkSize = 72 * 1024, fetchRestOnNonCanceled = true) {\n let size = Number.POSITIVE_INFINITY;\n let ptr = 0;\n let fetchSize = chunkSize;\n while (ptr != size) {\n let obj;\n const fres = await ifetch(url, { headers: { range: `bytes=${ptr}-${ptr + fetchSize - 1}` } });\n if (false) {\n obj = headerStringToObject(fres.responseHeaders);\n } else {\n obj = fres.headers;\n }\n if (!("content-length" in obj)) {\n console.warn("no content lenght???", url);\n break;\n }\n if ("content-range" in obj) {\n size = +obj["content-range"].split("/")[1];\n }\n const len = +obj["content-length"];\n ptr += len;\n if (fetchRestOnNonCanceled)\n fetchSize = size;\n const val = Buffer2.from(await fres.arrayBuffer());\n const e = yield val;\n if (e) {\n break;\n }\n }\n}\n\n// src/stores.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/store/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/internal/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === "function";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function");\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nvar resolved_promise = Promise.resolve();\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nvar SvelteElement;\nif (typeof HTMLElement === "function") {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: "open" });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n for (const key2 in this.$$.slotted) {\n this.appendChild(this.$$.slotted[key2]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n\n// node_modules/svelte/store/index.mjs\nvar subscriber_queue = [];\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe2(run2, invalidate = noop) {\n const subscriber = [run2, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run2(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe: subscribe2 };\n}\n\n// src/stores.ts\nvar localLoad = async (key2, def) => {\n const ret = await Platform.getValue(key2, def);\n return ret;\n};\nvar localSet2 = (key2, value) => {\n if (true) {\n return;\n }\n if (true)\n chrome.storage.local.set({ [key2]: JSON.stringify(value) });\n else\n localStorage.setItem("__pee__" + key2, JSON.stringify(value));\n};\nvar initial_settings = {\n loop: true,\n dh: false,\n pmeth: 5,\n xpv: false,\n xpi: false,\n hyd: false,\n notcata: false,\n ak: "",\n auto_embed: 0,\n auto_tags: "",\n te: false,\n eye: false,\n ca: false,\n pre: false,\n prev: false,\n sh: false,\n ep: false,\n tm: false,\n dvc: false,\n expte: false,\n mdist: -1,\n phash: false,\n hotlink: false,\n jpeg: false,\n vercheck: false,\n cache: void 0,\n fhost: 0,\n maxe: 5,\n conc: 8,\n ho: false,\n blacklist: [],\n rsources: []\n};\nvar settings = writable();\nvar appState = writable({\n isCatalog: false,\n is4chanX: false,\n akValid: false,\n herror: "",\n client: null,\n processing: 0,\n processed: 0,\n foundPosts: []\n});\nsettings.subscribe((newVal) => {\n if (newVal)\n localSet2("settingsv2", newVal);\n});\n\n// src/pngv3.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer3 = __toESM(require_buffer(), 1);\n\n// src/png.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_crc_32 = __toESM(require_crc32(), 1);\nvar import_buffer = __toESM(require_buffer(), 1);\nvar PNGDecoder = class {\n constructor(reader, strict = true) {\n this.reader = reader;\n this.strict = strict;\n this.req = 8;\n this.ptr = 8;\n this.stopped = false;\n this.repr = import_buffer.Buffer.from([]);\n }\n async catchup() {\n while (this.repr.byteLength < this.req) {\n const chunk = await this.reader.read();\n if (chunk.done) {\n if (this.strict)\n throw new Error(`Unexpected EOF, got ${this.repr.byteLength}, required ${this.req}, ${chunk.value}`);\n this.stopped = true;\n return;\n }\n this.repr = import_buffer.Buffer.concat([this.repr, chunk.value]);\n }\n }\n async *chunks() {\n while (true) {\n this.req += 8;\n await this.catchup();\n if (this.stopped)\n break;\n const length = this.repr.readUInt32BE(this.ptr);\n const name = this.repr.slice(this.ptr + 4, this.ptr + 8).toString();\n this.ptr += 4;\n this.req += length + 4;\n await this.catchup();\n yield [\n name,\n this.repr.slice(this.ptr, this.ptr + length + 4),\n this.ptr + length > this.repr.length ? -1 : this.repr.readUInt32BE(this.ptr + length + 4),\n this.ptr\n ];\n if (this.stopped)\n break;\n this.ptr += length + 8;\n if (name == "IEND")\n break;\n }\n }\n async dtor() {\n }\n};\nvar PNGEncoder = class {\n constructor(bytes) {\n this.writer = bytes.getWriter();\n this.writer.write(import_buffer.Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]));\n }\n async insertchunk(chunk) {\n let b = import_buffer.Buffer.alloc(4);\n const buff = chunk[1];\n b.writeInt32BE(buff.length - 4, 0);\n await this.writer.write(b);\n await this.writer.write(buff);\n b = import_buffer.Buffer.alloc(4);\n b.writeInt32BE((0, import_crc_32.buf)(buff), 0);\n await this.writer.write(b);\n }\n async dtor() {\n this.writer.releaseLock();\n }\n};\n\n// src/utils.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer2 = __toESM(require_buffer(), 1);\n\n// src/assets/hasembed.png\nvar hasembed_default = __toBinary("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");\n\n// src/filehosts.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction parseForm(data) {\n const form = new FormData();\n Object.entries(data).filter(([key2, value]) => value !== null).map(([key2, value]) => form.append(key2, value));\n return form;\n}\nvar lolisafe = (domain, serving = domain) => ({\n domain,\n serving,\n async uploadFile(f) {\n const resp = await ifetch(`https://${domain}/api/upload`, {\n headers: {\n accept: "application/json"\n },\n "body": parseForm({\n reqtype: "fileupload",\n "files[]": new File([f], "f.pee")\n }),\n "method": "POST"\n });\n const res = await resp.json();\n return res.files.map((e) => e.url)[0];\n }\n});\nvar catbox = (domain, serving) => ({\n domain,\n serving,\n async uploadFile(inj) {\n const resp = await ifetch(`https://${domain}/user/api.php`, {\n method: "POST",\n body: parseForm({\n reqtype: "fileupload",\n fileToUpload: inj\n })\n });\n return resp.text();\n }\n});\nvar filehosts = [\n catbox("catbox.moe", "files.catbox.moe"),\n catbox("pomf.moe", "a.pomf.cat"),\n lolisafe("take-me-to.space"),\n lolisafe("zz.ht", "z.zz.fo")\n];\n\n// node_modules/file-type/browser.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer4 = __toESM(require_buffer(), 1);\nvar import_readable_web_to_node_stream = __toESM(require_lib(), 1);\n\n// node_modules/file-type/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer3 = __toESM(require_buffer(), 1);\n\n// node_modules/token-types/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar ieee754 = __toESM(require_ieee754(), 1);\nvar import_node_buffer = __toESM(require_buffer(), 1);\nvar AnsiStringType = class {\n constructor(len) {\n this.len = len;\n }\n static decode(buffer, offset, until) {\n let str = "";\n for (let i = offset; i < until; ++i) {\n str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));\n }\n return str;\n }\n static inRange(a, min, max) {\n return min <= a && a <= max;\n }\n static codePointToString(cp) {\n if (cp <= 65535) {\n return String.fromCharCode(cp);\n } else {\n cp -= 65536;\n return String.fromCharCode((cp >> 10) + 55296, (cp & 1023) + 56320);\n }\n }\n static singleByteDecoder(bite) {\n if (AnsiStringType.inRange(bite, 0, 127)) {\n return bite;\n }\n const codePoint = AnsiStringType.windows1252[bite - 128];\n if (codePoint === null) {\n throw Error("invaliding encoding");\n }\n return codePoint;\n }\n get(buffer, offset = 0) {\n return AnsiStringType.decode(buffer, offset, offset + this.len);\n }\n};\nAnsiStringType.windows1252 = [\n 8364,\n 129,\n 8218,\n 402,\n 8222,\n 8230,\n 8224,\n 8225,\n 710,\n 8240,\n 352,\n 8249,\n 338,\n 141,\n 381,\n 143,\n 144,\n 8216,\n 8217,\n 8220,\n 8221,\n 8226,\n 8211,\n 8212,\n 732,\n 8482,\n 353,\n 8250,\n 339,\n 157,\n 382,\n 376,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 174,\n 175,\n 176,\n 177,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 187,\n 188,\n 189,\n 190,\n 191,\n 192,\n 193,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 219,\n 220,\n 221,\n 222,\n 223,\n 224,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 235,\n 236,\n 237,\n 238,\n 239,\n 240,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250,\n 251,\n 252,\n 253,\n 254,\n 255\n];\n\n// node_modules/strtok3/lib/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/ReadStreamTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/EndOfFileStream.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/Deferred.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\nvar maxStreamReadSize = 1 * 1024 * 1024;\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\nvar import_node_buffer2 = __toESM(require_buffer(), 1);\n\n// node_modules/strtok3/lib/BufferTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/util.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/supported.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar extensions = [\n "jpg",\n "png",\n "apng",\n "gif",\n "webp",\n "flif",\n "xcf",\n "cr2",\n "cr3",\n "orf",\n "arw",\n "dng",\n "nef",\n "rw2",\n "raf",\n "tif",\n "bmp",\n "icns",\n "jxr",\n "psd",\n "indd",\n "zip",\n "tar",\n "rar",\n "gz",\n "bz2",\n "7z",\n "dmg",\n "mp4",\n "mid",\n "mkv",\n "webm",\n "mov",\n "avi",\n "mpg",\n "mp2",\n "mp3",\n "m4a",\n "oga",\n "ogg",\n "ogv",\n "opus",\n "flac",\n "wav",\n "spx",\n "amr",\n "pdf",\n "epub",\n "elf",\n "exe",\n "swf",\n "rtf",\n "wasm",\n "woff",\n "woff2",\n "eot",\n "ttf",\n "otf",\n "ico",\n "flv",\n "ps",\n "xz",\n "sqlite",\n "nes",\n "crx",\n "xpi",\n "cab",\n "deb",\n "ar",\n "rpm",\n "Z",\n "lz",\n "cfb",\n "mxf",\n "mts",\n "blend",\n "bpg",\n "docx",\n "pptx",\n "xlsx",\n "3gp",\n "3g2",\n "jp2",\n "jpm",\n "jpx",\n "mj2",\n "aif",\n "qcp",\n "odt",\n "ods",\n "odp",\n "xml",\n "mobi",\n "heic",\n "cur",\n "ktx",\n "ape",\n "wv",\n "dcm",\n "ics",\n "glb",\n "pcap",\n "dsf",\n "lnk",\n "alias",\n "voc",\n "ac3",\n "m4v",\n "m4p",\n "m4b",\n "f4v",\n "f4p",\n "f4b",\n "f4a",\n "mie",\n "asf",\n "ogm",\n "ogx",\n "mpc",\n "arrow",\n "shp",\n "aac",\n "mp1",\n "it",\n "s3m",\n "xm",\n "ai",\n "skp",\n "avif",\n "eps",\n "lzh",\n "pgp",\n "asar",\n "stl",\n "chm",\n "3mf",\n "zst",\n "jxl",\n "vcf"\n];\nvar mimeTypes = [\n "image/jpeg",\n "image/png",\n "image/gif",\n "image/webp",\n "image/flif",\n "image/x-xcf",\n "image/x-canon-cr2",\n "image/x-canon-cr3",\n "image/tiff",\n "image/bmp",\n "image/vnd.ms-photo",\n "image/vnd.adobe.photoshop",\n "application/x-indesign",\n "application/epub+zip",\n "application/x-xpinstall",\n "application/vnd.oasis.opendocument.text",\n "application/vnd.oasis.opendocument.spreadsheet",\n "application/vnd.oasis.opendocument.presentation",\n "application/vnd.openxmlformats-officedocument.wordprocessingml.document",\n "application/vnd.openxmlformats-officedocument.presentationml.presentation",\n "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",\n "application/zip",\n "application/x-tar",\n "application/x-rar-compressed",\n "application/gzip",\n "application/x-bzip2",\n "application/x-7z-compressed",\n "application/x-apple-diskimage",\n "application/x-apache-arrow",\n "video/mp4",\n "audio/midi",\n "video/x-matroska",\n "video/webm",\n "video/quicktime",\n "video/vnd.avi",\n "audio/vnd.wave",\n "audio/qcelp",\n "audio/x-ms-asf",\n "video/x-ms-asf",\n "application/vnd.ms-asf",\n "video/mpeg",\n "video/3gpp",\n "audio/mpeg",\n "audio/mp4",\n "audio/opus",\n "video/ogg",\n "audio/ogg",\n "application/ogg",\n "audio/x-flac",\n "audio/ape",\n "audio/wavpack",\n "audio/amr",\n "application/pdf",\n "application/x-elf",\n "application/x-msdownload",\n "application/x-shockwave-flash",\n "application/rtf",\n "application/wasm",\n "font/woff",\n "font/woff2",\n "application/vnd.ms-fontobject",\n "font/ttf",\n "font/otf",\n "image/x-icon",\n "video/x-flv",\n "application/postscript",\n "application/eps",\n "application/x-xz",\n "application/x-sqlite3",\n "application/x-nintendo-nes-rom",\n "application/x-google-chrome-extension",\n "application/vnd.ms-cab-compressed",\n "application/x-deb",\n "application/x-unix-archive",\n "application/x-rpm",\n "application/x-compress",\n "application/x-lzip",\n "application/x-cfb",\n "application/x-mie",\n "application/mxf",\n "video/mp2t",\n "application/x-blender",\n "image/bpg",\n "image/jp2",\n "image/jpx",\n "image/jpm",\n "image/mj2",\n "audio/aiff",\n "application/xml",\n "application/x-mobipocket-ebook",\n "image/heif",\n "image/heif-sequence",\n "image/heic",\n "image/heic-sequence",\n "image/icns",\n "image/ktx",\n "application/dicom",\n "audio/x-musepack",\n "text/calendar",\n "text/vcard",\n "model/gltf-binary",\n "application/vnd.tcpdump.pcap",\n "audio/x-dsf",\n "application/x.ms.shortcut",\n "application/x.apple.alias",\n "audio/x-voc",\n "audio/vnd.dolby.dd-raw",\n "audio/x-m4a",\n "image/apng",\n "image/x-olympus-orf",\n "image/x-sony-arw",\n "image/x-adobe-dng",\n "image/x-nikon-nef",\n "image/x-panasonic-rw2",\n "image/x-fujifilm-raf",\n "video/x-m4v",\n "video/3gpp2",\n "application/x-esri-shape",\n "audio/aac",\n "audio/x-it",\n "audio/x-s3m",\n "audio/x-xm",\n "video/MP1S",\n "video/MP2P",\n "application/vnd.sketchup.skp",\n "image/avif",\n "application/x-lzh-compressed",\n "application/pgp-encrypted",\n "application/x-asar",\n "model/stl",\n "application/vnd.ms-htmlhelp",\n "model/3mf",\n "image/jxl",\n "application/zstd"\n];\n\n// node_modules/file-type/core.js\nvar supportedExtensions = new Set(extensions);\nvar supportedMimeTypes = new Set(mimeTypes);\n\n// src/utils.ts\nvar csettings;\nsettings.subscribe((b) => {\n csettings = b;\n});\nvar threadDataCache = writable();\nvar cthreadDataCache;\nthreadDataCache.subscribe((newval) => {\n cthreadDataCache = newval;\n});\nvar decodeCoom3Payload = async (buff) => {\n if (!csettings)\n throw new Error("Settings uninit");\n const allowed_domains = filehosts.map((e) => e.serving.replaceAll(".", "\\\\."));\n const pees = buff.toString().split(" ").slice(0, csettings.maxe).filter((e) => allowed_domains.some((v) => e.match(`https://(.*\\\\.)?${v}/`)));\n return (await Promise.all(pees.map(async (pee) => {\n try {\n const m = pee.match(/(?https?):\\/\\/(?.*?)(?\\/.*)/);\n if (!m)\n return;\n const { domain, file } = m.groups;\n const headers = await getHeaders(pee);\n const res = await ifetch(pee, {\n headers: { range: "bytes=0-32767", "user-agent": "" },\n mode: "cors",\n referrerPolicy: "no-referrer"\n });\n const size = +headers["content-length"] || 0;\n const header = import_buffer2.Buffer.from(await res.arrayBuffer());\n let hptr = 0;\n if (header.slice(0, 4).toString() == "PEE\\0")\n hptr += 4;\n else\n return;\n const flags = header[hptr];\n const hasFn = !!(flags & 1);\n const hasTags = !!(flags & 2);\n const hasThumbnail = !!(flags & 4);\n let [ptr, ptr2] = [hptr + 1, hptr + 1];\n let fn = "embedded";\n let tags = [];\n let thumb = import_buffer2.Buffer.from(hasembed_default);\n if (hasFn) {\n while (header[ptr2] != 0)\n ptr2++;\n fn = header.slice(ptr, ptr2).toString();\n ptr = ++ptr2;\n }\n if (hasTags) {\n while (header[ptr2] != 0)\n ptr2++;\n tags = header.slice(ptr, ptr2).toString().split(/\\s+/);\n }\n let thumbsize = 0;\n if (hasThumbnail) {\n thumbsize = header.readInt32LE(ptr);\n ptr += 4;\n if (header.byteLength >= ptr + thumbsize)\n thumb = header.slice(ptr, ptr + thumbsize);\n else\n thumb = import_buffer2.Buffer.from(await (await ifetch(pee, { headers: { "user-agent": "", range: `bytes=${ptr}-${ptr + thumbsize}` } })).arrayBuffer());\n ptr += thumbsize;\n }\n const unzip = { url: pee, headers: { "user-agent": "", range: `bytes=${ptr}-${size - 1}` } };\n let data;\n data = unzip;\n if (size < 3072) {\n thumb = data = import_buffer2.Buffer.from(await (await ifetch(unzip.url, { headers: unzip.headers })).arrayBuffer());\n }\n return {\n filename: fn,\n data,\n thumbnail: thumb\n };\n } catch (e) {\n console.warn(e);\n }\n }))).filter((e) => e).map((e) => e);\n};\n\n// src/pngv3.ts\nvar bs58 = __toESM(require_bs58(), 1);\n\n// src/bitstream.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar revbyte = (n, len = 8) => {\n let acc = 0;\n let n2 = n;\n let len2 = len;\n while (len2) {\n acc = acc * 2 + (n2 & 1);\n n2 >>= 1;\n len2--;\n }\n return acc;\n};\nvar BitstreamReader = class {\n constructor() {\n this.buffers = [];\n this.bufferedLength = 0;\n this._offsetIntoBuffer = 0;\n this._bufferIndex = 0;\n this._offset = 0;\n this.skippedLength = 0;\n }\n get bufferIndex() {\n return this._bufferIndex;\n }\n get offset() {\n return this._offset;\n }\n get available() {\n return this.bufferedLength - this.skippedLength;\n }\n getBit(offset) {\n const byte = this.buffers[0][offset >> 3];\n return +!!(byte & 1 << (offset & 7));\n }\n readSync(length) {\n let value = 0;\n if (this._offset >> 3 > this.buffers[0].byteLength) {\n throw "Out of data";\n }\n for (let i = length - 1; i >= 0; --i) {\n value = value * 2 + this.getBit(this._offset + i);\n }\n this._offset += length;\n this.bufferedLength -= length;\n return value;\n }\n addBuffer(buffer) {\n this.buffers.push(buffer);\n this.bufferedLength += buffer.length * 8;\n }\n};\nvar BitstreamWriter = class {\n constructor(stream, bufferSize = 1) {\n this.stream = stream;\n this.pendingBits = 0;\n this.bufferoffset = 0;\n this._offset = 0;\n bufferSize = 1;\n this.buffer = new Uint8Array(bufferSize);\n }\n get offset() {\n return this._offset;\n }\n get byteOffset() {\n return this.pendingBits;\n }\n end() {\n this.flush();\n }\n flush() {\n this.stream.write(new Uint8Array(this.buffer));\n this.bufferoffset = 0;\n this.buffer.fill(0);\n }\n setBit(b) {\n let byte = this.buffer[0];\n byte |= b << (this._offset & 7);\n this.buffer[0] = byte;\n this._offset += 1;\n if (++this.bufferoffset == this.buffer.length * 8) {\n this.flush();\n }\n }\n write(length, value) {\n while (length--) {\n this.setBit(value & 1);\n value >>= 1;\n }\n }\n};\n\n// src/dh-deflate.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar TINF_OK = 0;\nvar Tree = class {\n constructor() {\n this.table = new Uint16Array(16);\n this.trans = new Uint16Array(288);\n }\n};\nvar getPathTo = (tree, value) => {\n if (tree[0] === value)\n return "0";\n if (tree[1] === value)\n return "1";\n let p;\n if (typeof tree[0] != "number")\n p = getPathTo(tree[0], value);\n let b = "0";\n if (!p) {\n if (tree[1] && typeof tree[1] != "number")\n p = getPathTo(tree[1], value);\n b = "1";\n }\n if (p)\n return b + p;\n};\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n let p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\nvar Data = class {\n constructor(source, dests, to_hide, hidden) {\n this.source = source;\n this.dests = dests;\n this.to_hide = to_hide;\n this.hidden = hidden;\n this.pathMap = /* @__PURE__ */ new Map();\n this.dest = [];\n this.ltree = new Tree();\n this.dtree = new Tree();\n }\n computeReverse() {\n this.rltree = buildHuffmanTable(this.ltree.table, this.ltree.trans)[0];\n this.rdtree = buildHuffmanTable(this.dtree.table, this.dtree.trans)[0];\n this.adists = new Set(this.rdtree.flat(16));\n }\n};\nvar sltree = new Tree();\nvar sdtree = new Tree();\nvar rltree;\nvar rdtree;\nvar sadist;\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\nvar clcidx = new Uint8Array([\n 16,\n 17,\n 18,\n 0,\n 8,\n 7,\n 9,\n 6,\n 10,\n 5,\n 11,\n 4,\n 12,\n 3,\n 13,\n 2,\n 14,\n 1,\n 15\n]);\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\nfunction tinf_build_bits_base(bits, base, delta, first) {\n let i, sum;\n for (i = 0; i < delta; ++i)\n bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i)\n bits[i + delta] = i / delta | 0;\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\nfunction tinf_build_fixed_trees(lt, dt) {\n let i;\n for (i = 0; i < 7; ++i)\n lt.table[i] = 0;\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n for (i = 0; i < 24; ++i)\n lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i)\n lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i)\n lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i)\n lt.trans[24 + 144 + 8 + i] = 144 + i;\n for (i = 0; i < 5; ++i)\n dt.table[i] = 0;\n dt.table[5] = 32;\n for (i = 0; i < 32; ++i)\n dt.trans[i] = i;\n}\nvar offs = new Uint16Array(16);\nfunction tinf_build_tree(t, lengths2, off, num) {\n let i, sum;\n for (i = 0; i < 16; ++i)\n t.table[i] = 0;\n for (i = 0; i < num; ++i)\n t.table[lengths2[off + i]]++;\n t.table[0] = 0;\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n for (i = 0; i < num; ++i) {\n if (lengths2[off + i])\n t.trans[offs[lengths2[off + i]]++] = i;\n }\n}\nfunction tinf_getbit(d) {\n const v = d.source.readSync(1);\n return v;\n}\nvar loff = 0;\nvar loffs = [];\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n const v = d.source.readSync(num) + base;\n loff = v;\n loffs.push(v);\n if (loffs.length > 4) {\n loffs.shift();\n }\n return v;\n}\nfunction tinf_decode_symbol(d, t, copy = true, ext = {}) {\n let sum = 0, cur = 0, len = 0;\n let s = 0;\n do {\n const b = d.source.readSync(1);\n copy && d.hidden?.write(1, b);\n s = s << 1 | b;\n cur = 2 * cur + b;\n ++len;\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n ext.length = len;\n ext.sym = s;\n return t.trans[sum + cur];\n}\nfunction tinf_decode_trees(d, lt, dt, copy = true) {\n let i, num, length;\n const hlit = tinf_read_bits(d, 5, 257);\n copy && d.hidden?.write(5, hlit - 257);\n const hdist = tinf_read_bits(d, 5, 1);\n copy && d.hidden?.write(5, hdist - 1);\n const hclen = tinf_read_bits(d, 4, 4);\n copy && d.hidden?.write(4, hclen - 4);\n for (i = 0; i < 19; ++i)\n lengths[i] = 0;\n for (i = 0; i < hclen; ++i) {\n const clen = tinf_read_bits(d, 3, 0);\n copy && d.hidden?.write(3, clen);\n lengths[clcidx[i]] = clen;\n }\n tinf_build_tree(code_tree, lengths, 0, 19);\n for (num = 0; num < hlit + hdist; ) {\n const sym = tinf_decode_symbol(d, code_tree, copy);\n let prev;\n switch (sym) {\n case 16:\n prev = lengths[num - 1];\n length = tinf_read_bits(d, 2, 3);\n copy && d.hidden?.write(2, length - 3);\n for (; length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n length = tinf_read_bits(d, 3, 3);\n copy && d.hidden?.write(3, length - 3);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n length = tinf_read_bits(d, 7, 11);\n copy && d.hidden?.write(7, length - 11);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n lengths[num++] = sym;\n break;\n }\n }\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\nvar get_symbol = (value, bits_table, base_table) => {\n let i = 0;\n for (i = 0; i < base_table.length; ++i) {\n if (base_table[i] > value) {\n i--;\n return [i, bits_table[i], value - base_table[i]];\n }\n }\n i--;\n return [i, bits_table[i], value - base_table[i]];\n};\nvar encode_symbol = (sym, tree, pathMap) => {\n const code = getPathTo(tree, sym);\n const v = {\n length: code?.length,\n val: parseInt(code, 2)\n };\n return v;\n};\nvar capacity = 0;\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n let sym = tinf_decode_symbol(d, lt);\n if (sym === 256) {\n return TINF_OK;\n }\n if (sym < 256) {\n d.dest.push(sym);\n } else {\n sym -= 257;\n const length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n if (length_bits[sym])\n d.hidden?.write(length_bits[sym], length - length_base[sym]);\n const ext = { length: 0, sym: 0 };\n const dist = tinf_decode_symbol(d, dt, false, ext);\n let backoffset = tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n const offs2 = d.dest.length - backoffset;\n let match;\n const skip = !d.to_hide || d.to_hide && d.to_hide instanceof BitstreamReader && d.to_hide.available == 0;\n if (!skip && (match = Buffer2.from(d.dest.slice(offs2, offs2 + length))).length == length) {\n let begin = d.dest.length - 32768;\n if (begin < 0)\n begin = 0;\n let matches = [];\n let o = 0;\n const slic = Buffer2.from(d.dest.slice(begin + o, d.dest.length));\n while (begin + o < d.dest.length) {\n const r = slic.slice(o, d.dest.length).indexOf(match);\n if (r >= 0) {\n matches.push(r + begin + o);\n o += r;\n } else {\n break;\n }\n o++;\n }\n if (matches.length > 1) {\n matches = matches.map((e) => -(e - d.dest.length)).filter((e) => {\n const [dsym2] = get_symbol(e, dist_bits, dist_base);\n return d.adists.has(dsym2);\n });\n matches.reverse();\n const v = Math.floor(Math.log2(matches.length));\n capacity += v;\n if (d.to_hide instanceof BitstreamReader) {\n if (d.to_hide.available) {\n const s = d.to_hide.readSync(Math.min(d.to_hide.available, v));\n backoffset = matches[s];\n }\n } else {\n const idx = matches.indexOf(backoffset);\n d.to_hide.write(v, idx);\n }\n }\n }\n const [dsym, dlen, doff] = get_symbol(backoffset, dist_bits, dist_base);\n const encdist = encode_symbol(dsym, d.rdtree, d.pathMap);\n d.hidden?.write(encdist.length, revbyte(encdist.val, encdist.length));\n d.hidden?.write(dlen, doff);\n for (let i = offs2; i < offs2 + length; ++i) {\n d.dest.push(d.dest[i]);\n }\n }\n }\n}\nfunction tinf_inflate_uncompressed_block(d) {\n if (d.source.offset & 7)\n d.source.readSync(8 - d.source.offset & 7);\n if (d.hidden && d.hidden.offset & 7)\n d.hidden?.write(8 - d.hidden.offset & 7, 0);\n const length = d.source.readSync(16);\n d.hidden?.write(16, length);\n const invlength = d.source.readSync(16);\n d.hidden?.write(16, invlength);\n if (length !== (~invlength & 65535)) {\n return -4;\n }\n for (let i = length; i; --i) {\n const v = d.source.readSync(8);\n d.dest.push(v);\n d.hidden?.write(8, v);\n }\n return TINF_OK;\n}\nfunction tinf_uncompress(source, decompressed, to_hide, hidden, opt = 0) {\n const decomp = decompressed ? new BitstreamWriter({ write: decompressed }) : null;\n const hid = hidden && new BitstreamWriter({ write: hidden }, 4);\n const d = new Data(source, decomp, to_hide, hid);\n let res;\n let bfinal, btype;\n do {\n bfinal = tinf_getbit(d);\n d.hidden?.write(1, bfinal);\n btype = tinf_read_bits(d, 2, 0);\n d.hidden?.write(2, btype);\n switch (btype) {\n case 0:\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n d.rdtree = rdtree;\n d.rltree = rltree;\n d.adists = sadist;\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n tinf_decode_trees(d, d.ltree, d.dtree);\n d.computeReverse();\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = -2;\n }\n if (res !== TINF_OK)\n throw new Error("Data error " + res);\n } while (!bfinal);\n decomp?.end();\n hid?.end();\n}\ntinf_build_fixed_trees(sltree, sdtree);\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\nrltree = buildHuffmanTable(sltree.table, sltree.trans)[0];\nrdtree = buildHuffmanTable(sdtree.table, sdtree.trans)[0];\nsadist = new Set(rdtree.flat(16));\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\n// src/pngv3.ts\nvar csettings2;\nsettings.subscribe((b) => {\n csettings2 = b;\n});\nvar CUM3 = import_buffer3.Buffer.from("doo\\0m");\nvar CUM4 = import_buffer3.Buffer.from("voo\\0m");\nvar CUM5 = import_buffer3.Buffer.from("boo\\0");\nvar CUM6 = import_buffer3.Buffer.from("Creation Time\\0");\nvar CUM7 = import_buffer3.Buffer.from("Software\\0");\nvar BufferReadStream = (b) => {\n const ret = new ReadableStream({\n pull(cont) {\n cont.enqueue(b);\n cont.close();\n }\n });\n return ret;\n};\nvar password = import_buffer3.Buffer.from("NOA");\nvar xor = (a, p) => {\n let n = 0;\n for (let i = 0; i < a.byteLength; ++i) {\n a[i] ^= p[n];\n n++;\n n %= p.byteLength;\n }\n};\nvar prefs = {\n "files.catbox.moe": "c",\n "a.pomf.cat": "p",\n "take-me-to.space": "t",\n "z.zz.fo": "z"\n};\nvar rprefs = {\n "c": "files.catbox.moe",\n "p": "a.pomf.cat",\n "t": "take-me-to.space",\n "z": "z.zz.fo"\n};\nvar extractFromRawDeflate = (b) => {\n const src = new BitstreamReader();\n src.addBuffer(b);\n const chnks = [];\n const hidden = new BitstreamWriter({\n write(chunk) {\n for (const i of chunk) {\n if (i >= 32 && i <= 128)\n chnks.push(i);\n else\n throw "Finish";\n }\n }\n });\n try {\n tinf_uncompress(src, void 0, hidden, void 0);\n } catch (e) {\n if (e == "Finish")\n return import_buffer3.Buffer.from(chnks);\n }\n return false;\n};\nvar extract = async (png, doextract = true) => {\n const reader = BufferReadStream(png).getReader();\n const sneed = new PNGDecoder(reader, false);\n const ret = [];\n let w;\n if (!csettings2)\n throw new Error("Settings uninit");\n try {\n let complete = false;\n const idats = [];\n for await (const [name, chunk, crc, offset] of sneed.chunks()) {\n let buff;\n switch (name) {\n case "tEXt":\n buff = chunk;\n if (buff.slice(4, 4 + CUM3.length).equals(CUM3)) {\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(buff.slice(4 + CUM3.length));\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM4.length).equals(CUM4)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM4.length);\n xor(passed, password);\n const k = await decodeCoom3Payload(passed);\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM5.length).equals(CUM5)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM5.length);\n const decoded = import_buffer3.Buffer.from(passed.toString(), "base64").toString().split(" ").map((e) => {\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n }\n if (w = [CUM6, CUM7].find((e) => buff.slice(4, 4 + e.length).equals(e))) {\n const passed = buff.slice(4 + w.length);\n if (!passed.toString().match(/^[0-9a-zA-Z+/=]+$/g))\n continue;\n const decoders = [\n (b) => import_buffer3.Buffer.from(b.toString(), "base64").toString(),\n (b) => import_buffer3.Buffer.from(bs58.decode(passed.toString())).toString()\n ];\n for (const d of decoders) {\n try {\n const decoded = d(passed).split(" ").map((e) => {\n if (!(e[0] in rprefs))\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n } catch (e) {\n }\n }\n }\n break;\n case "IDAT":\n if (ret.length)\n return ret;\n buff = chunk;\n idats.push(buff.slice(4));\n break;\n case "IEND":\n complete = true;\n default:\n break;\n }\n }\n if (idats.length) {\n let decoded;\n if ((decoded = extractFromRawDeflate(import_buffer3.Buffer.concat(idats).slice(2))) === false)\n return false;\n const dec = decoded.toString().split(" ").map((e) => {\n if (!(e[0] in rprefs) || e.length < 5)\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (doextract)\n return decodeCoom3Payload(import_buffer3.Buffer.from(dec));\n return true;\n }\n } catch (e) {\n if (e != "Uhh")\n console.error(e);\n } finally {\n reader.releaseLock();\n }\n};\nvar buildChunk = (tag, data) => {\n const ret = import_buffer3.Buffer.alloc(data.byteLength + 4);\n ret.write(tag.slice(0, 4), 0);\n data.copy(ret, 4);\n return ret;\n};\nvar BufferWriteStream = () => {\n let b = import_buffer3.Buffer.from([]);\n const ret = new WritableStream({\n write(chunk) {\n b = import_buffer3.Buffer.concat([b, chunk]);\n console.log("finished appending");\n }\n });\n return [ret, () => b];\n};\nvar embedInRawDeflate = (b, h) => {\n const src = new BitstreamReader();\n const hid = new BitstreamReader();\n hid.addBuffer(h);\n src.addBuffer(b);\n const chnks = [];\n tinf_uncompress(src, void 0, hid, (c) => chnks.push(c));\n return import_buffer3.Buffer.concat(chnks);\n};\nvar inject_data = async (container, injb) => {\n injb = import_buffer3.Buffer.concat([injb, import_buffer3.Buffer.from([0])]);\n if (!csettings2)\n throw new Error("Settings uninit");\n if (csettings2.pmeth < 5) {\n let magic = false;\n const [writestream2, extract6] = BufferWriteStream();\n const encoder = new PNGEncoder(writestream2);\n const decoder = new PNGDecoder(container.stream().getReader());\n for await (const [name, chunk, crc, offset] of decoder.chunks()) {\n if (magic && name != "IDAT")\n break;\n if (!magic && name == "IDAT") {\n const passed = import_buffer3.Buffer.from(injb);\n switch (csettings2.pmeth) {\n case 0:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM3, passed])), 0, 0]);\n break;\n case 1:\n xor(passed, password);\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM4, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 2:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM5, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 3:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM6, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 4:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM7, import_buffer3.Buffer.from(bs58.encode(passed))])), 0, 0]);\n break;\n }\n magic = true;\n }\n await encoder.insertchunk([name, chunk, crc, offset]);\n }\n await encoder.insertchunk([\n "IEND",\n buildChunk("IEND", import_buffer3.Buffer.from([])),\n 0,\n 0\n ]);\n return extract6();\n }\n let pdec = new PNGDecoder(container.stream().getReader());\n const concat = [];\n for await (const chk of pdec.chunks())\n if (chk[0] == "IDAT")\n concat.push(chk[1].slice(4));\n const comp = import_buffer3.Buffer.concat(concat);\n const head = comp.slice(0, 2);\n const chksum = comp.slice(-4);\n const idatblk = embedInRawDeflate(comp.slice(2, -4), injb);\n const [writestream, extract5] = BufferWriteStream();\n const penc = new PNGEncoder(writestream);\n pdec = new PNGDecoder(container.stream().getReader());\n let ins = false;\n for await (const chk of pdec.chunks()) {\n if (chk[0] != "IDAT") {\n await penc.insertchunk(chk);\n } else {\n if (!ins) {\n await penc.insertchunk(["IDAT", import_buffer3.Buffer.concat([import_buffer3.Buffer.from("IDAT"), head, idatblk, chksum]), 0, 0]);\n ins = true;\n }\n }\n }\n await penc.dtor();\n console.log("Finished writing");\n return extract5();\n};\nvar inject = async (container, links) => {\n links = links.map((link) => {\n for (const h of filehosts) {\n if (link.includes(h.serving)) {\n const end = link.split("/").slice(-1)[0];\n return `${prefs[h.serving]}${end}`;\n }\n }\n return "";\n });\n const injb = import_buffer3.Buffer.from(links.join(" "));\n return inject_data(container, injb);\n};\nvar has_embed = async (png) => {\n const r = await extract(png, false);\n return !!r;\n};\nvar pngv3_default = {\n extract,\n has_embed,\n inject,\n match: (fn) => !!fn.match(/\\.png$/)\n};\n\n// src/jpg.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer4 = __toESM(require_buffer(), 1);\n\n// src/f5stego.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction* f5get() {\n let extrBit = 0;\n let k = 0;\n for (let i = 0; i < 4; ++i) {\n const b2 = yield;\n k |= b2 << i;\n }\n k = (k & 15) + 1;\n let toread = 8;\n let len = 0;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const b = yield;\n toread += 8;\n if (b)\n toread += 7;\n else\n len *= 2;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const rlen = revbyte(len, b ? 23 : 16);\n len = rlen;\n if (len > 256)\n throw new Error("Too big for Smash");\n len *= 8;\n const chunks = [];\n const bw = new BitstreamWriter({\n write(chunk) {\n chunks.push(chunk);\n }\n });\n while (len) {\n extrBit = yield;\n bw.write(1, extrBit);\n len--;\n }\n bw.end();\n return Buffer2.concat(chunks).slice(0, rlen);\n}\nvar bitcode = new Array(65535);\nvar category = new Array(65535);\nvar std_dc_luminance_nrcodes = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\nvar std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_luminance_nrcodes = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\nvar std_ac_luminance_values = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nvar std_dc_chrominance_nrcodes = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\nvar std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_chrominance_nrcodes = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\nvar std_ac_chrominance_values = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nfunction _initCategoryNumber() {\n let nrlower = 1;\n let nrupper = 2;\n for (let cat = 1; cat <= 15; cat++) {\n for (let nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n for (let nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n}\n_initCategoryNumber();\nfunction _computeHuffmanTbl(nrcodes, std_table) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = [];\n for (let k = 1; k <= 16; k++) {\n for (let j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n}\nvar YDC_HT = _computeHuffmanTbl(std_dc_luminance_nrcodes, std_dc_luminance_values);\nvar UVDC_HT = _computeHuffmanTbl(std_dc_chrominance_nrcodes, std_dc_chrominance_values);\nvar YAC_HT = _computeHuffmanTbl(std_ac_luminance_nrcodes, std_ac_luminance_values);\nvar UVAC_HT = _computeHuffmanTbl(std_ac_chrominance_nrcodes, std_ac_chrominance_values);\nvar __raw, _jfif, _APPn, _qts, _frame, _tail, __f5write, _f5write_fn;\nvar f5stego = class {\n constructor(key2, maxPixels = 4096 * 4096) {\n this.maxPixels = maxPixels;\n __privateAdd(this, __f5write);\n __privateAdd(this, __raw, void 0);\n __privateAdd(this, _jfif, void 0);\n __privateAdd(this, _APPn, void 0);\n __privateAdd(this, _qts, void 0);\n __privateAdd(this, _frame, null);\n __privateAdd(this, _tail, null);\n }\n embed(image, data, k) {\n this.parse(image);\n this.f5put(data, k);\n return this.pack();\n }\n extract(image) {\n try {\n this.gengen = f5get();\n this.gengen.next();\n this.parse(image, true);\n return this.f5get();\n } catch (e) {\n if (e instanceof Buffer2)\n return e;\n throw e;\n }\n }\n f5put(data, k) {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let t, i, comp = __privateGet(this, _frame).components[0];\n if (data.length > 8388607)\n throw "Data too big. Max 8388607 bytes allowed.";\n if (data.length < 32768) {\n t = new Uint8Array(2 + data.length);\n t[0] = data.length & 255;\n t[1] = data.length >>> 8;\n t.set(data, 2);\n } else {\n t = new Uint8Array(3 + data.length);\n t[0] = data.length & 255;\n t[1] = (data.length >>> 8 & 127) + 128;\n t[2] = data.length >>> 15;\n t.set(data, 3);\n }\n if (comp.componentId != 1) {\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n return __privateMethod(this, __f5write, _f5write_fn).call(this, comp.blocks, t, k);\n }\n f5get() {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let comp = __privateGet(this, _frame).components[0];\n if (comp.componentId != 1) {\n for (let i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n const coeff = new Int16Array(comp.blocks.length);\n coeff.set(comp.blocks);\n let pos = -1, extrBit = 0, cCount = coeff.length - 1;\n let n, k = 0;\n let out = new Uint8Array(coeff.length / 8 | 0), extrByte = 0, outPos = 0, bitsAvail = 0, code = 0, hash = 0;\n while (bitsAvail < 4) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n k |= extrBit << bitsAvail;\n bitsAvail++;\n }\n k = (k & 15) + 1;\n n = (1 << k) - 1;\n bitsAvail = 0;\n if (k == 1) {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n extrByte |= extrBit << bitsAvail;\n bitsAvail++;\n if (bitsAvail == 8) {\n out[outPos++] = extrByte;\n extrByte = 0;\n bitsAvail = 0;\n }\n }\n } else {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n hash ^= extrBit * ++code;\n if (code == n) {\n extrByte |= hash << bitsAvail;\n bitsAvail += k;\n code = 0;\n hash = 0;\n while (bitsAvail >= 8) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n }\n }\n }\n while (bitsAvail > 0) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n let s = 2, l = out[0];\n if (out[1] & 128) {\n s++;\n l += ((out[1] & 127) << 8) + (out[2] << 15);\n } else {\n l += out[1] << 8;\n }\n return out.subarray(s, s + l);\n }\n parse(data, tolerant = false) {\n let offset = 0;\n function _buildHuffmanTable(nrcodes, values) {\n let codevalue = 0, pos_in_table = 0, HT = new Uint16Array(65536);\n for (let k = 0; k < 16; k++) {\n for (let j2 = 0; j2 < nrcodes[k]; j2++) {\n for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) {\n HT[i2] = values[pos_in_table] + (k + 1 << 8);\n }\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => {\n let startOffset = offset2, bitsData = 0, bitsCount = 0, eobrun = 0, p1 = 1 << successive, m1 = -1 << successive;\n const prevpos = 0;\n const decodeBaseline = (component2, pos) => {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n let diff = 0;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff;\n let k2 = 1, s, r;\n while (k2 < 64) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n bitsCount -= s;\n k2++;\n }\n };\n function decodeDCFirst(component2, pos) {\n let diff = 0;\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff << successive;\n }\n function decodeDCSuccessive(component2, pos) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocksDC[pos >> 6] |= (bitsData >>> --bitsCount & 1) << successive;\n }\n if (!frame)\n throw "Frame not parsed yet";\n function decodeACFirst(component2, pos) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k2 = spectralStart, s, r;\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r != 15) {\n eobrun = (1 << r) - 1;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n bitsCount -= s;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n component2.blocks[pos + k2] *= p1;\n k2++;\n }\n }\n function decodeACSuccessive(component2, pos) {\n let k2 = spectralStart, r, s;\n if (frame == null)\n throw "Frame not defined";\n if (!eobrun) {\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s) {\n if (s != 1)\n throw "bad jpeg";\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n s = bitsData >>> --bitsCount & 1 ? p1 : m1;\n } else {\n if (r != 15) {\n eobrun = 1 << r;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n }\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n } else {\n if (--r < 0)\n break;\n }\n k2++;\n }\n if (s)\n component2.blocks[pos + k2] = s;\n k2++;\n }\n }\n if (eobrun) {\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n }\n k2++;\n }\n eobrun--;\n }\n }\n let decodeFn;\n if (frame.progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y;\n let lastflushidx = 0;\n const flushBits = () => {\n if (!this.gengen)\n return;\n const component2 = components.find((e) => e.componentId == 1);\n while (component2.blocks[lastflushidx + 1] !== void 0) {\n const blk = component2.blocks[lastflushidx];\n if (blk != 0) {\n const v = blk < 0 ? 1 - (blk & 1) : blk & 1;\n const it = this.gengen.next(v);\n if (it.done) {\n throw it.value;\n }\n }\n lastflushidx++;\n }\n };\n if (components.length == 1) {\n mcusPerLine = components[0].blocksPerLine;\n mcusPerRow = components[0].blocksPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64);\n }\n }\n flushBits();\n }\n } else {\n mcusPerLine = frame.mcusPerLine;\n mcusPerRow = frame.mcusPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n for (j2 = 0; j2 < components[i2].v; j2++) {\n for (k = 0; k < components[i2].h; k++) {\n decodeFn(components[i2], ((y * components[i2].v + j2) * components[i2].blocksPerLineForMcu + x * components[i2].h + k) * 64);\n }\n }\n }\n }\n flushBits();\n }\n }\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n return offset2 - startOffset;\n };\n function readUint16() {\n const value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n __privateSet(this, __raw, data);\n __privateSet(this, _jfif, null);\n __privateSet(this, _APPn, []);\n __privateSet(this, _qts, []);\n __privateSet(this, _frame, null);\n __privateSet(this, _tail, null);\n let markerHi, markerLo, i, j, resetInterval, component;\n const huffmanTablesAC = [];\n const huffmanTablesDC = [];\n while (1) {\n if (offset >= data.length) {\n if (tolerant)\n break;\n throw "unexpected EOF";\n }\n markerHi = data[offset++];\n markerLo = data[offset++];\n if (markerHi == 255) {\n if (markerLo == 224) {\n __privateSet(this, _jfif, readDataBlock());\n }\n if (markerLo > 224 && markerLo < 240 || markerLo == 254) {\n __privateGet(this, _APPn).push({\n "app": markerLo,\n "data": readDataBlock()\n });\n }\n if (markerLo == 219) {\n __privateGet(this, _qts).push(readDataBlock());\n }\n if (markerLo >= 192 && markerLo <= 194) {\n if (__privateGet(this, _frame))\n throw "Only single frame JPEGs supported";\n readUint16();\n __privateSet(this, _frame, {\n "extended": markerLo === 193,\n "progressive": markerLo === 194,\n "precision": data[offset++],\n "scanLines": readUint16(),\n "samplesPerLine": readUint16(),\n "components": [],\n "componentIds": {},\n "maxH": 1,\n "maxV": 1\n });\n if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels)\n throw "Image is too big.";\n var componentsCount = data[offset++], componentId;\n let maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h)\n maxH = h;\n if (maxV < v)\n maxV = v;\n const qId = data[offset + 2];\n const l = __privateGet(this, _frame).components.push({\n componentId,\n h,\n v,\n quantizationTable: qId\n });\n __privateGet(this, _frame).componentIds[componentId] = l - 1;\n offset += 3;\n }\n __privateGet(this, _frame).maxH = maxH;\n __privateGet(this, _frame).maxV = maxV;\n const mcusPerLine = Math.ceil(__privateGet(this, _frame).samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(__privateGet(this, _frame).scanLines / 8 / maxV);\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n component = __privateGet(this, _frame).components[i];\n const blocksPerLine = Math.ceil(Math.ceil(__privateGet(this, _frame).samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(__privateGet(this, _frame).scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n __privateGet(this, _frame).components[i] = {\n ...component,\n blocks: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu * 64),\n blocksDC: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu),\n blocksPerLine,\n blocksPerColumn,\n blocksPerLineForMcu,\n blocksPerColumnForMcu\n };\n }\n __privateGet(this, _frame).mcusPerLine = mcusPerLine;\n __privateGet(this, _frame).mcusPerColumn = mcusPerColumn;\n }\n if (markerLo == 196) {\n const huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n const v = _buildHuffmanTable(codeLengths, huffmanValues);\n if (huffmanTableSpec >> 4 === 0)\n huffmanTablesDC[huffmanTableSpec & 15] = v;\n else\n huffmanTablesAC[huffmanTableSpec & 15] = v;\n }\n }\n if (markerLo == 221) {\n resetInterval = readUint16();\n }\n if (markerLo == 218) {\n if (__privateGet(this, _frame) == null)\n throw "SOS before SOF";\n readUint16();\n const selectorsCount = data[offset++];\n const components = [];\n for (i = 0; i < selectorsCount; i++) {\n const componentIndex = __privateGet(this, _frame).componentIds[data[offset++]];\n component = __privateGet(this, _frame).components[componentIndex];\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset, __privateGet(this, _frame), components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n }\n if (markerLo == 217) {\n break;\n }\n } else {\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n }\n while (data[offset] != 255 && offset < data.length) {\n offset++;\n }\n if (data[offset] != 255) {\n throw "bad jpeg ";\n }\n }\n }\n if (!__privateGet(this, _frame))\n throw "bad jpeg";\n if (offset < data.length)\n __privateSet(this, _tail, data.subarray(offset));\n return this;\n }\n pack() {\n let byteout;\n let bytenew;\n let bytepos;\n let poslast;\n let outpos;\n let byte;\n function writeByte(value) {\n let t;\n byteout[outpos++] = value;\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function writeBlock(block) {\n let t;\n if (outpos + block.length > poslast) {\n t = new Uint8Array(byteout.length * 2 + block.length);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n byteout.set(block, outpos);\n outpos += block.length;\n }\n function writeAPP0(self2) {\n writeWord(65504);\n if (!__privateGet(self2, _jfif)) {\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n } else {\n writeWord(__privateGet(self2, _jfif).length + 2);\n writeBlock(__privateGet(self2, _jfif));\n }\n }\n function writeDQT(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _qts).length; i2++) {\n writeWord(65499);\n writeWord(__privateGet(self2, _qts)[i2].length + 2);\n writeBlock(__privateGet(self2, _qts)[i2]);\n }\n }\n function writeAPPn(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _APPn).length; i2++) {\n writeWord(65280 | __privateGet(self2, _APPn)[i2].app);\n writeWord(__privateGet(self2, _APPn)[i2].data.length + 2);\n writeBlock(__privateGet(self2, _APPn)[i2].data);\n }\n }\n function writeSOF0(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65472);\n writeWord(8 + __privateGet(self2, _frame).components.length * 3);\n writeByte(__privateGet(self2, _frame).precision);\n writeWord(__privateGet(self2, _frame).scanLines);\n writeWord(__privateGet(self2, _frame).samplesPerLine);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n writeByte(c2.h << 4 | c2.v);\n writeByte(c2.quantizationTable);\n }\n }\n function writeDHT(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65476);\n writeWord(31);\n writeByte(0);\n for (let i2 = 0; i2 < 16; i2++) {\n writeByte(std_dc_luminance_nrcodes[i2 + 1]);\n }\n for (let j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(16);\n for (let k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (let l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n if (__privateGet(self2, _frame).components.length != 1) {\n writeWord(65476);\n writeWord(31);\n writeByte(1);\n for (let m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (let n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(17);\n for (let o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (let p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n }\n function writeSOS(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65498);\n writeWord(6 + __privateGet(self2, _frame).components.length * 2);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n if (i2 === 0) {\n writeByte(0);\n } else {\n writeByte(17);\n }\n }\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(comp, POS, DC, HTDC, HTAC) {\n let pos, posval, t;\n if (bytepos === 0)\n bytenew = 0;\n if (!("blocks" in comp))\n throw "Blocks not parsed";\n const Diff = comp.blocksDC[POS >> 6] - DC;\n DC = comp.blocksDC[POS >> 6];\n if (Diff === 0) {\n posval = HTDC[0][1];\n bytenew <<= posval;\n bytenew += HTDC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n } else {\n pos = 32767 + Diff;\n posval = HTDC[category[pos]][1];\n bytenew <<= posval;\n bytenew += HTDC[category[pos]][0];\n bytepos += posval;\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n let end0pos = 63;\n for (; end0pos > 0 && comp.blocks[POS + end0pos] === 0; end0pos--) {\n }\n if (end0pos === 0) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n return DC;\n }\n let i2 = 1;\n let lng;\n while (i2 <= end0pos) {\n const startpos = i2;\n for (; comp.blocks[POS + i2] === 0 && i2 <= end0pos; ++i2) {\n }\n let nrzeroes = i2 - startpos;\n if (nrzeroes >= 16) {\n lng = nrzeroes >> 4;\n for (let nrmarker = 1; nrmarker <= lng; ++nrmarker) {\n posval = HTAC[240][1];\n bytenew <<= posval;\n bytenew += HTAC[240][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + comp.blocks[POS + i2];\n posval = HTAC[(nrzeroes << 4) + category[pos]][1];\n bytenew <<= posval;\n bytenew += HTAC[(nrzeroes << 4) + category[pos]][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n i2++;\n }\n if (end0pos != 63) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n return DC;\n }\n byteout = new Uint8Array(65536);\n poslast = 65536 - 128;\n outpos = 0;\n bytenew = 0;\n bytepos = 0;\n writeWord(65496);\n writeAPP0(this);\n writeAPPn(this);\n writeDQT(this);\n writeSOF0(this);\n writeDHT(this);\n writeSOS(this);\n bytenew = 0;\n bytepos = 0;\n if (!__privateGet(this, _frame))\n throw "Frame not ready";\n let c, mcuRow, mcuCol, blockRow, blockCol, mcu, i, v, h;\n const DCdiff = [];\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n DCdiff.push(0);\n }\n for (mcu = 0; mcu < __privateGet(this, _frame).mcusPerLine * __privateGet(this, _frame).mcusPerColumn; mcu++) {\n mcuRow = mcu / __privateGet(this, _frame).mcusPerLine | 0;\n mcuCol = mcu % __privateGet(this, _frame).mcusPerLine;\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n c = __privateGet(this, _frame).components[i];\n for (v = 0; v < c.v; v++) {\n blockRow = mcuRow * c.v + v;\n for (h = 0; h < c.h; h++) {\n blockCol = mcuCol * c.h + h;\n if (i === 0) {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], YDC_HT, YAC_HT);\n } else {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], UVDC_HT, UVAC_HT);\n }\n }\n }\n }\n }\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n }\n if (bytepos > 0) {\n bytenew <<= 8 - bytepos;\n bytenew += (1 << 8 - bytepos) - 1;\n byteout[outpos++] = 255 & bytenew;\n }\n writeWord(65497);\n if (__privateGet(this, _tail))\n writeBlock(__privateGet(this, _tail));\n return byteout.slice(0, outpos);\n }\n};\n__raw = new WeakMap();\n_jfif = new WeakMap();\n_APPn = new WeakMap();\n_qts = new WeakMap();\n_frame = new WeakMap();\n_tail = new WeakMap();\n__f5write = new WeakSet();\n_f5write_fn = function(coeff, data, k) {\n const coeff_count = coeff.length;\n let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, n, ii;\n let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0;\n n = (1 << k) - 1;\n byte_to_embed = k - 1;\n byte_to_embed ^= 0;\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed = 3;\n for (ii = 0; ii < coeff_count; ii++) {\n shuffled_index = ii;\n if (shuffled_index % 64 === 0 || coeff[shuffled_index] === 0)\n continue;\n const cc = coeff[shuffled_index];\n _examined++;\n if (cc > 0 && (cc & 1) != next_bit_to_embed) {\n coeff[shuffled_index]--;\n _changed++;\n } else if (cc < 0 && (cc & 1) == next_bit_to_embed) {\n coeff[shuffled_index]++;\n _changed++;\n }\n if (coeff[shuffled_index] !== 0) {\n _embedded++;\n if (available_bits_to_embed === 0) {\n if (k != 1 || data_idx >= data.length)\n break;\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n } else {\n _thrown++;\n }\n }\n if (k == 1 && _embedded < data.length * 8)\n throw "capacity exceeded " + _embedded / 8 + " " + data.length;\n if (k != 1) {\n let is_last_byte = false, k_bits_to_embed = 0;\n while (!is_last_byte || available_bits_to_embed !== 0 && is_last_byte) {\n k_bits_to_embed = 0;\n for (i = 0; i < k; i++) {\n if (available_bits_to_embed === 0) {\n if (data_idx >= data.length) {\n is_last_byte = true;\n break;\n }\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n k_bits_to_embed |= next_bit_to_embed << i;\n }\n const code_word = [];\n let ci = null;\n for (i = 0; i < n; i++) {\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n code_word.push(ci);\n }\n _examined += n;\n while (true) {\n var vhash = 0, extracted_bit;\n for (i = 0; i < code_word.length; i++) {\n if (coeff[code_word[i]] > 0) {\n extracted_bit = coeff[code_word[i]] & 1;\n } else {\n extracted_bit = 1 - (coeff[code_word[i]] & 1);\n }\n if (extracted_bit == 1)\n vhash ^= i + 1;\n }\n i = vhash ^ k_bits_to_embed;\n if (!i) {\n _embedded += k;\n break;\n }\n i--;\n coeff[code_word[i]] += coeff[code_word[i]] < 0 ? 1 : -1;\n _changed++;\n if (coeff[code_word[i]] === 0) {\n _thrown++;\n code_word.splice(i, 1);\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n _examined++;\n code_word.push(ci);\n } else {\n _embedded += k;\n break;\n }\n }\n }\n }\n return {\n "k": k,\n "embedded": _embedded / 8,\n "examined": _examined,\n "changed": _changed,\n "thrown": _thrown,\n "efficiency": (_embedded / _changed).toFixed(2)\n };\n};\n\n// src/jpg.ts\nvar key = import_buffer4.Buffer.from("CUNNYCUNNYCUNNY");\nvar f5inst = new f5stego(key);\nvar inject2 = async (b, links) => {\n if (b.size / 20 < links.join(" ").length)\n throw "Image too small to embed.";\n const arr = new Uint8Array(new Uint8Array(await b.arrayBuffer()));\n const buff = f5inst.embed(arr, new TextEncoder().encode(links.join(" ")), 1);\n return import_buffer4.Buffer.from(buff);\n};\nvar has_embed2 = (b) => {\n try {\n const res = f5inst.extract(b);\n if (!res)\n return false;\n if (res.length > 1024)\n return false;\n const str = import_buffer4.Buffer.from(res).toString();\n if (!str.match(/^[a-zA-Z0-9:/.\\-_ ]+$/))\n return false;\n return str;\n } catch {\n return false;\n }\n};\nvar extract2 = (b, ex) => {\n return decodeCoom3Payload(import_buffer4.Buffer.from(ex));\n};\nvar jpg_default = {\n match: (fn) => !!fn.match(/\\.jpe?g$/),\n has_embed: has_embed2,\n extract: extract2,\n inject: inject2\n};\n\n// src/thirdeye.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer5 = __toESM(require_buffer(), 1);\nvar import_jpeg_js = __toESM(require_jpeg_js(), 1);\n\n// src/phash.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar median = (data) => {\n const mdarr = data.slice(0);\n mdarr.sort((a, b) => a - b);\n if (mdarr.length % 2 === 0)\n return (mdarr[mdarr.length / 2 - 1] + mdarr[mdarr.length / 2]) / 2;\n return mdarr[Math.floor(mdarr.length / 2)];\n};\nvar translate_blocks_to_bits = function(blocks, pixels_per_block) {\n const half_block_value = pixels_per_block * 256 * 3 / 2;\n const bandsize = blocks.length / 4;\n for (let i = 0; i < 4; i++) {\n const m = median(blocks.slice(i * bandsize, (i + 1) * bandsize));\n for (let j = i * bandsize; j < (i + 1) * bandsize; j++) {\n const v = blocks[j];\n blocks[j] = Number(v > m || Math.abs(v - m) < 1 && m > half_block_value);\n }\n }\n};\nvar bits_to_hexhash = (bitsArray) => {\n const hex = [];\n for (let i = 0; i < bitsArray.length; i += 4) {\n const nibble = bitsArray.slice(i, i + 4);\n hex.push(parseInt(nibble.join(""), 2).toString(16));\n }\n return hex.join("");\n};\nvar bmvbhash_even = (data, bits) => {\n const blocksize_x = Math.floor(data.width / bits);\n const blocksize_y = Math.floor(data.height / bits);\n const result = [];\n for (let y = 0; y < bits; y++) {\n for (let x = 0; x < bits; x++) {\n let total = 0;\n for (let iy = 0; iy < blocksize_y; iy++) {\n for (let ix = 0; ix < blocksize_x; ix++) {\n const cx = x * blocksize_x + ix;\n const cy = y * blocksize_y + iy;\n const ii = (cy * data.width + cx) * 4;\n const alpha = data.data[ii + 3];\n if (alpha === 0) {\n total += 765;\n } else {\n total += data.data[ii] + data.data[ii + 1] + data.data[ii + 2];\n }\n }\n }\n result.push(total);\n }\n }\n translate_blocks_to_bits(result, blocksize_x * blocksize_y);\n return bits_to_hexhash(result);\n};\n\n// src/thirdeye.ts\nvar csettings3;\nsettings.subscribe((b) => {\n csettings3 = b;\n});\nvar gelquirk = (prefix) => (a) => {\n let base = a.post || a.data || a;\n if (!Array.isArray(base))\n return [];\n base = base.filter((e) => e.file_url);\n return base.map((e) => ({\n full_url: e.file_url,\n preview_url: e.preview_url || e.preview_url,\n source: e.source,\n ext: e.file_ext || e.file_url.substr(e.file_url.lastIndexOf(".") + 1),\n page: `${prefix}${e.id || e.parent_id}`,\n tags: (e.tag_string || (e.tags && (Array.isArray(e.tags) && (typeof e.tags[0] == "string" ? e.tags.join(" ") : e.tags.map((e2) => e2.name_en).join(" "))) || e.tags) || "").split(" ")\n })) || [];\n};\nvar experimentalApi = false;\nvar black = /* @__PURE__ */ new Set();\nvar phashEn = false;\nvar mindist = 5;\nsettings.subscribe((s) => {\n if (!s)\n return;\n experimentalApi = s.expte;\n boorus = s.rsources.map((e) => ({\n ...e,\n quirks: gelquirk(e.view)\n }));\n black = new Set(s.blacklist);\n mindist = s.mdist || 5;\n phashEn = s.phash;\n});\nvar boorus = [];\nvar unlockQueue = Promise.resolve();\nvar cache = {};\nvar findFileFrom = async (b, hex, abort) => {\n try {\n if (b.domain in cache && hex in cache[b.domain])\n return cache[b.domain][hex];\n const res = await ifetch(`https://${b.domain}${b.endpoint}${hex}`);\n const txt = await res.text();\n const pres = JSON.parse(txt);\n const tran = b.quirks(pres).filter((e) => !e.tags.some((e2) => black.has(e2)));\n if (!(b.domain in cache))\n cache[b.domain] = {};\n cache[b.domain][hex] = tran;\n return tran;\n } catch (e) {\n const error = e;\n if (!error.message.includes("Unexpected end of JSON input"))\n console.error(e);\n return [];\n }\n};\nvar extract3 = async (b, fn) => {\n if (!csettings3)\n throw new Error("Settings uninit");\n let result;\n let booru;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n if (result.length) {\n booru = e.name;\n break;\n }\n }\n let cachedFile;\n const prev = result[0].preview_url;\n const full = result[0].full_url;\n return [{\n source: result[0].source,\n page: {\n title: booru,\n url: result[0].page\n },\n filename: fn.substring(0, 33) + result[0].ext,\n thumbnail: csettings3.hotlink ? prev || full : import_buffer5.Buffer.from(await (await ifetch(prev || full)).arrayBuffer()),\n data: csettings3.hotlink ? full || prev : { url: full || prev }\n }];\n};\nvar phash = (b) => {\n const res = (0, import_jpeg_js.decode)(b);\n return bmvbhash_even(res, 8);\n};\nvar hammingDist = (a, b) => {\n let res = BigInt("0x" + a) ^ BigInt("0x" + b);\n let acc = 0;\n while (res != 0n) {\n acc += Number(res & 1n);\n res >>= 1n;\n }\n return acc;\n};\nvar has_embed3 = async (b, fn, prevlink) => {\n if (import_buffer5.Buffer.from(fn, "hex").equals(b))\n return false;\n let result = void 0;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n result = result.filter((e2) => e2.full_url || e2.preview_url);\n if (result.length)\n break;\n }\n if (result && result.length != 0 && phashEn && prevlink) {\n if (!result[0].preview_url)\n return true;\n const getHash = async (l) => {\n const ogreq = await ifetch(l);\n const origPreview = await ogreq.arrayBuffer();\n return phash(import_buffer5.Buffer.from(origPreview));\n };\n const [orighash, tehash] = await Promise.all([\n getHash(prevlink),\n getHash(result[0].preview_url)\n ]);\n const d = hammingDist(orighash, tehash);\n console.log(d, prevlink);\n return d > mindist;\n }\n return result && result.length != 0;\n};\nvar thirdeye_default = {\n skip: true,\n extract: extract3,\n has_embed: has_embed3,\n match: (fn) => !!fn.match(/^[0-9a-f]{32}\\.....?/)\n};\n\n// src/pomf.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer6 = __toESM(require_buffer(), 1);\nvar sources = [\n { host: "Catbox", prefix: "files.catbox.moe/" },\n { host: "Litter", prefix: "litter.catbox.moe/" },\n { host: "Zzzz", prefix: "z.zz.fo/" }\n];\nvar csettings4;\nsettings.subscribe((b) => {\n csettings4 = b;\n});\nvar getExt = (fn) => {\n const isB64 = fn.match(/^((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=))?\\.(gif|jpe?g|png|webm)/);\n const isExt = fn.match(/\\[.*=(.*)\\]/);\n let ext;\n let source;\n try {\n if (isB64) {\n ext = atob(isB64[1]);\n } else if (isExt) {\n ext = decodeURIComponent(isExt[1]);\n if (ext.startsWith("https://"))\n ext = ext.slice("https://".length);\n for (const cs of sources)\n if (ext.startsWith(cs.prefix)) {\n source = cs.prefix;\n ext = ext.slice(cs.prefix.length);\n break;\n }\n }\n } catch {\n }\n return { ext, source };\n};\nvar extract4 = async (b, fn) => {\n if (!csettings4)\n throw new Error("Settings uninit");\n const { ext, source } = getExt(fn);\n let rsource;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n await getHeaders("https://" + cs.prefix + ext);\n rsource = "https://" + cs.prefix + ext;\n break;\n } catch {\n }\n }\n return [{\n filename: ext,\n data: csettings4.hotlink ? rsource : { url: rsource },\n thumbnail: import_buffer6.Buffer.from(hasembed_default)\n }];\n};\nvar has_embed4 = async (b, fn) => {\n const { ext, source } = getExt(fn);\n if (!ext)\n return false;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n const e = await getHeaders("https://" + cs.prefix + ext);\n return true;\n } catch {\n }\n }\n return false;\n};\nvar pomf_default = {\n skip: true,\n extract: extract4,\n has_embed: has_embed4,\n match: (fn) => !!getExt(fn)\n};\n\n// src/processor.worker.ts\nconsole.log("Worker started");\nvar pendinggens = {};\nvar proxyAsyncGen = (id) => {\n return {\n next(arg) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n return(v) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n throw() {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n [Symbol.asyncIterator]() {\n return this;\n }\n };\n};\nvar deserializeMessage = (m) => {\n if (m instanceof MessagePort)\n return m;\n if (typeof m == "object" && m.type == "AsyncGenerator") {\n return proxyAsyncGen(m.id);\n }\n if (typeof m == "object") {\n for (const p in m) {\n m[p] = deserializeMessage(m[p]);\n }\n }\n return m;\n};\nvar processors = [thirdeye_default, pomf_default, pngv3_default, jpg_default];\nvar processImage = async (srcs, fn, hex, prevurl) => {\n const ret = await Promise.all(processors.filter((e) => e.match(fn)).map(async (proc) => {\n if (proc.skip) {\n const md5 = Buffer2.from(hex, "base64");\n if (await proc.has_embed(md5, fn, prevurl) === true) {\n return [await proc.extract(md5, fn), true];\n }\n return;\n }\n let succ = false;\n let cumul;\n do {\n try {\n const n = await srcs.next();\n if (n.done)\n return;\n const iter = streamRemote(n.value);\n if (!iter)\n return;\n cumul = Buffer2.alloc(0);\n let found;\n let chunk = { done: true };\n do {\n const { value, done } = await iter.next(typeof found === "boolean");\n if (done) {\n chunk = { done: true };\n } else {\n chunk = { done: false, value };\n cumul = Buffer2.concat([cumul, value]);\n const v = await proc.has_embed(cumul);\n if (typeof v == "string") {\n return [await proc.extract(cumul, v), false];\n }\n found = v;\n }\n } while (found !== false && !chunk.done);\n succ = true;\n await iter.next(true);\n if (found !== true) {\n return;\n }\n return [await proc.extract(cumul), false];\n } catch (err) {\n console.log(err);\n }\n } while (!succ);\n }));\n return ret.filter((e) => e).map((e) => e);\n};\nvar init2 = false;\n(async () => {\n onmessage = async (msg) => {\n const des = deserializeMessage(msg.data);\n switch (des.type) {\n case "ipc": {\n setupPort(des.port);\n const nset = await localLoad("settingsv2", initial_settings);\n settings.set(nset);\n break;\n }\n case "cmd": {\n switch (des.fun) {\n case "processImage": {\n if (!init2) {\n await new Promise((_) => {\n settings.subscribe((v) => {\n if (v)\n _();\n });\n });\n init2 = true;\n }\n const res = await processImage(des.args[0], des.args[1], des.args[2], des.args[3]);\n const tr = [];\n for (const ef of res) {\n for (const e of ef[0]) {\n if (e.thumbnail && Buffer2.isBuffer(e.thumbnail) || typeof e.thumbnail != "string")\n tr.push(e.thumbnail.buffer);\n if (Buffer2.isBuffer(e.data) || typeof e.data != "string" && !("url" in e.data))\n tr.push(e.data.buffer);\n }\n }\n postMessage({\n type: "reply",\n id: des.id,\n res\n }, [...new Set(tr)]);\n }\n }\n break;\n }\n case "ag": {\n const cb = pendinggens[des.id].shift();\n if (cb) {\n cb(des.res);\n }\n break;\n }\n }\n };\n})();\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n'); } // src/main.ts @@ -22027,6 +22020,35 @@ Use the WebExtension version of PEE if you want to use b4k!`); mo2.observe(document.documentElement, { childList: true, subtree: true }); await bodyInit; } + document.addEventListener("QRDialogCreation", (e) => { + const a = document.createElement("span"); + const po = new PostOptions_default({ + target: a, + props: { processors, textinput: (e.detail || e.target).querySelector("textarea") } + }); + let prevFile; + let target; + const somethingChanged = async (m) => { + const currentFile = await getSelectedFile(); + if (prevFile != currentFile) { + prevFile = currentFile; + document.dispatchEvent(new CustomEvent("PEEFile", { detail: prevFile })); + } + }; + const obs = new MutationObserver(somethingChanged); + if (!cappState.is4chanX) { + target = e.detail; + a.style.display = "inline-block"; + target.querySelector("input[type=submit]")?.insertAdjacentElement("beforebegin", a); + const filesinp = target.querySelector("#qrFile"); + filesinp.addEventListener("change", somethingChanged); + } else { + target = e.target; + target.querySelector("#qr-filename-container")?.appendChild(a); + const filesinp = target.querySelector("#file-n-submit"); + obs.observe(filesinp, { attributes: true }); + } + }, { once: !cappState.is4chanX }); try { cp = new CommandProcessor(); } catch { @@ -22151,35 +22173,6 @@ Use the WebExtension version of PEE if you want to use b4k!`); } } }); - document.addEventListener("QRDialogCreation", (e) => { - const a = document.createElement("span"); - const po = new PostOptions_default({ - target: a, - props: { processors, textinput: (e.detail || e.target).querySelector("textarea") } - }); - let prevFile; - let target; - const somethingChanged = async (m) => { - const currentFile = await getSelectedFile(); - if (prevFile != currentFile) { - prevFile = currentFile; - document.dispatchEvent(new CustomEvent("PEEFile", { detail: prevFile })); - } - }; - const obs = new MutationObserver(somethingChanged); - if (!cappState.is4chanX) { - target = e.detail; - a.style.display = "inline-block"; - target.querySelector("input[type=submit]")?.insertAdjacentElement("beforebegin", a); - const filesinp = target.querySelector("#qrFile"); - filesinp.addEventListener("change", somethingChanged); - } else { - target = e.target; - target.querySelector("#qr-filename-container")?.appendChild(a); - const filesinp = target.querySelector("#file-n-submit"); - obs.observe(filesinp, { attributes: true }); - } - }, { once: !cappState.is4chanX }); function processAttachments(post, ress) { if (ress.length == 0) return; diff --git a/firefox/manifest.json b/firefox/manifest.json index e0b55ee..ede8f0f 100644 --- a/firefox/manifest.json +++ b/firefox/manifest.json @@ -7,7 +7,7 @@ }, "name": "PngExtraEmbedder", "description": "Discover embedded files on 4chan and archives!", - "version": "0.323", + "version": "0.324", "icons": { "64": "1449696017588.png" }, @@ -100,7 +100,6 @@ "css": [], "run_at": "document_start", "js": [ - "polyfill.min.js", "dist/main.js" ] } diff --git a/firefox_update.json b/firefox_update.json index f958964..393c7ed 100644 --- a/firefox_update.json +++ b/firefox_update.json @@ -1 +1 @@ -{"addons":{"{34ac4994-07f2-44d2-8599-682516a6c6a6}":{"updates":[{"version":"0.323","update_link":"https://git.coom.tech/fuckjannies/lolipiss/raw/branch/%E4%B8%AD%E5%87%BA%E3%81%97/pngextraembedder-0.323.xpi"}]}}} \ No newline at end of file +{"addons":{"{34ac4994-07f2-44d2-8599-682516a6c6a6}":{"updates":[{"version":"0.324","update_link":"https://git.coom.tech/fuckjannies/lolipiss/raw/branch/%E4%B8%AD%E5%87%BA%E3%81%97/pngextraembedder-0.324.xpi"}]}}} \ No newline at end of file diff --git a/main.meta.js b/main.meta.js index 4bc3869..710924d 100644 --- a/main.meta.js +++ b/main.meta.js @@ -1,7 +1,7 @@ // ==UserScript== // @name PNGExtraEmbed // @namespace https://coom.tech/ -// @version 0.320 +// @version 0.324 // @description uhh // @author You // @match https://boards.4channel.org/* diff --git a/main.user.js b/main.user.js index 74fcddb..839c3df 100644 --- a/main.user.js +++ b/main.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name PNGExtraEmbed // @namespace https://coom.tech/ -// @version 0.320 +// @version 0.324 // @description uhh // @author You // @match https://boards.4channel.org/* @@ -109,7 +109,7 @@ const _DOMParser = DOMParser; var define_BUILD_VERSION_default; var init_define_BUILD_VERSION = __esm({ ""() { - define_BUILD_VERSION_default = [0, 320]; + define_BUILD_VERSION_default = [0, 324]; } }); @@ -1943,6 +1943,36 @@ const _DOMParser = DOMParser; "esbuild.inject.js"() { "use strict"; Buffer2 = require_buffer().Buffer; + if (true) { + if (true) { + const ocreate = unsafeWindow.document.createElement.bind(document); + unsafeWindow.document.createElement = (tag) => { + if (tag != "meta") + return ocreate(tag); + unsafeWindow.document.createElement = ocreate; + return unsafeWindow.document.createElement("link"); + }; + } + if (false) { + if (typeof cloneInto != "undefined") + console.log("CLONE INTO DEFINED"); + else + console.log("CLONE INTO NOT DEFINED"); + let a = 1; + console.log(a++); + const unsafeWindow2 = window; + console.log(a++); + const ocreate = unsafeWindow2.document.createElement.bind(document); + console.log(a++); + exportFunction((tag) => { + if (tag != "meta") + return ocreate(tag); + unsafeWindow2.document.createElement = ocreate; + return unsafeWindow2.document.createElement("link"); + }, window.document, { defineAs: "createElement" }); + console.log(a++); + } + } } }); @@ -8589,13 +8619,6 @@ const _DOMParser = DOMParser; return ["boards.4channel.org", "boards.4chan.org"].includes(s); } if (false) { - popupport = chrome.runtime.connect({ name: "popup" }); - popupport.onMessage.addListener((msg) => { - if (msg.id in pendingcmds) { - pendingcmds[msg.id](msg); - delete pendingcmds[msg.id]; - } - }); } var Platform = class { static async openInTab(src, opts) { @@ -18527,8 +18550,12 @@ const _DOMParser = DOMParser; } catch { try { const content = prompt("Paste it in here") || ""; - set_store_value(settings, $settings.rsources = JSON.parse(content), $settings); - } catch { + let v = JSON.parse(content); + if (false) + v = cloneInto(v, window); + set_store_value(settings, $settings.rsources = v, $settings); + } catch (e) { + console.log(e); alert("How can you fail so badly? pathetic..."); } } @@ -21476,7 +21503,7 @@ const _DOMParser = DOMParser; // src/processor.worker.ts function Worker2() { - return inlineWorker('var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));\nvar __decorateClass = (decorators, target, key2, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key2) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key2, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key2, result);\n return result;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError("Cannot " + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, "read from private field");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError("Cannot add the same private member more than once");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, "write to private field");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, "access private method");\n return method;\n};\nvar __toBinary = /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++)\n table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);\n for (var i2 = 0, j = 0; i2 < n; ) {\n var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n bytes[j++] = c0 << 2 | c1 >> 4;\n bytes[j++] = c1 << 4 | c2 >> 2;\n bytes[j++] = c2 << 6 | c3;\n }\n return bytes;\n };\n})();\n\n// \nvar init_define_BUILD_VERSION = __esm({\n ""() {\n }\n});\n\n// node_modules/base64-js/index.js\nvar require_base64_js = __commonJS({\n "node_modules/base64-js/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;\n var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\n for (i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n var i;\n var len;\n revLookup["-".charCodeAt(0)] = 62;\n revLookup["_".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error("Invalid string. Length must be a multiple of 4");\n }\n var validLen = b64.indexOf("=");\n if (validLen === -1)\n validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join("");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");\n }\n return parts.join("");\n }\n }\n});\n\n// node_modules/ieee754/index.js\nvar require_ieee754 = __commonJS({\n "node_modules/ieee754/index.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n});\n\n// node_modules/buffer/index.js\nvar require_buffer = __commonJS({\n "node_modules/buffer/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var base64 = require_base64_js();\n var ieee7542 = require_ieee754();\n var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null;\n exports.Buffer = Buffer13;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n Buffer13.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer13.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") {\n console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");\n }\n function typedArraySupport() {\n try {\n const arr = new Uint8Array(1);\n const proto = { foo: function() {\n return 42;\n } };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer13.prototype, "parent", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer13.prototype, "offset", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\'The value "\' + length + \'" is invalid for option "size"\');\n }\n const buf2 = new Uint8Array(length);\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function Buffer13(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n if (typeof encodingOrOffset === "string") {\n throw new TypeError(\'The "string" argument must be of type string. Received type number\');\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer13.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === "string") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === "number") {\n throw new TypeError(\'The "value" argument must not be of type number. Received type number\');\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer13.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b)\n return b;\n if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") {\n return Buffer13.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length);\n }\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n Buffer13.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer13.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer13, Uint8Array);\n function assertSize(size) {\n if (typeof size !== "number") {\n throw new TypeError(\'"size" argument must be of type number\');\n } else if (size < 0) {\n throw new RangeError(\'The value "\' + size + \'" is invalid for option "size"\');\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer13.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer13.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer13.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== "string" || encoding === "") {\n encoding = "utf8";\n }\n if (!Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf2 = createBuffer(length);\n const actual = buf2.write(string, encoding);\n if (actual !== length) {\n buf2 = buf2.slice(0, actual);\n }\n return buf2;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf2 = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf2[i] = array[i] & 255;\n }\n return buf2;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\'"offset" is outside of buffer bounds\');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\'"length" is outside of buffer bounds\');\n }\n let buf2;\n if (byteOffset === void 0 && length === void 0) {\n buf2 = new Uint8Array(array);\n } else if (length === void 0) {\n buf2 = new Uint8Array(array, byteOffset);\n } else {\n buf2 = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function fromObject(obj) {\n if (Buffer13.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf2 = createBuffer(len);\n if (buf2.length === 0) {\n return buf2;\n }\n obj.copy(buf2, 0, 0, len);\n return buf2;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== "number" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === "Buffer" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer13.alloc(+length);\n }\n Buffer13.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer13.prototype;\n };\n Buffer13.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array))\n a = Buffer13.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array))\n b = Buffer13.from(b, b.offset, b.byteLength);\n if (!Buffer13.isBuffer(a) || !Buffer13.isBuffer(b)) {\n throw new TypeError(\'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array\');\n }\n if (a === b)\n return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n Buffer13.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "latin1":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return true;\n default:\n return false;\n }\n };\n Buffer13.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n }\n if (list.length === 0) {\n return Buffer13.alloc(0);\n }\n let i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer13.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf2 = list[i];\n if (isInstance(buf2, Uint8Array)) {\n if (pos + buf2.length > buffer.length) {\n if (!Buffer13.isBuffer(buf2))\n buf2 = Buffer13.from(buf2);\n buf2.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf2, pos);\n }\n } else if (!Buffer13.isBuffer(buf2)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n } else {\n buf2.copy(buffer, pos);\n }\n pos += buf2.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer13.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== "string") {\n throw new TypeError(\'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type \' + typeof string);\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0)\n return 0;\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "ascii":\n case "latin1":\n case "binary":\n return len;\n case "utf8":\n case "utf-8":\n return utf8ToBytes(string).length;\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return len * 2;\n case "hex":\n return len >>> 1;\n case "base64":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length;\n }\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return "";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return "";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return "";\n }\n if (!encoding)\n encoding = "utf8";\n while (true) {\n switch (encoding) {\n case "hex":\n return hexSlice(this, start, end);\n case "utf8":\n case "utf-8":\n return utf8Slice(this, start, end);\n case "ascii":\n return asciiSlice(this, start, end);\n case "latin1":\n case "binary":\n return latin1Slice(this, start, end);\n case "base64":\n return base64Slice(this, start, end);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = (encoding + "").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer13.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 16-bits");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer13.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 32-bits");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer13.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 64-bits");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer13.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0)\n return "";\n if (arguments.length === 0)\n return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer13.prototype.toLocaleString = Buffer13.prototype.toString;\n Buffer13.prototype.equals = function equals(b) {\n if (!Buffer13.isBuffer(b))\n throw new TypeError("Argument must be a Buffer");\n if (this === b)\n return true;\n return Buffer13.compare(this, b) === 0;\n };\n Buffer13.prototype.inspect = function inspect() {\n let str = "";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim();\n if (this.length > max)\n str += " ... ";\n return "";\n };\n if (customInspectSymbol) {\n Buffer13.prototype[customInspectSymbol] = Buffer13.prototype.inspect;\n }\n Buffer13.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer13.from(target, target.offset, target.byteLength);\n }\n if (!Buffer13.isBuffer(target)) {\n throw new TypeError(\'The "target" argument must be one of type Buffer or Uint8Array. Received type \' + typeof target);\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError("out of range index");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target)\n return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0)\n return -1;\n if (typeof byteOffset === "string") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n if (byteOffset < 0)\n byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir)\n return -1;\n else\n byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir)\n byteOffset = 0;\n else\n return -1;\n }\n if (typeof val === "string") {\n val = Buffer13.from(val, encoding);\n }\n if (Buffer13.isBuffer(val)) {\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === "number") {\n val = val & 255;\n if (typeof Uint8Array.prototype.indexOf === "function") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError("val must be string, number or Buffer");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read2(buf2, i2) {\n if (indexSize === 1) {\n return buf2[i2];\n } else {\n return buf2.readUInt16BE(i2 * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read2(arr, i) === read2(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1)\n foundIndex = i;\n if (i - foundIndex + 1 === valLength)\n return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1)\n i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength)\n byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read2(arr, i + j) !== read2(val, j)) {\n found = false;\n break;\n }\n }\n if (found)\n return i;\n }\n }\n return -1;\n }\n Buffer13.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer13.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer13.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf2, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf2.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed))\n return i;\n buf2[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf2, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n function asciiWrite(buf2, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf2, offset, length);\n }\n function base64Write(buf2, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf2, offset, length);\n }\n function ucs2Write(buf2, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n Buffer13.prototype.write = function write2(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = "utf8";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === "string") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0)\n encoding = "utf8";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");\n }\n const remaining = this.length - offset;\n if (length === void 0 || length > remaining)\n length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError("Attempt to write outside buffer bounds");\n }\n if (!encoding)\n encoding = "utf8";\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "hex":\n return hexWrite(this, string, offset, length);\n case "utf8":\n case "utf-8":\n return utf8Write(this, string, offset, length);\n case "ascii":\n case "latin1":\n case "binary":\n return asciiWrite(this, string, offset, length);\n case "base64":\n return base64Write(this, string, offset, length);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer13.prototype.toJSON = function toJSON() {\n return {\n type: "Buffer",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf2, start, end) {\n if (start === 0 && end === buf2.length) {\n return base64.fromByteArray(buf2);\n } else {\n return base64.fromByteArray(buf2.slice(start, end));\n }\n }\n function utf8Slice(buf2, start, end) {\n end = Math.min(buf2.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf2[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf2[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n fourthByte = buf2[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = "";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i]);\n }\n return ret;\n }\n function hexSlice(buf2, start, end) {\n const len = buf2.length;\n if (!start || start < 0)\n start = 0;\n if (!end || end < 0 || end > len)\n end = len;\n let out = "";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf2[i]];\n }\n return out;\n }\n function utf16leSlice(buf2, start, end) {\n const bytes = buf2.slice(start, end);\n let res = "";\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer13.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0)\n start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0)\n end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start)\n end = start;\n const newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer13.prototype);\n return newBuf;\n };\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0)\n throw new RangeError("offset is not uint");\n if (offset + ext > length)\n throw new RangeError("Trying to access beyond buffer length");\n }\n Buffer13.prototype.readUintLE = Buffer13.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUintBE = Buffer13.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n let val = this[offset + --byteLength2];\n let mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUint8 = Buffer13.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer13.prototype.readUint16LE = Buffer13.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer13.prototype.readUint16BE = Buffer13.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer13.prototype.readUint32LE = Buffer13.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer13.prototype.readUint32BE = Buffer13.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer13.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer13.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer13.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let i = byteLength2;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128))\n return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer13.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer13.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer13.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer13.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer13.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, true, 23, 4);\n };\n Buffer13.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, false, 23, 4);\n };\n Buffer13.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, true, 52, 8);\n };\n Buffer13.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, false, 52, 8);\n };\n function checkInt(buf2, value, offset, ext, max, min) {\n if (!Buffer13.isBuffer(buf2))\n throw new TypeError(\'"buffer" argument must be a Buffer instance\');\n if (value > max || value < min)\n throw new RangeError(\'"value" argument is out of bounds\');\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n }\n Buffer13.prototype.writeUintLE = Buffer13.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUintBE = Buffer13.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUint8 = Buffer13.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeUint16LE = Buffer13.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeUint16BE = Buffer13.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeUint32LE = Buffer13.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeUint32BE = Buffer13.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset + 7] = lo;\n lo = lo >> 8;\n buf2[offset + 6] = lo;\n lo = lo >> 8;\n buf2[offset + 5] = lo;\n lo = lo >> 8;\n buf2[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset + 3] = hi;\n hi = hi >> 8;\n buf2[offset + 2] = hi;\n hi = hi >> 8;\n buf2[offset + 1] = hi;\n hi = hi >> 8;\n buf2[offset] = hi;\n return offset + 8;\n }\n Buffer13.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 127, -128);\n if (value < 0)\n value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer13.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0)\n value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n Buffer13.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n function checkIEEE754(buf2, value, offset, ext, max, min) {\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n if (offset < 0)\n throw new RangeError("Index out of range");\n }\n function writeFloat(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer13.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer13.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer13.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer13.isBuffer(target))\n throw new TypeError("argument should be a Buffer");\n if (!start)\n start = 0;\n if (!end && end !== 0)\n end = this.length;\n if (targetStart >= target.length)\n targetStart = target.length;\n if (!targetStart)\n targetStart = 0;\n if (end > 0 && end < start)\n end = start;\n if (end === start)\n return 0;\n if (target.length === 0 || this.length === 0)\n return 0;\n if (targetStart < 0) {\n throw new RangeError("targetStart out of bounds");\n }\n if (start < 0 || start >= this.length)\n throw new RangeError("Index out of range");\n if (end < 0)\n throw new RangeError("sourceEnd out of bounds");\n if (end > this.length)\n end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === "function") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n Buffer13.prototype.fill = function fill(val, start, end, encoding) {\n if (typeof val === "string") {\n if (typeof start === "string") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === "string") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== void 0 && typeof encoding !== "string") {\n throw new TypeError("encoding must be a string");\n }\n if (typeof encoding === "string" && !Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === "utf8" && code < 128 || encoding === "latin1") {\n val = code;\n }\n }\n } else if (typeof val === "number") {\n val = val & 255;\n } else if (typeof val === "boolean") {\n val = Number(val);\n }\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError("Out of range index");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val)\n val = 0;\n let i;\n if (typeof val === "number") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer13.isBuffer(val) ? val : Buffer13.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError(\'The value "\' + val + \'" is invalid for argument "value"\');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, "message", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n this.name = `${this.name} [${sym}]`;\n this.stack;\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, "code", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n return "Attempt to access memory outside buffer bounds";\n }, RangeError);\n E("ERR_INVALID_ARG_TYPE", function(name, actual) {\n return `The "${name}" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E("ERR_OUT_OF_RANGE", function(str, range, input) {\n let msg = `The value of "${str}" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === "bigint") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += "n";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n let res = "";\n let i = val.length;\n const start = val[0] === "-" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n function checkBounds(buf2, offset, byteLength2) {\n validateNumber(offset, "offset");\n if (buf2[offset] === void 0 || buf2[offset + byteLength2] === void 0) {\n boundsError(offset, buf2.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf2, offset, byteLength2) {\n if (value > max || value < min) {\n const n = typeof min === "bigint" ? "n" : "";\n let range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n throw new errors.ERR_OUT_OF_RANGE("value", range, value);\n }\n checkBounds(buf2, offset, byteLength2);\n }\n function validateNumber(value, name) {\n if (typeof value !== "number") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value);\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split("=")[0];\n str = str.trim().replace(INVALID_BASE64_RE, "");\n if (str.length < 2)\n return "";\n while (str.length % 4 !== 0) {\n str = str + "=";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error("Invalid code point");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0)\n break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length)\n break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n const alphabet = "0123456789abcdef";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error("BigInt not supported");\n }\n }\n});\n\n// esbuild.inject.js\nvar Buffer2;\nvar init_esbuild_inject = __esm({\n "esbuild.inject.js"() {\n "use strict";\n Buffer2 = require_buffer().Buffer;\n }\n});\n\n// node_modules/crc-32/crc32.js\nvar require_crc32 = __commonJS({\n "node_modules/crc-32/crc32.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var CRC32;\n (function(factory) {\n if (typeof DO_NOT_EXPORT_CRC === "undefined") {\n if (typeof exports === "object") {\n factory(exports);\n } else if (typeof define === "function" && define.amd) {\n define(function() {\n var module2 = {};\n factory(module2);\n return module2;\n });\n } else {\n factory(CRC32 = {});\n }\n } else {\n factory(CRC32 = {});\n }\n })(function(CRC322) {\n CRC322.version = "1.2.0";\n function signed_crc_table() {\n var c = 0, table = new Array(256);\n for (var n = 0; n != 256; ++n) {\n c = n;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n table[n] = c;\n }\n return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;\n }\n var T = signed_crc_table();\n function crc32_bstr(bstr, seed) {\n var C = seed ^ -1, L = bstr.length - 1;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n }\n if (i === L)\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i)) & 255];\n return C ^ -1;\n }\n function crc32_buf(buf2, seed) {\n if (buf2.length > 1e4)\n return crc32_buf_8(buf2, seed);\n var C = seed ^ -1, L = buf2.length - 3;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 3)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_buf_8(buf2, seed) {\n var C = seed ^ -1, L = buf2.length - 7;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 7)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_str(str, seed) {\n var C = seed ^ -1;\n for (var i = 0, L = str.length, c, d; i < L; ) {\n c = str.charCodeAt(i++);\n if (c < 128) {\n C = C >>> 8 ^ T[(C ^ c) & 255];\n } else if (c < 2048) {\n C = C >>> 8 ^ T[(C ^ (192 | c >> 6 & 31)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n } else if (c >= 55296 && c < 57344) {\n c = (c & 1023) + 64;\n d = str.charCodeAt(i++) & 1023;\n C = C >>> 8 ^ T[(C ^ (240 | c >> 8 & 7)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 2 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d & 63)) & 255];\n } else {\n C = C >>> 8 ^ T[(C ^ (224 | c >> 12 & 15)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 6 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n }\n }\n return C ^ -1;\n }\n CRC322.table = T;\n CRC322.bstr = crc32_bstr;\n CRC322.buf = crc32_buf;\n CRC322.str = crc32_str;\n });\n }\n});\n\n// node_modules/events/events.js\nvar require_events = __commonJS({\n "node_modules/events/events.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var R = typeof Reflect === "object" ? Reflect : null;\n var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === "function") {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn)\n console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = void 0;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = void 0;\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== "function") {\n throw new TypeError(\'The "listener" argument must be of type Function. Received type \' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, "defaultMaxListeners", {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError(\'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received \' + arg + ".");\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function() {\n if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || void 0;\n };\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {\n throw new RangeError(\'The value of "n" is out of range. It must be a non-negative number. Received \' + n + ".");\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === void 0)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++)\n args.push(arguments[i]);\n var doError = type === "error";\n var events = this._events;\n if (events !== void 0)\n doError = doError && events.error === void 0;\n else if (!doError)\n return false;\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n throw er;\n }\n var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));\n err.context = er;\n throw err;\n }\n var handler = events[type];\n if (handler === void 0)\n return false;\n if (typeof handler === "function") {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === void 0) {\n events = target._events = /* @__PURE__ */ Object.create(null);\n target._eventsCount = 0;\n } else {\n if (events.newListener !== void 0) {\n target.emit("newListener", type, listener.listener ? listener.listener : listener);\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === void 0) {\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === "function") {\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");\n w.name = "MaxListenersExceededWarning";\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: void 0, target, type, listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once2(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === void 0)\n return this;\n list = events[type];\n if (list === void 0)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit("removeListener", type, list.listener || listener);\n }\n } else if (typeof list !== "function") {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== void 0)\n this.emit("removeListener", type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === void 0)\n return this;\n if (events.removeListener === void 0) {\n if (arguments.length === 0) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== void 0) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key2;\n for (i = 0; i < keys.length; ++i) {\n key2 = keys[i];\n if (key2 === "removeListener")\n continue;\n this.removeAllListeners(key2);\n }\n this.removeAllListeners("removeListener");\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === "function") {\n this.removeListener(type, listeners);\n } else if (listeners !== void 0) {\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === void 0)\n return [];\n var evlistener = events[type];\n if (evlistener === void 0)\n return [];\n if (typeof evlistener === "function")\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === "function") {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== void 0) {\n var evlistener = events[type];\n if (typeof evlistener === "function") {\n return 1;\n } else if (evlistener !== void 0) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === "function") {\n emitter.removeListener("error", errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== "error") {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === "function") {\n eventTargetAgnosticAddListener(emitter, "error", handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === "function") {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === "function") {\n emitter.addEventListener(name, function wrapListener(arg) {\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError(\'The "emitter" argument must be of type EventEmitter. Received type \' + typeof emitter);\n }\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/stream-browser.js\nvar require_stream_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/stream-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = require_events().EventEmitter;\n }\n});\n\n// (disabled):node_modules/util/util.js\nvar require_util = __commonJS({\n "(disabled):node_modules/util/util.js"() {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/buffer_list.js\nvar require_buffer_list = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly)\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key2) {\n _defineProperty(target, key2, source[key2]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key2) {\n Object.defineProperty(target, key2, Object.getOwnPropertyDescriptor(source, key2));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require_buffer();\n var Buffer13 = _require.Buffer;\n var _require2 = require_util();\n var inspect = _require2.inspect;\n var custom = inspect && inspect.custom || "inspect";\n function copyBuffer(src, target, offset) {\n Buffer13.prototype.copy.call(src, target, offset);\n }\n module.exports = /* @__PURE__ */ function() {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: "push",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0)\n this.tail.next = entry;\n else\n this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: "unshift",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0)\n this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: "shift",\n value: function shift() {\n if (this.length === 0)\n return;\n var ret = this.head.data;\n if (this.length === 1)\n this.head = this.tail = null;\n else\n this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: "clear",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: "join",\n value: function join(s) {\n if (this.length === 0)\n return "";\n var p = this.head;\n var ret = "" + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: "concat",\n value: function concat(n) {\n if (this.length === 0)\n return Buffer13.alloc(0);\n var ret = Buffer13.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n }, {\n key: "consume",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n ret = this.shift();\n } else {\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: "first",\n value: function first() {\n return this.head.data;\n }\n }, {\n key: "_getString",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length)\n ret += str;\n else\n ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: "_getBuffer",\n value: function _getBuffer(n) {\n var ret = Buffer13.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf2 = p.data;\n var nb = n > buf2.length ? buf2.length : n;\n buf2.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf2.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf2.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n depth: 0,\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/destroy.js\nvar require_destroy = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function(err2) {\n if (!cb && err2) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self2, err) {\n emitErrorNT(self2, err);\n emitCloseNT(self2);\n }\n function emitCloseNT(self2) {\n if (self2._writableState && !self2._writableState.emitClose)\n return;\n if (self2._readableState && !self2._readableState.emitClose)\n return;\n self2.emit("close");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self2, err) {\n self2.emit("error", err);\n }\n function errorOrDestroy(stream, err) {\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy)\n stream.destroy(err);\n else\n stream.emit("error", err);\n }\n module.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n };\n }\n});\n\n// node_modules/readable-stream/errors-browser.js\nvar require_errors_browser = __commonJS({\n "node_modules/readable-stream/errors-browser.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n var codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === "string") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inheritsLoose(NodeError2, _Base);\n function NodeError2(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError2;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(", "), ", or ") + expected[len - 1];\n } else if (len === 2) {\n return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);\n } else {\n return "of ".concat(thing, " ").concat(expected[0]);\n }\n } else {\n return "of ".concat(thing, " ").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== "number") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) {\n return \'The value "\' + value + \'" is invalid for option "\' + name + \'"\';\n }, TypeError);\n createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) {\n var determiner;\n if (typeof expected === "string" && startsWith(expected, "not ")) {\n determiner = "must not be";\n expected = expected.replace(/^not /, "");\n } else {\n determiner = "must be";\n }\n var msg;\n if (endsWith(name, " argument")) {\n msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n } else {\n var type = includes(name, ".") ? "property" : "argument";\n msg = \'The "\'.concat(name, \'" \').concat(type, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n }\n msg += ". Received type ".concat(typeof actual);\n return msg;\n }, TypeError);\n createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");\n createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) {\n return "The " + name + " method is not implemented";\n });\n createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close");\n createErrorType("ERR_STREAM_DESTROYED", function(name) {\n return "Cannot call " + name + " after a stream was destroyed";\n });\n createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");\n createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");\n createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end");\n createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);\n createErrorType("ERR_UNKNOWN_ENCODING", function(arg) {\n return "Unknown encoding: " + arg;\n }, TypeError);\n createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");\n module.exports.codes = codes;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/state.js\nvar require_state = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/state.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : "highWaterMark";\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n return state.objectMode ? 16 : 16 * 1024;\n }\n module.exports = {\n getHighWaterMark\n };\n }\n});\n\n// node_modules/inherits/inherits_browser.js\nvar require_inherits_browser = __commonJS({\n "node_modules/inherits/inherits_browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n if (typeof Object.create === "function") {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n});\n\n// node_modules/util-deprecate/browser.js\nvar require_browser = __commonJS({\n "node_modules/util-deprecate/browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = deprecate;\n function deprecate(fn, msg) {\n if (config("noDeprecation")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config("throwDeprecation")) {\n throw new Error(msg);\n } else if (config("traceDeprecation")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n }\n function config(name) {\n try {\n if (!self.localStorage)\n return false;\n } catch (_) {\n return false;\n }\n var val = self.localStorage[name];\n if (val == null)\n return false;\n return String(val).toLowerCase() === "true";\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_writable.js\nvar require_stream_writable = __commonJS({\n "node_modules/readable-stream/lib/_stream_writable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Writable;\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function() {\n onCorkedFinish(_this, state);\n };\n }\n var Duplex;\n Writable.WritableState = WritableState;\n var internalUtil = {\n deprecate: require_browser()\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;\n var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;\n var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n require_inherits_browser()(Writable, Stream);\n function nop() {\n }\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.writableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex);\n this.finalCalled = false;\n this.needDrain = false;\n this.ending = false;\n this.ended = false;\n this.finished = false;\n this.destroyed = false;\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.length = 0;\n this.writing = false;\n this.corked = 0;\n this.sync = true;\n this.bufferProcessing = false;\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n this.writecb = null;\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n this.pendingcb = 0;\n this.prefinished = false;\n this.errorEmitted = false;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.bufferedRequestCount = 0;\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function() {\n try {\n Object.defineProperty(WritableState.prototype, "buffer", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")\n });\n } catch (_) {\n }\n })();\n var realHasInstance;\n if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object))\n return true;\n if (this !== Writable)\n return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance2(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || require_stream_duplex();\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this))\n return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n this.writable = true;\n if (options) {\n if (typeof options.write === "function")\n this._write = options.write;\n if (typeof options.writev === "function")\n this._writev = options.writev;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n if (typeof options.final === "function")\n this._final = options.final;\n }\n Stream.call(this);\n }\n Writable.prototype.pipe = function() {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n }\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== "string" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer13.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf)\n encoding = "buffer";\n else if (!encoding)\n encoding = state.defaultEncoding;\n if (typeof cb !== "function")\n cb = nop;\n if (state.ending)\n writeAfterEnd(this, cb);\n else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function() {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function() {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest)\n clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n if (typeof encoding === "string")\n encoding = encoding.toLowerCase();\n if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1))\n throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") {\n chunk = Buffer13.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = "buffer";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n if (!ret)\n state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed)\n state.onwrite(new ERR_STREAM_DESTROYED("write"));\n else if (writev)\n stream._writev(chunk, state.onwrite);\n else\n stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n process.nextTick(cb, er);\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== "function")\n throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er)\n onwriteError(stream, state, sync, er, cb);\n else {\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished)\n onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit("drain");\n }\n }\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf)\n allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, "", holder.finish);\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n if (state.writing) {\n break;\n }\n }\n if (entry === null)\n state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === "function") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== void 0)\n this.write(chunk, encoding);\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n if (!state.ending)\n endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function(err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit("prefinish");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === "function" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit("prefinish");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit("finish");\n if (state.autoDestroy) {\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished)\n process.nextTick(cb);\n else\n stream.once("finish", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._writableState === void 0) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n if (!this._writableState) {\n return;\n }\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_duplex.js\nvar require_stream_duplex = __commonJS({\n "node_modules/readable-stream/lib/_stream_duplex.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var objectKeys = Object.keys || function(obj) {\n var keys2 = [];\n for (var key2 in obj) {\n keys2.push(key2);\n }\n return keys2;\n };\n module.exports = Duplex;\n var Readable = require_stream_readable();\n var Writable = require_stream_writable();\n require_inherits_browser()(Duplex, Readable);\n {\n keys = objectKeys(Writable.prototype);\n for (v = 0; v < keys.length; v++) {\n method = keys[v];\n if (!Duplex.prototype[method])\n Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n var keys;\n var method;\n var v;\n function Duplex(options) {\n if (!(this instanceof Duplex))\n return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false)\n this.readable = false;\n if (options.writable === false)\n this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once("end", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function onend() {\n if (this._writableState.ended)\n return;\n process.nextTick(onEndNT, this);\n }\n function onEndNT(self2) {\n self2.end();\n }\n Object.defineProperty(Duplex.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return;\n }\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n }\n});\n\n// node_modules/safe-buffer/index.js\nvar require_safe_buffer = __commonJS({\n "node_modules/safe-buffer/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var buffer = require_buffer();\n var Buffer13 = buffer.Buffer;\n function copyProps(src, dst) {\n for (var key2 in src) {\n dst[key2] = src[key2];\n }\n }\n if (Buffer13.from && Buffer13.alloc && Buffer13.allocUnsafe && Buffer13.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer13(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer13.prototype);\n copyProps(Buffer13, SafeBuffer);\n SafeBuffer.from = function(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n throw new TypeError("Argument must not be a number");\n }\n return Buffer13(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function(size, fill, encoding) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n var buf2 = Buffer13(size);\n if (fill !== void 0) {\n if (typeof encoding === "string") {\n buf2.fill(fill, encoding);\n } else {\n buf2.fill(fill);\n }\n } else {\n buf2.fill(0);\n }\n return buf2;\n };\n SafeBuffer.allocUnsafe = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return Buffer13(size);\n };\n SafeBuffer.allocUnsafeSlow = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return buffer.SlowBuffer(size);\n };\n }\n});\n\n// node_modules/string_decoder/lib/string_decoder.js\nvar require_string_decoder = __commonJS({\n "node_modules/string_decoder/lib/string_decoder.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var Buffer13 = require_safe_buffer().Buffer;\n var isEncoding = Buffer13.isEncoding || function(encoding) {\n encoding = "" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n case "raw":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc)\n return "utf8";\n var retried;\n while (true) {\n switch (enc) {\n case "utf8":\n case "utf-8":\n return "utf8";\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return "utf16le";\n case "latin1":\n case "binary":\n return "latin1";\n case "base64":\n case "ascii":\n case "hex":\n return enc;\n default:\n if (retried)\n return;\n enc = ("" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== "string" && (Buffer13.isEncoding === isEncoding || !isEncoding(enc)))\n throw new Error("Unknown encoding: " + enc);\n return nenc || enc;\n }\n exports.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case "utf16le":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case "utf8":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case "base64":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer13.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function(buf2) {\n if (buf2.length === 0)\n return "";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf2);\n if (r === void 0)\n return "";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf2.length)\n return r ? r + this.text(buf2, i) : this.text(buf2, i);\n return r || "";\n };\n StringDecoder.prototype.end = utf8End;\n StringDecoder.prototype.text = utf8Text;\n StringDecoder.prototype.fillLast = function(buf2) {\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf2.length);\n this.lastNeed -= buf2.length;\n };\n function utf8CheckByte(byte) {\n if (byte <= 127)\n return 0;\n else if (byte >> 5 === 6)\n return 2;\n else if (byte >> 4 === 14)\n return 3;\n else if (byte >> 3 === 30)\n return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n function utf8CheckIncomplete(self2, buf2, i) {\n var j = buf2.length - 1;\n if (j < i)\n return 0;\n var nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2)\n nb = 0;\n else\n self2.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n function utf8CheckExtraBytes(self2, buf2, p) {\n if ((buf2[0] & 192) !== 128) {\n self2.lastNeed = 0;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 1 && buf2.length > 1) {\n if ((buf2[1] & 192) !== 128) {\n self2.lastNeed = 1;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 2 && buf2.length > 2) {\n if ((buf2[2] & 192) !== 128) {\n self2.lastNeed = 2;\n return "\\uFFFD";\n }\n }\n }\n }\n function utf8FillLast(buf2) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf2, p);\n if (r !== void 0)\n return r;\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, p, 0, buf2.length);\n this.lastNeed -= buf2.length;\n }\n function utf8Text(buf2, i) {\n var total = utf8CheckIncomplete(this, buf2, i);\n if (!this.lastNeed)\n return buf2.toString("utf8", i);\n this.lastTotal = total;\n var end = buf2.length - (total - this.lastNeed);\n buf2.copy(this.lastChar, 0, end);\n return buf2.toString("utf8", i, end);\n }\n function utf8End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + "\\uFFFD";\n return r;\n }\n function utf16Text(buf2, i) {\n if ((buf2.length - i) % 2 === 0) {\n var r = buf2.toString("utf16le", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf2[buf2.length - 1];\n return buf2.toString("utf16le", i, buf2.length - 1);\n }\n function utf16End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString("utf16le", 0, end);\n }\n return r;\n }\n function base64Text(buf2, i) {\n var n = (buf2.length - i) % 3;\n if (n === 0)\n return buf2.toString("base64", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf2[buf2.length - 1];\n } else {\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n }\n return buf2.toString("base64", i, buf2.length - n);\n }\n function base64End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed);\n return r;\n }\n function simpleWrite(buf2) {\n return buf2.toString(this.encoding);\n }\n function simpleEnd(buf2) {\n return buf2 && buf2.length ? this.write(buf2) : "";\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/end-of-stream.js\nvar require_end_of_stream = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop2() {\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === "function")\n return eos(stream, null, opts);\n if (!opts)\n opts = {};\n callback = once(callback || noop2);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable2 = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish2() {\n if (!stream.writable)\n onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish2() {\n writable2 = false;\n writableEnded = true;\n if (!readable)\n callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend2() {\n readable = false;\n readableEnded = true;\n if (!writable2)\n callback.call(stream);\n };\n var onerror = function onerror2(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose2() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable2 && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest2() {\n stream.req.on("finish", onfinish);\n };\n if (isRequest(stream)) {\n stream.on("complete", onfinish);\n stream.on("abort", onclose);\n if (stream.req)\n onrequest();\n else\n stream.on("request", onrequest);\n } else if (writable2 && !stream._writableState) {\n stream.on("end", onlegacyfinish);\n stream.on("close", onlegacyfinish);\n }\n stream.on("end", onend);\n stream.on("finish", onfinish);\n if (opts.error !== false)\n stream.on("error", onerror);\n stream.on("close", onclose);\n return function() {\n stream.removeListener("complete", onfinish);\n stream.removeListener("abort", onclose);\n stream.removeListener("request", onrequest);\n if (stream.req)\n stream.req.removeListener("finish", onfinish);\n stream.removeListener("end", onlegacyfinish);\n stream.removeListener("close", onlegacyfinish);\n stream.removeListener("finish", onfinish);\n stream.removeListener("end", onend);\n stream.removeListener("error", onerror);\n stream.removeListener("close", onclose);\n };\n }\n module.exports = eos;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/async_iterator.js\nvar require_async_iterator = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var _Object$setPrototypeO;\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n var finished = require_end_of_stream();\n var kLastResolve = Symbol("lastResolve");\n var kLastReject = Symbol("lastReject");\n var kError = Symbol("error");\n var kEnded = Symbol("ended");\n var kLastPromise = Symbol("lastPromise");\n var kHandlePromise = Symbol("handlePromise");\n var kStream = Symbol("stream");\n function createIterResult(value, done) {\n return {\n value,\n done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n process.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function(resolve, reject) {\n lastPromise.then(function() {\n if (iter[kEnded]) {\n resolve(createIterResult(void 0, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function() {\n });\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(void 0, true));\n }\n if (this[kStream].destroyed) {\n return new Promise(function(resolve, reject) {\n process.nextTick(function() {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(void 0, true));\n }\n });\n });\n }\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {\n return this;\n }), _defineProperty(_Object$setPrototypeO, "return", function _return() {\n var _this2 = this;\n return new Promise(function(resolve, reject) {\n _this2[kStream].destroy(null, function(err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(void 0, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function(err) {\n if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {\n var reject = iterator[kLastReject];\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(void 0, true));\n }\n iterator[kEnded] = true;\n });\n stream.on("readable", onReadable.bind(null, iterator));\n return iterator;\n };\n module.exports = createReadableStreamAsyncIterator;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/from-browser.js\nvar require_from_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/from-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = function() {\n throw new Error("Readable.from is not available in the browser");\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_readable.js\nvar require_stream_readable = __commonJS({\n "node_modules/readable-stream/lib/_stream_readable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Readable;\n var Duplex;\n Readable.ReadableState = ReadableState;\n var EE = require_events().EventEmitter;\n var EElistenerCount = function EElistenerCount2(emitter, type) {\n return emitter.listeners(type).length;\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var debugUtil = require_util();\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog("stream");\n } else {\n debug = function debug2() {\n };\n }\n var BufferList = require_buffer_list();\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n require_inherits_browser()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = ["error", "close", "destroy", "pause", "resume"];\n function prependListener(emitter, event, fn) {\n if (typeof emitter.prependListener === "function")\n return emitter.prependListener(event, fn);\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.readableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex);\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n this.sync = true;\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.destroyed = false;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.awaitDrain = 0;\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || require_stream_duplex();\n if (!(this instanceof Readable))\n return new Readable(options);\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n this.readable = true;\n if (options) {\n if (typeof options.read === "function")\n this._read = options.read;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n if (!this._readableState) {\n return;\n }\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n Readable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === "string") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer13.from(chunk, encoding);\n encoding = "";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n Readable.prototype.unshift = function(chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug("readableAddChunk", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck)\n er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer13.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted)\n errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else\n addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0)\n addChunk(stream, state, chunk, false);\n else\n maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit("data", chunk);\n } else {\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront)\n state.buffer.unshift(chunk);\n else\n state.buffer.push(chunk);\n if (state.needReadable)\n emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function() {\n return this._readableState.flowing === false;\n };\n Readable.prototype.setEncoding = function(enc) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n this._readableState.encoding = this._readableState.decoder.encoding;\n var p = this._readableState.buffer.head;\n var content = "";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== "")\n this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended)\n return 0;\n if (state.objectMode)\n return 1;\n if (n !== n) {\n if (state.flowing && state.length)\n return state.buffer.head.data.length;\n else\n return state.length;\n }\n if (n > state.highWaterMark)\n state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length)\n return n;\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n Readable.prototype.read = function(n) {\n debug("read", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0)\n state.emittedReadable = false;\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug("read: emitReadable", state.length, state.ended);\n if (state.length === 0 && state.ended)\n endReadable(this);\n else\n emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n if (n === 0 && state.ended) {\n if (state.length === 0)\n endReadable(this);\n return null;\n }\n var doRead = state.needReadable;\n debug("need readable", doRead);\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug("length less than watermark", doRead);\n }\n if (state.ended || state.reading) {\n doRead = false;\n debug("reading or ended", doRead);\n } else if (doRead) {\n debug("do read");\n state.reading = true;\n state.sync = true;\n if (state.length === 0)\n state.needReadable = true;\n this._read(state.highWaterMark);\n state.sync = false;\n if (!state.reading)\n n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0)\n ret = fromList(n, state);\n else\n ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n if (!state.ended)\n state.needReadable = true;\n if (nOrig !== n && state.ended)\n endReadable(this);\n }\n if (ret !== null)\n this.emit("data", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug("onEofChunk");\n if (state.ended)\n return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n emitReadable(stream);\n } else {\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n function emitReadable(stream) {\n var state = stream._readableState;\n debug("emitReadable", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug("emitReadable", state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug("emitReadable_", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit("readable");\n state.emittedReadable = false;\n }\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug("maybeReadMore read 0");\n stream.read(0);\n if (len === state.length)\n break;\n }\n state.readingMore = false;\n }\n Readable.prototype._read = function(n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()"));\n };\n Readable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted)\n process.nextTick(endFn);\n else\n src.once("end", endFn);\n dest.on("unpipe", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug("onunpipe");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug("onend");\n dest.end();\n }\n var ondrain = pipeOnDrain(src);\n dest.on("drain", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug("cleanup");\n dest.removeListener("close", onclose);\n dest.removeListener("finish", onfinish);\n dest.removeListener("drain", ondrain);\n dest.removeListener("error", onerror);\n dest.removeListener("unpipe", onunpipe);\n src.removeListener("end", onend);\n src.removeListener("end", unpipe);\n src.removeListener("data", ondata);\n cleanedUp = true;\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain))\n ondrain();\n }\n src.on("data", ondata);\n function ondata(chunk) {\n debug("ondata");\n var ret = dest.write(chunk);\n debug("dest.write", ret);\n if (ret === false) {\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug("false write response, pause", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n function onerror(er) {\n debug("onerror", er);\n unpipe();\n dest.removeListener("error", onerror);\n if (EElistenerCount(dest, "error") === 0)\n errorOrDestroy(dest, er);\n }\n prependListener(dest, "error", onerror);\n function onclose() {\n dest.removeListener("finish", onfinish);\n unpipe();\n }\n dest.once("close", onclose);\n function onfinish() {\n debug("onfinish");\n dest.removeListener("close", onclose);\n unpipe();\n }\n dest.once("finish", onfinish);\n function unpipe() {\n debug("unpipe");\n src.unpipe(dest);\n }\n dest.emit("pipe", src);\n if (!state.flowing) {\n debug("pipe resume");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug("pipeOnDrain", state.awaitDrain);\n if (state.awaitDrain)\n state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, "data")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n if (state.pipesCount === 0)\n return this;\n if (state.pipesCount === 1) {\n if (dest && dest !== state.pipes)\n return this;\n if (!dest)\n dest = state.pipes;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest)\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n }\n if (!dest) {\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit("unpipe", this, {\n hasUnpiped: false\n });\n }\n return this;\n }\n var index = indexOf(state.pipes, dest);\n if (index === -1)\n return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1)\n state.pipes = state.pipes[0];\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n };\n Readable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === "data") {\n state.readableListening = this.listenerCount("readable") > 0;\n if (state.flowing !== false)\n this.resume();\n } else if (ev === "readable") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug("on readable", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function(ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === "readable") {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function(ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === "readable" || ev === void 0) {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self2) {\n var state = self2._readableState;\n state.readableListening = self2.listenerCount("readable") > 0;\n if (state.resumeScheduled && !state.paused) {\n state.flowing = true;\n } else if (self2.listenerCount("data") > 0) {\n self2.resume();\n }\n }\n function nReadingNextTick(self2) {\n debug("readable nexttick read 0");\n self2.read(0);\n }\n Readable.prototype.resume = function() {\n var state = this._readableState;\n if (!state.flowing) {\n debug("resume");\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug("resume", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit("resume");\n flow(stream);\n if (state.flowing && !state.reading)\n stream.read(0);\n }\n Readable.prototype.pause = function() {\n debug("call pause flowing=%j", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug("pause");\n this._readableState.flowing = false;\n this.emit("pause");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug("flow", state.flowing);\n while (state.flowing && stream.read() !== null) {\n ;\n }\n }\n Readable.prototype.wrap = function(stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on("end", function() {\n debug("wrapped end");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length)\n _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on("data", function(chunk) {\n debug("wrapped data");\n if (state.decoder)\n chunk = state.decoder.write(chunk);\n if (state.objectMode && (chunk === null || chunk === void 0))\n return;\n else if (!state.objectMode && (!chunk || !chunk.length))\n return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n for (var i in stream) {\n if (this[i] === void 0 && typeof stream[i] === "function") {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n this._read = function(n2) {\n debug("wrapped _read", n2);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === "function") {\n Readable.prototype[Symbol.asyncIterator] = function() {\n if (createReadableStreamAsyncIterator === void 0) {\n createReadableStreamAsyncIterator = require_async_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, "readableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, "readableBuffer", {\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, "readableFlowing", {\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, "readableLength", {\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n function fromList(n, state) {\n if (state.length === 0)\n return null;\n var ret;\n if (state.objectMode)\n ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n if (state.decoder)\n ret = state.buffer.join("");\n else if (state.buffer.length === 1)\n ret = state.buffer.first();\n else\n ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug("endReadable", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug("endReadableNT", state.endEmitted, state.length);\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit("end");\n if (state.autoDestroy) {\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === "function") {\n Readable.from = function(iterable, opts) {\n if (from === void 0) {\n from = require_from_browser();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x)\n return i;\n }\n return -1;\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_transform.js\nvar require_stream_transform = __commonJS({\n "node_modules/readable-stream/lib/_stream_transform.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Transform;\n var _require$codes = require_errors_browser().codes;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;\n var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = require_stream_duplex();\n require_inherits_browser()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit("error", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform))\n return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n this._readableState.needReadable = true;\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === "function")\n this._transform = options.transform;\n if (typeof options.flush === "function")\n this._flush = options.flush;\n }\n this.on("prefinish", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === "function" && !this._readableState.destroyed) {\n this._flush(function(er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n Transform.prototype._transform = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"));\n };\n Transform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark)\n this._read(rs.highWaterMark);\n }\n };\n Transform.prototype._read = function(n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function(err, cb) {\n Duplex.prototype._destroy.call(this, err, function(err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er)\n return stream.emit("error", er);\n if (data != null)\n stream.push(data);\n if (stream._writableState.length)\n throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming)\n throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_passthrough.js\nvar require_stream_passthrough = __commonJS({\n "node_modules/readable-stream/lib/_stream_passthrough.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = PassThrough;\n var Transform = require_stream_transform();\n require_inherits_browser()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough))\n return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n };\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/pipeline.js\nvar require_pipeline = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var eos;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = require_errors_browser().codes;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop2(err) {\n if (err)\n throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on("close", function() {\n closed = true;\n });\n if (eos === void 0)\n eos = require_end_of_stream();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function(err) {\n if (err)\n return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function(err) {\n if (closed)\n return;\n if (destroyed)\n return;\n destroyed = true;\n if (isRequest(stream))\n return stream.abort();\n if (typeof stream.destroy === "function")\n return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED("pipe"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length)\n return noop2;\n if (typeof streams[streams.length - 1] !== "function")\n return noop2;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0]))\n streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS("streams");\n }\n var error;\n var destroys = streams.map(function(stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function(err) {\n if (!error)\n error = err;\n if (err)\n destroys.forEach(call);\n if (reading)\n return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n module.exports = pipeline;\n }\n});\n\n// node_modules/readable-stream/readable-browser.js\nvar require_readable_browser = __commonJS({\n "node_modules/readable-stream/readable-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports = module.exports = require_stream_readable();\n exports.Stream = exports;\n exports.Readable = exports;\n exports.Writable = require_stream_writable();\n exports.Duplex = require_stream_duplex();\n exports.Transform = require_stream_transform();\n exports.PassThrough = require_stream_passthrough();\n exports.finished = require_end_of_stream();\n exports.pipeline = require_pipeline();\n }\n});\n\n// node_modules/readable-web-to-node-stream/lib/index.js\nvar require_lib = __commonJS({\n "node_modules/readable-web-to-node-stream/lib/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n Object.defineProperty(exports, "__esModule", { value: true });\n exports.ReadableWebToNodeStream = void 0;\n var readable_stream_1 = require_readable_browser();\n var ReadableWebToNodeStream2 = class extends readable_stream_1.Readable {\n constructor(stream) {\n super();\n this.bytesRead = 0;\n this.released = false;\n this.reader = stream.getReader();\n }\n async _read() {\n if (this.released) {\n this.push(null);\n return;\n }\n this.pendingRead = this.reader.read();\n const data = await this.pendingRead;\n delete this.pendingRead;\n if (data.done || this.released) {\n this.push(null);\n } else {\n this.bytesRead += data.value.length;\n this.push(data.value);\n }\n }\n async waitForReadToComplete() {\n if (this.pendingRead) {\n await this.pendingRead;\n }\n }\n async close() {\n await this.syncAndRelease();\n }\n async syncAndRelease() {\n this.released = true;\n await this.waitForReadToComplete();\n await this.reader.releaseLock();\n }\n };\n exports.ReadableWebToNodeStream = ReadableWebToNodeStream2;\n }\n});\n\n// node_modules/base-x/src/index.js\nvar require_src = __commonJS({\n "node_modules/base-x/src/index.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function base(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError("Alphabet too long");\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + " is ambiguous");\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode2(source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError("Expected Uint8Array");\n }\n if (source.length === 0) {\n return "";\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i2 = 0;\n for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== "string") {\n throw new TypeError("Expected String");\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i2 = 0;\n for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n psz++;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j2 = zeroes;\n while (it4 !== size) {\n vch[j2++] = b256[it4++];\n }\n return vch;\n }\n function decode3(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error("Non-base" + BASE + " character");\n }\n return {\n encode: encode2,\n decodeUnsafe,\n decode: decode3\n };\n }\n module.exports = base;\n }\n});\n\n// node_modules/bs58/index.js\nvar require_bs58 = __commonJS({\n "node_modules/bs58/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var basex = require_src();\n var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";\n module.exports = basex(ALPHABET);\n }\n});\n\n// node_modules/jpeg-js/lib/encoder.js\nvar require_encoder = __commonJS({\n "node_modules/jpeg-js/lib/encoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var btoa = btoa || function(buf2) {\n return Buffer2.from(buf2).toString("base64");\n };\n function JPEGEncoder(quality) {\n var self2 = this;\n var fround = Math.round;\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT2;\n var UVDC_HT2;\n var YAC_HT2;\n var UVAC_HT2;\n var bitcode2 = new Array(65535);\n var category2 = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n var std_dc_luminance_nrcodes2 = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\n var std_dc_luminance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes2 = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\n var std_ac_luminance_values2 = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n var std_dc_chrominance_nrcodes2 = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\n var std_dc_chrominance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes2 = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\n var std_ac_chrominance_values2 = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n if (t < 1) {\n t = 1;\n } else if (t > 255) {\n t = 255;\n }\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n if (u < 1) {\n u = 1;\n } else if (u > 255) {\n u = 255;\n }\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n fdtbl_UV[k] = 1 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n k++;\n }\n }\n }\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n function initHuffmanTbl() {\n YDC_HT2 = computeHuffmanTbl(std_dc_luminance_nrcodes2, std_dc_luminance_values2);\n UVDC_HT2 = computeHuffmanTbl(std_dc_chrominance_nrcodes2, std_dc_chrominance_values2);\n YAC_HT2 = computeHuffmanTbl(std_ac_luminance_nrcodes2, std_ac_luminance_values2);\n UVAC_HT2 = computeHuffmanTbl(std_ac_chrominance_nrcodes2, std_ac_chrominance_values2);\n }\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n for (var nr = nrlower; nr < nrupper; nr++) {\n category2[32767 + nr] = cat;\n bitcode2[32767 + nr] = [];\n bitcode2[32767 + nr][1] = cat;\n bitcode2[32767 + nr][0] = nr;\n }\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category2[32767 + nrneg] = cat;\n bitcode2[32767 + nrneg] = [];\n bitcode2[32767 + nrneg][1] = cat;\n bitcode2[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[i + 256 >> 0] = 38470 * i;\n RGB_YUV_TABLE[i + 512 >> 0] = 7471 * i + 32768;\n RGB_YUV_TABLE[i + 768 >> 0] = -11059 * i;\n RGB_YUV_TABLE[i + 1024 >> 0] = -21709 * i;\n RGB_YUV_TABLE[i + 1280 >> 0] = 32768 * i + 8421375;\n RGB_YUV_TABLE[i + 1536 >> 0] = -27439 * i;\n RGB_YUV_TABLE[i + 1792 >> 0] = -5329 * i;\n }\n }\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & 1 << posval) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 255) {\n writeByte(255);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n function writeByte(value) {\n byteout.push(value);\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n var tmp10 = tmp0 + tmp3;\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n data[dataOff] = tmp10 + tmp11;\n data[dataOff + 4] = tmp10 - tmp11;\n var z1 = (tmp12 + tmp13) * 0.707106781;\n data[dataOff + 2] = tmp13 + z1;\n data[dataOff + 6] = tmp13 - z1;\n tmp10 = tmp4 + tmp5;\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n var z5 = (tmp10 - tmp12) * 0.382683433;\n var z2 = 0.5411961 * tmp10 + z5;\n var z4 = 1.306562965 * tmp12 + z5;\n var z3 = tmp11 * 0.707106781;\n var z11 = tmp7 + z3;\n var z13 = tmp7 - z3;\n data[dataOff + 5] = z13 + z2;\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n dataOff += 8;\n }\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n var tmp10p2 = tmp0p2 + tmp3p2;\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n data[dataOff] = tmp10p2 + tmp11p2;\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781;\n data[dataOff + 16] = tmp13p2 + z1p2;\n data[dataOff + 48] = tmp13p2 - z1p2;\n tmp10p2 = tmp4p2 + tmp5p2;\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433;\n var z2p2 = 0.5411961 * tmp10p2 + z5p2;\n var z4p2 = 1.306562965 * tmp12p2 + z5p2;\n var z3p2 = tmp11p2 * 0.707106781;\n var z11p2 = tmp7p2 + z3p2;\n var z13p2 = tmp7p2 - z3p2;\n data[dataOff + 40] = z13p2 + z2p2;\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n dataOff++;\n }\n var fDCTQuant2;\n for (i = 0; i < I64; ++i) {\n fDCTQuant2 = data[i] * fdtbl[i];\n outputfDCTQuant[i] = fDCTQuant2 > 0 ? fDCTQuant2 + 0.5 | 0 : fDCTQuant2 - 0.5 | 0;\n }\n return outputfDCTQuant;\n }\n function writeAPP0() {\n writeWord(65504);\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n }\n function writeAPP1(exifBuffer) {\n if (!exifBuffer)\n return;\n writeWord(65505);\n if (exifBuffer[0] === 69 && exifBuffer[1] === 120 && exifBuffer[2] === 105 && exifBuffer[3] === 102) {\n writeWord(exifBuffer.length + 2);\n } else {\n writeWord(exifBuffer.length + 5 + 2);\n writeByte(69);\n writeByte(120);\n writeByte(105);\n writeByte(102);\n writeByte(0);\n }\n for (var i = 0; i < exifBuffer.length; i++) {\n writeByte(exifBuffer[i]);\n }\n }\n function writeSOF0(width, height) {\n writeWord(65472);\n writeWord(17);\n writeByte(8);\n writeWord(height);\n writeWord(width);\n writeByte(3);\n writeByte(1);\n writeByte(17);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(1);\n writeByte(3);\n writeByte(17);\n writeByte(1);\n }\n function writeDQT() {\n writeWord(65499);\n writeWord(132);\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n function writeDHT() {\n writeWord(65476);\n writeWord(418);\n writeByte(0);\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes2[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values2[j]);\n }\n writeByte(16);\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes2[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values2[l]);\n }\n writeByte(1);\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes2[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values2[n]);\n }\n writeByte(17);\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes2[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values2[p]);\n }\n }\n function writeCOM(comments) {\n if (typeof comments === "undefined" || comments.constructor !== Array)\n return;\n comments.forEach((e) => {\n if (typeof e !== "string")\n return;\n writeWord(65534);\n var l = e.length;\n writeWord(l + 2);\n var i;\n for (i = 0; i < l; i++)\n writeByte(e.charCodeAt(i));\n });\n }\n function writeSOS() {\n writeWord(65498);\n writeWord(12);\n writeByte(3);\n writeByte(1);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(3);\n writeByte(17);\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0];\n var M16zeroes = HTAC[240];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n if (Diff == 0) {\n writeBits(HTDC[0]);\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category2[pos]]);\n writeBits(bitcode2[pos]);\n }\n var end0pos = 63;\n for (; end0pos > 0 && DU[end0pos] == 0; end0pos--) {\n }\n ;\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n for (; DU[i] == 0 && i <= end0pos; ++i) {\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category2[pos]]);\n writeBits(bitcode2[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n clt[i] = sfcc(i);\n }\n }\n this.encode = function(image, quality2) {\n var time_start = new Date().getTime();\n if (quality2)\n setQuality(quality2);\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n writeWord(65496);\n writeAPP0();\n writeCOM(image.comments);\n writeAPP1(image.exifBuffer);\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n bytenew = 0;\n bytepos = 7;\n this.encode.displayName = "_encode_";\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n var quadWidth = width * 4;\n var tripleWidth = width * 3;\n var x, y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n p = start;\n col = -1;\n row = 0;\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3;\n col = (pos & 7) * 4;\n p = start + row * quadWidth + col;\n if (y + row >= height) {\n p -= quadWidth * (y + 1 + row - height);\n }\n if (x + col >= quadWidth) {\n p -= x + col - quadWidth + 4;\n }\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n YDU[pos] = (RGB_YUV_TABLE[r] + RGB_YUV_TABLE[g + 256 >> 0] + RGB_YUV_TABLE[b + 512 >> 0] >> 16) - 128;\n UDU[pos] = (RGB_YUV_TABLE[r + 768 >> 0] + RGB_YUV_TABLE[g + 1024 >> 0] + RGB_YUV_TABLE[b + 1280 >> 0] >> 16) - 128;\n VDU[pos] = (RGB_YUV_TABLE[r + 1280 >> 0] + RGB_YUV_TABLE[g + 1536 >> 0] + RGB_YUV_TABLE[b + 1792 >> 0] >> 16) - 128;\n }\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT2, YAC_HT2);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT2, UVAC_HT2);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT2, UVAC_HT2);\n x += 32;\n }\n y += 8;\n }\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << bytepos + 1) - 1;\n writeBits(fillbits);\n }\n writeWord(65497);\n if (typeof module === "undefined")\n return new Uint8Array(byteout);\n return Buffer2.from(byteout);\n var jpegDataUri = "data:image/jpeg;base64," + btoa(byteout.join(""));\n byteout = [];\n var duration = new Date().getTime() - time_start;\n return jpegDataUri;\n };\n function setQuality(quality2) {\n if (quality2 <= 0) {\n quality2 = 1;\n }\n if (quality2 > 100) {\n quality2 = 100;\n }\n if (currentQuality == quality2)\n return;\n var sf = 0;\n if (quality2 < 50) {\n sf = Math.floor(5e3 / quality2);\n } else {\n sf = Math.floor(200 - quality2 * 2);\n }\n initQuantTables(sf);\n currentQuality = quality2;\n }\n function init3() {\n var time_start = new Date().getTime();\n if (!quality)\n quality = 50;\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n setQuality(quality);\n var duration = new Date().getTime() - time_start;\n }\n init3();\n }\n if (typeof module !== "undefined") {\n module.exports = encode2;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].encode = encode2;\n }\n function encode2(imgData, qu) {\n if (typeof qu === "undefined")\n qu = 50;\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(imgData, qu);\n return {\n data,\n width: imgData.width,\n height: imgData.height\n };\n }\n }\n});\n\n// node_modules/jpeg-js/lib/decoder.js\nvar require_decoder = __commonJS({\n "node_modules/jpeg-js/lib/decoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var JpegImage = function jpegImage() {\n "use strict";\n var dctZigZag = new Int32Array([\n 0,\n 1,\n 8,\n 16,\n 9,\n 2,\n 3,\n 10,\n 17,\n 24,\n 32,\n 25,\n 18,\n 11,\n 4,\n 5,\n 12,\n 19,\n 26,\n 33,\n 40,\n 48,\n 41,\n 34,\n 27,\n 20,\n 13,\n 6,\n 7,\n 14,\n 21,\n 28,\n 35,\n 42,\n 49,\n 56,\n 57,\n 50,\n 43,\n 36,\n 29,\n 22,\n 15,\n 23,\n 30,\n 37,\n 44,\n 51,\n 58,\n 59,\n 52,\n 45,\n 38,\n 31,\n 39,\n 46,\n 53,\n 60,\n 61,\n 54,\n 47,\n 55,\n 62,\n 63\n ]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n function constructor() {\n }\n function buildHuffmanTable2(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, opts) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH, maxV = frame.maxV;\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 255) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new Error("unexpected marker: " + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree, bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === "number")\n return node;\n if (typeof node !== "object")\n throw new Error("invalid huffman sequence");\n }\n return null;\n }\n function receive(length) {\n var n2 = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null)\n return;\n n2 = n2 << 1 | bit;\n length--;\n }\n return n2;\n }\n function receiveAndExtend(length) {\n var n2 = receive(length);\n if (n2 >= 1 << length - 1)\n return n2;\n return n2 + (-1 << length) + 1;\n }\n function decodeBaseline(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n zz[0] = component2.pred += diff;\n var k2 = 1;\n while (k2 < 64) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15)\n break;\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s);\n k2++;\n }\n }\n function decodeDCFirst(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n zz[0] = component2.pred += diff;\n }\n function decodeDCSuccessive(component2, zz) {\n zz[0] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component2, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k2 = spectralStart, e = spectralEnd;\n while (k2 <= e) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k2++;\n }\n }\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component2, zz) {\n var k2 = spectralStart, e = spectralEnd, r = 0;\n while (k2 <= e) {\n var z = dctZigZag[k2];\n var direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0:\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1)\n throw new Error("invalid ACn encoding");\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n r--;\n if (r === 0)\n successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n break;\n }\n k2++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0)\n successiveACState = 0;\n }\n }\n function decodeMcu(component2, decode4, mcu2, row, col) {\n var mcuRow = mcu2 / mcusPerLine | 0;\n var mcuCol = mcu2 % mcusPerLine;\n var blockRow = mcuRow * component2.v + row;\n var blockCol = mcuCol * component2.h + col;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component2, decode4, mcu2) {\n var blockRow = mcu2 / component2.blocksPerLine | 0;\n var blockCol = mcu2 % component2.blocksPerLine;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0, marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval)\n resetInterval = mcuExpected;\n var h, v;\n while (mcu < mcuExpected) {\n for (i = 0; i < componentsLength; i++)\n components[i].pred = 0;\n eobrun = 0;\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n if (mcu === mcuExpected)\n break;\n }\n }\n if (mcu === mcuExpected) {\n do {\n if (data[offset] === 255) {\n if (data[offset + 1] !== 0) {\n break;\n }\n }\n offset += 1;\n } while (offset < data.length - 2);\n }\n bitsCount = 0;\n marker = data[offset] << 8 | data[offset + 1];\n if (marker < 65280) {\n throw new Error("marker was not found");\n }\n if (marker >= 65488 && marker <= 65495) {\n offset += 2;\n } else\n break;\n }\n return offset - startOffset;\n }\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var R = new Int32Array(64), r = new Uint8Array(64);\n function quantizeAndInverse(zz, dataOut, dataIn) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var p = dataIn;\n var i2;\n for (i2 = 0; i2 < 64; i2++)\n p[i2] = zz[i2] * qt[i2];\n for (i2 = 0; i2 < 8; ++i2) {\n var row = 8 * i2;\n if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 && p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 && p[7 + row] == 0) {\n t = dctSqrt2 * p[0 + row] + 512 >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 + row] + 128 >> 8;\n v1 = dctSqrt2 * p[4 + row] + 128 >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8;\n v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n for (i2 = 0; i2 < 8; ++i2) {\n var col = i2;\n if (p[1 * 8 + col] == 0 && p[2 * 8 + col] == 0 && p[3 * 8 + col] == 0 && p[4 * 8 + col] == 0 && p[5 * 8 + col] == 0 && p[6 * 8 + col] == 0 && p[7 * 8 + col] == 0) {\n t = dctSqrt2 * dataIn[i2 + 0] + 8192 >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12;\n v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n for (i2 = 0; i2 < 64; ++i2) {\n var sample2 = 128 + (p[i2] + 8 >> 4);\n dataOut[i2] = sample2 < 0 ? 0 : sample2 > 255 ? 255 : sample2;\n }\n }\n requestMemoryAllocation(samplesPerLine * blocksPerColumn * 8);\n var i, j;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (i = 0; i < 8; i++)\n lines.push(new Uint8Array(samplesPerLine));\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n var offset = 0, sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var line = lines[scanLine + j];\n for (i = 0; i < 8; i++)\n line[sample + i] = r[offset++];\n }\n }\n }\n return lines;\n }\n function clampTo8bit(a) {\n return a < 0 ? 0 : a > 255 ? 255 : a;\n }\n constructor.prototype = {\n load: function load(path) {\n var xhr = new XMLHttpRequest();\n xhr.open("GET", path, true);\n xhr.responseType = "arraybuffer";\n xhr.onload = function() {\n var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n this.parse(data);\n if (this.onload)\n this.onload();\n }.bind(this);\n xhr.send(null);\n },\n parse: function parse(data) {\n var maxResolutionInPixels = this.opts.maxResolutionInMP * 1e3 * 1e3;\n var offset = 0, length = data.length;\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length2 = readUint16();\n var array = data.subarray(offset, offset + length2 - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame2) {\n var maxH2 = 1, maxV2 = 1;\n var component2, componentId2;\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n if (maxH2 < component2.h)\n maxH2 = component2.h;\n if (maxV2 < component2.v)\n maxV2 = component2.v;\n }\n }\n var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / maxH2);\n var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / maxV2);\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component2.h / maxH2);\n var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component2.v / maxV2);\n var blocksPerLineForMcu = mcusPerLine * component2.h;\n var blocksPerColumnForMcu = mcusPerColumn * component2.v;\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\n var blocks = [];\n requestMemoryAllocation(blocksToAllocate * 256);\n for (var i2 = 0; i2 < blocksPerColumnForMcu; i2++) {\n var row = [];\n for (var j2 = 0; j2 < blocksPerLineForMcu; j2++)\n row.push(new Int32Array(64));\n blocks.push(row);\n }\n component2.blocksPerLine = blocksPerLine;\n component2.blocksPerColumn = blocksPerColumn;\n component2.blocks = blocks;\n }\n }\n frame2.maxH = maxH2;\n frame2.maxV = maxV2;\n frame2.mcusPerLine = mcusPerLine;\n frame2.mcusPerColumn = mcusPerColumn;\n }\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [], frames = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n var malformedDataOffset = -1;\n this.comments = [];\n if (fileMarker != 65496) {\n throw new Error("SOI not found");\n }\n fileMarker = readUint16();\n while (fileMarker != 65497) {\n var i, j, l;\n switch (fileMarker) {\n case 65280:\n break;\n case 65504:\n case 65505:\n case 65506:\n case 65507:\n case 65508:\n case 65509:\n case 65510:\n case 65511:\n case 65512:\n case 65513:\n case 65514:\n case 65515:\n case 65516:\n case 65517:\n case 65518:\n case 65519:\n case 65534:\n var appData = readDataBlock();\n if (fileMarker === 65534) {\n var comment = String.fromCharCode.apply(null, appData);\n this.comments.push(comment);\n }\n if (fileMarker === 65504) {\n if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n if (fileMarker === 65505) {\n if (appData[0] === 69 && appData[1] === 120 && appData[2] === 105 && appData[3] === 102 && appData[4] === 0) {\n this.exifBuffer = appData.subarray(5, appData.length);\n }\n }\n if (fileMarker === 65518) {\n if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) {\n adobe = {\n version: appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n case 65499:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n requestMemoryAllocation(64 * 4);\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else\n throw new Error("DQT: invalid table spec");\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 65472:\n case 65473:\n case 65474:\n readUint16();\n frame = {};\n frame.extended = fileMarker === 65473;\n frame.progressive = fileMarker === 65474;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = {};\n frame.componentsOrder = [];\n var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\n if (pixelsInFrame > maxResolutionInPixels) {\n var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\n throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\n }\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n var qId = data[offset + 2];\n if (h <= 0 || v <= 0) {\n throw new Error("Invalid sampling factor, expected values above 0");\n }\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId\n };\n offset += 3;\n }\n prepareComponents(frame);\n frames.push(frame);\n break;\n case 65476:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n requestMemoryAllocation(16 + codeLengthSum);\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable2(codeLengths, huffmanValues);\n }\n break;\n case 65501:\n readUint16();\n resetInterval = readUint16();\n break;\n case 65500:\n readUint16();\n readUint16();\n break;\n case 65498:\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n component = frame.components[data[offset++]];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, this.opts);\n offset += processed;\n break;\n case 65535:\n if (data[offset] !== 255) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n break;\n } else if (fileMarker === 224 || fileMarker == 225) {\n if (malformedDataOffset !== -1) {\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\n }\n malformedDataOffset = offset - 1;\n const nextOffset = readUint16();\n if (data[offset + nextOffset - 2] === 255) {\n offset += nextOffset - 2;\n break;\n }\n }\n throw new Error("unknown JPEG marker " + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n if (frames.length != 1)\n throw new Error("only single frame JPEGs supported");\n for (var i = 0; i < frames.length; i++) {\n var cp = frames[i].components;\n for (var j in cp) {\n cp[j].quantizationTable = quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (var i = 0; i < frame.componentsOrder.length; i++) {\n var component = frame.components[frame.componentsOrder[i]];\n this.components.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV\n });\n }\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width, scaleY = this.height / height;\n var component1, component2, component3, component4;\n var component1Line, component2Line, component3Line, component4Line;\n var x, y;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var dataLength = width * height * this.components.length;\n requestMemoryAllocation(dataLength);\n var data = new Uint8Array(dataLength);\n switch (this.components.length) {\n case 1:\n component1 = this.components[0];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 2:\n component1 = this.components[0];\n component2 = this.components[1];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n Y = component2Line[0 | x * component2.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 3:\n colorTransform = true;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n R = component1Line[0 | x * component1.scaleX * scaleX];\n G = component2Line[0 | x * component2.scaleX * scaleX];\n B = component3Line[0 | x * component3.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n R = clampTo8bit(Y + 1.402 * (Cr - 128));\n G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n B = clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = R;\n data[offset++] = G;\n data[offset++] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe)\n throw new Error("Unsupported color mode (4 components)");\n colorTransform = false;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n component4 = this.components[3];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n component4Line = component4.lines[0 | y * component4.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n C = component1Line[0 | x * component1.scaleX * scaleX];\n M = component2Line[0 | x * component2.scaleX * scaleX];\n Ye = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = 255 - C;\n data[offset++] = 255 - M;\n data[offset++] = 255 - Ye;\n data[offset++] = 255 - K;\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n return data;\n },\n copyToImageData: function copyToImageData(imageData, formatAsRGBA) {\n var width = imageData.width, height = imageData.height;\n var imageDataArray = imageData.data;\n var data = this.getData(width, height);\n var i = 0, j = 0, x, y;\n var Y, K, C, M, R, G, B;\n switch (this.components.length) {\n case 1:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n Y = data[i++];\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 3:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n R = data[i++];\n G = data[i++];\n B = data[i++];\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 4:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n C = data[i++];\n M = data[i++];\n Y = data[i++];\n K = data[i++];\n R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n }\n };\n var totalBytesAllocated = 0;\n var maxMemoryUsageBytes = 0;\n function requestMemoryAllocation(increaseAmount = 0) {\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\n }\n totalBytesAllocated = totalMemoryImpactBytes;\n }\n constructor.resetMaxMemoryUsage = function(maxMemoryUsageBytes_) {\n totalBytesAllocated = 0;\n maxMemoryUsageBytes = maxMemoryUsageBytes_;\n };\n constructor.getBytesAllocated = function() {\n return totalBytesAllocated;\n };\n constructor.requestMemoryAllocation = requestMemoryAllocation;\n return constructor;\n }();\n if (typeof module !== "undefined") {\n module.exports = decode3;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].decode = decode3;\n }\n function decode3(jpegData, userOpts = {}) {\n var defaultOpts = {\n colorTransform: void 0,\n useTArray: false,\n formatAsRGBA: true,\n tolerantDecoding: true,\n maxResolutionInMP: 100,\n maxMemoryUsageInMB: 512\n };\n var opts = { ...defaultOpts, ...userOpts };\n var arr = new Uint8Array(jpegData);\n var decoder = new JpegImage();\n decoder.opts = opts;\n JpegImage.resetMaxMemoryUsage(opts.maxMemoryUsageInMB * 1024 * 1024);\n decoder.parse(arr);\n var channels = opts.formatAsRGBA ? 4 : 3;\n var bytesNeeded = decoder.width * decoder.height * channels;\n try {\n JpegImage.requestMemoryAllocation(bytesNeeded);\n var image = {\n width: decoder.width,\n height: decoder.height,\n exifBuffer: decoder.exifBuffer,\n data: opts.useTArray ? new Uint8Array(bytesNeeded) : Buffer2.alloc(bytesNeeded)\n };\n if (decoder.comments.length > 0) {\n image["comments"] = decoder.comments;\n }\n } catch (err) {\n if (err instanceof RangeError) {\n throw new Error("Could not allocate enough memory for the image. Required: " + bytesNeeded);\n }\n if (err instanceof ReferenceError) {\n if (err.message === "Buffer is not defined") {\n throw new Error("Buffer is not globally defined in this environment. Consider setting useTArray to true");\n }\n }\n throw err;\n }\n decoder.copyToImageData(image, opts.formatAsRGBA);\n return image;\n }\n }\n});\n\n// node_modules/jpeg-js/index.js\nvar require_jpeg_js = __commonJS({\n "node_modules/jpeg-js/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var encode2 = require_encoder();\n var decode3 = require_decoder();\n module.exports = {\n encode: encode2,\n decode: decode3\n };\n }\n});\n\n// src/processor.worker.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/platform.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/requests.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar xmlhttprequest;\nif (false)\n xmlhttprequest = typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : typeof GM != "undefined" ? GM.xmlHttpRequest : window["GM_xmlhttpRequest"];\nvar GM_fetch = (...[url, opt, lisn]) => {\n function blobTo(to, blob) {\n if (to == "arrayBuffer" && blob.arrayBuffer) {\n const ret = blob.arrayBuffer();\n if (ret)\n return ret;\n }\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = function(event) {\n if (!event)\n return;\n if (to == "base64")\n resolve(event.target.result);\n else\n resolve(event.target.result);\n };\n if (to == "arrayBuffer")\n fileReader.readAsArrayBuffer(blob);\n else if (to == "base64")\n fileReader.readAsDataURL(blob);\n else if (to == "text")\n fileReader.readAsText(blob, "utf-8");\n else\n reject(new Error("unknown to"));\n });\n }\n return new Promise((resolve, reject) => {\n const gmopt = {\n url: url.toString(),\n data: opt?.body,\n responseType: "blob",\n headers: opt?.headers,\n method: opt?.method || "GET",\n ...lisn ? {\n onprogress: (prog) => {\n if (prog.loaded != prog.total && prog.total != 0)\n lisn.dispatchEvent(new CustomEvent("progress", { detail: [prog.loaded, prog.total] }));\n }\n } : {},\n onload: (resp) => {\n if (resp.status / 100 >= 4) {\n reject(new Error("Server Error: " + resp.status));\n return;\n }\n const blob = resp.response;\n const ref = resp;\n ref.blob = () => Promise.resolve(blob);\n ref.arrayBuffer = () => blobTo("arrayBuffer", blob);\n ref.text = () => blobTo("text", blob);\n ref.json = async () => JSON.parse(await blobTo("text", blob));\n resolve(resp);\n },\n ontimeout: () => reject(new Error("fetch timeout")),\n onerror: (...args) => {\n reject(new Error("fetch error"));\n },\n onabort: () => reject(new Error("fetch abort"))\n };\n xmlhttprequest(gmopt);\n });\n};\n\n// src/platform.ts\nvar lqueue = {};\nvar localSet = (key2, value) => localStorage.setItem("__pee__" + key2, JSON.stringify(value));\nvar port1;\nconsole.log("worker", false);\nvar msgBuff = [];\nvar setupPort = (port) => {\n port1 = port;\n port1.onmessage = (ev) => {\n lqueue[ev.data.id](ev.data);\n };\n if (true) {\n for (const msg of msgBuff) {\n port.postMessage(msg[0], { transfer: msg[1] });\n }\n msgBuff = [];\n }\n};\nif (true) {\n port1 = {\n onmessage(ev) {\n lqueue[ev.data.id](ev.data);\n },\n postMessage(msg, tr) {\n msgBuff.push([msg, tr]);\n }\n };\n}\nvar gid = 0;\nvar sendCmd = (cmd, tr, overwrite = false, todelete = false) => {\n const prom = new Promise((_) => {\n const id = gid++;\n if (overwrite)\n cmd.id = id;\n lqueue[id] = (e) => {\n _(e.res);\n if (todelete)\n delete lqueue[id];\n };\n port1.postMessage({ id, ...cmd }, tr || []);\n });\n return prom;\n};\nvar bridge = (name, f) => {\n if (false)\n return f;\n if (false)\n return f;\n return (...args) => {\n return sendCmd({ name, args });\n };\n};\nvar Bridged = (ctor) => {\n const keys = Object.getOwnPropertyNames(ctor).filter((k) => typeof ctor[k] == "function");\n for (const k of keys)\n ctor[k] = bridge(k, ctor[k]);\n};\nif (false) {\n popupport = chrome.runtime.connect({ name: "popup" });\n popupport.onMessage.addListener((msg) => {\n if (msg.id in pendingcmds) {\n pendingcmds[msg.id](msg);\n delete pendingcmds[msg.id];\n }\n });\n}\nvar Platform = class {\n static async openInTab(src, opts) {\n if (false) {\n return GM.openInTab(src, opts);\n }\n const obj = false ? chrome : browser;\n let i;\n if (opts.insert)\n i = (await obj.tabs.getCurrent()).index + 1;\n return obj.tabs.create({ active: opts.active, url: src, index: i });\n }\n static async getValue(key2, def) {\n const isinls = "__pee__" + key2 in localStorage;\n let ret;\n if (isinls) {\n let it = localStorage.getItem("__pee__" + key2);\n if (it === "undefined")\n it = null;\n ret = { ...def, ...JSON.parse(it || "{}") };\n } else\n ret = def;\n if (true) {\n if (isinls) {\n delete localStorage["__pee__" + key2];\n await chrome.storage.local.set({\n [key2]: JSON.stringify(ret)\n });\n } else {\n const d = await chrome.storage.local.get([key2]);\n if (typeof d[key2] == "string")\n return { ...def, ...await JSON.parse("" + d[key2] || "{}") };\n }\n }\n return ret;\n }\n static setValue(name, val) {\n localSet(name, val);\n }\n};\nPlatform.cmdid = 0;\nPlatform = __decorateClass([\n Bridged\n], Platform);\nvar corsFetch = async (input, init3, lsn) => {\n const id = gid++;\n let transfer = [];\n if (init3?.body) {\n if (false) {\n [init3.body, transfer] = await braveserialize(init3.body);\n }\n }\n const prom = new Promise((_, rej) => {\n let gcontroller;\n let buffer = [];\n let finished = false;\n const rs = new ReadableStream({\n start(controller) {\n gcontroller = controller;\n buffer.forEach((b) => gcontroller?.enqueue(b));\n buffer = [];\n if (finished) {\n gcontroller.close();\n }\n }\n });\n let s;\n s = 0;\n const cmdbuff = [];\n lqueue[id] = async (e) => {\n if (e.progress) {\n if (lsn)\n lsn.dispatchEvent(new CustomEvent("progress", { detail: e.progress }));\n }\n if (e.pushData) {\n if (e.s > s) {\n let idx = 0;\n while (idx < cmdbuff.length) {\n if (cmdbuff[idx].s > e.s)\n break;\n idx++;\n }\n cmdbuff.splice(idx, 0, e);\n return;\n }\n const processCmd = (e2) => {\n if (e2.pushData.data) {\n const data = new Uint8Array(e2.pushData.data);\n if (gcontroller)\n gcontroller.enqueue(data);\n else\n buffer.push(data);\n } else {\n if (gcontroller)\n gcontroller?.close();\n else\n finished = true;\n }\n };\n await processCmd(e);\n s++;\n while (cmdbuff[0]?.s == s) {\n await processCmd(cmdbuff.shift());\n s++;\n }\n }\n if (e.setRes) {\n const arrayBuffer = async () => {\n const r = rs.getReader();\n await sendCmd({ name: "fullyRead", fid: id });\n const abs = [];\n let res;\n do {\n res = await r.read();\n if (res.done)\n break;\n abs.push(res.value);\n } while (!res.done);\n const sum = abs.reduce((a, b) => a + b.byteLength, 0);\n const ret = new Uint8Array(sum);\n abs.reduce((ptr, arr) => {\n ret.set(arr, ptr);\n return ptr + arr.byteLength;\n }, 0);\n r.releaseLock();\n return ret;\n };\n const blob = async () => new Blob([await arrayBuffer()]);\n const text = async () => new TextDecoder().decode(await arrayBuffer());\n const json = async () => JSON.parse(await text());\n if (e.ok)\n _({\n body: rs,\n ok: e.ok,\n headers: e.headers,\n redirected: e.redirected,\n type: e.type,\n url: e.url,\n status: e.status,\n bodyUsed: e.bodyUsed,\n statusText: e.statusText,\n clone() {\n return this;\n },\n arrayBuffer,\n blob,\n text,\n json,\n async formData() {\n return new FormData();\n }\n });\n else {\n rej(new Error(`${e.url} - ${e.status}`));\n }\n }\n };\n port1.postMessage({\n id,\n name: "corsFetch",\n args: [input, init3]\n }, transfer);\n });\n return prom;\n};\nasync function getHeaders(s) {\n if (false)\n return headerStringToObject(await GM_head(s));\n const res = await ifetch(s, {\n method: "HEAD"\n });\n return res.headers;\n}\nasync function ifetch(...[url, opt, lisn]) {\n if (true)\n return corsFetch(url.toString(), opt, lisn);\n return GM_fetch(url, opt, lisn);\n}\nasync function* streamRemote(url, chunkSize = 72 * 1024, fetchRestOnNonCanceled = true) {\n let size = Number.POSITIVE_INFINITY;\n let ptr = 0;\n let fetchSize = chunkSize;\n while (ptr != size) {\n let obj;\n const fres = await ifetch(url, { headers: { range: `bytes=${ptr}-${ptr + fetchSize - 1}` } });\n if (false) {\n obj = headerStringToObject(fres.responseHeaders);\n } else {\n obj = fres.headers;\n }\n if (!("content-length" in obj)) {\n console.warn("no content lenght???", url);\n break;\n }\n if ("content-range" in obj) {\n size = +obj["content-range"].split("/")[1];\n }\n const len = +obj["content-length"];\n ptr += len;\n if (fetchRestOnNonCanceled)\n fetchSize = size;\n const val = Buffer2.from(await fres.arrayBuffer());\n const e = yield val;\n if (e) {\n break;\n }\n }\n}\n\n// src/stores.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/store/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/internal/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === "function";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function");\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nvar resolved_promise = Promise.resolve();\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nvar SvelteElement;\nif (typeof HTMLElement === "function") {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: "open" });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n for (const key2 in this.$$.slotted) {\n this.appendChild(this.$$.slotted[key2]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n\n// node_modules/svelte/store/index.mjs\nvar subscriber_queue = [];\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe2(run2, invalidate = noop) {\n const subscriber = [run2, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run2(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe: subscribe2 };\n}\n\n// src/stores.ts\nvar localLoad = async (key2, def) => {\n const ret = await Platform.getValue(key2, def);\n return ret;\n};\nvar localSet2 = (key2, value) => {\n if (true) {\n return;\n }\n if (true)\n chrome.storage.local.set({ [key2]: JSON.stringify(value) });\n else\n localStorage.setItem("__pee__" + key2, JSON.stringify(value));\n};\nvar initial_settings = {\n loop: true,\n dh: false,\n pmeth: 5,\n xpv: false,\n xpi: false,\n hyd: false,\n notcata: false,\n ak: "",\n auto_embed: 0,\n auto_tags: "",\n te: false,\n eye: false,\n ca: false,\n pre: false,\n prev: false,\n sh: false,\n ep: false,\n tm: false,\n dvc: false,\n expte: false,\n mdist: -1,\n phash: false,\n hotlink: false,\n jpeg: false,\n vercheck: false,\n cache: void 0,\n fhost: 0,\n maxe: 5,\n conc: 8,\n ho: false,\n blacklist: [],\n rsources: []\n};\nvar settings = writable();\nvar appState = writable({\n isCatalog: false,\n is4chanX: false,\n akValid: false,\n herror: "",\n client: null,\n processing: 0,\n processed: 0,\n foundPosts: []\n});\nsettings.subscribe((newVal) => {\n if (newVal)\n localSet2("settingsv2", newVal);\n});\n\n// src/pngv3.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer3 = __toESM(require_buffer(), 1);\n\n// src/png.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_crc_32 = __toESM(require_crc32(), 1);\nvar import_buffer = __toESM(require_buffer(), 1);\nvar PNGDecoder = class {\n constructor(reader, strict = true) {\n this.reader = reader;\n this.strict = strict;\n this.req = 8;\n this.ptr = 8;\n this.stopped = false;\n this.repr = import_buffer.Buffer.from([]);\n }\n async catchup() {\n while (this.repr.byteLength < this.req) {\n const chunk = await this.reader.read();\n if (chunk.done) {\n if (this.strict)\n throw new Error(`Unexpected EOF, got ${this.repr.byteLength}, required ${this.req}, ${chunk.value}`);\n this.stopped = true;\n return;\n }\n this.repr = import_buffer.Buffer.concat([this.repr, chunk.value]);\n }\n }\n async *chunks() {\n while (true) {\n this.req += 8;\n await this.catchup();\n if (this.stopped)\n break;\n const length = this.repr.readUInt32BE(this.ptr);\n const name = this.repr.slice(this.ptr + 4, this.ptr + 8).toString();\n this.ptr += 4;\n this.req += length + 4;\n await this.catchup();\n yield [\n name,\n this.repr.slice(this.ptr, this.ptr + length + 4),\n this.ptr + length > this.repr.length ? -1 : this.repr.readUInt32BE(this.ptr + length + 4),\n this.ptr\n ];\n if (this.stopped)\n break;\n this.ptr += length + 8;\n if (name == "IEND")\n break;\n }\n }\n async dtor() {\n }\n};\nvar PNGEncoder = class {\n constructor(bytes) {\n this.writer = bytes.getWriter();\n this.writer.write(import_buffer.Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]));\n }\n async insertchunk(chunk) {\n let b = import_buffer.Buffer.alloc(4);\n const buff = chunk[1];\n b.writeInt32BE(buff.length - 4, 0);\n await this.writer.write(b);\n await this.writer.write(buff);\n b = import_buffer.Buffer.alloc(4);\n b.writeInt32BE((0, import_crc_32.buf)(buff), 0);\n await this.writer.write(b);\n }\n async dtor() {\n this.writer.releaseLock();\n }\n};\n\n// src/utils.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer2 = __toESM(require_buffer(), 1);\n\n// src/assets/hasembed.png\nvar hasembed_default = __toBinary("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");\n\n// src/filehosts.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction parseForm(data) {\n const form = new FormData();\n Object.entries(data).filter(([key2, value]) => value !== null).map(([key2, value]) => form.append(key2, value));\n return form;\n}\nvar lolisafe = (domain, serving = domain) => ({\n domain,\n serving,\n async uploadFile(f) {\n const resp = await ifetch(`https://${domain}/api/upload`, {\n headers: {\n accept: "application/json"\n },\n "body": parseForm({\n reqtype: "fileupload",\n "files[]": new File([f], "f.pee")\n }),\n "method": "POST"\n });\n const res = await resp.json();\n return res.files.map((e) => e.url)[0];\n }\n});\nvar catbox = (domain, serving) => ({\n domain,\n serving,\n async uploadFile(inj) {\n const resp = await ifetch(`https://${domain}/user/api.php`, {\n method: "POST",\n body: parseForm({\n reqtype: "fileupload",\n fileToUpload: inj\n })\n });\n return resp.text();\n }\n});\nvar filehosts = [\n catbox("catbox.moe", "files.catbox.moe"),\n catbox("pomf.moe", "a.pomf.cat"),\n lolisafe("take-me-to.space"),\n lolisafe("zz.ht", "z.zz.fo")\n];\n\n// node_modules/file-type/browser.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer4 = __toESM(require_buffer(), 1);\nvar import_readable_web_to_node_stream = __toESM(require_lib(), 1);\n\n// node_modules/file-type/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer3 = __toESM(require_buffer(), 1);\n\n// node_modules/token-types/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar ieee754 = __toESM(require_ieee754(), 1);\nvar import_node_buffer = __toESM(require_buffer(), 1);\nvar AnsiStringType = class {\n constructor(len) {\n this.len = len;\n }\n static decode(buffer, offset, until) {\n let str = "";\n for (let i = offset; i < until; ++i) {\n str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));\n }\n return str;\n }\n static inRange(a, min, max) {\n return min <= a && a <= max;\n }\n static codePointToString(cp) {\n if (cp <= 65535) {\n return String.fromCharCode(cp);\n } else {\n cp -= 65536;\n return String.fromCharCode((cp >> 10) + 55296, (cp & 1023) + 56320);\n }\n }\n static singleByteDecoder(bite) {\n if (AnsiStringType.inRange(bite, 0, 127)) {\n return bite;\n }\n const codePoint = AnsiStringType.windows1252[bite - 128];\n if (codePoint === null) {\n throw Error("invaliding encoding");\n }\n return codePoint;\n }\n get(buffer, offset = 0) {\n return AnsiStringType.decode(buffer, offset, offset + this.len);\n }\n};\nAnsiStringType.windows1252 = [\n 8364,\n 129,\n 8218,\n 402,\n 8222,\n 8230,\n 8224,\n 8225,\n 710,\n 8240,\n 352,\n 8249,\n 338,\n 141,\n 381,\n 143,\n 144,\n 8216,\n 8217,\n 8220,\n 8221,\n 8226,\n 8211,\n 8212,\n 732,\n 8482,\n 353,\n 8250,\n 339,\n 157,\n 382,\n 376,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 174,\n 175,\n 176,\n 177,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 187,\n 188,\n 189,\n 190,\n 191,\n 192,\n 193,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 219,\n 220,\n 221,\n 222,\n 223,\n 224,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 235,\n 236,\n 237,\n 238,\n 239,\n 240,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250,\n 251,\n 252,\n 253,\n 254,\n 255\n];\n\n// node_modules/strtok3/lib/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/ReadStreamTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/EndOfFileStream.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/Deferred.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\nvar maxStreamReadSize = 1 * 1024 * 1024;\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\nvar import_node_buffer2 = __toESM(require_buffer(), 1);\n\n// node_modules/strtok3/lib/BufferTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/util.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/supported.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar extensions = [\n "jpg",\n "png",\n "apng",\n "gif",\n "webp",\n "flif",\n "xcf",\n "cr2",\n "cr3",\n "orf",\n "arw",\n "dng",\n "nef",\n "rw2",\n "raf",\n "tif",\n "bmp",\n "icns",\n "jxr",\n "psd",\n "indd",\n "zip",\n "tar",\n "rar",\n "gz",\n "bz2",\n "7z",\n "dmg",\n "mp4",\n "mid",\n "mkv",\n "webm",\n "mov",\n "avi",\n "mpg",\n "mp2",\n "mp3",\n "m4a",\n "oga",\n "ogg",\n "ogv",\n "opus",\n "flac",\n "wav",\n "spx",\n "amr",\n "pdf",\n "epub",\n "elf",\n "exe",\n "swf",\n "rtf",\n "wasm",\n "woff",\n "woff2",\n "eot",\n "ttf",\n "otf",\n "ico",\n "flv",\n "ps",\n "xz",\n "sqlite",\n "nes",\n "crx",\n "xpi",\n "cab",\n "deb",\n "ar",\n "rpm",\n "Z",\n "lz",\n "cfb",\n "mxf",\n "mts",\n "blend",\n "bpg",\n "docx",\n "pptx",\n "xlsx",\n "3gp",\n "3g2",\n "jp2",\n "jpm",\n "jpx",\n "mj2",\n "aif",\n "qcp",\n "odt",\n "ods",\n "odp",\n "xml",\n "mobi",\n "heic",\n "cur",\n "ktx",\n "ape",\n "wv",\n "dcm",\n "ics",\n "glb",\n "pcap",\n "dsf",\n "lnk",\n "alias",\n "voc",\n "ac3",\n "m4v",\n "m4p",\n "m4b",\n "f4v",\n "f4p",\n "f4b",\n "f4a",\n "mie",\n "asf",\n "ogm",\n "ogx",\n "mpc",\n "arrow",\n "shp",\n "aac",\n "mp1",\n "it",\n "s3m",\n "xm",\n "ai",\n "skp",\n "avif",\n "eps",\n "lzh",\n "pgp",\n "asar",\n "stl",\n "chm",\n "3mf",\n "zst",\n "jxl",\n "vcf"\n];\nvar mimeTypes = [\n "image/jpeg",\n "image/png",\n "image/gif",\n "image/webp",\n "image/flif",\n "image/x-xcf",\n "image/x-canon-cr2",\n "image/x-canon-cr3",\n "image/tiff",\n "image/bmp",\n "image/vnd.ms-photo",\n "image/vnd.adobe.photoshop",\n "application/x-indesign",\n "application/epub+zip",\n "application/x-xpinstall",\n "application/vnd.oasis.opendocument.text",\n "application/vnd.oasis.opendocument.spreadsheet",\n "application/vnd.oasis.opendocument.presentation",\n "application/vnd.openxmlformats-officedocument.wordprocessingml.document",\n "application/vnd.openxmlformats-officedocument.presentationml.presentation",\n "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",\n "application/zip",\n "application/x-tar",\n "application/x-rar-compressed",\n "application/gzip",\n "application/x-bzip2",\n "application/x-7z-compressed",\n "application/x-apple-diskimage",\n "application/x-apache-arrow",\n "video/mp4",\n "audio/midi",\n "video/x-matroska",\n "video/webm",\n "video/quicktime",\n "video/vnd.avi",\n "audio/vnd.wave",\n "audio/qcelp",\n "audio/x-ms-asf",\n "video/x-ms-asf",\n "application/vnd.ms-asf",\n "video/mpeg",\n "video/3gpp",\n "audio/mpeg",\n "audio/mp4",\n "audio/opus",\n "video/ogg",\n "audio/ogg",\n "application/ogg",\n "audio/x-flac",\n "audio/ape",\n "audio/wavpack",\n "audio/amr",\n "application/pdf",\n "application/x-elf",\n "application/x-msdownload",\n "application/x-shockwave-flash",\n "application/rtf",\n "application/wasm",\n "font/woff",\n "font/woff2",\n "application/vnd.ms-fontobject",\n "font/ttf",\n "font/otf",\n "image/x-icon",\n "video/x-flv",\n "application/postscript",\n "application/eps",\n "application/x-xz",\n "application/x-sqlite3",\n "application/x-nintendo-nes-rom",\n "application/x-google-chrome-extension",\n "application/vnd.ms-cab-compressed",\n "application/x-deb",\n "application/x-unix-archive",\n "application/x-rpm",\n "application/x-compress",\n "application/x-lzip",\n "application/x-cfb",\n "application/x-mie",\n "application/mxf",\n "video/mp2t",\n "application/x-blender",\n "image/bpg",\n "image/jp2",\n "image/jpx",\n "image/jpm",\n "image/mj2",\n "audio/aiff",\n "application/xml",\n "application/x-mobipocket-ebook",\n "image/heif",\n "image/heif-sequence",\n "image/heic",\n "image/heic-sequence",\n "image/icns",\n "image/ktx",\n "application/dicom",\n "audio/x-musepack",\n "text/calendar",\n "text/vcard",\n "model/gltf-binary",\n "application/vnd.tcpdump.pcap",\n "audio/x-dsf",\n "application/x.ms.shortcut",\n "application/x.apple.alias",\n "audio/x-voc",\n "audio/vnd.dolby.dd-raw",\n "audio/x-m4a",\n "image/apng",\n "image/x-olympus-orf",\n "image/x-sony-arw",\n "image/x-adobe-dng",\n "image/x-nikon-nef",\n "image/x-panasonic-rw2",\n "image/x-fujifilm-raf",\n "video/x-m4v",\n "video/3gpp2",\n "application/x-esri-shape",\n "audio/aac",\n "audio/x-it",\n "audio/x-s3m",\n "audio/x-xm",\n "video/MP1S",\n "video/MP2P",\n "application/vnd.sketchup.skp",\n "image/avif",\n "application/x-lzh-compressed",\n "application/pgp-encrypted",\n "application/x-asar",\n "model/stl",\n "application/vnd.ms-htmlhelp",\n "model/3mf",\n "image/jxl",\n "application/zstd"\n];\n\n// node_modules/file-type/core.js\nvar supportedExtensions = new Set(extensions);\nvar supportedMimeTypes = new Set(mimeTypes);\n\n// src/utils.ts\nvar csettings;\nsettings.subscribe((b) => {\n csettings = b;\n});\nvar threadDataCache = writable();\nvar cthreadDataCache;\nthreadDataCache.subscribe((newval) => {\n cthreadDataCache = newval;\n});\nvar decodeCoom3Payload = async (buff) => {\n if (!csettings)\n throw new Error("Settings uninit");\n const allowed_domains = filehosts.map((e) => e.serving.replaceAll(".", "\\\\."));\n const pees = buff.toString().split(" ").slice(0, csettings.maxe).filter((e) => allowed_domains.some((v) => e.match(`https://(.*\\\\.)?${v}/`)));\n return (await Promise.all(pees.map(async (pee) => {\n try {\n const m = pee.match(/(?https?):\\/\\/(?.*?)(?\\/.*)/);\n if (!m)\n return;\n const { domain, file } = m.groups;\n const headers = await getHeaders(pee);\n const res = await ifetch(pee, {\n headers: { range: "bytes=0-32767", "user-agent": "" },\n mode: "cors",\n referrerPolicy: "no-referrer"\n });\n const size = +headers["content-length"] || 0;\n const header = import_buffer2.Buffer.from(await res.arrayBuffer());\n let hptr = 0;\n if (header.slice(0, 4).toString() == "PEE\\0")\n hptr += 4;\n else\n return;\n const flags = header[hptr];\n const hasFn = !!(flags & 1);\n const hasTags = !!(flags & 2);\n const hasThumbnail = !!(flags & 4);\n let [ptr, ptr2] = [hptr + 1, hptr + 1];\n let fn = "embedded";\n let tags = [];\n let thumb = import_buffer2.Buffer.from(hasembed_default);\n if (hasFn) {\n while (header[ptr2] != 0)\n ptr2++;\n fn = header.slice(ptr, ptr2).toString();\n ptr = ++ptr2;\n }\n if (hasTags) {\n while (header[ptr2] != 0)\n ptr2++;\n tags = header.slice(ptr, ptr2).toString().split(/\\s+/);\n }\n let thumbsize = 0;\n if (hasThumbnail) {\n thumbsize = header.readInt32LE(ptr);\n ptr += 4;\n if (header.byteLength >= ptr + thumbsize)\n thumb = header.slice(ptr, ptr + thumbsize);\n else\n thumb = import_buffer2.Buffer.from(await (await ifetch(pee, { headers: { "user-agent": "", range: `bytes=${ptr}-${ptr + thumbsize}` } })).arrayBuffer());\n ptr += thumbsize;\n }\n const unzip = { url: pee, headers: { "user-agent": "", range: `bytes=${ptr}-${size - 1}` } };\n let data;\n data = unzip;\n if (size < 3072) {\n thumb = data = import_buffer2.Buffer.from(await (await ifetch(unzip.url, { headers: unzip.headers })).arrayBuffer());\n }\n return {\n filename: fn,\n data,\n thumbnail: thumb\n };\n } catch (e) {\n console.warn(e);\n }\n }))).filter((e) => e).map((e) => e);\n};\n\n// src/pngv3.ts\nvar bs58 = __toESM(require_bs58(), 1);\n\n// src/bitstream.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar revbyte = (n, len = 8) => {\n let acc = 0;\n let n2 = n;\n let len2 = len;\n while (len2) {\n acc = acc * 2 + (n2 & 1);\n n2 >>= 1;\n len2--;\n }\n return acc;\n};\nvar BitstreamReader = class {\n constructor() {\n this.buffers = [];\n this.bufferedLength = 0;\n this._offsetIntoBuffer = 0;\n this._bufferIndex = 0;\n this._offset = 0;\n this.skippedLength = 0;\n }\n get bufferIndex() {\n return this._bufferIndex;\n }\n get offset() {\n return this._offset;\n }\n get available() {\n return this.bufferedLength - this.skippedLength;\n }\n getBit(offset) {\n const byte = this.buffers[0][offset >> 3];\n return +!!(byte & 1 << (offset & 7));\n }\n readSync(length) {\n let value = 0;\n if (this._offset >> 3 > this.buffers[0].byteLength) {\n throw "Out of data";\n }\n for (let i = length - 1; i >= 0; --i) {\n value = value * 2 + this.getBit(this._offset + i);\n }\n this._offset += length;\n this.bufferedLength -= length;\n return value;\n }\n addBuffer(buffer) {\n this.buffers.push(buffer);\n this.bufferedLength += buffer.length * 8;\n }\n};\nvar BitstreamWriter = class {\n constructor(stream, bufferSize = 1) {\n this.stream = stream;\n this.pendingBits = 0;\n this.bufferoffset = 0;\n this._offset = 0;\n bufferSize = 1;\n this.buffer = new Uint8Array(bufferSize);\n }\n get offset() {\n return this._offset;\n }\n get byteOffset() {\n return this.pendingBits;\n }\n end() {\n this.flush();\n }\n flush() {\n this.stream.write(new Uint8Array(this.buffer));\n this.bufferoffset = 0;\n this.buffer.fill(0);\n }\n setBit(b) {\n let byte = this.buffer[0];\n byte |= b << (this._offset & 7);\n this.buffer[0] = byte;\n this._offset += 1;\n if (++this.bufferoffset == this.buffer.length * 8) {\n this.flush();\n }\n }\n write(length, value) {\n while (length--) {\n this.setBit(value & 1);\n value >>= 1;\n }\n }\n};\n\n// src/dh-deflate.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar TINF_OK = 0;\nvar Tree = class {\n constructor() {\n this.table = new Uint16Array(16);\n this.trans = new Uint16Array(288);\n }\n};\nvar getPathTo = (tree, value) => {\n if (tree[0] === value)\n return "0";\n if (tree[1] === value)\n return "1";\n let p;\n if (typeof tree[0] != "number")\n p = getPathTo(tree[0], value);\n let b = "0";\n if (!p) {\n if (tree[1] && typeof tree[1] != "number")\n p = getPathTo(tree[1], value);\n b = "1";\n }\n if (p)\n return b + p;\n};\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n let p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\nvar Data = class {\n constructor(source, dests, to_hide, hidden) {\n this.source = source;\n this.dests = dests;\n this.to_hide = to_hide;\n this.hidden = hidden;\n this.pathMap = /* @__PURE__ */ new Map();\n this.dest = [];\n this.ltree = new Tree();\n this.dtree = new Tree();\n }\n computeReverse() {\n this.rltree = buildHuffmanTable(this.ltree.table, this.ltree.trans)[0];\n this.rdtree = buildHuffmanTable(this.dtree.table, this.dtree.trans)[0];\n this.adists = new Set(this.rdtree.flat(16));\n }\n};\nvar sltree = new Tree();\nvar sdtree = new Tree();\nvar rltree;\nvar rdtree;\nvar sadist;\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\nvar clcidx = new Uint8Array([\n 16,\n 17,\n 18,\n 0,\n 8,\n 7,\n 9,\n 6,\n 10,\n 5,\n 11,\n 4,\n 12,\n 3,\n 13,\n 2,\n 14,\n 1,\n 15\n]);\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\nfunction tinf_build_bits_base(bits, base, delta, first) {\n let i, sum;\n for (i = 0; i < delta; ++i)\n bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i)\n bits[i + delta] = i / delta | 0;\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\nfunction tinf_build_fixed_trees(lt, dt) {\n let i;\n for (i = 0; i < 7; ++i)\n lt.table[i] = 0;\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n for (i = 0; i < 24; ++i)\n lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i)\n lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i)\n lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i)\n lt.trans[24 + 144 + 8 + i] = 144 + i;\n for (i = 0; i < 5; ++i)\n dt.table[i] = 0;\n dt.table[5] = 32;\n for (i = 0; i < 32; ++i)\n dt.trans[i] = i;\n}\nvar offs = new Uint16Array(16);\nfunction tinf_build_tree(t, lengths2, off, num) {\n let i, sum;\n for (i = 0; i < 16; ++i)\n t.table[i] = 0;\n for (i = 0; i < num; ++i)\n t.table[lengths2[off + i]]++;\n t.table[0] = 0;\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n for (i = 0; i < num; ++i) {\n if (lengths2[off + i])\n t.trans[offs[lengths2[off + i]]++] = i;\n }\n}\nfunction tinf_getbit(d) {\n const v = d.source.readSync(1);\n return v;\n}\nvar loff = 0;\nvar loffs = [];\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n const v = d.source.readSync(num) + base;\n loff = v;\n loffs.push(v);\n if (loffs.length > 4) {\n loffs.shift();\n }\n return v;\n}\nfunction tinf_decode_symbol(d, t, copy = true, ext = {}) {\n let sum = 0, cur = 0, len = 0;\n let s = 0;\n do {\n const b = d.source.readSync(1);\n copy && d.hidden?.write(1, b);\n s = s << 1 | b;\n cur = 2 * cur + b;\n ++len;\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n ext.length = len;\n ext.sym = s;\n return t.trans[sum + cur];\n}\nfunction tinf_decode_trees(d, lt, dt, copy = true) {\n let i, num, length;\n const hlit = tinf_read_bits(d, 5, 257);\n copy && d.hidden?.write(5, hlit - 257);\n const hdist = tinf_read_bits(d, 5, 1);\n copy && d.hidden?.write(5, hdist - 1);\n const hclen = tinf_read_bits(d, 4, 4);\n copy && d.hidden?.write(4, hclen - 4);\n for (i = 0; i < 19; ++i)\n lengths[i] = 0;\n for (i = 0; i < hclen; ++i) {\n const clen = tinf_read_bits(d, 3, 0);\n copy && d.hidden?.write(3, clen);\n lengths[clcidx[i]] = clen;\n }\n tinf_build_tree(code_tree, lengths, 0, 19);\n for (num = 0; num < hlit + hdist; ) {\n const sym = tinf_decode_symbol(d, code_tree, copy);\n let prev;\n switch (sym) {\n case 16:\n prev = lengths[num - 1];\n length = tinf_read_bits(d, 2, 3);\n copy && d.hidden?.write(2, length - 3);\n for (; length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n length = tinf_read_bits(d, 3, 3);\n copy && d.hidden?.write(3, length - 3);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n length = tinf_read_bits(d, 7, 11);\n copy && d.hidden?.write(7, length - 11);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n lengths[num++] = sym;\n break;\n }\n }\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\nvar get_symbol = (value, bits_table, base_table) => {\n let i = 0;\n for (i = 0; i < base_table.length; ++i) {\n if (base_table[i] > value) {\n i--;\n return [i, bits_table[i], value - base_table[i]];\n }\n }\n i--;\n return [i, bits_table[i], value - base_table[i]];\n};\nvar encode_symbol = (sym, tree, pathMap) => {\n const code = getPathTo(tree, sym);\n const v = {\n length: code?.length,\n val: parseInt(code, 2)\n };\n return v;\n};\nvar capacity = 0;\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n let sym = tinf_decode_symbol(d, lt);\n if (sym === 256) {\n return TINF_OK;\n }\n if (sym < 256) {\n d.dest.push(sym);\n } else {\n sym -= 257;\n const length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n if (length_bits[sym])\n d.hidden?.write(length_bits[sym], length - length_base[sym]);\n const ext = { length: 0, sym: 0 };\n const dist = tinf_decode_symbol(d, dt, false, ext);\n let backoffset = tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n const offs2 = d.dest.length - backoffset;\n let match;\n const skip = !d.to_hide || d.to_hide && d.to_hide instanceof BitstreamReader && d.to_hide.available == 0;\n if (!skip && (match = Buffer2.from(d.dest.slice(offs2, offs2 + length))).length == length) {\n let begin = d.dest.length - 32768;\n if (begin < 0)\n begin = 0;\n let matches = [];\n let o = 0;\n const slic = Buffer2.from(d.dest.slice(begin + o, d.dest.length));\n while (begin + o < d.dest.length) {\n const r = slic.slice(o, d.dest.length).indexOf(match);\n if (r >= 0) {\n matches.push(r + begin + o);\n o += r;\n } else {\n break;\n }\n o++;\n }\n if (matches.length > 1) {\n matches = matches.map((e) => -(e - d.dest.length)).filter((e) => {\n const [dsym2] = get_symbol(e, dist_bits, dist_base);\n return d.adists.has(dsym2);\n });\n matches.reverse();\n const v = Math.floor(Math.log2(matches.length));\n capacity += v;\n if (d.to_hide instanceof BitstreamReader) {\n if (d.to_hide.available) {\n const s = d.to_hide.readSync(Math.min(d.to_hide.available, v));\n backoffset = matches[s];\n }\n } else {\n const idx = matches.indexOf(backoffset);\n d.to_hide.write(v, idx);\n }\n }\n }\n const [dsym, dlen, doff] = get_symbol(backoffset, dist_bits, dist_base);\n const encdist = encode_symbol(dsym, d.rdtree, d.pathMap);\n d.hidden?.write(encdist.length, revbyte(encdist.val, encdist.length));\n d.hidden?.write(dlen, doff);\n for (let i = offs2; i < offs2 + length; ++i) {\n d.dest.push(d.dest[i]);\n }\n }\n }\n}\nfunction tinf_inflate_uncompressed_block(d) {\n if (d.source.offset & 7)\n d.source.readSync(8 - d.source.offset & 7);\n if (d.hidden && d.hidden.offset & 7)\n d.hidden?.write(8 - d.hidden.offset & 7, 0);\n const length = d.source.readSync(16);\n d.hidden?.write(16, length);\n const invlength = d.source.readSync(16);\n d.hidden?.write(16, invlength);\n if (length !== (~invlength & 65535)) {\n return -4;\n }\n for (let i = length; i; --i) {\n const v = d.source.readSync(8);\n d.dest.push(v);\n d.hidden?.write(8, v);\n }\n return TINF_OK;\n}\nfunction tinf_uncompress(source, decompressed, to_hide, hidden, opt = 0) {\n const decomp = decompressed ? new BitstreamWriter({ write: decompressed }) : null;\n const hid = hidden && new BitstreamWriter({ write: hidden }, 4);\n const d = new Data(source, decomp, to_hide, hid);\n let res;\n let bfinal, btype;\n do {\n bfinal = tinf_getbit(d);\n d.hidden?.write(1, bfinal);\n btype = tinf_read_bits(d, 2, 0);\n d.hidden?.write(2, btype);\n switch (btype) {\n case 0:\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n d.rdtree = rdtree;\n d.rltree = rltree;\n d.adists = sadist;\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n tinf_decode_trees(d, d.ltree, d.dtree);\n d.computeReverse();\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = -2;\n }\n if (res !== TINF_OK)\n throw new Error("Data error " + res);\n } while (!bfinal);\n decomp?.end();\n hid?.end();\n}\ntinf_build_fixed_trees(sltree, sdtree);\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\nrltree = buildHuffmanTable(sltree.table, sltree.trans)[0];\nrdtree = buildHuffmanTable(sdtree.table, sdtree.trans)[0];\nsadist = new Set(rdtree.flat(16));\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\n// src/pngv3.ts\nvar csettings2;\nsettings.subscribe((b) => {\n csettings2 = b;\n});\nvar CUM3 = import_buffer3.Buffer.from("doo\\0m");\nvar CUM4 = import_buffer3.Buffer.from("voo\\0m");\nvar CUM5 = import_buffer3.Buffer.from("boo\\0");\nvar CUM6 = import_buffer3.Buffer.from("Creation Time\\0");\nvar CUM7 = import_buffer3.Buffer.from("Software\\0");\nvar BufferReadStream = (b) => {\n const ret = new ReadableStream({\n pull(cont) {\n cont.enqueue(b);\n cont.close();\n }\n });\n return ret;\n};\nvar password = import_buffer3.Buffer.from("NOA");\nvar xor = (a, p) => {\n let n = 0;\n for (let i = 0; i < a.byteLength; ++i) {\n a[i] ^= p[n];\n n++;\n n %= p.byteLength;\n }\n};\nvar prefs = {\n "files.catbox.moe": "c",\n "a.pomf.cat": "p",\n "take-me-to.space": "t",\n "z.zz.fo": "z"\n};\nvar rprefs = {\n "c": "files.catbox.moe",\n "p": "a.pomf.cat",\n "t": "take-me-to.space",\n "z": "z.zz.fo"\n};\nvar extractFromRawDeflate = (b) => {\n const src = new BitstreamReader();\n src.addBuffer(b);\n const chnks = [];\n const hidden = new BitstreamWriter({\n write(chunk) {\n for (const i of chunk) {\n if (i >= 32 && i <= 128)\n chnks.push(i);\n else\n throw "Finish";\n }\n }\n });\n try {\n tinf_uncompress(src, void 0, hidden, void 0);\n } catch (e) {\n if (e == "Finish")\n return import_buffer3.Buffer.from(chnks);\n }\n return false;\n};\nvar extract = async (png, doextract = true) => {\n const reader = BufferReadStream(png).getReader();\n const sneed = new PNGDecoder(reader, false);\n const ret = [];\n let w;\n if (!csettings2)\n throw new Error("Settings uninit");\n try {\n let complete = false;\n const idats = [];\n for await (const [name, chunk, crc, offset] of sneed.chunks()) {\n let buff;\n switch (name) {\n case "tEXt":\n buff = chunk;\n if (buff.slice(4, 4 + CUM3.length).equals(CUM3)) {\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(buff.slice(4 + CUM3.length));\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM4.length).equals(CUM4)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM4.length);\n xor(passed, password);\n const k = await decodeCoom3Payload(passed);\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM5.length).equals(CUM5)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM5.length);\n const decoded = import_buffer3.Buffer.from(passed.toString(), "base64").toString().split(" ").map((e) => {\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n }\n if (w = [CUM6, CUM7].find((e) => buff.slice(4, 4 + e.length).equals(e))) {\n const passed = buff.slice(4 + w.length);\n if (!passed.toString().match(/^[0-9a-zA-Z+/=]+$/g))\n continue;\n const decoders = [\n (b) => import_buffer3.Buffer.from(b.toString(), "base64").toString(),\n (b) => import_buffer3.Buffer.from(bs58.decode(passed.toString())).toString()\n ];\n for (const d of decoders) {\n try {\n const decoded = d(passed).split(" ").map((e) => {\n if (!(e[0] in rprefs))\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n } catch (e) {\n }\n }\n }\n break;\n case "IDAT":\n if (ret.length)\n return ret;\n buff = chunk;\n idats.push(buff.slice(4));\n break;\n case "IEND":\n complete = true;\n default:\n break;\n }\n }\n if (idats.length) {\n let decoded;\n if ((decoded = extractFromRawDeflate(import_buffer3.Buffer.concat(idats).slice(2))) === false)\n return false;\n const dec = decoded.toString().split(" ").map((e) => {\n if (!(e[0] in rprefs) || e.length < 5)\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (doextract)\n return decodeCoom3Payload(import_buffer3.Buffer.from(dec));\n return true;\n }\n } catch (e) {\n if (e != "Uhh")\n console.error(e);\n } finally {\n reader.releaseLock();\n }\n};\nvar buildChunk = (tag, data) => {\n const ret = import_buffer3.Buffer.alloc(data.byteLength + 4);\n ret.write(tag.slice(0, 4), 0);\n data.copy(ret, 4);\n return ret;\n};\nvar BufferWriteStream = () => {\n let b = import_buffer3.Buffer.from([]);\n const ret = new WritableStream({\n write(chunk) {\n b = import_buffer3.Buffer.concat([b, chunk]);\n console.log("finished appending");\n }\n });\n return [ret, () => b];\n};\nvar embedInRawDeflate = (b, h) => {\n const src = new BitstreamReader();\n const hid = new BitstreamReader();\n hid.addBuffer(h);\n src.addBuffer(b);\n const chnks = [];\n tinf_uncompress(src, void 0, hid, (c) => chnks.push(c));\n return import_buffer3.Buffer.concat(chnks);\n};\nvar inject_data = async (container, injb) => {\n injb = import_buffer3.Buffer.concat([injb, import_buffer3.Buffer.from([0])]);\n if (!csettings2)\n throw new Error("Settings uninit");\n if (csettings2.pmeth < 5) {\n let magic = false;\n const [writestream2, extract6] = BufferWriteStream();\n const encoder = new PNGEncoder(writestream2);\n const decoder = new PNGDecoder(container.stream().getReader());\n for await (const [name, chunk, crc, offset] of decoder.chunks()) {\n if (magic && name != "IDAT")\n break;\n if (!magic && name == "IDAT") {\n const passed = import_buffer3.Buffer.from(injb);\n switch (csettings2.pmeth) {\n case 0:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM3, passed])), 0, 0]);\n break;\n case 1:\n xor(passed, password);\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM4, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 2:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM5, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 3:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM6, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 4:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM7, import_buffer3.Buffer.from(bs58.encode(passed))])), 0, 0]);\n break;\n }\n magic = true;\n }\n await encoder.insertchunk([name, chunk, crc, offset]);\n }\n await encoder.insertchunk([\n "IEND",\n buildChunk("IEND", import_buffer3.Buffer.from([])),\n 0,\n 0\n ]);\n return extract6();\n }\n let pdec = new PNGDecoder(container.stream().getReader());\n const concat = [];\n for await (const chk of pdec.chunks())\n if (chk[0] == "IDAT")\n concat.push(chk[1].slice(4));\n const comp = import_buffer3.Buffer.concat(concat);\n const head = comp.slice(0, 2);\n const chksum = comp.slice(-4);\n const idatblk = embedInRawDeflate(comp.slice(2, -4), injb);\n const [writestream, extract5] = BufferWriteStream();\n const penc = new PNGEncoder(writestream);\n pdec = new PNGDecoder(container.stream().getReader());\n let ins = false;\n for await (const chk of pdec.chunks()) {\n if (chk[0] != "IDAT") {\n await penc.insertchunk(chk);\n } else {\n if (!ins) {\n await penc.insertchunk(["IDAT", import_buffer3.Buffer.concat([import_buffer3.Buffer.from("IDAT"), head, idatblk, chksum]), 0, 0]);\n ins = true;\n }\n }\n }\n await penc.dtor();\n console.log("Finished writing");\n return extract5();\n};\nvar inject = async (container, links) => {\n links = links.map((link) => {\n for (const h of filehosts) {\n if (link.includes(h.serving)) {\n const end = link.split("/").slice(-1)[0];\n return `${prefs[h.serving]}${end}`;\n }\n }\n return "";\n });\n const injb = import_buffer3.Buffer.from(links.join(" "));\n return inject_data(container, injb);\n};\nvar has_embed = async (png) => {\n const r = await extract(png, false);\n return !!r;\n};\nvar pngv3_default = {\n extract,\n has_embed,\n inject,\n match: (fn) => !!fn.match(/\\.png$/)\n};\n\n// src/jpg.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer4 = __toESM(require_buffer(), 1);\n\n// src/f5stego.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction* f5get() {\n let extrBit = 0;\n let k = 0;\n for (let i = 0; i < 4; ++i) {\n const b2 = yield;\n k |= b2 << i;\n }\n k = (k & 15) + 1;\n let toread = 8;\n let len = 0;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const b = yield;\n toread += 8;\n if (b)\n toread += 7;\n else\n len *= 2;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const rlen = revbyte(len, b ? 23 : 16);\n len = rlen;\n if (len > 256)\n throw new Error("Too big for Smash");\n len *= 8;\n const chunks = [];\n const bw = new BitstreamWriter({\n write(chunk) {\n chunks.push(chunk);\n }\n });\n while (len) {\n extrBit = yield;\n bw.write(1, extrBit);\n len--;\n }\n bw.end();\n return Buffer2.concat(chunks).slice(0, rlen);\n}\nvar bitcode = new Array(65535);\nvar category = new Array(65535);\nvar std_dc_luminance_nrcodes = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\nvar std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_luminance_nrcodes = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\nvar std_ac_luminance_values = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nvar std_dc_chrominance_nrcodes = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\nvar std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_chrominance_nrcodes = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\nvar std_ac_chrominance_values = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nfunction _initCategoryNumber() {\n let nrlower = 1;\n let nrupper = 2;\n for (let cat = 1; cat <= 15; cat++) {\n for (let nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n for (let nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n}\n_initCategoryNumber();\nfunction _computeHuffmanTbl(nrcodes, std_table) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = [];\n for (let k = 1; k <= 16; k++) {\n for (let j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n}\nvar YDC_HT = _computeHuffmanTbl(std_dc_luminance_nrcodes, std_dc_luminance_values);\nvar UVDC_HT = _computeHuffmanTbl(std_dc_chrominance_nrcodes, std_dc_chrominance_values);\nvar YAC_HT = _computeHuffmanTbl(std_ac_luminance_nrcodes, std_ac_luminance_values);\nvar UVAC_HT = _computeHuffmanTbl(std_ac_chrominance_nrcodes, std_ac_chrominance_values);\nvar __raw, _jfif, _APPn, _qts, _frame, _tail, __f5write, _f5write_fn;\nvar f5stego = class {\n constructor(key2, maxPixels = 4096 * 4096) {\n this.maxPixels = maxPixels;\n __privateAdd(this, __f5write);\n __privateAdd(this, __raw, void 0);\n __privateAdd(this, _jfif, void 0);\n __privateAdd(this, _APPn, void 0);\n __privateAdd(this, _qts, void 0);\n __privateAdd(this, _frame, null);\n __privateAdd(this, _tail, null);\n }\n embed(image, data, k) {\n this.parse(image);\n this.f5put(data, k);\n return this.pack();\n }\n extract(image) {\n try {\n this.gengen = f5get();\n this.gengen.next();\n this.parse(image, true);\n return this.f5get();\n } catch (e) {\n if (e instanceof Buffer2)\n return e;\n throw e;\n }\n }\n f5put(data, k) {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let t, i, comp = __privateGet(this, _frame).components[0];\n if (data.length > 8388607)\n throw "Data too big. Max 8388607 bytes allowed.";\n if (data.length < 32768) {\n t = new Uint8Array(2 + data.length);\n t[0] = data.length & 255;\n t[1] = data.length >>> 8;\n t.set(data, 2);\n } else {\n t = new Uint8Array(3 + data.length);\n t[0] = data.length & 255;\n t[1] = (data.length >>> 8 & 127) + 128;\n t[2] = data.length >>> 15;\n t.set(data, 3);\n }\n if (comp.componentId != 1) {\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n return __privateMethod(this, __f5write, _f5write_fn).call(this, comp.blocks, t, k);\n }\n f5get() {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let comp = __privateGet(this, _frame).components[0];\n if (comp.componentId != 1) {\n for (let i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n const coeff = new Int16Array(comp.blocks.length);\n coeff.set(comp.blocks);\n let pos = -1, extrBit = 0, cCount = coeff.length - 1;\n let n, k = 0;\n let out = new Uint8Array(coeff.length / 8 | 0), extrByte = 0, outPos = 0, bitsAvail = 0, code = 0, hash = 0;\n while (bitsAvail < 4) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n k |= extrBit << bitsAvail;\n bitsAvail++;\n }\n k = (k & 15) + 1;\n n = (1 << k) - 1;\n bitsAvail = 0;\n if (k == 1) {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n extrByte |= extrBit << bitsAvail;\n bitsAvail++;\n if (bitsAvail == 8) {\n out[outPos++] = extrByte;\n extrByte = 0;\n bitsAvail = 0;\n }\n }\n } else {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n hash ^= extrBit * ++code;\n if (code == n) {\n extrByte |= hash << bitsAvail;\n bitsAvail += k;\n code = 0;\n hash = 0;\n while (bitsAvail >= 8) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n }\n }\n }\n while (bitsAvail > 0) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n let s = 2, l = out[0];\n if (out[1] & 128) {\n s++;\n l += ((out[1] & 127) << 8) + (out[2] << 15);\n } else {\n l += out[1] << 8;\n }\n return out.subarray(s, s + l);\n }\n parse(data, tolerant = false) {\n let offset = 0;\n function _buildHuffmanTable(nrcodes, values) {\n let codevalue = 0, pos_in_table = 0, HT = new Uint16Array(65536);\n for (let k = 0; k < 16; k++) {\n for (let j2 = 0; j2 < nrcodes[k]; j2++) {\n for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) {\n HT[i2] = values[pos_in_table] + (k + 1 << 8);\n }\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => {\n let startOffset = offset2, bitsData = 0, bitsCount = 0, eobrun = 0, p1 = 1 << successive, m1 = -1 << successive;\n const prevpos = 0;\n const decodeBaseline = (component2, pos) => {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n let diff = 0;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff;\n let k2 = 1, s, r;\n while (k2 < 64) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n bitsCount -= s;\n k2++;\n }\n };\n function decodeDCFirst(component2, pos) {\n let diff = 0;\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff << successive;\n }\n function decodeDCSuccessive(component2, pos) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocksDC[pos >> 6] |= (bitsData >>> --bitsCount & 1) << successive;\n }\n if (!frame)\n throw "Frame not parsed yet";\n function decodeACFirst(component2, pos) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k2 = spectralStart, s, r;\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r != 15) {\n eobrun = (1 << r) - 1;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n bitsCount -= s;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n component2.blocks[pos + k2] *= p1;\n k2++;\n }\n }\n function decodeACSuccessive(component2, pos) {\n let k2 = spectralStart, r, s;\n if (frame == null)\n throw "Frame not defined";\n if (!eobrun) {\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s) {\n if (s != 1)\n throw "bad jpeg";\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n s = bitsData >>> --bitsCount & 1 ? p1 : m1;\n } else {\n if (r != 15) {\n eobrun = 1 << r;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n }\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n } else {\n if (--r < 0)\n break;\n }\n k2++;\n }\n if (s)\n component2.blocks[pos + k2] = s;\n k2++;\n }\n }\n if (eobrun) {\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n }\n k2++;\n }\n eobrun--;\n }\n }\n let decodeFn;\n if (frame.progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y;\n let lastflushidx = 0;\n const flushBits = () => {\n if (!this.gengen)\n return;\n const component2 = components.find((e) => e.componentId == 1);\n while (component2.blocks[lastflushidx + 1] !== void 0) {\n const blk = component2.blocks[lastflushidx];\n if (blk != 0) {\n const v = blk < 0 ? 1 - (blk & 1) : blk & 1;\n const it = this.gengen.next(v);\n if (it.done) {\n throw it.value;\n }\n }\n lastflushidx++;\n }\n };\n if (components.length == 1) {\n mcusPerLine = components[0].blocksPerLine;\n mcusPerRow = components[0].blocksPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64);\n }\n }\n flushBits();\n }\n } else {\n mcusPerLine = frame.mcusPerLine;\n mcusPerRow = frame.mcusPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n for (j2 = 0; j2 < components[i2].v; j2++) {\n for (k = 0; k < components[i2].h; k++) {\n decodeFn(components[i2], ((y * components[i2].v + j2) * components[i2].blocksPerLineForMcu + x * components[i2].h + k) * 64);\n }\n }\n }\n }\n flushBits();\n }\n }\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n return offset2 - startOffset;\n };\n function readUint16() {\n const value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n __privateSet(this, __raw, data);\n __privateSet(this, _jfif, null);\n __privateSet(this, _APPn, []);\n __privateSet(this, _qts, []);\n __privateSet(this, _frame, null);\n __privateSet(this, _tail, null);\n let markerHi, markerLo, i, j, resetInterval, component;\n const huffmanTablesAC = [];\n const huffmanTablesDC = [];\n while (1) {\n if (offset >= data.length) {\n if (tolerant)\n break;\n throw "unexpected EOF";\n }\n markerHi = data[offset++];\n markerLo = data[offset++];\n if (markerHi == 255) {\n if (markerLo == 224) {\n __privateSet(this, _jfif, readDataBlock());\n }\n if (markerLo > 224 && markerLo < 240 || markerLo == 254) {\n __privateGet(this, _APPn).push({\n "app": markerLo,\n "data": readDataBlock()\n });\n }\n if (markerLo == 219) {\n __privateGet(this, _qts).push(readDataBlock());\n }\n if (markerLo >= 192 && markerLo <= 194) {\n if (__privateGet(this, _frame))\n throw "Only single frame JPEGs supported";\n readUint16();\n __privateSet(this, _frame, {\n "extended": markerLo === 193,\n "progressive": markerLo === 194,\n "precision": data[offset++],\n "scanLines": readUint16(),\n "samplesPerLine": readUint16(),\n "components": [],\n "componentIds": {},\n "maxH": 1,\n "maxV": 1\n });\n if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels)\n throw "Image is too big.";\n var componentsCount = data[offset++], componentId;\n let maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h)\n maxH = h;\n if (maxV < v)\n maxV = v;\n const qId = data[offset + 2];\n const l = __privateGet(this, _frame).components.push({\n componentId,\n h,\n v,\n quantizationTable: qId\n });\n __privateGet(this, _frame).componentIds[componentId] = l - 1;\n offset += 3;\n }\n __privateGet(this, _frame).maxH = maxH;\n __privateGet(this, _frame).maxV = maxV;\n const mcusPerLine = Math.ceil(__privateGet(this, _frame).samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(__privateGet(this, _frame).scanLines / 8 / maxV);\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n component = __privateGet(this, _frame).components[i];\n const blocksPerLine = Math.ceil(Math.ceil(__privateGet(this, _frame).samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(__privateGet(this, _frame).scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n __privateGet(this, _frame).components[i] = {\n ...component,\n blocks: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu * 64),\n blocksDC: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu),\n blocksPerLine,\n blocksPerColumn,\n blocksPerLineForMcu,\n blocksPerColumnForMcu\n };\n }\n __privateGet(this, _frame).mcusPerLine = mcusPerLine;\n __privateGet(this, _frame).mcusPerColumn = mcusPerColumn;\n }\n if (markerLo == 196) {\n const huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n const v = _buildHuffmanTable(codeLengths, huffmanValues);\n if (huffmanTableSpec >> 4 === 0)\n huffmanTablesDC[huffmanTableSpec & 15] = v;\n else\n huffmanTablesAC[huffmanTableSpec & 15] = v;\n }\n }\n if (markerLo == 221) {\n resetInterval = readUint16();\n }\n if (markerLo == 218) {\n if (__privateGet(this, _frame) == null)\n throw "SOS before SOF";\n readUint16();\n const selectorsCount = data[offset++];\n const components = [];\n for (i = 0; i < selectorsCount; i++) {\n const componentIndex = __privateGet(this, _frame).componentIds[data[offset++]];\n component = __privateGet(this, _frame).components[componentIndex];\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset, __privateGet(this, _frame), components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n }\n if (markerLo == 217) {\n break;\n }\n } else {\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n }\n while (data[offset] != 255 && offset < data.length) {\n offset++;\n }\n if (data[offset] != 255) {\n throw "bad jpeg ";\n }\n }\n }\n if (!__privateGet(this, _frame))\n throw "bad jpeg";\n if (offset < data.length)\n __privateSet(this, _tail, data.subarray(offset));\n return this;\n }\n pack() {\n let byteout;\n let bytenew;\n let bytepos;\n let poslast;\n let outpos;\n let byte;\n function writeByte(value) {\n let t;\n byteout[outpos++] = value;\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function writeBlock(block) {\n let t;\n if (outpos + block.length > poslast) {\n t = new Uint8Array(byteout.length * 2 + block.length);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n byteout.set(block, outpos);\n outpos += block.length;\n }\n function writeAPP0(self2) {\n writeWord(65504);\n if (!__privateGet(self2, _jfif)) {\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n } else {\n writeWord(__privateGet(self2, _jfif).length + 2);\n writeBlock(__privateGet(self2, _jfif));\n }\n }\n function writeDQT(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _qts).length; i2++) {\n writeWord(65499);\n writeWord(__privateGet(self2, _qts)[i2].length + 2);\n writeBlock(__privateGet(self2, _qts)[i2]);\n }\n }\n function writeAPPn(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _APPn).length; i2++) {\n writeWord(65280 | __privateGet(self2, _APPn)[i2].app);\n writeWord(__privateGet(self2, _APPn)[i2].data.length + 2);\n writeBlock(__privateGet(self2, _APPn)[i2].data);\n }\n }\n function writeSOF0(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65472);\n writeWord(8 + __privateGet(self2, _frame).components.length * 3);\n writeByte(__privateGet(self2, _frame).precision);\n writeWord(__privateGet(self2, _frame).scanLines);\n writeWord(__privateGet(self2, _frame).samplesPerLine);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n writeByte(c2.h << 4 | c2.v);\n writeByte(c2.quantizationTable);\n }\n }\n function writeDHT(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65476);\n writeWord(31);\n writeByte(0);\n for (let i2 = 0; i2 < 16; i2++) {\n writeByte(std_dc_luminance_nrcodes[i2 + 1]);\n }\n for (let j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(16);\n for (let k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (let l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n if (__privateGet(self2, _frame).components.length != 1) {\n writeWord(65476);\n writeWord(31);\n writeByte(1);\n for (let m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (let n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(17);\n for (let o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (let p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n }\n function writeSOS(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65498);\n writeWord(6 + __privateGet(self2, _frame).components.length * 2);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n if (i2 === 0) {\n writeByte(0);\n } else {\n writeByte(17);\n }\n }\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(comp, POS, DC, HTDC, HTAC) {\n let pos, posval, t;\n if (bytepos === 0)\n bytenew = 0;\n if (!("blocks" in comp))\n throw "Blocks not parsed";\n const Diff = comp.blocksDC[POS >> 6] - DC;\n DC = comp.blocksDC[POS >> 6];\n if (Diff === 0) {\n posval = HTDC[0][1];\n bytenew <<= posval;\n bytenew += HTDC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n } else {\n pos = 32767 + Diff;\n posval = HTDC[category[pos]][1];\n bytenew <<= posval;\n bytenew += HTDC[category[pos]][0];\n bytepos += posval;\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n let end0pos = 63;\n for (; end0pos > 0 && comp.blocks[POS + end0pos] === 0; end0pos--) {\n }\n if (end0pos === 0) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n return DC;\n }\n let i2 = 1;\n let lng;\n while (i2 <= end0pos) {\n const startpos = i2;\n for (; comp.blocks[POS + i2] === 0 && i2 <= end0pos; ++i2) {\n }\n let nrzeroes = i2 - startpos;\n if (nrzeroes >= 16) {\n lng = nrzeroes >> 4;\n for (let nrmarker = 1; nrmarker <= lng; ++nrmarker) {\n posval = HTAC[240][1];\n bytenew <<= posval;\n bytenew += HTAC[240][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + comp.blocks[POS + i2];\n posval = HTAC[(nrzeroes << 4) + category[pos]][1];\n bytenew <<= posval;\n bytenew += HTAC[(nrzeroes << 4) + category[pos]][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n i2++;\n }\n if (end0pos != 63) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n return DC;\n }\n byteout = new Uint8Array(65536);\n poslast = 65536 - 128;\n outpos = 0;\n bytenew = 0;\n bytepos = 0;\n writeWord(65496);\n writeAPP0(this);\n writeAPPn(this);\n writeDQT(this);\n writeSOF0(this);\n writeDHT(this);\n writeSOS(this);\n bytenew = 0;\n bytepos = 0;\n if (!__privateGet(this, _frame))\n throw "Frame not ready";\n let c, mcuRow, mcuCol, blockRow, blockCol, mcu, i, v, h;\n const DCdiff = [];\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n DCdiff.push(0);\n }\n for (mcu = 0; mcu < __privateGet(this, _frame).mcusPerLine * __privateGet(this, _frame).mcusPerColumn; mcu++) {\n mcuRow = mcu / __privateGet(this, _frame).mcusPerLine | 0;\n mcuCol = mcu % __privateGet(this, _frame).mcusPerLine;\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n c = __privateGet(this, _frame).components[i];\n for (v = 0; v < c.v; v++) {\n blockRow = mcuRow * c.v + v;\n for (h = 0; h < c.h; h++) {\n blockCol = mcuCol * c.h + h;\n if (i === 0) {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], YDC_HT, YAC_HT);\n } else {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], UVDC_HT, UVAC_HT);\n }\n }\n }\n }\n }\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n }\n if (bytepos > 0) {\n bytenew <<= 8 - bytepos;\n bytenew += (1 << 8 - bytepos) - 1;\n byteout[outpos++] = 255 & bytenew;\n }\n writeWord(65497);\n if (__privateGet(this, _tail))\n writeBlock(__privateGet(this, _tail));\n return byteout.slice(0, outpos);\n }\n};\n__raw = new WeakMap();\n_jfif = new WeakMap();\n_APPn = new WeakMap();\n_qts = new WeakMap();\n_frame = new WeakMap();\n_tail = new WeakMap();\n__f5write = new WeakSet();\n_f5write_fn = function(coeff, data, k) {\n const coeff_count = coeff.length;\n let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, n, ii;\n let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0;\n n = (1 << k) - 1;\n byte_to_embed = k - 1;\n byte_to_embed ^= 0;\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed = 3;\n for (ii = 0; ii < coeff_count; ii++) {\n shuffled_index = ii;\n if (shuffled_index % 64 === 0 || coeff[shuffled_index] === 0)\n continue;\n const cc = coeff[shuffled_index];\n _examined++;\n if (cc > 0 && (cc & 1) != next_bit_to_embed) {\n coeff[shuffled_index]--;\n _changed++;\n } else if (cc < 0 && (cc & 1) == next_bit_to_embed) {\n coeff[shuffled_index]++;\n _changed++;\n }\n if (coeff[shuffled_index] !== 0) {\n _embedded++;\n if (available_bits_to_embed === 0) {\n if (k != 1 || data_idx >= data.length)\n break;\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n } else {\n _thrown++;\n }\n }\n if (k == 1 && _embedded < data.length * 8)\n throw "capacity exceeded " + _embedded / 8 + " " + data.length;\n if (k != 1) {\n let is_last_byte = false, k_bits_to_embed = 0;\n while (!is_last_byte || available_bits_to_embed !== 0 && is_last_byte) {\n k_bits_to_embed = 0;\n for (i = 0; i < k; i++) {\n if (available_bits_to_embed === 0) {\n if (data_idx >= data.length) {\n is_last_byte = true;\n break;\n }\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n k_bits_to_embed |= next_bit_to_embed << i;\n }\n const code_word = [];\n let ci = null;\n for (i = 0; i < n; i++) {\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n code_word.push(ci);\n }\n _examined += n;\n while (true) {\n var vhash = 0, extracted_bit;\n for (i = 0; i < code_word.length; i++) {\n if (coeff[code_word[i]] > 0) {\n extracted_bit = coeff[code_word[i]] & 1;\n } else {\n extracted_bit = 1 - (coeff[code_word[i]] & 1);\n }\n if (extracted_bit == 1)\n vhash ^= i + 1;\n }\n i = vhash ^ k_bits_to_embed;\n if (!i) {\n _embedded += k;\n break;\n }\n i--;\n coeff[code_word[i]] += coeff[code_word[i]] < 0 ? 1 : -1;\n _changed++;\n if (coeff[code_word[i]] === 0) {\n _thrown++;\n code_word.splice(i, 1);\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n _examined++;\n code_word.push(ci);\n } else {\n _embedded += k;\n break;\n }\n }\n }\n }\n return {\n "k": k,\n "embedded": _embedded / 8,\n "examined": _examined,\n "changed": _changed,\n "thrown": _thrown,\n "efficiency": (_embedded / _changed).toFixed(2)\n };\n};\n\n// src/jpg.ts\nvar key = import_buffer4.Buffer.from("CUNNYCUNNYCUNNY");\nvar f5inst = new f5stego(key);\nvar inject2 = async (b, links) => {\n if (b.size / 20 < links.join(" ").length)\n throw "Image too small to embed.";\n const arr = new Uint8Array(new Uint8Array(await b.arrayBuffer()));\n const buff = f5inst.embed(arr, new TextEncoder().encode(links.join(" ")), 1);\n return import_buffer4.Buffer.from(buff);\n};\nvar has_embed2 = (b) => {\n try {\n const res = f5inst.extract(b);\n if (!res)\n return false;\n if (res.length > 1024)\n return false;\n const str = import_buffer4.Buffer.from(res).toString();\n if (!str.match(/^[a-zA-Z0-9:/.\\-_ ]+$/))\n return false;\n return str;\n } catch {\n return false;\n }\n};\nvar extract2 = (b, ex) => {\n return decodeCoom3Payload(import_buffer4.Buffer.from(ex));\n};\nvar jpg_default = {\n match: (fn) => !!fn.match(/\\.jpe?g$/),\n has_embed: has_embed2,\n extract: extract2,\n inject: inject2\n};\n\n// src/thirdeye.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer5 = __toESM(require_buffer(), 1);\nvar import_jpeg_js = __toESM(require_jpeg_js(), 1);\n\n// src/phash.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar median = (data) => {\n const mdarr = data.slice(0);\n mdarr.sort((a, b) => a - b);\n if (mdarr.length % 2 === 0)\n return (mdarr[mdarr.length / 2 - 1] + mdarr[mdarr.length / 2]) / 2;\n return mdarr[Math.floor(mdarr.length / 2)];\n};\nvar translate_blocks_to_bits = function(blocks, pixels_per_block) {\n const half_block_value = pixels_per_block * 256 * 3 / 2;\n const bandsize = blocks.length / 4;\n for (let i = 0; i < 4; i++) {\n const m = median(blocks.slice(i * bandsize, (i + 1) * bandsize));\n for (let j = i * bandsize; j < (i + 1) * bandsize; j++) {\n const v = blocks[j];\n blocks[j] = Number(v > m || Math.abs(v - m) < 1 && m > half_block_value);\n }\n }\n};\nvar bits_to_hexhash = (bitsArray) => {\n const hex = [];\n for (let i = 0; i < bitsArray.length; i += 4) {\n const nibble = bitsArray.slice(i, i + 4);\n hex.push(parseInt(nibble.join(""), 2).toString(16));\n }\n return hex.join("");\n};\nvar bmvbhash_even = (data, bits) => {\n const blocksize_x = Math.floor(data.width / bits);\n const blocksize_y = Math.floor(data.height / bits);\n const result = [];\n for (let y = 0; y < bits; y++) {\n for (let x = 0; x < bits; x++) {\n let total = 0;\n for (let iy = 0; iy < blocksize_y; iy++) {\n for (let ix = 0; ix < blocksize_x; ix++) {\n const cx = x * blocksize_x + ix;\n const cy = y * blocksize_y + iy;\n const ii = (cy * data.width + cx) * 4;\n const alpha = data.data[ii + 3];\n if (alpha === 0) {\n total += 765;\n } else {\n total += data.data[ii] + data.data[ii + 1] + data.data[ii + 2];\n }\n }\n }\n result.push(total);\n }\n }\n translate_blocks_to_bits(result, blocksize_x * blocksize_y);\n return bits_to_hexhash(result);\n};\n\n// src/thirdeye.ts\nvar csettings3;\nsettings.subscribe((b) => {\n csettings3 = b;\n});\nvar gelquirk = (prefix) => (a) => {\n let base = a.post || a.data || a;\n if (!Array.isArray(base))\n return [];\n base = base.filter((e) => e.file_url);\n return base.map((e) => ({\n full_url: e.file_url,\n preview_url: e.preview_url || e.preview_url,\n source: e.source,\n ext: e.file_ext || e.file_url.substr(e.file_url.lastIndexOf(".") + 1),\n page: `${prefix}${e.id || e.parent_id}`,\n tags: (e.tag_string || (e.tags && (Array.isArray(e.tags) && (typeof e.tags[0] == "string" ? e.tags.join(" ") : e.tags.map((e2) => e2.name_en).join(" "))) || e.tags) || "").split(" ")\n })) || [];\n};\nvar experimentalApi = false;\nvar black = /* @__PURE__ */ new Set();\nvar phashEn = false;\nvar mindist = 5;\nsettings.subscribe((s) => {\n if (!s)\n return;\n experimentalApi = s.expte;\n boorus = s.rsources.map((e) => ({\n ...e,\n quirks: gelquirk(e.view)\n }));\n black = new Set(s.blacklist);\n mindist = s.mdist || 5;\n phashEn = s.phash;\n});\nvar boorus = [];\nvar unlockQueue = Promise.resolve();\nvar cache = {};\nvar findFileFrom = async (b, hex, abort) => {\n try {\n if (b.domain in cache && hex in cache[b.domain])\n return cache[b.domain][hex];\n const res = await ifetch(`https://${b.domain}${b.endpoint}${hex}`);\n const txt = await res.text();\n const pres = JSON.parse(txt);\n const tran = b.quirks(pres).filter((e) => !e.tags.some((e2) => black.has(e2)));\n if (!(b.domain in cache))\n cache[b.domain] = {};\n cache[b.domain][hex] = tran;\n return tran;\n } catch (e) {\n const error = e;\n if (!error.message.includes("Unexpected end of JSON input"))\n console.error(e);\n return [];\n }\n};\nvar extract3 = async (b, fn) => {\n if (!csettings3)\n throw new Error("Settings uninit");\n let result;\n let booru;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n if (result.length) {\n booru = e.name;\n break;\n }\n }\n let cachedFile;\n const prev = result[0].preview_url;\n const full = result[0].full_url;\n return [{\n source: result[0].source,\n page: {\n title: booru,\n url: result[0].page\n },\n filename: fn.substring(0, 33) + result[0].ext,\n thumbnail: csettings3.hotlink ? prev || full : import_buffer5.Buffer.from(await (await ifetch(prev || full)).arrayBuffer()),\n data: csettings3.hotlink ? full || prev : { url: full || prev }\n }];\n};\nvar phash = (b) => {\n const res = (0, import_jpeg_js.decode)(b);\n return bmvbhash_even(res, 8);\n};\nvar hammingDist = (a, b) => {\n let res = BigInt("0x" + a) ^ BigInt("0x" + b);\n let acc = 0;\n while (res != 0n) {\n acc += Number(res & 1n);\n res >>= 1n;\n }\n return acc;\n};\nvar has_embed3 = async (b, fn, prevlink) => {\n if (import_buffer5.Buffer.from(fn, "hex").equals(b))\n return false;\n let result = void 0;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n result = result.filter((e2) => e2.full_url || e2.preview_url);\n if (result.length)\n break;\n }\n if (result && result.length != 0 && phashEn && prevlink) {\n if (!result[0].preview_url)\n return true;\n const getHash = async (l) => {\n const ogreq = await ifetch(l);\n const origPreview = await ogreq.arrayBuffer();\n return phash(import_buffer5.Buffer.from(origPreview));\n };\n const [orighash, tehash] = await Promise.all([\n getHash(prevlink),\n getHash(result[0].preview_url)\n ]);\n const d = hammingDist(orighash, tehash);\n console.log(d, prevlink);\n return d > mindist;\n }\n return result && result.length != 0;\n};\nvar thirdeye_default = {\n skip: true,\n extract: extract3,\n has_embed: has_embed3,\n match: (fn) => !!fn.match(/^[0-9a-f]{32}\\.....?/)\n};\n\n// src/pomf.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer6 = __toESM(require_buffer(), 1);\nvar sources = [\n { host: "Catbox", prefix: "files.catbox.moe/" },\n { host: "Litter", prefix: "litter.catbox.moe/" },\n { host: "Zzzz", prefix: "z.zz.fo/" }\n];\nvar csettings4;\nsettings.subscribe((b) => {\n csettings4 = b;\n});\nvar getExt = (fn) => {\n const isB64 = fn.match(/^((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=))?\\.(gif|jpe?g|png|webm)/);\n const isExt = fn.match(/\\[.*=(.*)\\]/);\n let ext;\n let source;\n try {\n if (isB64) {\n ext = atob(isB64[1]);\n } else if (isExt) {\n ext = decodeURIComponent(isExt[1]);\n if (ext.startsWith("https://"))\n ext = ext.slice("https://".length);\n for (const cs of sources)\n if (ext.startsWith(cs.prefix)) {\n source = cs.prefix;\n ext = ext.slice(cs.prefix.length);\n break;\n }\n }\n } catch {\n }\n return { ext, source };\n};\nvar extract4 = async (b, fn) => {\n if (!csettings4)\n throw new Error("Settings uninit");\n const { ext, source } = getExt(fn);\n let rsource;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n await getHeaders("https://" + cs.prefix + ext);\n rsource = "https://" + cs.prefix + ext;\n break;\n } catch {\n }\n }\n return [{\n filename: ext,\n data: csettings4.hotlink ? rsource : { url: rsource },\n thumbnail: import_buffer6.Buffer.from(hasembed_default)\n }];\n};\nvar has_embed4 = async (b, fn) => {\n const { ext, source } = getExt(fn);\n if (!ext)\n return false;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n const e = await getHeaders("https://" + cs.prefix + ext);\n return true;\n } catch {\n }\n }\n return false;\n};\nvar pomf_default = {\n skip: true,\n extract: extract4,\n has_embed: has_embed4,\n match: (fn) => !!getExt(fn)\n};\n\n// src/processor.worker.ts\nconsole.log("Worker started");\nvar pendinggens = {};\nvar proxyAsyncGen = (id) => {\n return {\n next(arg) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n return(v) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n throw() {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n [Symbol.asyncIterator]() {\n return this;\n }\n };\n};\nvar deserializeMessage = (m) => {\n if (m instanceof MessagePort)\n return m;\n if (typeof m == "object" && m.type == "AsyncGenerator") {\n return proxyAsyncGen(m.id);\n }\n if (typeof m == "object") {\n for (const p in m) {\n m[p] = deserializeMessage(m[p]);\n }\n }\n return m;\n};\nvar processors = [thirdeye_default, pomf_default, pngv3_default, jpg_default];\nvar processImage = async (srcs, fn, hex, prevurl) => {\n const ret = await Promise.all(processors.filter((e) => e.match(fn)).map(async (proc) => {\n if (proc.skip) {\n const md5 = Buffer2.from(hex, "base64");\n if (await proc.has_embed(md5, fn, prevurl) === true) {\n return [await proc.extract(md5, fn), true];\n }\n return;\n }\n let succ = false;\n let cumul;\n do {\n try {\n const n = await srcs.next();\n if (n.done)\n return;\n const iter = streamRemote(n.value);\n if (!iter)\n return;\n cumul = Buffer2.alloc(0);\n let found;\n let chunk = { done: true };\n do {\n const { value, done } = await iter.next(typeof found === "boolean");\n if (done) {\n chunk = { done: true };\n } else {\n chunk = { done: false, value };\n cumul = Buffer2.concat([cumul, value]);\n const v = await proc.has_embed(cumul);\n if (typeof v == "string") {\n return [await proc.extract(cumul, v), false];\n }\n found = v;\n }\n } while (found !== false && !chunk.done);\n succ = true;\n await iter.next(true);\n if (found !== true) {\n return;\n }\n return [await proc.extract(cumul), false];\n } catch (err) {\n console.log(err);\n }\n } while (!succ);\n }));\n return ret.filter((e) => e).map((e) => e);\n};\nvar init2 = false;\n(async () => {\n onmessage = async (msg) => {\n const des = deserializeMessage(msg.data);\n switch (des.type) {\n case "ipc": {\n setupPort(des.port);\n const nset = await localLoad("settingsv2", initial_settings);\n settings.set(nset);\n break;\n }\n case "cmd": {\n switch (des.fun) {\n case "processImage": {\n if (!init2) {\n await new Promise((_) => {\n settings.subscribe((v) => {\n if (v)\n _();\n });\n });\n init2 = true;\n }\n const res = await processImage(des.args[0], des.args[1], des.args[2], des.args[3]);\n const tr = [];\n for (const ef of res) {\n for (const e of ef[0]) {\n if (e.thumbnail && Buffer2.isBuffer(e.thumbnail) || typeof e.thumbnail != "string")\n tr.push(e.thumbnail.buffer);\n if (Buffer2.isBuffer(e.data) || typeof e.data != "string" && !("url" in e.data))\n tr.push(e.data.buffer);\n }\n }\n postMessage({\n type: "reply",\n id: des.id,\n res\n }, [...new Set(tr)]);\n }\n }\n break;\n }\n case "ag": {\n const cb = pendinggens[des.id].shift();\n if (cb) {\n cb(des.res);\n }\n break;\n }\n }\n };\n})();\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n'); + return inlineWorker('var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === "object" || typeof from === "function") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));\nvar __decorateClass = (decorators, target, key2, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key2) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key2, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key2, result);\n return result;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError("Cannot " + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n __accessCheck(obj, member, "read from private field");\n return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError("Cannot add the same private member more than once");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n __accessCheck(obj, member, "write to private field");\n setter ? setter.call(obj, value) : member.set(obj, value);\n return value;\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, "access private method");\n return method;\n};\nvar __toBinary = /* @__PURE__ */ (() => {\n var table = new Uint8Array(128);\n for (var i = 0; i < 64; i++)\n table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n return (base64) => {\n var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);\n for (var i2 = 0, j = 0; i2 < n; ) {\n var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n bytes[j++] = c0 << 2 | c1 >> 4;\n bytes[j++] = c1 << 4 | c2 >> 2;\n bytes[j++] = c2 << 6 | c3;\n }\n return bytes;\n };\n})();\n\n// \nvar init_define_BUILD_VERSION = __esm({\n ""() {\n }\n});\n\n// node_modules/base64-js/index.js\nvar require_base64_js = __commonJS({\n "node_modules/base64-js/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array;\n var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";\n for (i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n var i;\n var len;\n revLookup["-".charCodeAt(0)] = 62;\n revLookup["_".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error("Invalid string. Length must be a multiple of 4");\n }\n var validLen = b64.indexOf("=");\n if (validLen === -1)\n validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join("");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==");\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=");\n }\n return parts.join("");\n }\n }\n});\n\n// node_modules/ieee754/index.js\nvar require_ieee754 = __commonJS({\n "node_modules/ieee754/index.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n});\n\n// node_modules/buffer/index.js\nvar require_buffer = __commonJS({\n "node_modules/buffer/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var base64 = require_base64_js();\n var ieee7542 = require_ieee754();\n var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null;\n exports.Buffer = Buffer13;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n Buffer13.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer13.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") {\n console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");\n }\n function typedArraySupport() {\n try {\n const arr = new Uint8Array(1);\n const proto = { foo: function() {\n return 42;\n } };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer13.prototype, "parent", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer13.prototype, "offset", {\n enumerable: true,\n get: function() {\n if (!Buffer13.isBuffer(this))\n return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError(\'The value "\' + length + \'" is invalid for option "size"\');\n }\n const buf2 = new Uint8Array(length);\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function Buffer13(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n if (typeof encodingOrOffset === "string") {\n throw new TypeError(\'The "string" argument must be of type string. Received type number\');\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer13.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === "string") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === "number") {\n throw new TypeError(\'The "value" argument must not be of type number. Received type number\');\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer13.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b)\n return b;\n if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") {\n return Buffer13.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length);\n }\n throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);\n }\n Buffer13.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer13.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer13, Uint8Array);\n function assertSize(size) {\n if (typeof size !== "number") {\n throw new TypeError(\'"size" argument must be of type number\');\n } else if (size < 0) {\n throw new RangeError(\'The value "\' + size + \'" is invalid for option "size"\');\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer13.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer13.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer13.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== "string" || encoding === "") {\n encoding = "utf8";\n }\n if (!Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf2 = createBuffer(length);\n const actual = buf2.write(string, encoding);\n if (actual !== length) {\n buf2 = buf2.slice(0, actual);\n }\n return buf2;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf2 = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf2[i] = array[i] & 255;\n }\n return buf2;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError(\'"offset" is outside of buffer bounds\');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\'"length" is outside of buffer bounds\');\n }\n let buf2;\n if (byteOffset === void 0 && length === void 0) {\n buf2 = new Uint8Array(array);\n } else if (length === void 0) {\n buf2 = new Uint8Array(array, byteOffset);\n } else {\n buf2 = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf2, Buffer13.prototype);\n return buf2;\n }\n function fromObject(obj) {\n if (Buffer13.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf2 = createBuffer(len);\n if (buf2.length === 0) {\n return buf2;\n }\n obj.copy(buf2, 0, 0, len);\n return buf2;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== "number" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === "Buffer" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer13.alloc(+length);\n }\n Buffer13.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer13.prototype;\n };\n Buffer13.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array))\n a = Buffer13.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array))\n b = Buffer13.from(b, b.offset, b.byteLength);\n if (!Buffer13.isBuffer(a) || !Buffer13.isBuffer(b)) {\n throw new TypeError(\'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array\');\n }\n if (a === b)\n return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n Buffer13.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "latin1":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return true;\n default:\n return false;\n }\n };\n Buffer13.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n }\n if (list.length === 0) {\n return Buffer13.alloc(0);\n }\n let i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer13.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf2 = list[i];\n if (isInstance(buf2, Uint8Array)) {\n if (pos + buf2.length > buffer.length) {\n if (!Buffer13.isBuffer(buf2))\n buf2 = Buffer13.from(buf2);\n buf2.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf2, pos);\n }\n } else if (!Buffer13.isBuffer(buf2)) {\n throw new TypeError(\'"list" argument must be an Array of Buffers\');\n } else {\n buf2.copy(buffer, pos);\n }\n pos += buf2.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer13.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== "string") {\n throw new TypeError(\'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type \' + typeof string);\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0)\n return 0;\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "ascii":\n case "latin1":\n case "binary":\n return len;\n case "utf8":\n case "utf-8":\n return utf8ToBytes(string).length;\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return len * 2;\n case "hex":\n return len >>> 1;\n case "base64":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length;\n }\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return "";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return "";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return "";\n }\n if (!encoding)\n encoding = "utf8";\n while (true) {\n switch (encoding) {\n case "hex":\n return hexSlice(this, start, end);\n case "utf8":\n case "utf-8":\n return utf8Slice(this, start, end);\n case "ascii":\n return asciiSlice(this, start, end);\n case "latin1":\n case "binary":\n return latin1Slice(this, start, end);\n case "base64":\n return base64Slice(this, start, end);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = (encoding + "").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer13.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer13.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 16-bits");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer13.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 32-bits");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer13.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError("Buffer size must be a multiple of 64-bits");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer13.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0)\n return "";\n if (arguments.length === 0)\n return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer13.prototype.toLocaleString = Buffer13.prototype.toString;\n Buffer13.prototype.equals = function equals(b) {\n if (!Buffer13.isBuffer(b))\n throw new TypeError("Argument must be a Buffer");\n if (this === b)\n return true;\n return Buffer13.compare(this, b) === 0;\n };\n Buffer13.prototype.inspect = function inspect() {\n let str = "";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim();\n if (this.length > max)\n str += " ... ";\n return "";\n };\n if (customInspectSymbol) {\n Buffer13.prototype[customInspectSymbol] = Buffer13.prototype.inspect;\n }\n Buffer13.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer13.from(target, target.offset, target.byteLength);\n }\n if (!Buffer13.isBuffer(target)) {\n throw new TypeError(\'The "target" argument must be one of type Buffer or Uint8Array. Received type \' + typeof target);\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError("out of range index");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target)\n return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y)\n return -1;\n if (y < x)\n return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0)\n return -1;\n if (typeof byteOffset === "string") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n if (byteOffset < 0)\n byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir)\n return -1;\n else\n byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir)\n byteOffset = 0;\n else\n return -1;\n }\n if (typeof val === "string") {\n val = Buffer13.from(val, encoding);\n }\n if (Buffer13.isBuffer(val)) {\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === "number") {\n val = val & 255;\n if (typeof Uint8Array.prototype.indexOf === "function") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError("val must be string, number or Buffer");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read2(buf2, i2) {\n if (indexSize === 1) {\n return buf2[i2];\n } else {\n return buf2.readUInt16BE(i2 * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read2(arr, i) === read2(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1)\n foundIndex = i;\n if (i - foundIndex + 1 === valLength)\n return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1)\n i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength)\n byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read2(arr, i + j) !== read2(val, j)) {\n found = false;\n break;\n }\n }\n if (found)\n return i;\n }\n }\n return -1;\n }\n Buffer13.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer13.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer13.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf2, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf2.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed))\n return i;\n buf2[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf2, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n function asciiWrite(buf2, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf2, offset, length);\n }\n function base64Write(buf2, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf2, offset, length);\n }\n function ucs2Write(buf2, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf2.length - offset), buf2, offset, length);\n }\n Buffer13.prototype.write = function write2(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = "utf8";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === "string") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0)\n encoding = "utf8";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");\n }\n const remaining = this.length - offset;\n if (length === void 0 || length > remaining)\n length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError("Attempt to write outside buffer bounds");\n }\n if (!encoding)\n encoding = "utf8";\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case "hex":\n return hexWrite(this, string, offset, length);\n case "utf8":\n case "utf-8":\n return utf8Write(this, string, offset, length);\n case "ascii":\n case "latin1":\n case "binary":\n return asciiWrite(this, string, offset, length);\n case "base64":\n return base64Write(this, string, offset, length);\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase)\n throw new TypeError("Unknown encoding: " + encoding);\n encoding = ("" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer13.prototype.toJSON = function toJSON() {\n return {\n type: "Buffer",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf2, start, end) {\n if (start === 0 && end === buf2.length) {\n return base64.fromByteArray(buf2);\n } else {\n return base64.fromByteArray(buf2.slice(start, end));\n }\n }\n function utf8Slice(buf2, start, end) {\n end = Math.min(buf2.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf2[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf2[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf2[i + 1];\n thirdByte = buf2[i + 2];\n fourthByte = buf2[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = "";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf2, start, end) {\n let ret = "";\n end = Math.min(buf2.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf2[i]);\n }\n return ret;\n }\n function hexSlice(buf2, start, end) {\n const len = buf2.length;\n if (!start || start < 0)\n start = 0;\n if (!end || end < 0 || end > len)\n end = len;\n let out = "";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf2[i]];\n }\n return out;\n }\n function utf16leSlice(buf2, start, end) {\n const bytes = buf2.slice(start, end);\n let res = "";\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer13.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0)\n start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0)\n end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start)\n end = start;\n const newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer13.prototype);\n return newBuf;\n };\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0)\n throw new RangeError("offset is not uint");\n if (offset + ext > length)\n throw new RangeError("Trying to access beyond buffer length");\n }\n Buffer13.prototype.readUintLE = Buffer13.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUintBE = Buffer13.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n let val = this[offset + --byteLength2];\n let mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer13.prototype.readUint8 = Buffer13.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer13.prototype.readUint16LE = Buffer13.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer13.prototype.readUint16BE = Buffer13.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer13.prototype.readUint32LE = Buffer13.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer13.prototype.readUint32BE = Buffer13.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer13.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer13.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer13.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert)\n checkOffset(offset, byteLength2, this.length);\n let i = byteLength2;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul)\n val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer13.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128))\n return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer13.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer13.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer13.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer13.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer13.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, "offset");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer13.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, true, 23, 4);\n };\n Buffer13.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 4, this.length);\n return ieee7542.read(this, offset, false, 23, 4);\n };\n Buffer13.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, true, 52, 8);\n };\n Buffer13.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert)\n checkOffset(offset, 8, this.length);\n return ieee7542.read(this, offset, false, 52, 8);\n };\n function checkInt(buf2, value, offset, ext, max, min) {\n if (!Buffer13.isBuffer(buf2))\n throw new TypeError(\'"buffer" argument must be a Buffer instance\');\n if (value > max || value < min)\n throw new RangeError(\'"value" argument is out of bounds\');\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n }\n Buffer13.prototype.writeUintLE = Buffer13.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUintBE = Buffer13.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeUint8 = Buffer13.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeUint16LE = Buffer13.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeUint16BE = Buffer13.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeUint32LE = Buffer13.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeUint32BE = Buffer13.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n lo = lo >> 8;\n buf2[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n hi = hi >> 8;\n buf2[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf2, value, offset, min, max) {\n checkIntBI(value, min, max, buf2, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf2[offset + 7] = lo;\n lo = lo >> 8;\n buf2[offset + 6] = lo;\n lo = lo >> 8;\n buf2[offset + 5] = lo;\n lo = lo >> 8;\n buf2[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf2[offset + 3] = hi;\n hi = hi >> 8;\n buf2[offset + 2] = hi;\n hi = hi >> 8;\n buf2[offset + 1] = hi;\n hi = hi >> 8;\n buf2[offset] = hi;\n return offset + 8;\n }\n Buffer13.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff"));\n });\n Buffer13.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer13.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 1, 127, -128);\n if (value < 0)\n value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer13.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer13.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer13.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer13.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert)\n checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0)\n value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer13.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n Buffer13.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff"));\n });\n function checkIEEE754(buf2, value, offset, ext, max, min) {\n if (offset + ext > buf2.length)\n throw new RangeError("Index out of range");\n if (offset < 0)\n throw new RangeError("Index out of range");\n }\n function writeFloat(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer13.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf2, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf2, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee7542.write(buf2, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer13.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer13.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer13.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer13.isBuffer(target))\n throw new TypeError("argument should be a Buffer");\n if (!start)\n start = 0;\n if (!end && end !== 0)\n end = this.length;\n if (targetStart >= target.length)\n targetStart = target.length;\n if (!targetStart)\n targetStart = 0;\n if (end > 0 && end < start)\n end = start;\n if (end === start)\n return 0;\n if (target.length === 0 || this.length === 0)\n return 0;\n if (targetStart < 0) {\n throw new RangeError("targetStart out of bounds");\n }\n if (start < 0 || start >= this.length)\n throw new RangeError("Index out of range");\n if (end < 0)\n throw new RangeError("sourceEnd out of bounds");\n if (end > this.length)\n end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === "function") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n Buffer13.prototype.fill = function fill(val, start, end, encoding) {\n if (typeof val === "string") {\n if (typeof start === "string") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === "string") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== void 0 && typeof encoding !== "string") {\n throw new TypeError("encoding must be a string");\n }\n if (typeof encoding === "string" && !Buffer13.isEncoding(encoding)) {\n throw new TypeError("Unknown encoding: " + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === "utf8" && code < 128 || encoding === "latin1") {\n val = code;\n }\n }\n } else if (typeof val === "number") {\n val = val & 255;\n } else if (typeof val === "boolean") {\n val = Number(val);\n }\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError("Out of range index");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val)\n val = 0;\n let i;\n if (typeof val === "number") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer13.isBuffer(val) ? val : Buffer13.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError(\'The value "\' + val + \'" is invalid for argument "value"\');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, "message", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n this.name = `${this.name} [${sym}]`;\n this.stack;\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, "code", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E("ERR_BUFFER_OUT_OF_BOUNDS", function(name) {\n if (name) {\n return `${name} is outside of buffer bounds`;\n }\n return "Attempt to access memory outside buffer bounds";\n }, RangeError);\n E("ERR_INVALID_ARG_TYPE", function(name, actual) {\n return `The "${name}" argument must be of type number. Received type ${typeof actual}`;\n }, TypeError);\n E("ERR_OUT_OF_RANGE", function(str, range, input) {\n let msg = `The value of "${str}" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === "bigint") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += "n";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n let res = "";\n let i = val.length;\n const start = val[0] === "-" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n function checkBounds(buf2, offset, byteLength2) {\n validateNumber(offset, "offset");\n if (buf2[offset] === void 0 || buf2[offset + byteLength2] === void 0) {\n boundsError(offset, buf2.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf2, offset, byteLength2) {\n if (value > max || value < min) {\n const n = typeof min === "bigint" ? "n" : "";\n let range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n throw new errors.ERR_OUT_OF_RANGE("value", range, value);\n }\n checkBounds(buf2, offset, byteLength2);\n }\n function validateNumber(value, name) {\n if (typeof value !== "number") {\n throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(type || "offset", `>= ${type ? 1 : 0} and <= ${length}`, value);\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split("=")[0];\n str = str.trim().replace(INVALID_BASE64_RE, "");\n if (str.length < 2)\n return "";\n while (str.length % 4 !== 0) {\n str = str + "=";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1)\n bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0)\n break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0)\n break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0)\n break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0)\n break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error("Invalid code point");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0)\n break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length)\n break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n const alphabet = "0123456789abcdef";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error("BigInt not supported");\n }\n }\n});\n\n// esbuild.inject.js\nvar Buffer2;\nvar init_esbuild_inject = __esm({\n "esbuild.inject.js"() {\n "use strict";\n Buffer2 = require_buffer().Buffer;\n if (true) {\n if (false) {\n const ocreate = unsafeWindow.document.createElement.bind(document);\n unsafeWindow.document.createElement = (tag) => {\n if (tag != "meta")\n return ocreate(tag);\n unsafeWindow.document.createElement = ocreate;\n return unsafeWindow.document.createElement("link");\n };\n }\n if (false) {\n if (typeof cloneInto != "undefined")\n console.log("CLONE INTO DEFINED");\n else\n console.log("CLONE INTO NOT DEFINED");\n let a = 1;\n console.log(a++);\n const unsafeWindow2 = window;\n console.log(a++);\n const ocreate = unsafeWindow2.document.createElement.bind(document);\n console.log(a++);\n exportFunction((tag) => {\n if (tag != "meta")\n return ocreate(tag);\n unsafeWindow2.document.createElement = ocreate;\n return unsafeWindow2.document.createElement("link");\n }, window.document, { defineAs: "createElement" });\n console.log(a++);\n }\n }\n }\n});\n\n// node_modules/crc-32/crc32.js\nvar require_crc32 = __commonJS({\n "node_modules/crc-32/crc32.js"(exports) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var CRC32;\n (function(factory) {\n if (typeof DO_NOT_EXPORT_CRC === "undefined") {\n if (typeof exports === "object") {\n factory(exports);\n } else if (typeof define === "function" && define.amd) {\n define(function() {\n var module2 = {};\n factory(module2);\n return module2;\n });\n } else {\n factory(CRC32 = {});\n }\n } else {\n factory(CRC32 = {});\n }\n })(function(CRC322) {\n CRC322.version = "1.2.0";\n function signed_crc_table() {\n var c = 0, table = new Array(256);\n for (var n = 0; n != 256; ++n) {\n c = n;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1;\n table[n] = c;\n }\n return typeof Int32Array !== "undefined" ? new Int32Array(table) : table;\n }\n var T = signed_crc_table();\n function crc32_bstr(bstr, seed) {\n var C = seed ^ -1, L = bstr.length - 1;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i++)) & 255];\n }\n if (i === L)\n C = C >>> 8 ^ T[(C ^ bstr.charCodeAt(i)) & 255];\n return C ^ -1;\n }\n function crc32_buf(buf2, seed) {\n if (buf2.length > 1e4)\n return crc32_buf_8(buf2, seed);\n var C = seed ^ -1, L = buf2.length - 3;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 3)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_buf_8(buf2, seed) {\n var C = seed ^ -1, L = buf2.length - 7;\n for (var i = 0; i < L; ) {\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n }\n while (i < L + 7)\n C = C >>> 8 ^ T[(C ^ buf2[i++]) & 255];\n return C ^ -1;\n }\n function crc32_str(str, seed) {\n var C = seed ^ -1;\n for (var i = 0, L = str.length, c, d; i < L; ) {\n c = str.charCodeAt(i++);\n if (c < 128) {\n C = C >>> 8 ^ T[(C ^ c) & 255];\n } else if (c < 2048) {\n C = C >>> 8 ^ T[(C ^ (192 | c >> 6 & 31)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n } else if (c >= 55296 && c < 57344) {\n c = (c & 1023) + 64;\n d = str.charCodeAt(i++) & 1023;\n C = C >>> 8 ^ T[(C ^ (240 | c >> 8 & 7)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 2 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | d & 63)) & 255];\n } else {\n C = C >>> 8 ^ T[(C ^ (224 | c >> 12 & 15)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c >> 6 & 63)) & 255];\n C = C >>> 8 ^ T[(C ^ (128 | c & 63)) & 255];\n }\n }\n return C ^ -1;\n }\n CRC322.table = T;\n CRC322.bstr = crc32_bstr;\n CRC322.buf = crc32_buf;\n CRC322.str = crc32_str;\n });\n }\n});\n\n// node_modules/events/events.js\nvar require_events = __commonJS({\n "node_modules/events/events.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var R = typeof Reflect === "object" ? Reflect : null;\n var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === "function") {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn)\n console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = void 0;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = void 0;\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== "function") {\n throw new TypeError(\'The "listener" argument must be of type Function. Received type \' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, "defaultMaxListeners", {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError(\'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received \' + arg + ".");\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function() {\n if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || void 0;\n };\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {\n throw new RangeError(\'The value of "n" is out of range. It must be a non-negative number. Received \' + n + ".");\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === void 0)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++)\n args.push(arguments[i]);\n var doError = type === "error";\n var events = this._events;\n if (events !== void 0)\n doError = doError && events.error === void 0;\n else if (!doError)\n return false;\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n throw er;\n }\n var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));\n err.context = er;\n throw err;\n }\n var handler = events[type];\n if (handler === void 0)\n return false;\n if (typeof handler === "function") {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === void 0) {\n events = target._events = /* @__PURE__ */ Object.create(null);\n target._eventsCount = 0;\n } else {\n if (events.newListener !== void 0) {\n target.emit("newListener", type, listener.listener ? listener.listener : listener);\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === void 0) {\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === "function") {\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");\n w.name = "MaxListenersExceededWarning";\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: void 0, target, type, listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once2(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === void 0)\n return this;\n list = events[type];\n if (list === void 0)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit("removeListener", type, list.listener || listener);\n }\n } else if (typeof list !== "function") {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== void 0)\n this.emit("removeListener", type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === void 0)\n return this;\n if (events.removeListener === void 0) {\n if (arguments.length === 0) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== void 0) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key2;\n for (i = 0; i < keys.length; ++i) {\n key2 = keys[i];\n if (key2 === "removeListener")\n continue;\n this.removeAllListeners(key2);\n }\n this.removeAllListeners("removeListener");\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === "function") {\n this.removeListener(type, listeners);\n } else if (listeners !== void 0) {\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === void 0)\n return [];\n var evlistener = events[type];\n if (evlistener === void 0)\n return [];\n if (typeof evlistener === "function")\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === "function") {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== void 0) {\n var evlistener = events[type];\n if (typeof evlistener === "function") {\n return 1;\n } else if (evlistener !== void 0) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === "function") {\n emitter.removeListener("error", errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== "error") {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === "function") {\n eventTargetAgnosticAddListener(emitter, "error", handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === "function") {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === "function") {\n emitter.addEventListener(name, function wrapListener(arg) {\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError(\'The "emitter" argument must be of type EventEmitter. Received type \' + typeof emitter);\n }\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/stream-browser.js\nvar require_stream_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/stream-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = require_events().EventEmitter;\n }\n});\n\n// (disabled):node_modules/util/util.js\nvar require_util = __commonJS({\n "(disabled):node_modules/util/util.js"() {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/buffer_list.js\nvar require_buffer_list = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/buffer_list.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly)\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key2) {\n _defineProperty(target, key2, source[key2]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key2) {\n Object.defineProperty(target, key2, Object.getOwnPropertyDescriptor(source, key2));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require_buffer();\n var Buffer13 = _require.Buffer;\n var _require2 = require_util();\n var inspect = _require2.inspect;\n var custom = inspect && inspect.custom || "inspect";\n function copyBuffer(src, target, offset) {\n Buffer13.prototype.copy.call(src, target, offset);\n }\n module.exports = /* @__PURE__ */ function() {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: "push",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0)\n this.tail.next = entry;\n else\n this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: "unshift",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0)\n this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: "shift",\n value: function shift() {\n if (this.length === 0)\n return;\n var ret = this.head.data;\n if (this.length === 1)\n this.head = this.tail = null;\n else\n this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: "clear",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: "join",\n value: function join(s) {\n if (this.length === 0)\n return "";\n var p = this.head;\n var ret = "" + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: "concat",\n value: function concat(n) {\n if (this.length === 0)\n return Buffer13.alloc(0);\n var ret = Buffer13.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n }, {\n key: "consume",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n ret = this.shift();\n } else {\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: "first",\n value: function first() {\n return this.head.data;\n }\n }, {\n key: "_getString",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length)\n ret += str;\n else\n ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: "_getBuffer",\n value: function _getBuffer(n) {\n var ret = Buffer13.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf2 = p.data;\n var nb = n > buf2.length ? buf2.length : n;\n buf2.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf2.length) {\n ++c;\n if (p.next)\n this.head = p.next;\n else\n this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf2.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n depth: 0,\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/destroy.js\nvar require_destroy = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/destroy.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function(err2) {\n if (!cb && err2) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self2, err) {\n emitErrorNT(self2, err);\n emitCloseNT(self2);\n }\n function emitCloseNT(self2) {\n if (self2._writableState && !self2._writableState.emitClose)\n return;\n if (self2._readableState && !self2._readableState.emitClose)\n return;\n self2.emit("close");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self2, err) {\n self2.emit("error", err);\n }\n function errorOrDestroy(stream, err) {\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy)\n stream.destroy(err);\n else\n stream.emit("error", err);\n }\n module.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n };\n }\n});\n\n// node_modules/readable-stream/errors-browser.js\nvar require_errors_browser = __commonJS({\n "node_modules/readable-stream/errors-browser.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n var codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === "string") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inheritsLoose(NodeError2, _Base);\n function NodeError2(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError2;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return "one of ".concat(thing, " ").concat(expected.slice(0, len - 1).join(", "), ", or ") + expected[len - 1];\n } else if (len === 2) {\n return "one of ".concat(thing, " ").concat(expected[0], " or ").concat(expected[1]);\n } else {\n return "of ".concat(thing, " ").concat(expected[0]);\n }\n } else {\n return "of ".concat(thing, " ").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== "number") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType("ERR_INVALID_OPT_VALUE", function(name, value) {\n return \'The value "\' + value + \'" is invalid for option "\' + name + \'"\';\n }, TypeError);\n createErrorType("ERR_INVALID_ARG_TYPE", function(name, expected, actual) {\n var determiner;\n if (typeof expected === "string" && startsWith(expected, "not ")) {\n determiner = "must not be";\n expected = expected.replace(/^not /, "");\n } else {\n determiner = "must be";\n }\n var msg;\n if (endsWith(name, " argument")) {\n msg = "The ".concat(name, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n } else {\n var type = includes(name, ".") ? "property" : "argument";\n msg = \'The "\'.concat(name, \'" \').concat(type, " ").concat(determiner, " ").concat(oneOf(expected, "type"));\n }\n msg += ". Received type ".concat(typeof actual);\n return msg;\n }, TypeError);\n createErrorType("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");\n createErrorType("ERR_METHOD_NOT_IMPLEMENTED", function(name) {\n return "The " + name + " method is not implemented";\n });\n createErrorType("ERR_STREAM_PREMATURE_CLOSE", "Premature close");\n createErrorType("ERR_STREAM_DESTROYED", function(name) {\n return "Cannot call " + name + " after a stream was destroyed";\n });\n createErrorType("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");\n createErrorType("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");\n createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end");\n createErrorType("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);\n createErrorType("ERR_UNKNOWN_ENCODING", function(arg) {\n return "Unknown encoding: " + arg;\n }, TypeError);\n createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");\n module.exports.codes = codes;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/state.js\nvar require_state = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/state.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : "highWaterMark";\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n return state.objectMode ? 16 : 16 * 1024;\n }\n module.exports = {\n getHighWaterMark\n };\n }\n});\n\n// node_modules/inherits/inherits_browser.js\nvar require_inherits_browser = __commonJS({\n "node_modules/inherits/inherits_browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n if (typeof Object.create === "function") {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n});\n\n// node_modules/util-deprecate/browser.js\nvar require_browser = __commonJS({\n "node_modules/util-deprecate/browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = deprecate;\n function deprecate(fn, msg) {\n if (config("noDeprecation")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config("throwDeprecation")) {\n throw new Error(msg);\n } else if (config("traceDeprecation")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n }\n function config(name) {\n try {\n if (!self.localStorage)\n return false;\n } catch (_) {\n return false;\n }\n var val = self.localStorage[name];\n if (val == null)\n return false;\n return String(val).toLowerCase() === "true";\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_writable.js\nvar require_stream_writable = __commonJS({\n "node_modules/readable-stream/lib/_stream_writable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Writable;\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function() {\n onCorkedFinish(_this, state);\n };\n }\n var Duplex;\n Writable.WritableState = WritableState;\n var internalUtil = {\n deprecate: require_browser()\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;\n var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;\n var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n require_inherits_browser()(Writable, Stream);\n function nop() {\n }\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.writableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "writableHighWaterMark", isDuplex);\n this.finalCalled = false;\n this.needDrain = false;\n this.ending = false;\n this.ended = false;\n this.finished = false;\n this.destroyed = false;\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.length = 0;\n this.writing = false;\n this.corked = 0;\n this.sync = true;\n this.bufferProcessing = false;\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n this.writecb = null;\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n this.pendingcb = 0;\n this.prefinished = false;\n this.errorEmitted = false;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.bufferedRequestCount = 0;\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function() {\n try {\n Object.defineProperty(WritableState.prototype, "buffer", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")\n });\n } catch (_) {\n }\n })();\n var realHasInstance;\n if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object))\n return true;\n if (this !== Writable)\n return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance2(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || require_stream_duplex();\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this))\n return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n this.writable = true;\n if (options) {\n if (typeof options.write === "function")\n this._write = options.write;\n if (typeof options.writev === "function")\n this._writev = options.writev;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n if (typeof options.final === "function")\n this._final = options.final;\n }\n Stream.call(this);\n }\n Writable.prototype.pipe = function() {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n }\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== "string" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer13.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf)\n encoding = "buffer";\n else if (!encoding)\n encoding = state.defaultEncoding;\n if (typeof cb !== "function")\n cb = nop;\n if (state.ending)\n writeAfterEnd(this, cb);\n else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function() {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function() {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest)\n clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n if (typeof encoding === "string")\n encoding = encoding.toLowerCase();\n if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1))\n throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") {\n chunk = Buffer13.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = "buffer";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n if (!ret)\n state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed)\n state.onwrite(new ERR_STREAM_DESTROYED("write"));\n else if (writev)\n stream._writev(chunk, state.onwrite);\n else\n stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n process.nextTick(cb, er);\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== "function")\n throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er)\n onwriteError(stream, state, sync, er, cb);\n else {\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished)\n onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit("drain");\n }\n }\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf)\n allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, "", holder.finish);\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n if (state.writing) {\n break;\n }\n }\n if (entry === null)\n state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === "function") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === "function") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== void 0)\n this.write(chunk, encoding);\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n if (!state.ending)\n endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function(err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit("prefinish");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === "function" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit("prefinish");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit("finish");\n if (state.autoDestroy) {\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished)\n process.nextTick(cb);\n else\n stream.once("finish", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._writableState === void 0) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n if (!this._writableState) {\n return;\n }\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_duplex.js\nvar require_stream_duplex = __commonJS({\n "node_modules/readable-stream/lib/_stream_duplex.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var objectKeys = Object.keys || function(obj) {\n var keys2 = [];\n for (var key2 in obj) {\n keys2.push(key2);\n }\n return keys2;\n };\n module.exports = Duplex;\n var Readable = require_stream_readable();\n var Writable = require_stream_writable();\n require_inherits_browser()(Duplex, Readable);\n {\n keys = objectKeys(Writable.prototype);\n for (v = 0; v < keys.length; v++) {\n method = keys[v];\n if (!Duplex.prototype[method])\n Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n var keys;\n var method;\n var v;\n function Duplex(options) {\n if (!(this instanceof Duplex))\n return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false)\n this.readable = false;\n if (options.writable === false)\n this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once("end", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, "writableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, "writableBuffer", {\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, "writableLength", {\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function onend() {\n if (this._writableState.ended)\n return;\n process.nextTick(onEndNT, this);\n }\n function onEndNT(self2) {\n self2.end();\n }\n Object.defineProperty(Duplex.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return;\n }\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n }\n});\n\n// node_modules/safe-buffer/index.js\nvar require_safe_buffer = __commonJS({\n "node_modules/safe-buffer/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var buffer = require_buffer();\n var Buffer13 = buffer.Buffer;\n function copyProps(src, dst) {\n for (var key2 in src) {\n dst[key2] = src[key2];\n }\n }\n if (Buffer13.from && Buffer13.alloc && Buffer13.allocUnsafe && Buffer13.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer13(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer13.prototype);\n copyProps(Buffer13, SafeBuffer);\n SafeBuffer.from = function(arg, encodingOrOffset, length) {\n if (typeof arg === "number") {\n throw new TypeError("Argument must not be a number");\n }\n return Buffer13(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function(size, fill, encoding) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n var buf2 = Buffer13(size);\n if (fill !== void 0) {\n if (typeof encoding === "string") {\n buf2.fill(fill, encoding);\n } else {\n buf2.fill(fill);\n }\n } else {\n buf2.fill(0);\n }\n return buf2;\n };\n SafeBuffer.allocUnsafe = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return Buffer13(size);\n };\n SafeBuffer.allocUnsafeSlow = function(size) {\n if (typeof size !== "number") {\n throw new TypeError("Argument must be a number");\n }\n return buffer.SlowBuffer(size);\n };\n }\n});\n\n// node_modules/string_decoder/lib/string_decoder.js\nvar require_string_decoder = __commonJS({\n "node_modules/string_decoder/lib/string_decoder.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var Buffer13 = require_safe_buffer().Buffer;\n var isEncoding = Buffer13.isEncoding || function(encoding) {\n encoding = "" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case "hex":\n case "utf8":\n case "utf-8":\n case "ascii":\n case "binary":\n case "base64":\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n case "raw":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc)\n return "utf8";\n var retried;\n while (true) {\n switch (enc) {\n case "utf8":\n case "utf-8":\n return "utf8";\n case "ucs2":\n case "ucs-2":\n case "utf16le":\n case "utf-16le":\n return "utf16le";\n case "latin1":\n case "binary":\n return "latin1";\n case "base64":\n case "ascii":\n case "hex":\n return enc;\n default:\n if (retried)\n return;\n enc = ("" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== "string" && (Buffer13.isEncoding === isEncoding || !isEncoding(enc)))\n throw new Error("Unknown encoding: " + enc);\n return nenc || enc;\n }\n exports.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case "utf16le":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case "utf8":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case "base64":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer13.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function(buf2) {\n if (buf2.length === 0)\n return "";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf2);\n if (r === void 0)\n return "";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf2.length)\n return r ? r + this.text(buf2, i) : this.text(buf2, i);\n return r || "";\n };\n StringDecoder.prototype.end = utf8End;\n StringDecoder.prototype.text = utf8Text;\n StringDecoder.prototype.fillLast = function(buf2) {\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf2.length);\n this.lastNeed -= buf2.length;\n };\n function utf8CheckByte(byte) {\n if (byte <= 127)\n return 0;\n else if (byte >> 5 === 6)\n return 2;\n else if (byte >> 4 === 14)\n return 3;\n else if (byte >> 3 === 30)\n return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n function utf8CheckIncomplete(self2, buf2, i) {\n var j = buf2.length - 1;\n if (j < i)\n return 0;\n var nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0)\n self2.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2)\n return 0;\n nb = utf8CheckByte(buf2[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2)\n nb = 0;\n else\n self2.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n function utf8CheckExtraBytes(self2, buf2, p) {\n if ((buf2[0] & 192) !== 128) {\n self2.lastNeed = 0;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 1 && buf2.length > 1) {\n if ((buf2[1] & 192) !== 128) {\n self2.lastNeed = 1;\n return "\\uFFFD";\n }\n if (self2.lastNeed > 2 && buf2.length > 2) {\n if ((buf2[2] & 192) !== 128) {\n self2.lastNeed = 2;\n return "\\uFFFD";\n }\n }\n }\n }\n function utf8FillLast(buf2) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf2, p);\n if (r !== void 0)\n return r;\n if (this.lastNeed <= buf2.length) {\n buf2.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf2.copy(this.lastChar, p, 0, buf2.length);\n this.lastNeed -= buf2.length;\n }\n function utf8Text(buf2, i) {\n var total = utf8CheckIncomplete(this, buf2, i);\n if (!this.lastNeed)\n return buf2.toString("utf8", i);\n this.lastTotal = total;\n var end = buf2.length - (total - this.lastNeed);\n buf2.copy(this.lastChar, 0, end);\n return buf2.toString("utf8", i, end);\n }\n function utf8End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + "\\uFFFD";\n return r;\n }\n function utf16Text(buf2, i) {\n if ((buf2.length - i) % 2 === 0) {\n var r = buf2.toString("utf16le", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf2[buf2.length - 1];\n return buf2.toString("utf16le", i, buf2.length - 1);\n }\n function utf16End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString("utf16le", 0, end);\n }\n return r;\n }\n function base64Text(buf2, i) {\n var n = (buf2.length - i) % 3;\n if (n === 0)\n return buf2.toString("base64", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf2[buf2.length - 1];\n } else {\n this.lastChar[0] = buf2[buf2.length - 2];\n this.lastChar[1] = buf2[buf2.length - 1];\n }\n return buf2.toString("base64", i, buf2.length - n);\n }\n function base64End(buf2) {\n var r = buf2 && buf2.length ? this.write(buf2) : "";\n if (this.lastNeed)\n return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed);\n return r;\n }\n function simpleWrite(buf2) {\n return buf2.toString(this.encoding);\n }\n function simpleEnd(buf2) {\n return buf2 && buf2.length ? this.write(buf2) : "";\n }\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/end-of-stream.js\nvar require_end_of_stream = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/end-of-stream.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop2() {\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === "function")\n return eos(stream, null, opts);\n if (!opts)\n opts = {};\n callback = once(callback || noop2);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable2 = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish2() {\n if (!stream.writable)\n onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish2() {\n writable2 = false;\n writableEnded = true;\n if (!readable)\n callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend2() {\n readable = false;\n readableEnded = true;\n if (!writable2)\n callback.call(stream);\n };\n var onerror = function onerror2(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose2() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable2 && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended)\n err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest2() {\n stream.req.on("finish", onfinish);\n };\n if (isRequest(stream)) {\n stream.on("complete", onfinish);\n stream.on("abort", onclose);\n if (stream.req)\n onrequest();\n else\n stream.on("request", onrequest);\n } else if (writable2 && !stream._writableState) {\n stream.on("end", onlegacyfinish);\n stream.on("close", onlegacyfinish);\n }\n stream.on("end", onend);\n stream.on("finish", onfinish);\n if (opts.error !== false)\n stream.on("error", onerror);\n stream.on("close", onclose);\n return function() {\n stream.removeListener("complete", onfinish);\n stream.removeListener("abort", onclose);\n stream.removeListener("request", onrequest);\n if (stream.req)\n stream.req.removeListener("finish", onfinish);\n stream.removeListener("end", onlegacyfinish);\n stream.removeListener("close", onlegacyfinish);\n stream.removeListener("finish", onfinish);\n stream.removeListener("end", onend);\n stream.removeListener("error", onerror);\n stream.removeListener("close", onclose);\n };\n }\n module.exports = eos;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/async_iterator.js\nvar require_async_iterator = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/async_iterator.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var _Object$setPrototypeO;\n function _defineProperty(obj, key2, value) {\n if (key2 in obj) {\n Object.defineProperty(obj, key2, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key2] = value;\n }\n return obj;\n }\n var finished = require_end_of_stream();\n var kLastResolve = Symbol("lastResolve");\n var kLastReject = Symbol("lastReject");\n var kError = Symbol("error");\n var kEnded = Symbol("ended");\n var kLastPromise = Symbol("lastPromise");\n var kHandlePromise = Symbol("handlePromise");\n var kStream = Symbol("stream");\n function createIterResult(value, done) {\n return {\n value,\n done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n process.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function(resolve, reject) {\n lastPromise.then(function() {\n if (iter[kEnded]) {\n resolve(createIterResult(void 0, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function() {\n });\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(void 0, true));\n }\n if (this[kStream].destroyed) {\n return new Promise(function(resolve, reject) {\n process.nextTick(function() {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(void 0, true));\n }\n });\n });\n }\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {\n return this;\n }), _defineProperty(_Object$setPrototypeO, "return", function _return() {\n var _this2 = this;\n return new Promise(function(resolve, reject) {\n _this2[kStream].destroy(null, function(err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(void 0, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function(err) {\n if (err && err.code !== "ERR_STREAM_PREMATURE_CLOSE") {\n var reject = iterator[kLastReject];\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(void 0, true));\n }\n iterator[kEnded] = true;\n });\n stream.on("readable", onReadable.bind(null, iterator));\n return iterator;\n };\n module.exports = createReadableStreamAsyncIterator;\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/from-browser.js\nvar require_from_browser = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/from-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = function() {\n throw new Error("Readable.from is not available in the browser");\n };\n }\n});\n\n// node_modules/readable-stream/lib/_stream_readable.js\nvar require_stream_readable = __commonJS({\n "node_modules/readable-stream/lib/_stream_readable.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Readable;\n var Duplex;\n Readable.ReadableState = ReadableState;\n var EE = require_events().EventEmitter;\n var EElistenerCount = function EElistenerCount2(emitter, type) {\n return emitter.listeners(type).length;\n };\n var Stream = require_stream_browser();\n var Buffer13 = require_buffer().Buffer;\n var OurUint8Array = self.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer13.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer13.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var debugUtil = require_util();\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog("stream");\n } else {\n debug = function debug2() {\n };\n }\n var BufferList = require_buffer_list();\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n require_inherits_browser()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = ["error", "close", "destroy", "pause", "resume"];\n function prependListener(emitter, event, fn) {\n if (typeof emitter.prependListener === "function")\n return emitter.prependListener(event, fn);\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== "boolean")\n isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex)\n this.objectMode = this.objectMode || !!options.readableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, "readableHighWaterMark", isDuplex);\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n this.sync = true;\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.destroyed = false;\n this.defaultEncoding = options.defaultEncoding || "utf8";\n this.awaitDrain = 0;\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || require_stream_duplex();\n if (!(this instanceof Readable))\n return new Readable(options);\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n this.readable = true;\n if (options) {\n if (typeof options.read === "function")\n this._read = options.read;\n if (typeof options.destroy === "function")\n this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, "destroyed", {\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n if (!this._readableState) {\n return;\n }\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n Readable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === "string") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer13.from(chunk, encoding);\n encoding = "";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n Readable.prototype.unshift = function(chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug("readableAddChunk", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck)\n er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer13.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted)\n errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else\n addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0)\n addChunk(stream, state, chunk, false);\n else\n maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit("data", chunk);\n } else {\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront)\n state.buffer.unshift(chunk);\n else\n state.buffer.push(chunk);\n if (state.needReadable)\n emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== void 0 && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE("chunk", ["string", "Buffer", "Uint8Array"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function() {\n return this._readableState.flowing === false;\n };\n Readable.prototype.setEncoding = function(enc) {\n if (!StringDecoder)\n StringDecoder = require_string_decoder().StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n this._readableState.encoding = this._readableState.decoder.encoding;\n var p = this._readableState.buffer.head;\n var content = "";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== "")\n this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended)\n return 0;\n if (state.objectMode)\n return 1;\n if (n !== n) {\n if (state.flowing && state.length)\n return state.buffer.head.data.length;\n else\n return state.length;\n }\n if (n > state.highWaterMark)\n state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length)\n return n;\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n Readable.prototype.read = function(n) {\n debug("read", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0)\n state.emittedReadable = false;\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug("read: emitReadable", state.length, state.ended);\n if (state.length === 0 && state.ended)\n endReadable(this);\n else\n emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n if (n === 0 && state.ended) {\n if (state.length === 0)\n endReadable(this);\n return null;\n }\n var doRead = state.needReadable;\n debug("need readable", doRead);\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug("length less than watermark", doRead);\n }\n if (state.ended || state.reading) {\n doRead = false;\n debug("reading or ended", doRead);\n } else if (doRead) {\n debug("do read");\n state.reading = true;\n state.sync = true;\n if (state.length === 0)\n state.needReadable = true;\n this._read(state.highWaterMark);\n state.sync = false;\n if (!state.reading)\n n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0)\n ret = fromList(n, state);\n else\n ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n if (!state.ended)\n state.needReadable = true;\n if (nOrig !== n && state.ended)\n endReadable(this);\n }\n if (ret !== null)\n this.emit("data", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug("onEofChunk");\n if (state.ended)\n return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n emitReadable(stream);\n } else {\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n function emitReadable(stream) {\n var state = stream._readableState;\n debug("emitReadable", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug("emitReadable", state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug("emitReadable_", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit("readable");\n state.emittedReadable = false;\n }\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug("maybeReadMore read 0");\n stream.read(0);\n if (len === state.length)\n break;\n }\n state.readingMore = false;\n }\n Readable.prototype._read = function(n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED("_read()"));\n };\n Readable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted)\n process.nextTick(endFn);\n else\n src.once("end", endFn);\n dest.on("unpipe", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug("onunpipe");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug("onend");\n dest.end();\n }\n var ondrain = pipeOnDrain(src);\n dest.on("drain", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug("cleanup");\n dest.removeListener("close", onclose);\n dest.removeListener("finish", onfinish);\n dest.removeListener("drain", ondrain);\n dest.removeListener("error", onerror);\n dest.removeListener("unpipe", onunpipe);\n src.removeListener("end", onend);\n src.removeListener("end", unpipe);\n src.removeListener("data", ondata);\n cleanedUp = true;\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain))\n ondrain();\n }\n src.on("data", ondata);\n function ondata(chunk) {\n debug("ondata");\n var ret = dest.write(chunk);\n debug("dest.write", ret);\n if (ret === false) {\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug("false write response, pause", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n function onerror(er) {\n debug("onerror", er);\n unpipe();\n dest.removeListener("error", onerror);\n if (EElistenerCount(dest, "error") === 0)\n errorOrDestroy(dest, er);\n }\n prependListener(dest, "error", onerror);\n function onclose() {\n dest.removeListener("finish", onfinish);\n unpipe();\n }\n dest.once("close", onclose);\n function onfinish() {\n debug("onfinish");\n dest.removeListener("close", onclose);\n unpipe();\n }\n dest.once("finish", onfinish);\n function unpipe() {\n debug("unpipe");\n src.unpipe(dest);\n }\n dest.emit("pipe", src);\n if (!state.flowing) {\n debug("pipe resume");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug("pipeOnDrain", state.awaitDrain);\n if (state.awaitDrain)\n state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, "data")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n if (state.pipesCount === 0)\n return this;\n if (state.pipesCount === 1) {\n if (dest && dest !== state.pipes)\n return this;\n if (!dest)\n dest = state.pipes;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest)\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n }\n if (!dest) {\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit("unpipe", this, {\n hasUnpiped: false\n });\n }\n return this;\n }\n var index = indexOf(state.pipes, dest);\n if (index === -1)\n return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1)\n state.pipes = state.pipes[0];\n dest.emit("unpipe", this, unpipeInfo);\n return this;\n };\n Readable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === "data") {\n state.readableListening = this.listenerCount("readable") > 0;\n if (state.flowing !== false)\n this.resume();\n } else if (ev === "readable") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug("on readable", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function(ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === "readable") {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function(ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === "readable" || ev === void 0) {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self2) {\n var state = self2._readableState;\n state.readableListening = self2.listenerCount("readable") > 0;\n if (state.resumeScheduled && !state.paused) {\n state.flowing = true;\n } else if (self2.listenerCount("data") > 0) {\n self2.resume();\n }\n }\n function nReadingNextTick(self2) {\n debug("readable nexttick read 0");\n self2.read(0);\n }\n Readable.prototype.resume = function() {\n var state = this._readableState;\n if (!state.flowing) {\n debug("resume");\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug("resume", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit("resume");\n flow(stream);\n if (state.flowing && !state.reading)\n stream.read(0);\n }\n Readable.prototype.pause = function() {\n debug("call pause flowing=%j", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug("pause");\n this._readableState.flowing = false;\n this.emit("pause");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug("flow", state.flowing);\n while (state.flowing && stream.read() !== null) {\n ;\n }\n }\n Readable.prototype.wrap = function(stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on("end", function() {\n debug("wrapped end");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length)\n _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on("data", function(chunk) {\n debug("wrapped data");\n if (state.decoder)\n chunk = state.decoder.write(chunk);\n if (state.objectMode && (chunk === null || chunk === void 0))\n return;\n else if (!state.objectMode && (!chunk || !chunk.length))\n return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n for (var i in stream) {\n if (this[i] === void 0 && typeof stream[i] === "function") {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n this._read = function(n2) {\n debug("wrapped _read", n2);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === "function") {\n Readable.prototype[Symbol.asyncIterator] = function() {\n if (createReadableStreamAsyncIterator === void 0) {\n createReadableStreamAsyncIterator = require_async_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, "readableHighWaterMark", {\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, "readableBuffer", {\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, "readableFlowing", {\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, "readableLength", {\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n function fromList(n, state) {\n if (state.length === 0)\n return null;\n var ret;\n if (state.objectMode)\n ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n if (state.decoder)\n ret = state.buffer.join("");\n else if (state.buffer.length === 1)\n ret = state.buffer.first();\n else\n ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug("endReadable", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug("endReadableNT", state.endEmitted, state.length);\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit("end");\n if (state.autoDestroy) {\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === "function") {\n Readable.from = function(iterable, opts) {\n if (from === void 0) {\n from = require_from_browser();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x)\n return i;\n }\n return -1;\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_transform.js\nvar require_stream_transform = __commonJS({\n "node_modules/readable-stream/lib/_stream_transform.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = Transform;\n var _require$codes = require_errors_browser().codes;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;\n var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = require_stream_duplex();\n require_inherits_browser()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit("error", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform))\n return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n this._readableState.needReadable = true;\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === "function")\n this._transform = options.transform;\n if (typeof options.flush === "function")\n this._flush = options.flush;\n }\n this.on("prefinish", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === "function" && !this._readableState.destroyed) {\n this._flush(function(er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n Transform.prototype._transform = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED("_transform()"));\n };\n Transform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark)\n this._read(rs.highWaterMark);\n }\n };\n Transform.prototype._read = function(n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function(err, cb) {\n Duplex.prototype._destroy.call(this, err, function(err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er)\n return stream.emit("error", er);\n if (data != null)\n stream.push(data);\n if (stream._writableState.length)\n throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming)\n throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n }\n});\n\n// node_modules/readable-stream/lib/_stream_passthrough.js\nvar require_stream_passthrough = __commonJS({\n "node_modules/readable-stream/lib/_stream_passthrough.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n module.exports = PassThrough;\n var Transform = require_stream_transform();\n require_inherits_browser()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough))\n return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n };\n }\n});\n\n// node_modules/readable-stream/lib/internal/streams/pipeline.js\nvar require_pipeline = __commonJS({\n "node_modules/readable-stream/lib/internal/streams/pipeline.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var eos;\n function once(callback) {\n var called = false;\n return function() {\n if (called)\n return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = require_errors_browser().codes;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop2(err) {\n if (err)\n throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === "function";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on("close", function() {\n closed = true;\n });\n if (eos === void 0)\n eos = require_end_of_stream();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function(err) {\n if (err)\n return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function(err) {\n if (closed)\n return;\n if (destroyed)\n return;\n destroyed = true;\n if (isRequest(stream))\n return stream.abort();\n if (typeof stream.destroy === "function")\n return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED("pipe"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length)\n return noop2;\n if (typeof streams[streams.length - 1] !== "function")\n return noop2;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0]))\n streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS("streams");\n }\n var error;\n var destroys = streams.map(function(stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function(err) {\n if (!error)\n error = err;\n if (err)\n destroys.forEach(call);\n if (reading)\n return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n module.exports = pipeline;\n }\n});\n\n// node_modules/readable-stream/readable-browser.js\nvar require_readable_browser = __commonJS({\n "node_modules/readable-stream/readable-browser.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n exports = module.exports = require_stream_readable();\n exports.Stream = exports;\n exports.Readable = exports;\n exports.Writable = require_stream_writable();\n exports.Duplex = require_stream_duplex();\n exports.Transform = require_stream_transform();\n exports.PassThrough = require_stream_passthrough();\n exports.finished = require_end_of_stream();\n exports.pipeline = require_pipeline();\n }\n});\n\n// node_modules/readable-web-to-node-stream/lib/index.js\nvar require_lib = __commonJS({\n "node_modules/readable-web-to-node-stream/lib/index.js"(exports) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n Object.defineProperty(exports, "__esModule", { value: true });\n exports.ReadableWebToNodeStream = void 0;\n var readable_stream_1 = require_readable_browser();\n var ReadableWebToNodeStream2 = class extends readable_stream_1.Readable {\n constructor(stream) {\n super();\n this.bytesRead = 0;\n this.released = false;\n this.reader = stream.getReader();\n }\n async _read() {\n if (this.released) {\n this.push(null);\n return;\n }\n this.pendingRead = this.reader.read();\n const data = await this.pendingRead;\n delete this.pendingRead;\n if (data.done || this.released) {\n this.push(null);\n } else {\n this.bytesRead += data.value.length;\n this.push(data.value);\n }\n }\n async waitForReadToComplete() {\n if (this.pendingRead) {\n await this.pendingRead;\n }\n }\n async close() {\n await this.syncAndRelease();\n }\n async syncAndRelease() {\n this.released = true;\n await this.waitForReadToComplete();\n await this.reader.releaseLock();\n }\n };\n exports.ReadableWebToNodeStream = ReadableWebToNodeStream2;\n }\n});\n\n// node_modules/base-x/src/index.js\nvar require_src = __commonJS({\n "node_modules/base-x/src/index.js"(exports, module) {\n "use strict";\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n function base(ALPHABET) {\n if (ALPHABET.length >= 255) {\n throw new TypeError("Alphabet too long");\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + " is ambiguous");\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode2(source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError("Expected Uint8Array");\n }\n if (source.length === 0) {\n return "";\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i2 = 0;\n for (var it1 = size - 1; (carry !== 0 || i2 < length) && it1 !== -1; it1--, i2++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== "string") {\n throw new TypeError("Expected String");\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i2 = 0;\n for (var it3 = size - 1; (carry !== 0 || i2 < length) && it3 !== -1; it3--, i2++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error("Non-zero carry");\n }\n length = i2;\n psz++;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j2 = zeroes;\n while (it4 !== size) {\n vch[j2++] = b256[it4++];\n }\n return vch;\n }\n function decode3(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error("Non-base" + BASE + " character");\n }\n return {\n encode: encode2,\n decodeUnsafe,\n decode: decode3\n };\n }\n module.exports = base;\n }\n});\n\n// node_modules/bs58/index.js\nvar require_bs58 = __commonJS({\n "node_modules/bs58/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var basex = require_src();\n var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";\n module.exports = basex(ALPHABET);\n }\n});\n\n// node_modules/jpeg-js/lib/encoder.js\nvar require_encoder = __commonJS({\n "node_modules/jpeg-js/lib/encoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var btoa = btoa || function(buf2) {\n return Buffer2.from(buf2).toString("base64");\n };\n function JPEGEncoder(quality) {\n var self2 = this;\n var fround = Math.round;\n var ffloor = Math.floor;\n var YTable = new Array(64);\n var UVTable = new Array(64);\n var fdtbl_Y = new Array(64);\n var fdtbl_UV = new Array(64);\n var YDC_HT2;\n var UVDC_HT2;\n var YAC_HT2;\n var UVAC_HT2;\n var bitcode2 = new Array(65535);\n var category2 = new Array(65535);\n var outputfDCTQuant = new Array(64);\n var DU = new Array(64);\n var byteout = [];\n var bytenew = 0;\n var bytepos = 7;\n var YDU = new Array(64);\n var UDU = new Array(64);\n var VDU = new Array(64);\n var clt = new Array(256);\n var RGB_YUV_TABLE = new Array(2048);\n var currentQuality;\n var ZigZag = [\n 0,\n 1,\n 5,\n 6,\n 14,\n 15,\n 27,\n 28,\n 2,\n 4,\n 7,\n 13,\n 16,\n 26,\n 29,\n 42,\n 3,\n 8,\n 12,\n 17,\n 25,\n 30,\n 41,\n 43,\n 9,\n 11,\n 18,\n 24,\n 31,\n 40,\n 44,\n 53,\n 10,\n 19,\n 23,\n 32,\n 39,\n 45,\n 52,\n 54,\n 20,\n 22,\n 33,\n 38,\n 46,\n 51,\n 55,\n 60,\n 21,\n 34,\n 37,\n 47,\n 50,\n 56,\n 59,\n 61,\n 35,\n 36,\n 48,\n 49,\n 57,\n 58,\n 62,\n 63\n ];\n var std_dc_luminance_nrcodes2 = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\n var std_dc_luminance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_luminance_nrcodes2 = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\n var std_ac_luminance_values2 = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n var std_dc_chrominance_nrcodes2 = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\n var std_dc_chrominance_values2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var std_ac_chrominance_nrcodes2 = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\n var std_ac_chrominance_values2 = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n ];\n function initQuantTables(sf) {\n var YQT = [\n 16,\n 11,\n 10,\n 16,\n 24,\n 40,\n 51,\n 61,\n 12,\n 12,\n 14,\n 19,\n 26,\n 58,\n 60,\n 55,\n 14,\n 13,\n 16,\n 24,\n 40,\n 57,\n 69,\n 56,\n 14,\n 17,\n 22,\n 29,\n 51,\n 87,\n 80,\n 62,\n 18,\n 22,\n 37,\n 56,\n 68,\n 109,\n 103,\n 77,\n 24,\n 35,\n 55,\n 64,\n 81,\n 104,\n 113,\n 92,\n 49,\n 64,\n 78,\n 87,\n 103,\n 121,\n 120,\n 101,\n 72,\n 92,\n 95,\n 98,\n 112,\n 100,\n 103,\n 99\n ];\n for (var i = 0; i < 64; i++) {\n var t = ffloor((YQT[i] * sf + 50) / 100);\n if (t < 1) {\n t = 1;\n } else if (t > 255) {\n t = 255;\n }\n YTable[ZigZag[i]] = t;\n }\n var UVQT = [\n 17,\n 18,\n 24,\n 47,\n 99,\n 99,\n 99,\n 99,\n 18,\n 21,\n 26,\n 66,\n 99,\n 99,\n 99,\n 99,\n 24,\n 26,\n 56,\n 99,\n 99,\n 99,\n 99,\n 99,\n 47,\n 66,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99,\n 99\n ];\n for (var j = 0; j < 64; j++) {\n var u = ffloor((UVQT[j] * sf + 50) / 100);\n if (u < 1) {\n u = 1;\n } else if (u > 255) {\n u = 255;\n }\n UVTable[ZigZag[j]] = u;\n }\n var aasf = [\n 1,\n 1.387039845,\n 1.306562965,\n 1.175875602,\n 1,\n 0.785694958,\n 0.5411961,\n 0.275899379\n ];\n var k = 0;\n for (var row = 0; row < 8; row++) {\n for (var col = 0; col < 8; col++) {\n fdtbl_Y[k] = 1 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n fdtbl_UV[k] = 1 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);\n k++;\n }\n }\n }\n function computeHuffmanTbl(nrcodes, std_table) {\n var codevalue = 0;\n var pos_in_table = 0;\n var HT = new Array();\n for (var k = 1; k <= 16; k++) {\n for (var j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n function initHuffmanTbl() {\n YDC_HT2 = computeHuffmanTbl(std_dc_luminance_nrcodes2, std_dc_luminance_values2);\n UVDC_HT2 = computeHuffmanTbl(std_dc_chrominance_nrcodes2, std_dc_chrominance_values2);\n YAC_HT2 = computeHuffmanTbl(std_ac_luminance_nrcodes2, std_ac_luminance_values2);\n UVAC_HT2 = computeHuffmanTbl(std_ac_chrominance_nrcodes2, std_ac_chrominance_values2);\n }\n function initCategoryNumber() {\n var nrlower = 1;\n var nrupper = 2;\n for (var cat = 1; cat <= 15; cat++) {\n for (var nr = nrlower; nr < nrupper; nr++) {\n category2[32767 + nr] = cat;\n bitcode2[32767 + nr] = [];\n bitcode2[32767 + nr][1] = cat;\n bitcode2[32767 + nr][0] = nr;\n }\n for (var nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category2[32767 + nrneg] = cat;\n bitcode2[32767 + nrneg] = [];\n bitcode2[32767 + nrneg][1] = cat;\n bitcode2[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n }\n function initRGBYUVTable() {\n for (var i = 0; i < 256; i++) {\n RGB_YUV_TABLE[i] = 19595 * i;\n RGB_YUV_TABLE[i + 256 >> 0] = 38470 * i;\n RGB_YUV_TABLE[i + 512 >> 0] = 7471 * i + 32768;\n RGB_YUV_TABLE[i + 768 >> 0] = -11059 * i;\n RGB_YUV_TABLE[i + 1024 >> 0] = -21709 * i;\n RGB_YUV_TABLE[i + 1280 >> 0] = 32768 * i + 8421375;\n RGB_YUV_TABLE[i + 1536 >> 0] = -27439 * i;\n RGB_YUV_TABLE[i + 1792 >> 0] = -5329 * i;\n }\n }\n function writeBits(bs) {\n var value = bs[0];\n var posval = bs[1] - 1;\n while (posval >= 0) {\n if (value & 1 << posval) {\n bytenew |= 1 << bytepos;\n }\n posval--;\n bytepos--;\n if (bytepos < 0) {\n if (bytenew == 255) {\n writeByte(255);\n writeByte(0);\n } else {\n writeByte(bytenew);\n }\n bytepos = 7;\n bytenew = 0;\n }\n }\n }\n function writeByte(value) {\n byteout.push(value);\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function fDCTQuant(data, fdtbl) {\n var d0, d1, d2, d3, d4, d5, d6, d7;\n var dataOff = 0;\n var i;\n var I8 = 8;\n var I64 = 64;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 1];\n d2 = data[dataOff + 2];\n d3 = data[dataOff + 3];\n d4 = data[dataOff + 4];\n d5 = data[dataOff + 5];\n d6 = data[dataOff + 6];\n d7 = data[dataOff + 7];\n var tmp0 = d0 + d7;\n var tmp7 = d0 - d7;\n var tmp1 = d1 + d6;\n var tmp6 = d1 - d6;\n var tmp2 = d2 + d5;\n var tmp5 = d2 - d5;\n var tmp3 = d3 + d4;\n var tmp4 = d3 - d4;\n var tmp10 = tmp0 + tmp3;\n var tmp13 = tmp0 - tmp3;\n var tmp11 = tmp1 + tmp2;\n var tmp12 = tmp1 - tmp2;\n data[dataOff] = tmp10 + tmp11;\n data[dataOff + 4] = tmp10 - tmp11;\n var z1 = (tmp12 + tmp13) * 0.707106781;\n data[dataOff + 2] = tmp13 + z1;\n data[dataOff + 6] = tmp13 - z1;\n tmp10 = tmp4 + tmp5;\n tmp11 = tmp5 + tmp6;\n tmp12 = tmp6 + tmp7;\n var z5 = (tmp10 - tmp12) * 0.382683433;\n var z2 = 0.5411961 * tmp10 + z5;\n var z4 = 1.306562965 * tmp12 + z5;\n var z3 = tmp11 * 0.707106781;\n var z11 = tmp7 + z3;\n var z13 = tmp7 - z3;\n data[dataOff + 5] = z13 + z2;\n data[dataOff + 3] = z13 - z2;\n data[dataOff + 1] = z11 + z4;\n data[dataOff + 7] = z11 - z4;\n dataOff += 8;\n }\n dataOff = 0;\n for (i = 0; i < I8; ++i) {\n d0 = data[dataOff];\n d1 = data[dataOff + 8];\n d2 = data[dataOff + 16];\n d3 = data[dataOff + 24];\n d4 = data[dataOff + 32];\n d5 = data[dataOff + 40];\n d6 = data[dataOff + 48];\n d7 = data[dataOff + 56];\n var tmp0p2 = d0 + d7;\n var tmp7p2 = d0 - d7;\n var tmp1p2 = d1 + d6;\n var tmp6p2 = d1 - d6;\n var tmp2p2 = d2 + d5;\n var tmp5p2 = d2 - d5;\n var tmp3p2 = d3 + d4;\n var tmp4p2 = d3 - d4;\n var tmp10p2 = tmp0p2 + tmp3p2;\n var tmp13p2 = tmp0p2 - tmp3p2;\n var tmp11p2 = tmp1p2 + tmp2p2;\n var tmp12p2 = tmp1p2 - tmp2p2;\n data[dataOff] = tmp10p2 + tmp11p2;\n data[dataOff + 32] = tmp10p2 - tmp11p2;\n var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781;\n data[dataOff + 16] = tmp13p2 + z1p2;\n data[dataOff + 48] = tmp13p2 - z1p2;\n tmp10p2 = tmp4p2 + tmp5p2;\n tmp11p2 = tmp5p2 + tmp6p2;\n tmp12p2 = tmp6p2 + tmp7p2;\n var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433;\n var z2p2 = 0.5411961 * tmp10p2 + z5p2;\n var z4p2 = 1.306562965 * tmp12p2 + z5p2;\n var z3p2 = tmp11p2 * 0.707106781;\n var z11p2 = tmp7p2 + z3p2;\n var z13p2 = tmp7p2 - z3p2;\n data[dataOff + 40] = z13p2 + z2p2;\n data[dataOff + 24] = z13p2 - z2p2;\n data[dataOff + 8] = z11p2 + z4p2;\n data[dataOff + 56] = z11p2 - z4p2;\n dataOff++;\n }\n var fDCTQuant2;\n for (i = 0; i < I64; ++i) {\n fDCTQuant2 = data[i] * fdtbl[i];\n outputfDCTQuant[i] = fDCTQuant2 > 0 ? fDCTQuant2 + 0.5 | 0 : fDCTQuant2 - 0.5 | 0;\n }\n return outputfDCTQuant;\n }\n function writeAPP0() {\n writeWord(65504);\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n }\n function writeAPP1(exifBuffer) {\n if (!exifBuffer)\n return;\n writeWord(65505);\n if (exifBuffer[0] === 69 && exifBuffer[1] === 120 && exifBuffer[2] === 105 && exifBuffer[3] === 102) {\n writeWord(exifBuffer.length + 2);\n } else {\n writeWord(exifBuffer.length + 5 + 2);\n writeByte(69);\n writeByte(120);\n writeByte(105);\n writeByte(102);\n writeByte(0);\n }\n for (var i = 0; i < exifBuffer.length; i++) {\n writeByte(exifBuffer[i]);\n }\n }\n function writeSOF0(width, height) {\n writeWord(65472);\n writeWord(17);\n writeByte(8);\n writeWord(height);\n writeWord(width);\n writeByte(3);\n writeByte(1);\n writeByte(17);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(1);\n writeByte(3);\n writeByte(17);\n writeByte(1);\n }\n function writeDQT() {\n writeWord(65499);\n writeWord(132);\n writeByte(0);\n for (var i = 0; i < 64; i++) {\n writeByte(YTable[i]);\n }\n writeByte(1);\n for (var j = 0; j < 64; j++) {\n writeByte(UVTable[j]);\n }\n }\n function writeDHT() {\n writeWord(65476);\n writeWord(418);\n writeByte(0);\n for (var i = 0; i < 16; i++) {\n writeByte(std_dc_luminance_nrcodes2[i + 1]);\n }\n for (var j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values2[j]);\n }\n writeByte(16);\n for (var k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes2[k + 1]);\n }\n for (var l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values2[l]);\n }\n writeByte(1);\n for (var m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes2[m + 1]);\n }\n for (var n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values2[n]);\n }\n writeByte(17);\n for (var o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes2[o + 1]);\n }\n for (var p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values2[p]);\n }\n }\n function writeCOM(comments) {\n if (typeof comments === "undefined" || comments.constructor !== Array)\n return;\n comments.forEach((e) => {\n if (typeof e !== "string")\n return;\n writeWord(65534);\n var l = e.length;\n writeWord(l + 2);\n var i;\n for (i = 0; i < l; i++)\n writeByte(e.charCodeAt(i));\n });\n }\n function writeSOS() {\n writeWord(65498);\n writeWord(12);\n writeByte(3);\n writeByte(1);\n writeByte(0);\n writeByte(2);\n writeByte(17);\n writeByte(3);\n writeByte(17);\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(CDU, fdtbl, DC, HTDC, HTAC) {\n var EOB = HTAC[0];\n var M16zeroes = HTAC[240];\n var pos;\n var I16 = 16;\n var I63 = 63;\n var I64 = 64;\n var DU_DCT = fDCTQuant(CDU, fdtbl);\n for (var j = 0; j < I64; ++j) {\n DU[ZigZag[j]] = DU_DCT[j];\n }\n var Diff = DU[0] - DC;\n DC = DU[0];\n if (Diff == 0) {\n writeBits(HTDC[0]);\n } else {\n pos = 32767 + Diff;\n writeBits(HTDC[category2[pos]]);\n writeBits(bitcode2[pos]);\n }\n var end0pos = 63;\n for (; end0pos > 0 && DU[end0pos] == 0; end0pos--) {\n }\n ;\n if (end0pos == 0) {\n writeBits(EOB);\n return DC;\n }\n var i = 1;\n var lng;\n while (i <= end0pos) {\n var startpos = i;\n for (; DU[i] == 0 && i <= end0pos; ++i) {\n }\n var nrzeroes = i - startpos;\n if (nrzeroes >= I16) {\n lng = nrzeroes >> 4;\n for (var nrmarker = 1; nrmarker <= lng; ++nrmarker)\n writeBits(M16zeroes);\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + DU[i];\n writeBits(HTAC[(nrzeroes << 4) + category2[pos]]);\n writeBits(bitcode2[pos]);\n i++;\n }\n if (end0pos != I63) {\n writeBits(EOB);\n }\n return DC;\n }\n function initCharLookupTable() {\n var sfcc = String.fromCharCode;\n for (var i = 0; i < 256; i++) {\n clt[i] = sfcc(i);\n }\n }\n this.encode = function(image, quality2) {\n var time_start = new Date().getTime();\n if (quality2)\n setQuality(quality2);\n byteout = new Array();\n bytenew = 0;\n bytepos = 7;\n writeWord(65496);\n writeAPP0();\n writeCOM(image.comments);\n writeAPP1(image.exifBuffer);\n writeDQT();\n writeSOF0(image.width, image.height);\n writeDHT();\n writeSOS();\n var DCY = 0;\n var DCU = 0;\n var DCV = 0;\n bytenew = 0;\n bytepos = 7;\n this.encode.displayName = "_encode_";\n var imageData = image.data;\n var width = image.width;\n var height = image.height;\n var quadWidth = width * 4;\n var tripleWidth = width * 3;\n var x, y = 0;\n var r, g, b;\n var start, p, col, row, pos;\n while (y < height) {\n x = 0;\n while (x < quadWidth) {\n start = quadWidth * y + x;\n p = start;\n col = -1;\n row = 0;\n for (pos = 0; pos < 64; pos++) {\n row = pos >> 3;\n col = (pos & 7) * 4;\n p = start + row * quadWidth + col;\n if (y + row >= height) {\n p -= quadWidth * (y + 1 + row - height);\n }\n if (x + col >= quadWidth) {\n p -= x + col - quadWidth + 4;\n }\n r = imageData[p++];\n g = imageData[p++];\n b = imageData[p++];\n YDU[pos] = (RGB_YUV_TABLE[r] + RGB_YUV_TABLE[g + 256 >> 0] + RGB_YUV_TABLE[b + 512 >> 0] >> 16) - 128;\n UDU[pos] = (RGB_YUV_TABLE[r + 768 >> 0] + RGB_YUV_TABLE[g + 1024 >> 0] + RGB_YUV_TABLE[b + 1280 >> 0] >> 16) - 128;\n VDU[pos] = (RGB_YUV_TABLE[r + 1280 >> 0] + RGB_YUV_TABLE[g + 1536 >> 0] + RGB_YUV_TABLE[b + 1792 >> 0] >> 16) - 128;\n }\n DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT2, YAC_HT2);\n DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT2, UVAC_HT2);\n DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT2, UVAC_HT2);\n x += 32;\n }\n y += 8;\n }\n if (bytepos >= 0) {\n var fillbits = [];\n fillbits[1] = bytepos + 1;\n fillbits[0] = (1 << bytepos + 1) - 1;\n writeBits(fillbits);\n }\n writeWord(65497);\n if (typeof module === "undefined")\n return new Uint8Array(byteout);\n return Buffer2.from(byteout);\n var jpegDataUri = "data:image/jpeg;base64," + btoa(byteout.join(""));\n byteout = [];\n var duration = new Date().getTime() - time_start;\n return jpegDataUri;\n };\n function setQuality(quality2) {\n if (quality2 <= 0) {\n quality2 = 1;\n }\n if (quality2 > 100) {\n quality2 = 100;\n }\n if (currentQuality == quality2)\n return;\n var sf = 0;\n if (quality2 < 50) {\n sf = Math.floor(5e3 / quality2);\n } else {\n sf = Math.floor(200 - quality2 * 2);\n }\n initQuantTables(sf);\n currentQuality = quality2;\n }\n function init3() {\n var time_start = new Date().getTime();\n if (!quality)\n quality = 50;\n initCharLookupTable();\n initHuffmanTbl();\n initCategoryNumber();\n initRGBYUVTable();\n setQuality(quality);\n var duration = new Date().getTime() - time_start;\n }\n init3();\n }\n if (typeof module !== "undefined") {\n module.exports = encode2;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].encode = encode2;\n }\n function encode2(imgData, qu) {\n if (typeof qu === "undefined")\n qu = 50;\n var encoder = new JPEGEncoder(qu);\n var data = encoder.encode(imgData, qu);\n return {\n data,\n width: imgData.width,\n height: imgData.height\n };\n }\n }\n});\n\n// node_modules/jpeg-js/lib/decoder.js\nvar require_decoder = __commonJS({\n "node_modules/jpeg-js/lib/decoder.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var JpegImage = function jpegImage() {\n "use strict";\n var dctZigZag = new Int32Array([\n 0,\n 1,\n 8,\n 16,\n 9,\n 2,\n 3,\n 10,\n 17,\n 24,\n 32,\n 25,\n 18,\n 11,\n 4,\n 5,\n 12,\n 19,\n 26,\n 33,\n 40,\n 48,\n 41,\n 34,\n 27,\n 20,\n 13,\n 6,\n 7,\n 14,\n 21,\n 28,\n 35,\n 42,\n 49,\n 56,\n 57,\n 50,\n 43,\n 36,\n 29,\n 22,\n 15,\n 23,\n 30,\n 37,\n 44,\n 51,\n 58,\n 59,\n 52,\n 45,\n 38,\n 31,\n 39,\n 46,\n 53,\n 60,\n 61,\n 54,\n 47,\n 55,\n 62,\n 63\n ]);\n var dctCos1 = 4017;\n var dctSin1 = 799;\n var dctCos3 = 3406;\n var dctSin3 = 2276;\n var dctCos6 = 1567;\n var dctSin6 = 3784;\n var dctSqrt2 = 5793;\n var dctSqrt1d2 = 2896;\n function constructor() {\n }\n function buildHuffmanTable2(codeLengths, values) {\n var k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n var p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, opts) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH, maxV = frame.maxV;\n var startOffset = offset, bitsData = 0, bitsCount = 0;\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return bitsData >> bitsCount & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 255) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw new Error("unexpected marker: " + (bitsData << 8 | nextByte).toString(16));\n }\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n function decodeHuffman(tree) {\n var node = tree, bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === "number")\n return node;\n if (typeof node !== "object")\n throw new Error("invalid huffman sequence");\n }\n return null;\n }\n function receive(length) {\n var n2 = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null)\n return;\n n2 = n2 << 1 | bit;\n length--;\n }\n return n2;\n }\n function receiveAndExtend(length) {\n var n2 = receive(length);\n if (n2 >= 1 << length - 1)\n return n2;\n return n2 + (-1 << length) + 1;\n }\n function decodeBaseline(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n zz[0] = component2.pred += diff;\n var k2 = 1;\n while (k2 < 64) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15)\n break;\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s);\n k2++;\n }\n }\n function decodeDCFirst(component2, zz) {\n var t = decodeHuffman(component2.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n zz[0] = component2.pred += diff;\n }\n function decodeDCSuccessive(component2, zz) {\n zz[0] |= readBit() << successive;\n }\n var eobrun = 0;\n function decodeACFirst(component2, zz) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k2 = spectralStart, e = spectralEnd;\n while (k2 <= e) {\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n var z = dctZigZag[k2];\n zz[z] = receiveAndExtend(s) * (1 << successive);\n k2++;\n }\n }\n var successiveACState = 0, successiveACNextValue;\n function decodeACSuccessive(component2, zz) {\n var k2 = spectralStart, e = spectralEnd, r = 0;\n while (k2 <= e) {\n var z = dctZigZag[k2];\n var direction = zz[z] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0:\n var rs = decodeHuffman(component2.huffmanTableAC);\n var s = rs & 15, r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1)\n throw new Error("invalid ACn encoding");\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1:\n case 2:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n r--;\n if (r === 0)\n successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n else {\n zz[z] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4:\n if (zz[z])\n zz[z] += (readBit() << successive) * direction;\n break;\n }\n k2++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0)\n successiveACState = 0;\n }\n }\n function decodeMcu(component2, decode4, mcu2, row, col) {\n var mcuRow = mcu2 / mcusPerLine | 0;\n var mcuCol = mcu2 % mcusPerLine;\n var blockRow = mcuRow * component2.v + row;\n var blockCol = mcuCol * component2.h + col;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n function decodeBlock(component2, decode4, mcu2) {\n var blockRow = mcu2 / component2.blocksPerLine | 0;\n var blockCol = mcu2 % component2.blocksPerLine;\n if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)\n return;\n decode4(component2, component2.blocks[blockRow][blockCol]);\n }\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n var mcu = 0, marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval)\n resetInterval = mcuExpected;\n var h, v;\n while (mcu < mcuExpected) {\n for (i = 0; i < componentsLength; i++)\n components[i].pred = 0;\n eobrun = 0;\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n if (mcu === mcuExpected)\n break;\n }\n }\n if (mcu === mcuExpected) {\n do {\n if (data[offset] === 255) {\n if (data[offset + 1] !== 0) {\n break;\n }\n }\n offset += 1;\n } while (offset < data.length - 2);\n }\n bitsCount = 0;\n marker = data[offset] << 8 | data[offset + 1];\n if (marker < 65280) {\n throw new Error("marker was not found");\n }\n if (marker >= 65488 && marker <= 65495) {\n offset += 2;\n } else\n break;\n }\n return offset - startOffset;\n }\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var R = new Int32Array(64), r = new Uint8Array(64);\n function quantizeAndInverse(zz, dataOut, dataIn) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var p = dataIn;\n var i2;\n for (i2 = 0; i2 < 64; i2++)\n p[i2] = zz[i2] * qt[i2];\n for (i2 = 0; i2 < 8; ++i2) {\n var row = 8 * i2;\n if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 && p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 && p[7 + row] == 0) {\n t = dctSqrt2 * p[0 + row] + 512 >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 + row] + 128 >> 8;\n v1 = dctSqrt2 * p[4 + row] + 128 >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8;\n v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n for (i2 = 0; i2 < 8; ++i2) {\n var col = i2;\n if (p[1 * 8 + col] == 0 && p[2 * 8 + col] == 0 && p[3 * 8 + col] == 0 && p[4 * 8 + col] == 0 && p[5 * 8 + col] == 0 && p[6 * 8 + col] == 0 && p[7 * 8 + col] == 0) {\n t = dctSqrt2 * dataIn[i2 + 0] + 8192 >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n v0 = dctSqrt2 * p[0 * 8 + col] + 2048 >> 12;\n v1 = dctSqrt2 * p[4 * 8 + col] + 2048 >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048 >> 12;\n v7 = dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048 >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n t = v0 - v1 + 1 >> 1;\n v0 = v0 + v1 + 1 >> 1;\n v1 = t;\n t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n v3 = t;\n t = v4 - v6 + 1 >> 1;\n v4 = v4 + v6 + 1 >> 1;\n v6 = t;\n t = v7 + v5 + 1 >> 1;\n v5 = v7 - v5 + 1 >> 1;\n v7 = t;\n t = v0 - v3 + 1 >> 1;\n v0 = v0 + v3 + 1 >> 1;\n v3 = t;\n t = v1 - v2 + 1 >> 1;\n v1 = v1 + v2 + 1 >> 1;\n v2 = t;\n t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n v7 = t;\n t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n v6 = t;\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n for (i2 = 0; i2 < 64; ++i2) {\n var sample2 = 128 + (p[i2] + 8 >> 4);\n dataOut[i2] = sample2 < 0 ? 0 : sample2 > 255 ? 255 : sample2;\n }\n }\n requestMemoryAllocation(samplesPerLine * blocksPerColumn * 8);\n var i, j;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (i = 0; i < 8; i++)\n lines.push(new Uint8Array(samplesPerLine));\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n quantizeAndInverse(component.blocks[blockRow][blockCol], r, R);\n var offset = 0, sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var line = lines[scanLine + j];\n for (i = 0; i < 8; i++)\n line[sample + i] = r[offset++];\n }\n }\n }\n return lines;\n }\n function clampTo8bit(a) {\n return a < 0 ? 0 : a > 255 ? 255 : a;\n }\n constructor.prototype = {\n load: function load(path) {\n var xhr = new XMLHttpRequest();\n xhr.open("GET", path, true);\n xhr.responseType = "arraybuffer";\n xhr.onload = function() {\n var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer);\n this.parse(data);\n if (this.onload)\n this.onload();\n }.bind(this);\n xhr.send(null);\n },\n parse: function parse(data) {\n var maxResolutionInPixels = this.opts.maxResolutionInMP * 1e3 * 1e3;\n var offset = 0, length = data.length;\n function readUint16() {\n var value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n var length2 = readUint16();\n var array = data.subarray(offset, offset + length2 - 2);\n offset += array.length;\n return array;\n }\n function prepareComponents(frame2) {\n var maxH2 = 1, maxV2 = 1;\n var component2, componentId2;\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n if (maxH2 < component2.h)\n maxH2 = component2.h;\n if (maxV2 < component2.v)\n maxV2 = component2.v;\n }\n }\n var mcusPerLine = Math.ceil(frame2.samplesPerLine / 8 / maxH2);\n var mcusPerColumn = Math.ceil(frame2.scanLines / 8 / maxV2);\n for (componentId2 in frame2.components) {\n if (frame2.components.hasOwnProperty(componentId2)) {\n component2 = frame2.components[componentId2];\n var blocksPerLine = Math.ceil(Math.ceil(frame2.samplesPerLine / 8) * component2.h / maxH2);\n var blocksPerColumn = Math.ceil(Math.ceil(frame2.scanLines / 8) * component2.v / maxV2);\n var blocksPerLineForMcu = mcusPerLine * component2.h;\n var blocksPerColumnForMcu = mcusPerColumn * component2.v;\n var blocksToAllocate = blocksPerColumnForMcu * blocksPerLineForMcu;\n var blocks = [];\n requestMemoryAllocation(blocksToAllocate * 256);\n for (var i2 = 0; i2 < blocksPerColumnForMcu; i2++) {\n var row = [];\n for (var j2 = 0; j2 < blocksPerLineForMcu; j2++)\n row.push(new Int32Array(64));\n blocks.push(row);\n }\n component2.blocksPerLine = blocksPerLine;\n component2.blocksPerColumn = blocksPerColumn;\n component2.blocks = blocks;\n }\n }\n frame2.maxH = maxH2;\n frame2.maxV = maxV2;\n frame2.mcusPerLine = mcusPerLine;\n frame2.mcusPerColumn = mcusPerColumn;\n }\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [], frames = [];\n var huffmanTablesAC = [], huffmanTablesDC = [];\n var fileMarker = readUint16();\n var malformedDataOffset = -1;\n this.comments = [];\n if (fileMarker != 65496) {\n throw new Error("SOI not found");\n }\n fileMarker = readUint16();\n while (fileMarker != 65497) {\n var i, j, l;\n switch (fileMarker) {\n case 65280:\n break;\n case 65504:\n case 65505:\n case 65506:\n case 65507:\n case 65508:\n case 65509:\n case 65510:\n case 65511:\n case 65512:\n case 65513:\n case 65514:\n case 65515:\n case 65516:\n case 65517:\n case 65518:\n case 65519:\n case 65534:\n var appData = readDataBlock();\n if (fileMarker === 65534) {\n var comment = String.fromCharCode.apply(null, appData);\n this.comments.push(comment);\n }\n if (fileMarker === 65504) {\n if (appData[0] === 74 && appData[1] === 70 && appData[2] === 73 && appData[3] === 70 && appData[4] === 0) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: appData[8] << 8 | appData[9],\n yDensity: appData[10] << 8 | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n };\n }\n }\n if (fileMarker === 65505) {\n if (appData[0] === 69 && appData[1] === 120 && appData[2] === 105 && appData[3] === 102 && appData[4] === 0) {\n this.exifBuffer = appData.subarray(5, appData.length);\n }\n }\n if (fileMarker === 65518) {\n if (appData[0] === 65 && appData[1] === 100 && appData[2] === 111 && appData[3] === 98 && appData[4] === 101 && appData[5] === 0) {\n adobe = {\n version: appData[6],\n flags0: appData[7] << 8 | appData[8],\n flags1: appData[9] << 8 | appData[10],\n transformCode: appData[11]\n };\n }\n }\n break;\n case 65499:\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n requestMemoryAllocation(64 * 4);\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = readUint16();\n }\n } else\n throw new Error("DQT: invalid table spec");\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n case 65472:\n case 65473:\n case 65474:\n readUint16();\n frame = {};\n frame.extended = fileMarker === 65473;\n frame.progressive = fileMarker === 65474;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = {};\n frame.componentsOrder = [];\n var pixelsInFrame = frame.scanLines * frame.samplesPerLine;\n if (pixelsInFrame > maxResolutionInPixels) {\n var exceededAmount = Math.ceil((pixelsInFrame - maxResolutionInPixels) / 1e6);\n throw new Error(`maxResolutionInMP limit exceeded by ${exceededAmount}MP`);\n }\n var componentsCount = data[offset++], componentId;\n var maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n var qId = data[offset + 2];\n if (h <= 0 || v <= 0) {\n throw new Error("Invalid sampling factor, expected values above 0");\n }\n frame.componentsOrder.push(componentId);\n frame.components[componentId] = {\n h,\n v,\n quantizationIdx: qId\n };\n offset += 3;\n }\n prepareComponents(frame);\n frames.push(frame);\n break;\n case 65476:\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n requestMemoryAllocation(16 + codeLengthSum);\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable2(codeLengths, huffmanValues);\n }\n break;\n case 65501:\n readUint16();\n resetInterval = readUint16();\n break;\n case 65500:\n readUint16();\n readUint16();\n break;\n case 65498:\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [], component;\n for (i = 0; i < selectorsCount; i++) {\n component = frame.components[data[offset++]];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, this.opts);\n offset += processed;\n break;\n case 65535:\n if (data[offset] !== 255) {\n offset--;\n }\n break;\n default:\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n break;\n } else if (fileMarker === 224 || fileMarker == 225) {\n if (malformedDataOffset !== -1) {\n throw new Error(`first unknown JPEG marker at offset ${malformedDataOffset.toString(16)}, second unknown JPEG marker ${fileMarker.toString(16)} at offset ${(offset - 1).toString(16)}`);\n }\n malformedDataOffset = offset - 1;\n const nextOffset = readUint16();\n if (data[offset + nextOffset - 2] === 255) {\n offset += nextOffset - 2;\n break;\n }\n }\n throw new Error("unknown JPEG marker " + fileMarker.toString(16));\n }\n fileMarker = readUint16();\n }\n if (frames.length != 1)\n throw new Error("only single frame JPEGs supported");\n for (var i = 0; i < frames.length; i++) {\n var cp = frames[i].components;\n for (var j in cp) {\n cp[j].quantizationTable = quantizationTables[cp[j].quantizationIdx];\n delete cp[j].quantizationIdx;\n }\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (var i = 0; i < frame.componentsOrder.length; i++) {\n var component = frame.components[frame.componentsOrder[i]];\n this.components.push({\n lines: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV\n });\n }\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width, scaleY = this.height / height;\n var component1, component2, component3, component4;\n var component1Line, component2Line, component3Line, component4Line;\n var x, y;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var dataLength = width * height * this.components.length;\n requestMemoryAllocation(dataLength);\n var data = new Uint8Array(dataLength);\n switch (this.components.length) {\n case 1:\n component1 = this.components[0];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 2:\n component1 = this.components[0];\n component2 = this.components[1];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n data[offset++] = Y;\n Y = component2Line[0 | x * component2.scaleX * scaleX];\n data[offset++] = Y;\n }\n }\n break;\n case 3:\n colorTransform = true;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n R = component1Line[0 | x * component1.scaleX * scaleX];\n G = component2Line[0 | x * component2.scaleX * scaleX];\n B = component3Line[0 | x * component3.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n R = clampTo8bit(Y + 1.402 * (Cr - 128));\n G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n B = clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = R;\n data[offset++] = G;\n data[offset++] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe)\n throw new Error("Unsupported color mode (4 components)");\n colorTransform = false;\n if (this.adobe && this.adobe.transformCode)\n colorTransform = true;\n else if (typeof this.opts.colorTransform !== "undefined")\n colorTransform = !!this.opts.colorTransform;\n component1 = this.components[0];\n component2 = this.components[1];\n component3 = this.components[2];\n component4 = this.components[3];\n for (y = 0; y < height; y++) {\n component1Line = component1.lines[0 | y * component1.scaleY * scaleY];\n component2Line = component2.lines[0 | y * component2.scaleY * scaleY];\n component3Line = component3.lines[0 | y * component3.scaleY * scaleY];\n component4Line = component4.lines[0 | y * component4.scaleY * scaleY];\n for (x = 0; x < width; x++) {\n if (!colorTransform) {\n C = component1Line[0 | x * component1.scaleX * scaleX];\n M = component2Line[0 | x * component2.scaleX * scaleX];\n Ye = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n } else {\n Y = component1Line[0 | x * component1.scaleX * scaleX];\n Cb = component2Line[0 | x * component2.scaleX * scaleX];\n Cr = component3Line[0 | x * component3.scaleX * scaleX];\n K = component4Line[0 | x * component4.scaleX * scaleX];\n C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128));\n M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128));\n Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128));\n }\n data[offset++] = 255 - C;\n data[offset++] = 255 - M;\n data[offset++] = 255 - Ye;\n data[offset++] = 255 - K;\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n return data;\n },\n copyToImageData: function copyToImageData(imageData, formatAsRGBA) {\n var width = imageData.width, height = imageData.height;\n var imageDataArray = imageData.data;\n var data = this.getData(width, height);\n var i = 0, j = 0, x, y;\n var Y, K, C, M, R, G, B;\n switch (this.components.length) {\n case 1:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n Y = data[i++];\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n imageDataArray[j++] = Y;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 3:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n R = data[i++];\n G = data[i++];\n B = data[i++];\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n case 4:\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n C = data[i++];\n M = data[i++];\n Y = data[i++];\n K = data[i++];\n R = 255 - clampTo8bit(C * (1 - K / 255) + K);\n G = 255 - clampTo8bit(M * (1 - K / 255) + K);\n B = 255 - clampTo8bit(Y * (1 - K / 255) + K);\n imageDataArray[j++] = R;\n imageDataArray[j++] = G;\n imageDataArray[j++] = B;\n if (formatAsRGBA) {\n imageDataArray[j++] = 255;\n }\n }\n }\n break;\n default:\n throw new Error("Unsupported color mode");\n }\n }\n };\n var totalBytesAllocated = 0;\n var maxMemoryUsageBytes = 0;\n function requestMemoryAllocation(increaseAmount = 0) {\n var totalMemoryImpactBytes = totalBytesAllocated + increaseAmount;\n if (totalMemoryImpactBytes > maxMemoryUsageBytes) {\n var exceededAmount = Math.ceil((totalMemoryImpactBytes - maxMemoryUsageBytes) / 1024 / 1024);\n throw new Error(`maxMemoryUsageInMB limit exceeded by at least ${exceededAmount}MB`);\n }\n totalBytesAllocated = totalMemoryImpactBytes;\n }\n constructor.resetMaxMemoryUsage = function(maxMemoryUsageBytes_) {\n totalBytesAllocated = 0;\n maxMemoryUsageBytes = maxMemoryUsageBytes_;\n };\n constructor.getBytesAllocated = function() {\n return totalBytesAllocated;\n };\n constructor.requestMemoryAllocation = requestMemoryAllocation;\n return constructor;\n }();\n if (typeof module !== "undefined") {\n module.exports = decode3;\n } else if (typeof window !== "undefined") {\n window["jpeg-js"] = window["jpeg-js"] || {};\n window["jpeg-js"].decode = decode3;\n }\n function decode3(jpegData, userOpts = {}) {\n var defaultOpts = {\n colorTransform: void 0,\n useTArray: false,\n formatAsRGBA: true,\n tolerantDecoding: true,\n maxResolutionInMP: 100,\n maxMemoryUsageInMB: 512\n };\n var opts = { ...defaultOpts, ...userOpts };\n var arr = new Uint8Array(jpegData);\n var decoder = new JpegImage();\n decoder.opts = opts;\n JpegImage.resetMaxMemoryUsage(opts.maxMemoryUsageInMB * 1024 * 1024);\n decoder.parse(arr);\n var channels = opts.formatAsRGBA ? 4 : 3;\n var bytesNeeded = decoder.width * decoder.height * channels;\n try {\n JpegImage.requestMemoryAllocation(bytesNeeded);\n var image = {\n width: decoder.width,\n height: decoder.height,\n exifBuffer: decoder.exifBuffer,\n data: opts.useTArray ? new Uint8Array(bytesNeeded) : Buffer2.alloc(bytesNeeded)\n };\n if (decoder.comments.length > 0) {\n image["comments"] = decoder.comments;\n }\n } catch (err) {\n if (err instanceof RangeError) {\n throw new Error("Could not allocate enough memory for the image. Required: " + bytesNeeded);\n }\n if (err instanceof ReferenceError) {\n if (err.message === "Buffer is not defined") {\n throw new Error("Buffer is not globally defined in this environment. Consider setting useTArray to true");\n }\n }\n throw err;\n }\n decoder.copyToImageData(image, opts.formatAsRGBA);\n return image;\n }\n }\n});\n\n// node_modules/jpeg-js/index.js\nvar require_jpeg_js = __commonJS({\n "node_modules/jpeg-js/index.js"(exports, module) {\n init_define_BUILD_VERSION();\n init_esbuild_inject();\n var encode2 = require_encoder();\n var decode3 = require_decoder();\n module.exports = {\n encode: encode2,\n decode: decode3\n };\n }\n});\n\n// src/processor.worker.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/platform.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// src/requests.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar xmlhttprequest;\nif (false)\n xmlhttprequest = typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : typeof GM != "undefined" ? GM.xmlHttpRequest : window["GM_xmlhttpRequest"];\nvar GM_fetch = (...[url, opt, lisn]) => {\n function blobTo(to, blob) {\n if (to == "arrayBuffer" && blob.arrayBuffer) {\n const ret = blob.arrayBuffer();\n if (ret)\n return ret;\n }\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = function(event) {\n if (!event)\n return;\n if (to == "base64")\n resolve(event.target.result);\n else\n resolve(event.target.result);\n };\n if (to == "arrayBuffer")\n fileReader.readAsArrayBuffer(blob);\n else if (to == "base64")\n fileReader.readAsDataURL(blob);\n else if (to == "text")\n fileReader.readAsText(blob, "utf-8");\n else\n reject(new Error("unknown to"));\n });\n }\n return new Promise((resolve, reject) => {\n const gmopt = {\n url: url.toString(),\n data: opt?.body,\n responseType: "blob",\n headers: opt?.headers,\n method: opt?.method || "GET",\n ...lisn ? {\n onprogress: (prog) => {\n if (prog.loaded != prog.total && prog.total != 0)\n lisn.dispatchEvent(new CustomEvent("progress", { detail: [prog.loaded, prog.total] }));\n }\n } : {},\n onload: (resp) => {\n if (resp.status / 100 >= 4) {\n reject(new Error("Server Error: " + resp.status));\n return;\n }\n const blob = resp.response;\n const ref = resp;\n ref.blob = () => Promise.resolve(blob);\n ref.arrayBuffer = () => blobTo("arrayBuffer", blob);\n ref.text = () => blobTo("text", blob);\n ref.json = async () => JSON.parse(await blobTo("text", blob));\n resolve(resp);\n },\n ontimeout: () => reject(new Error("fetch timeout")),\n onerror: (...args) => {\n reject(new Error("fetch error"));\n },\n onabort: () => reject(new Error("fetch abort"))\n };\n xmlhttprequest(gmopt);\n });\n};\n\n// src/platform.ts\nvar lqueue = {};\nvar localSet = (key2, value) => localStorage.setItem("__pee__" + key2, JSON.stringify(value));\nvar port1;\nconsole.log("worker", false);\nvar msgBuff = [];\nvar setupPort = (port) => {\n port1 = port;\n port1.onmessage = (ev) => {\n lqueue[ev.data.id](ev.data);\n };\n if (true) {\n for (const msg of msgBuff) {\n port.postMessage(msg[0], { transfer: msg[1] });\n }\n msgBuff = [];\n }\n};\nif (true) {\n port1 = {\n onmessage(ev) {\n lqueue[ev.data.id](ev.data);\n },\n postMessage(msg, tr) {\n msgBuff.push([msg, tr]);\n }\n };\n}\nvar gid = 0;\nvar sendCmd = (cmd, tr, overwrite = false, todelete = false) => {\n const prom = new Promise((_) => {\n const id = gid++;\n if (overwrite)\n cmd.id = id;\n lqueue[id] = (e) => {\n _(e.res);\n if (todelete)\n delete lqueue[id];\n };\n port1.postMessage({ id, ...cmd }, tr || []);\n });\n return prom;\n};\nvar bridge = (name, f) => {\n if (false)\n return f;\n if (false)\n return f;\n return (...args) => {\n return sendCmd({ name, args });\n };\n};\nvar Bridged = (ctor) => {\n const keys = Object.getOwnPropertyNames(ctor).filter((k) => typeof ctor[k] == "function");\n for (const k of keys)\n ctor[k] = bridge(k, ctor[k]);\n};\nif (false) {\n}\nvar Platform = class {\n static async openInTab(src, opts) {\n if (false) {\n return GM.openInTab(src, opts);\n }\n const obj = false ? chrome : browser;\n let i;\n if (opts.insert)\n i = (await obj.tabs.getCurrent()).index + 1;\n return obj.tabs.create({ active: opts.active, url: src, index: i });\n }\n static async getValue(key2, def) {\n const isinls = "__pee__" + key2 in localStorage;\n let ret;\n if (isinls) {\n let it = localStorage.getItem("__pee__" + key2);\n if (it === "undefined")\n it = null;\n ret = { ...def, ...JSON.parse(it || "{}") };\n } else\n ret = def;\n if (true) {\n if (isinls) {\n delete localStorage["__pee__" + key2];\n await chrome.storage.local.set({\n [key2]: JSON.stringify(ret)\n });\n } else {\n const d = await chrome.storage.local.get([key2]);\n if (typeof d[key2] == "string")\n return { ...def, ...await JSON.parse("" + d[key2] || "{}") };\n }\n }\n return ret;\n }\n static setValue(name, val) {\n localSet(name, val);\n }\n};\nPlatform.cmdid = 0;\nPlatform = __decorateClass([\n Bridged\n], Platform);\nvar corsFetch = async (input, init3, lsn) => {\n const id = gid++;\n let transfer = [];\n if (init3?.body) {\n if (false) {\n [init3.body, transfer] = await braveserialize(init3.body);\n }\n }\n const prom = new Promise((_, rej) => {\n let gcontroller;\n let buffer = [];\n let finished = false;\n const rs = new ReadableStream({\n start(controller) {\n gcontroller = controller;\n buffer.forEach((b) => gcontroller?.enqueue(b));\n buffer = [];\n if (finished) {\n gcontroller.close();\n }\n }\n });\n let s;\n s = 0;\n const cmdbuff = [];\n lqueue[id] = async (e) => {\n if (e.progress) {\n if (lsn)\n lsn.dispatchEvent(new CustomEvent("progress", { detail: e.progress }));\n }\n if (e.pushData) {\n if (e.s > s) {\n let idx = 0;\n while (idx < cmdbuff.length) {\n if (cmdbuff[idx].s > e.s)\n break;\n idx++;\n }\n cmdbuff.splice(idx, 0, e);\n return;\n }\n const processCmd = (e2) => {\n if (e2.pushData.data) {\n const data = new Uint8Array(e2.pushData.data);\n if (gcontroller)\n gcontroller.enqueue(data);\n else\n buffer.push(data);\n } else {\n if (gcontroller)\n gcontroller?.close();\n else\n finished = true;\n }\n };\n await processCmd(e);\n s++;\n while (cmdbuff[0]?.s == s) {\n await processCmd(cmdbuff.shift());\n s++;\n }\n }\n if (e.setRes) {\n const arrayBuffer = async () => {\n const r = rs.getReader();\n await sendCmd({ name: "fullyRead", fid: id });\n const abs = [];\n let res;\n do {\n res = await r.read();\n if (res.done)\n break;\n abs.push(res.value);\n } while (!res.done);\n const sum = abs.reduce((a, b) => a + b.byteLength, 0);\n const ret = new Uint8Array(sum);\n abs.reduce((ptr, arr) => {\n ret.set(arr, ptr);\n return ptr + arr.byteLength;\n }, 0);\n r.releaseLock();\n return ret;\n };\n const blob = async () => new Blob([await arrayBuffer()]);\n const text = async () => new TextDecoder().decode(await arrayBuffer());\n const json = async () => JSON.parse(await text());\n if (e.ok)\n _({\n body: rs,\n ok: e.ok,\n headers: e.headers,\n redirected: e.redirected,\n type: e.type,\n url: e.url,\n status: e.status,\n bodyUsed: e.bodyUsed,\n statusText: e.statusText,\n clone() {\n return this;\n },\n arrayBuffer,\n blob,\n text,\n json,\n async formData() {\n return new FormData();\n }\n });\n else {\n rej(new Error(`${e.url} - ${e.status}`));\n }\n }\n };\n port1.postMessage({\n id,\n name: "corsFetch",\n args: [input, init3]\n }, transfer);\n });\n return prom;\n};\nasync function getHeaders(s) {\n if (false)\n return headerStringToObject(await GM_head(s));\n const res = await ifetch(s, {\n method: "HEAD"\n });\n return res.headers;\n}\nasync function ifetch(...[url, opt, lisn]) {\n if (true)\n return corsFetch(url.toString(), opt, lisn);\n return GM_fetch(url, opt, lisn);\n}\nasync function* streamRemote(url, chunkSize = 72 * 1024, fetchRestOnNonCanceled = true) {\n let size = Number.POSITIVE_INFINITY;\n let ptr = 0;\n let fetchSize = chunkSize;\n while (ptr != size) {\n let obj;\n const fres = await ifetch(url, { headers: { range: `bytes=${ptr}-${ptr + fetchSize - 1}` } });\n if (false) {\n obj = headerStringToObject(fres.responseHeaders);\n } else {\n obj = fres.headers;\n }\n if (!("content-length" in obj)) {\n console.warn("no content lenght???", url);\n break;\n }\n if ("content-range" in obj) {\n size = +obj["content-range"].split("/")[1];\n }\n const len = +obj["content-length"];\n ptr += len;\n if (fetchRestOnNonCanceled)\n fetchSize = size;\n const val = Buffer2.from(await fres.arrayBuffer());\n const e = yield val;\n if (e) {\n break;\n }\n }\n}\n\n// src/stores.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/store/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/svelte/internal/index.mjs\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === "function";\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function");\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nvar resolved_promise = Promise.resolve();\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nvar SvelteElement;\nif (typeof HTMLElement === "function") {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: "open" });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n for (const key2 in this.$$.slotted) {\n this.appendChild(this.$$.slotted[key2]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []);\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n\n// node_modules/svelte/store/index.mjs\nvar subscriber_queue = [];\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe2(run2, invalidate = noop) {\n const subscriber = [run2, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run2(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe: subscribe2 };\n}\n\n// src/stores.ts\nvar localLoad = async (key2, def) => {\n const ret = await Platform.getValue(key2, def);\n return ret;\n};\nvar localSet2 = (key2, value) => {\n if (true) {\n return;\n }\n if (true)\n chrome.storage.local.set({ [key2]: JSON.stringify(value) });\n else\n localStorage.setItem("__pee__" + key2, JSON.stringify(value));\n};\nvar initial_settings = {\n loop: true,\n dh: false,\n pmeth: 5,\n xpv: false,\n xpi: false,\n hyd: false,\n notcata: false,\n ak: "",\n auto_embed: 0,\n auto_tags: "",\n te: false,\n eye: false,\n ca: false,\n pre: false,\n prev: false,\n sh: false,\n ep: false,\n tm: false,\n dvc: false,\n expte: false,\n mdist: -1,\n phash: false,\n hotlink: false,\n jpeg: false,\n vercheck: false,\n cache: void 0,\n fhost: 0,\n maxe: 5,\n conc: 8,\n ho: false,\n blacklist: [],\n rsources: []\n};\nvar settings = writable();\nvar appState = writable({\n isCatalog: false,\n is4chanX: false,\n akValid: false,\n herror: "",\n client: null,\n processing: 0,\n processed: 0,\n foundPosts: []\n});\nsettings.subscribe((newVal) => {\n if (newVal)\n localSet2("settingsv2", newVal);\n});\n\n// src/pngv3.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer3 = __toESM(require_buffer(), 1);\n\n// src/png.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_crc_32 = __toESM(require_crc32(), 1);\nvar import_buffer = __toESM(require_buffer(), 1);\nvar PNGDecoder = class {\n constructor(reader, strict = true) {\n this.reader = reader;\n this.strict = strict;\n this.req = 8;\n this.ptr = 8;\n this.stopped = false;\n this.repr = import_buffer.Buffer.from([]);\n }\n async catchup() {\n while (this.repr.byteLength < this.req) {\n const chunk = await this.reader.read();\n if (chunk.done) {\n if (this.strict)\n throw new Error(`Unexpected EOF, got ${this.repr.byteLength}, required ${this.req}, ${chunk.value}`);\n this.stopped = true;\n return;\n }\n this.repr = import_buffer.Buffer.concat([this.repr, chunk.value]);\n }\n }\n async *chunks() {\n while (true) {\n this.req += 8;\n await this.catchup();\n if (this.stopped)\n break;\n const length = this.repr.readUInt32BE(this.ptr);\n const name = this.repr.slice(this.ptr + 4, this.ptr + 8).toString();\n this.ptr += 4;\n this.req += length + 4;\n await this.catchup();\n yield [\n name,\n this.repr.slice(this.ptr, this.ptr + length + 4),\n this.ptr + length > this.repr.length ? -1 : this.repr.readUInt32BE(this.ptr + length + 4),\n this.ptr\n ];\n if (this.stopped)\n break;\n this.ptr += length + 8;\n if (name == "IEND")\n break;\n }\n }\n async dtor() {\n }\n};\nvar PNGEncoder = class {\n constructor(bytes) {\n this.writer = bytes.getWriter();\n this.writer.write(import_buffer.Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]));\n }\n async insertchunk(chunk) {\n let b = import_buffer.Buffer.alloc(4);\n const buff = chunk[1];\n b.writeInt32BE(buff.length - 4, 0);\n await this.writer.write(b);\n await this.writer.write(buff);\n b = import_buffer.Buffer.alloc(4);\n b.writeInt32BE((0, import_crc_32.buf)(buff), 0);\n await this.writer.write(b);\n }\n async dtor() {\n this.writer.releaseLock();\n }\n};\n\n// src/utils.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer2 = __toESM(require_buffer(), 1);\n\n// src/assets/hasembed.png\nvar hasembed_default = __toBinary("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");\n\n// src/filehosts.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction parseForm(data) {\n const form = new FormData();\n Object.entries(data).filter(([key2, value]) => value !== null).map(([key2, value]) => form.append(key2, value));\n return form;\n}\nvar lolisafe = (domain, serving = domain) => ({\n domain,\n serving,\n async uploadFile(f) {\n const resp = await ifetch(`https://${domain}/api/upload`, {\n headers: {\n accept: "application/json"\n },\n "body": parseForm({\n reqtype: "fileupload",\n "files[]": new File([f], "f.pee")\n }),\n "method": "POST"\n });\n const res = await resp.json();\n return res.files.map((e) => e.url)[0];\n }\n});\nvar catbox = (domain, serving) => ({\n domain,\n serving,\n async uploadFile(inj) {\n const resp = await ifetch(`https://${domain}/user/api.php`, {\n method: "POST",\n body: parseForm({\n reqtype: "fileupload",\n fileToUpload: inj\n })\n });\n return resp.text();\n }\n});\nvar filehosts = [\n catbox("catbox.moe", "files.catbox.moe"),\n catbox("pomf.moe", "a.pomf.cat"),\n lolisafe("take-me-to.space"),\n lolisafe("zz.ht", "z.zz.fo")\n];\n\n// node_modules/file-type/browser.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer4 = __toESM(require_buffer(), 1);\nvar import_readable_web_to_node_stream = __toESM(require_lib(), 1);\n\n// node_modules/file-type/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_node_buffer3 = __toESM(require_buffer(), 1);\n\n// node_modules/token-types/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar ieee754 = __toESM(require_ieee754(), 1);\nvar import_node_buffer = __toESM(require_buffer(), 1);\nvar AnsiStringType = class {\n constructor(len) {\n this.len = len;\n }\n static decode(buffer, offset, until) {\n let str = "";\n for (let i = offset; i < until; ++i) {\n str += AnsiStringType.codePointToString(AnsiStringType.singleByteDecoder(buffer[i]));\n }\n return str;\n }\n static inRange(a, min, max) {\n return min <= a && a <= max;\n }\n static codePointToString(cp) {\n if (cp <= 65535) {\n return String.fromCharCode(cp);\n } else {\n cp -= 65536;\n return String.fromCharCode((cp >> 10) + 55296, (cp & 1023) + 56320);\n }\n }\n static singleByteDecoder(bite) {\n if (AnsiStringType.inRange(bite, 0, 127)) {\n return bite;\n }\n const codePoint = AnsiStringType.windows1252[bite - 128];\n if (codePoint === null) {\n throw Error("invaliding encoding");\n }\n return codePoint;\n }\n get(buffer, offset = 0) {\n return AnsiStringType.decode(buffer, offset, offset + this.len);\n }\n};\nAnsiStringType.windows1252 = [\n 8364,\n 129,\n 8218,\n 402,\n 8222,\n 8230,\n 8224,\n 8225,\n 710,\n 8240,\n 352,\n 8249,\n 338,\n 141,\n 381,\n 143,\n 144,\n 8216,\n 8217,\n 8220,\n 8221,\n 8226,\n 8211,\n 8212,\n 732,\n 8482,\n 353,\n 8250,\n 339,\n 157,\n 382,\n 376,\n 160,\n 161,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 171,\n 172,\n 173,\n 174,\n 175,\n 176,\n 177,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 187,\n 188,\n 189,\n 190,\n 191,\n 192,\n 193,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 203,\n 204,\n 205,\n 206,\n 207,\n 208,\n 209,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 219,\n 220,\n 221,\n 222,\n 223,\n 224,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 235,\n 236,\n 237,\n 238,\n 239,\n 240,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250,\n 251,\n 252,\n 253,\n 254,\n 255\n];\n\n// node_modules/strtok3/lib/core.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/ReadStreamTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/index.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/EndOfFileStream.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/Deferred.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/peek-readable/lib/StreamReader.js\nvar maxStreamReadSize = 1 * 1024 * 1024;\n\n// node_modules/strtok3/lib/AbstractTokenizer.js\nvar import_node_buffer2 = __toESM(require_buffer(), 1);\n\n// node_modules/strtok3/lib/BufferTokenizer.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/util.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\n\n// node_modules/file-type/supported.js\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar extensions = [\n "jpg",\n "png",\n "apng",\n "gif",\n "webp",\n "flif",\n "xcf",\n "cr2",\n "cr3",\n "orf",\n "arw",\n "dng",\n "nef",\n "rw2",\n "raf",\n "tif",\n "bmp",\n "icns",\n "jxr",\n "psd",\n "indd",\n "zip",\n "tar",\n "rar",\n "gz",\n "bz2",\n "7z",\n "dmg",\n "mp4",\n "mid",\n "mkv",\n "webm",\n "mov",\n "avi",\n "mpg",\n "mp2",\n "mp3",\n "m4a",\n "oga",\n "ogg",\n "ogv",\n "opus",\n "flac",\n "wav",\n "spx",\n "amr",\n "pdf",\n "epub",\n "elf",\n "exe",\n "swf",\n "rtf",\n "wasm",\n "woff",\n "woff2",\n "eot",\n "ttf",\n "otf",\n "ico",\n "flv",\n "ps",\n "xz",\n "sqlite",\n "nes",\n "crx",\n "xpi",\n "cab",\n "deb",\n "ar",\n "rpm",\n "Z",\n "lz",\n "cfb",\n "mxf",\n "mts",\n "blend",\n "bpg",\n "docx",\n "pptx",\n "xlsx",\n "3gp",\n "3g2",\n "jp2",\n "jpm",\n "jpx",\n "mj2",\n "aif",\n "qcp",\n "odt",\n "ods",\n "odp",\n "xml",\n "mobi",\n "heic",\n "cur",\n "ktx",\n "ape",\n "wv",\n "dcm",\n "ics",\n "glb",\n "pcap",\n "dsf",\n "lnk",\n "alias",\n "voc",\n "ac3",\n "m4v",\n "m4p",\n "m4b",\n "f4v",\n "f4p",\n "f4b",\n "f4a",\n "mie",\n "asf",\n "ogm",\n "ogx",\n "mpc",\n "arrow",\n "shp",\n "aac",\n "mp1",\n "it",\n "s3m",\n "xm",\n "ai",\n "skp",\n "avif",\n "eps",\n "lzh",\n "pgp",\n "asar",\n "stl",\n "chm",\n "3mf",\n "zst",\n "jxl",\n "vcf"\n];\nvar mimeTypes = [\n "image/jpeg",\n "image/png",\n "image/gif",\n "image/webp",\n "image/flif",\n "image/x-xcf",\n "image/x-canon-cr2",\n "image/x-canon-cr3",\n "image/tiff",\n "image/bmp",\n "image/vnd.ms-photo",\n "image/vnd.adobe.photoshop",\n "application/x-indesign",\n "application/epub+zip",\n "application/x-xpinstall",\n "application/vnd.oasis.opendocument.text",\n "application/vnd.oasis.opendocument.spreadsheet",\n "application/vnd.oasis.opendocument.presentation",\n "application/vnd.openxmlformats-officedocument.wordprocessingml.document",\n "application/vnd.openxmlformats-officedocument.presentationml.presentation",\n "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",\n "application/zip",\n "application/x-tar",\n "application/x-rar-compressed",\n "application/gzip",\n "application/x-bzip2",\n "application/x-7z-compressed",\n "application/x-apple-diskimage",\n "application/x-apache-arrow",\n "video/mp4",\n "audio/midi",\n "video/x-matroska",\n "video/webm",\n "video/quicktime",\n "video/vnd.avi",\n "audio/vnd.wave",\n "audio/qcelp",\n "audio/x-ms-asf",\n "video/x-ms-asf",\n "application/vnd.ms-asf",\n "video/mpeg",\n "video/3gpp",\n "audio/mpeg",\n "audio/mp4",\n "audio/opus",\n "video/ogg",\n "audio/ogg",\n "application/ogg",\n "audio/x-flac",\n "audio/ape",\n "audio/wavpack",\n "audio/amr",\n "application/pdf",\n "application/x-elf",\n "application/x-msdownload",\n "application/x-shockwave-flash",\n "application/rtf",\n "application/wasm",\n "font/woff",\n "font/woff2",\n "application/vnd.ms-fontobject",\n "font/ttf",\n "font/otf",\n "image/x-icon",\n "video/x-flv",\n "application/postscript",\n "application/eps",\n "application/x-xz",\n "application/x-sqlite3",\n "application/x-nintendo-nes-rom",\n "application/x-google-chrome-extension",\n "application/vnd.ms-cab-compressed",\n "application/x-deb",\n "application/x-unix-archive",\n "application/x-rpm",\n "application/x-compress",\n "application/x-lzip",\n "application/x-cfb",\n "application/x-mie",\n "application/mxf",\n "video/mp2t",\n "application/x-blender",\n "image/bpg",\n "image/jp2",\n "image/jpx",\n "image/jpm",\n "image/mj2",\n "audio/aiff",\n "application/xml",\n "application/x-mobipocket-ebook",\n "image/heif",\n "image/heif-sequence",\n "image/heic",\n "image/heic-sequence",\n "image/icns",\n "image/ktx",\n "application/dicom",\n "audio/x-musepack",\n "text/calendar",\n "text/vcard",\n "model/gltf-binary",\n "application/vnd.tcpdump.pcap",\n "audio/x-dsf",\n "application/x.ms.shortcut",\n "application/x.apple.alias",\n "audio/x-voc",\n "audio/vnd.dolby.dd-raw",\n "audio/x-m4a",\n "image/apng",\n "image/x-olympus-orf",\n "image/x-sony-arw",\n "image/x-adobe-dng",\n "image/x-nikon-nef",\n "image/x-panasonic-rw2",\n "image/x-fujifilm-raf",\n "video/x-m4v",\n "video/3gpp2",\n "application/x-esri-shape",\n "audio/aac",\n "audio/x-it",\n "audio/x-s3m",\n "audio/x-xm",\n "video/MP1S",\n "video/MP2P",\n "application/vnd.sketchup.skp",\n "image/avif",\n "application/x-lzh-compressed",\n "application/pgp-encrypted",\n "application/x-asar",\n "model/stl",\n "application/vnd.ms-htmlhelp",\n "model/3mf",\n "image/jxl",\n "application/zstd"\n];\n\n// node_modules/file-type/core.js\nvar supportedExtensions = new Set(extensions);\nvar supportedMimeTypes = new Set(mimeTypes);\n\n// src/utils.ts\nvar csettings;\nsettings.subscribe((b) => {\n csettings = b;\n});\nvar threadDataCache = writable();\nvar cthreadDataCache;\nthreadDataCache.subscribe((newval) => {\n cthreadDataCache = newval;\n});\nvar decodeCoom3Payload = async (buff) => {\n if (!csettings)\n throw new Error("Settings uninit");\n const allowed_domains = filehosts.map((e) => e.serving.replaceAll(".", "\\\\."));\n const pees = buff.toString().split(" ").slice(0, csettings.maxe).filter((e) => allowed_domains.some((v) => e.match(`https://(.*\\\\.)?${v}/`)));\n return (await Promise.all(pees.map(async (pee) => {\n try {\n const m = pee.match(/(?https?):\\/\\/(?.*?)(?\\/.*)/);\n if (!m)\n return;\n const { domain, file } = m.groups;\n const headers = await getHeaders(pee);\n const res = await ifetch(pee, {\n headers: { range: "bytes=0-32767", "user-agent": "" },\n mode: "cors",\n referrerPolicy: "no-referrer"\n });\n const size = +headers["content-length"] || 0;\n const header = import_buffer2.Buffer.from(await res.arrayBuffer());\n let hptr = 0;\n if (header.slice(0, 4).toString() == "PEE\\0")\n hptr += 4;\n else\n return;\n const flags = header[hptr];\n const hasFn = !!(flags & 1);\n const hasTags = !!(flags & 2);\n const hasThumbnail = !!(flags & 4);\n let [ptr, ptr2] = [hptr + 1, hptr + 1];\n let fn = "embedded";\n let tags = [];\n let thumb = import_buffer2.Buffer.from(hasembed_default);\n if (hasFn) {\n while (header[ptr2] != 0)\n ptr2++;\n fn = header.slice(ptr, ptr2).toString();\n ptr = ++ptr2;\n }\n if (hasTags) {\n while (header[ptr2] != 0)\n ptr2++;\n tags = header.slice(ptr, ptr2).toString().split(/\\s+/);\n }\n let thumbsize = 0;\n if (hasThumbnail) {\n thumbsize = header.readInt32LE(ptr);\n ptr += 4;\n if (header.byteLength >= ptr + thumbsize)\n thumb = header.slice(ptr, ptr + thumbsize);\n else\n thumb = import_buffer2.Buffer.from(await (await ifetch(pee, { headers: { "user-agent": "", range: `bytes=${ptr}-${ptr + thumbsize}` } })).arrayBuffer());\n ptr += thumbsize;\n }\n const unzip = { url: pee, headers: { "user-agent": "", range: `bytes=${ptr}-${size - 1}` } };\n let data;\n data = unzip;\n if (size < 3072) {\n thumb = data = import_buffer2.Buffer.from(await (await ifetch(unzip.url, { headers: unzip.headers })).arrayBuffer());\n }\n return {\n filename: fn,\n data,\n thumbnail: thumb\n };\n } catch (e) {\n console.warn(e);\n }\n }))).filter((e) => e).map((e) => e);\n};\n\n// src/pngv3.ts\nvar bs58 = __toESM(require_bs58(), 1);\n\n// src/bitstream.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar revbyte = (n, len = 8) => {\n let acc = 0;\n let n2 = n;\n let len2 = len;\n while (len2) {\n acc = acc * 2 + (n2 & 1);\n n2 >>= 1;\n len2--;\n }\n return acc;\n};\nvar BitstreamReader = class {\n constructor() {\n this.buffers = [];\n this.bufferedLength = 0;\n this._offsetIntoBuffer = 0;\n this._bufferIndex = 0;\n this._offset = 0;\n this.skippedLength = 0;\n }\n get bufferIndex() {\n return this._bufferIndex;\n }\n get offset() {\n return this._offset;\n }\n get available() {\n return this.bufferedLength - this.skippedLength;\n }\n getBit(offset) {\n const byte = this.buffers[0][offset >> 3];\n return +!!(byte & 1 << (offset & 7));\n }\n readSync(length) {\n let value = 0;\n if (this._offset >> 3 > this.buffers[0].byteLength) {\n throw "Out of data";\n }\n for (let i = length - 1; i >= 0; --i) {\n value = value * 2 + this.getBit(this._offset + i);\n }\n this._offset += length;\n this.bufferedLength -= length;\n return value;\n }\n addBuffer(buffer) {\n this.buffers.push(buffer);\n this.bufferedLength += buffer.length * 8;\n }\n};\nvar BitstreamWriter = class {\n constructor(stream, bufferSize = 1) {\n this.stream = stream;\n this.pendingBits = 0;\n this.bufferoffset = 0;\n this._offset = 0;\n bufferSize = 1;\n this.buffer = new Uint8Array(bufferSize);\n }\n get offset() {\n return this._offset;\n }\n get byteOffset() {\n return this.pendingBits;\n }\n end() {\n this.flush();\n }\n flush() {\n this.stream.write(new Uint8Array(this.buffer));\n this.bufferoffset = 0;\n this.buffer.fill(0);\n }\n setBit(b) {\n let byte = this.buffer[0];\n byte |= b << (this._offset & 7);\n this.buffer[0] = byte;\n this._offset += 1;\n if (++this.bufferoffset == this.buffer.length * 8) {\n this.flush();\n }\n }\n write(length, value) {\n while (length--) {\n this.setBit(value & 1);\n value >>= 1;\n }\n }\n};\n\n// src/dh-deflate.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar TINF_OK = 0;\nvar Tree = class {\n constructor() {\n this.table = new Uint16Array(16);\n this.trans = new Uint16Array(288);\n }\n};\nvar getPathTo = (tree, value) => {\n if (tree[0] === value)\n return "0";\n if (tree[1] === value)\n return "1";\n let p;\n if (typeof tree[0] != "number")\n p = getPathTo(tree[0], value);\n let b = "0";\n if (!p) {\n if (tree[1] && typeof tree[1] != "number")\n p = getPathTo(tree[1], value);\n b = "1";\n }\n if (p)\n return b + p;\n};\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0, code = [], i, j, length = 16;\n while (length > 0 && !codeLengths[length - 1])\n length--;\n code.push({ children: [], index: 0 });\n let p = code[0], q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n if (code.length === 0)\n throw new Error("Could not recreate Huffman Table");\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n code.push(q = { children: [], index: 0 });\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\nvar Data = class {\n constructor(source, dests, to_hide, hidden) {\n this.source = source;\n this.dests = dests;\n this.to_hide = to_hide;\n this.hidden = hidden;\n this.pathMap = /* @__PURE__ */ new Map();\n this.dest = [];\n this.ltree = new Tree();\n this.dtree = new Tree();\n }\n computeReverse() {\n this.rltree = buildHuffmanTable(this.ltree.table, this.ltree.trans)[0];\n this.rdtree = buildHuffmanTable(this.dtree.table, this.dtree.trans)[0];\n this.adists = new Set(this.rdtree.flat(16));\n }\n};\nvar sltree = new Tree();\nvar sdtree = new Tree();\nvar rltree;\nvar rdtree;\nvar sadist;\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\nvar clcidx = new Uint8Array([\n 16,\n 17,\n 18,\n 0,\n 8,\n 7,\n 9,\n 6,\n 10,\n 5,\n 11,\n 4,\n 12,\n 3,\n 13,\n 2,\n 14,\n 1,\n 15\n]);\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\nfunction tinf_build_bits_base(bits, base, delta, first) {\n let i, sum;\n for (i = 0; i < delta; ++i)\n bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i)\n bits[i + delta] = i / delta | 0;\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\nfunction tinf_build_fixed_trees(lt, dt) {\n let i;\n for (i = 0; i < 7; ++i)\n lt.table[i] = 0;\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n for (i = 0; i < 24; ++i)\n lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i)\n lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i)\n lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i)\n lt.trans[24 + 144 + 8 + i] = 144 + i;\n for (i = 0; i < 5; ++i)\n dt.table[i] = 0;\n dt.table[5] = 32;\n for (i = 0; i < 32; ++i)\n dt.trans[i] = i;\n}\nvar offs = new Uint16Array(16);\nfunction tinf_build_tree(t, lengths2, off, num) {\n let i, sum;\n for (i = 0; i < 16; ++i)\n t.table[i] = 0;\n for (i = 0; i < num; ++i)\n t.table[lengths2[off + i]]++;\n t.table[0] = 0;\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n for (i = 0; i < num; ++i) {\n if (lengths2[off + i])\n t.trans[offs[lengths2[off + i]]++] = i;\n }\n}\nfunction tinf_getbit(d) {\n const v = d.source.readSync(1);\n return v;\n}\nvar loff = 0;\nvar loffs = [];\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n const v = d.source.readSync(num) + base;\n loff = v;\n loffs.push(v);\n if (loffs.length > 4) {\n loffs.shift();\n }\n return v;\n}\nfunction tinf_decode_symbol(d, t, copy = true, ext = {}) {\n let sum = 0, cur = 0, len = 0;\n let s = 0;\n do {\n const b = d.source.readSync(1);\n copy && d.hidden?.write(1, b);\n s = s << 1 | b;\n cur = 2 * cur + b;\n ++len;\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n ext.length = len;\n ext.sym = s;\n return t.trans[sum + cur];\n}\nfunction tinf_decode_trees(d, lt, dt, copy = true) {\n let i, num, length;\n const hlit = tinf_read_bits(d, 5, 257);\n copy && d.hidden?.write(5, hlit - 257);\n const hdist = tinf_read_bits(d, 5, 1);\n copy && d.hidden?.write(5, hdist - 1);\n const hclen = tinf_read_bits(d, 4, 4);\n copy && d.hidden?.write(4, hclen - 4);\n for (i = 0; i < 19; ++i)\n lengths[i] = 0;\n for (i = 0; i < hclen; ++i) {\n const clen = tinf_read_bits(d, 3, 0);\n copy && d.hidden?.write(3, clen);\n lengths[clcidx[i]] = clen;\n }\n tinf_build_tree(code_tree, lengths, 0, 19);\n for (num = 0; num < hlit + hdist; ) {\n const sym = tinf_decode_symbol(d, code_tree, copy);\n let prev;\n switch (sym) {\n case 16:\n prev = lengths[num - 1];\n length = tinf_read_bits(d, 2, 3);\n copy && d.hidden?.write(2, length - 3);\n for (; length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n length = tinf_read_bits(d, 3, 3);\n copy && d.hidden?.write(3, length - 3);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n length = tinf_read_bits(d, 7, 11);\n copy && d.hidden?.write(7, length - 11);\n for (; length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n lengths[num++] = sym;\n break;\n }\n }\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\nvar get_symbol = (value, bits_table, base_table) => {\n let i = 0;\n for (i = 0; i < base_table.length; ++i) {\n if (base_table[i] > value) {\n i--;\n return [i, bits_table[i], value - base_table[i]];\n }\n }\n i--;\n return [i, bits_table[i], value - base_table[i]];\n};\nvar encode_symbol = (sym, tree, pathMap) => {\n const code = getPathTo(tree, sym);\n const v = {\n length: code?.length,\n val: parseInt(code, 2)\n };\n return v;\n};\nvar capacity = 0;\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n let sym = tinf_decode_symbol(d, lt);\n if (sym === 256) {\n return TINF_OK;\n }\n if (sym < 256) {\n d.dest.push(sym);\n } else {\n sym -= 257;\n const length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n if (length_bits[sym])\n d.hidden?.write(length_bits[sym], length - length_base[sym]);\n const ext = { length: 0, sym: 0 };\n const dist = tinf_decode_symbol(d, dt, false, ext);\n let backoffset = tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n const offs2 = d.dest.length - backoffset;\n let match;\n const skip = !d.to_hide || d.to_hide && d.to_hide instanceof BitstreamReader && d.to_hide.available == 0;\n if (!skip && (match = Buffer2.from(d.dest.slice(offs2, offs2 + length))).length == length) {\n let begin = d.dest.length - 32768;\n if (begin < 0)\n begin = 0;\n let matches = [];\n let o = 0;\n const slic = Buffer2.from(d.dest.slice(begin + o, d.dest.length));\n while (begin + o < d.dest.length) {\n const r = slic.slice(o, d.dest.length).indexOf(match);\n if (r >= 0) {\n matches.push(r + begin + o);\n o += r;\n } else {\n break;\n }\n o++;\n }\n if (matches.length > 1) {\n matches = matches.map((e) => -(e - d.dest.length)).filter((e) => {\n const [dsym2] = get_symbol(e, dist_bits, dist_base);\n return d.adists.has(dsym2);\n });\n matches.reverse();\n const v = Math.floor(Math.log2(matches.length));\n capacity += v;\n if (d.to_hide instanceof BitstreamReader) {\n if (d.to_hide.available) {\n const s = d.to_hide.readSync(Math.min(d.to_hide.available, v));\n backoffset = matches[s];\n }\n } else {\n const idx = matches.indexOf(backoffset);\n d.to_hide.write(v, idx);\n }\n }\n }\n const [dsym, dlen, doff] = get_symbol(backoffset, dist_bits, dist_base);\n const encdist = encode_symbol(dsym, d.rdtree, d.pathMap);\n d.hidden?.write(encdist.length, revbyte(encdist.val, encdist.length));\n d.hidden?.write(dlen, doff);\n for (let i = offs2; i < offs2 + length; ++i) {\n d.dest.push(d.dest[i]);\n }\n }\n }\n}\nfunction tinf_inflate_uncompressed_block(d) {\n if (d.source.offset & 7)\n d.source.readSync(8 - d.source.offset & 7);\n if (d.hidden && d.hidden.offset & 7)\n d.hidden?.write(8 - d.hidden.offset & 7, 0);\n const length = d.source.readSync(16);\n d.hidden?.write(16, length);\n const invlength = d.source.readSync(16);\n d.hidden?.write(16, invlength);\n if (length !== (~invlength & 65535)) {\n return -4;\n }\n for (let i = length; i; --i) {\n const v = d.source.readSync(8);\n d.dest.push(v);\n d.hidden?.write(8, v);\n }\n return TINF_OK;\n}\nfunction tinf_uncompress(source, decompressed, to_hide, hidden, opt = 0) {\n const decomp = decompressed ? new BitstreamWriter({ write: decompressed }) : null;\n const hid = hidden && new BitstreamWriter({ write: hidden }, 4);\n const d = new Data(source, decomp, to_hide, hid);\n let res;\n let bfinal, btype;\n do {\n bfinal = tinf_getbit(d);\n d.hidden?.write(1, bfinal);\n btype = tinf_read_bits(d, 2, 0);\n d.hidden?.write(2, btype);\n switch (btype) {\n case 0:\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n d.rdtree = rdtree;\n d.rltree = rltree;\n d.adists = sadist;\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n tinf_decode_trees(d, d.ltree, d.dtree);\n d.computeReverse();\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = -2;\n }\n if (res !== TINF_OK)\n throw new Error("Data error " + res);\n } while (!bfinal);\n decomp?.end();\n hid?.end();\n}\ntinf_build_fixed_trees(sltree, sdtree);\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\nrltree = buildHuffmanTable(sltree.table, sltree.trans)[0];\nrdtree = buildHuffmanTable(sdtree.table, sdtree.trans)[0];\nsadist = new Set(rdtree.flat(16));\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\n// src/pngv3.ts\nvar csettings2;\nsettings.subscribe((b) => {\n csettings2 = b;\n});\nvar CUM3 = import_buffer3.Buffer.from("doo\\0m");\nvar CUM4 = import_buffer3.Buffer.from("voo\\0m");\nvar CUM5 = import_buffer3.Buffer.from("boo\\0");\nvar CUM6 = import_buffer3.Buffer.from("Creation Time\\0");\nvar CUM7 = import_buffer3.Buffer.from("Software\\0");\nvar BufferReadStream = (b) => {\n const ret = new ReadableStream({\n pull(cont) {\n cont.enqueue(b);\n cont.close();\n }\n });\n return ret;\n};\nvar password = import_buffer3.Buffer.from("NOA");\nvar xor = (a, p) => {\n let n = 0;\n for (let i = 0; i < a.byteLength; ++i) {\n a[i] ^= p[n];\n n++;\n n %= p.byteLength;\n }\n};\nvar prefs = {\n "files.catbox.moe": "c",\n "a.pomf.cat": "p",\n "take-me-to.space": "t",\n "z.zz.fo": "z"\n};\nvar rprefs = {\n "c": "files.catbox.moe",\n "p": "a.pomf.cat",\n "t": "take-me-to.space",\n "z": "z.zz.fo"\n};\nvar extractFromRawDeflate = (b) => {\n const src = new BitstreamReader();\n src.addBuffer(b);\n const chnks = [];\n const hidden = new BitstreamWriter({\n write(chunk) {\n for (const i of chunk) {\n if (i >= 32 && i <= 128)\n chnks.push(i);\n else\n throw "Finish";\n }\n }\n });\n try {\n tinf_uncompress(src, void 0, hidden, void 0);\n } catch (e) {\n if (e == "Finish")\n return import_buffer3.Buffer.from(chnks);\n }\n return false;\n};\nvar extract = async (png, doextract = true) => {\n const reader = BufferReadStream(png).getReader();\n const sneed = new PNGDecoder(reader, false);\n const ret = [];\n let w;\n if (!csettings2)\n throw new Error("Settings uninit");\n try {\n let complete = false;\n const idats = [];\n for await (const [name, chunk, crc, offset] of sneed.chunks()) {\n let buff;\n switch (name) {\n case "tEXt":\n buff = chunk;\n if (buff.slice(4, 4 + CUM3.length).equals(CUM3)) {\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(buff.slice(4 + CUM3.length));\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM4.length).equals(CUM4)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM4.length);\n xor(passed, password);\n const k = await decodeCoom3Payload(passed);\n ret.push(...k.filter((e) => e));\n }\n if (buff.slice(4, 4 + CUM5.length).equals(CUM5)) {\n if (!doextract)\n return true;\n const passed = buff.slice(4 + CUM5.length);\n const decoded = import_buffer3.Buffer.from(passed.toString(), "base64").toString().split(" ").map((e) => {\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n }\n if (w = [CUM6, CUM7].find((e) => buff.slice(4, 4 + e.length).equals(e))) {\n const passed = buff.slice(4 + w.length);\n if (!passed.toString().match(/^[0-9a-zA-Z+/=]+$/g))\n continue;\n const decoders = [\n (b) => import_buffer3.Buffer.from(b.toString(), "base64").toString(),\n (b) => import_buffer3.Buffer.from(bs58.decode(passed.toString())).toString()\n ];\n for (const d of decoders) {\n try {\n const decoded = d(passed).split(" ").map((e) => {\n if (!(e[0] in rprefs))\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (!doextract)\n return true;\n const k = await decodeCoom3Payload(import_buffer3.Buffer.from(decoded));\n ret.push(...k.filter((e) => e));\n } catch (e) {\n }\n }\n }\n break;\n case "IDAT":\n if (ret.length)\n return ret;\n buff = chunk;\n idats.push(buff.slice(4));\n break;\n case "IEND":\n complete = true;\n default:\n break;\n }\n }\n if (idats.length) {\n let decoded;\n if ((decoded = extractFromRawDeflate(import_buffer3.Buffer.concat(idats).slice(2))) === false)\n return false;\n const dec = decoded.toString().split(" ").map((e) => {\n if (!(e[0] in rprefs) || e.length < 5)\n throw "Uhh";\n return `https://${rprefs[e[0]]}/${e.slice(1)}`;\n }).join(" ");\n if (doextract)\n return decodeCoom3Payload(import_buffer3.Buffer.from(dec));\n return true;\n }\n } catch (e) {\n if (e != "Uhh")\n console.error(e);\n } finally {\n reader.releaseLock();\n }\n};\nvar buildChunk = (tag, data) => {\n const ret = import_buffer3.Buffer.alloc(data.byteLength + 4);\n ret.write(tag.slice(0, 4), 0);\n data.copy(ret, 4);\n return ret;\n};\nvar BufferWriteStream = () => {\n let b = import_buffer3.Buffer.from([]);\n const ret = new WritableStream({\n write(chunk) {\n b = import_buffer3.Buffer.concat([b, chunk]);\n console.log("finished appending");\n }\n });\n return [ret, () => b];\n};\nvar embedInRawDeflate = (b, h) => {\n const src = new BitstreamReader();\n const hid = new BitstreamReader();\n hid.addBuffer(h);\n src.addBuffer(b);\n const chnks = [];\n tinf_uncompress(src, void 0, hid, (c) => chnks.push(c));\n return import_buffer3.Buffer.concat(chnks);\n};\nvar inject_data = async (container, injb) => {\n injb = import_buffer3.Buffer.concat([injb, import_buffer3.Buffer.from([0])]);\n if (!csettings2)\n throw new Error("Settings uninit");\n if (csettings2.pmeth < 5) {\n let magic = false;\n const [writestream2, extract6] = BufferWriteStream();\n const encoder = new PNGEncoder(writestream2);\n const decoder = new PNGDecoder(container.stream().getReader());\n for await (const [name, chunk, crc, offset] of decoder.chunks()) {\n if (magic && name != "IDAT")\n break;\n if (!magic && name == "IDAT") {\n const passed = import_buffer3.Buffer.from(injb);\n switch (csettings2.pmeth) {\n case 0:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM3, passed])), 0, 0]);\n break;\n case 1:\n xor(passed, password);\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM4, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 2:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM5, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 3:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM6, import_buffer3.Buffer.from(import_buffer3.Buffer.from(passed).toString("base64"))])), 0, 0]);\n break;\n case 4:\n await encoder.insertchunk(["tEXt", buildChunk("tEXt", import_buffer3.Buffer.concat([CUM7, import_buffer3.Buffer.from(bs58.encode(passed))])), 0, 0]);\n break;\n }\n magic = true;\n }\n await encoder.insertchunk([name, chunk, crc, offset]);\n }\n await encoder.insertchunk([\n "IEND",\n buildChunk("IEND", import_buffer3.Buffer.from([])),\n 0,\n 0\n ]);\n return extract6();\n }\n let pdec = new PNGDecoder(container.stream().getReader());\n const concat = [];\n for await (const chk of pdec.chunks())\n if (chk[0] == "IDAT")\n concat.push(chk[1].slice(4));\n const comp = import_buffer3.Buffer.concat(concat);\n const head = comp.slice(0, 2);\n const chksum = comp.slice(-4);\n const idatblk = embedInRawDeflate(comp.slice(2, -4), injb);\n const [writestream, extract5] = BufferWriteStream();\n const penc = new PNGEncoder(writestream);\n pdec = new PNGDecoder(container.stream().getReader());\n let ins = false;\n for await (const chk of pdec.chunks()) {\n if (chk[0] != "IDAT") {\n await penc.insertchunk(chk);\n } else {\n if (!ins) {\n await penc.insertchunk(["IDAT", import_buffer3.Buffer.concat([import_buffer3.Buffer.from("IDAT"), head, idatblk, chksum]), 0, 0]);\n ins = true;\n }\n }\n }\n await penc.dtor();\n console.log("Finished writing");\n return extract5();\n};\nvar inject = async (container, links) => {\n links = links.map((link) => {\n for (const h of filehosts) {\n if (link.includes(h.serving)) {\n const end = link.split("/").slice(-1)[0];\n return `${prefs[h.serving]}${end}`;\n }\n }\n return "";\n });\n const injb = import_buffer3.Buffer.from(links.join(" "));\n return inject_data(container, injb);\n};\nvar has_embed = async (png) => {\n const r = await extract(png, false);\n return !!r;\n};\nvar pngv3_default = {\n extract,\n has_embed,\n inject,\n match: (fn) => !!fn.match(/\\.png$/)\n};\n\n// src/jpg.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer4 = __toESM(require_buffer(), 1);\n\n// src/f5stego.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nfunction* f5get() {\n let extrBit = 0;\n let k = 0;\n for (let i = 0; i < 4; ++i) {\n const b2 = yield;\n k |= b2 << i;\n }\n k = (k & 15) + 1;\n let toread = 8;\n let len = 0;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const b = yield;\n toread += 8;\n if (b)\n toread += 7;\n else\n len *= 2;\n while (toread--) {\n const b2 = yield;\n len = len * 2 + b2;\n }\n const rlen = revbyte(len, b ? 23 : 16);\n len = rlen;\n if (len > 256)\n throw new Error("Too big for Smash");\n len *= 8;\n const chunks = [];\n const bw = new BitstreamWriter({\n write(chunk) {\n chunks.push(chunk);\n }\n });\n while (len) {\n extrBit = yield;\n bw.write(1, extrBit);\n len--;\n }\n bw.end();\n return Buffer2.concat(chunks).slice(0, rlen);\n}\nvar bitcode = new Array(65535);\nvar category = new Array(65535);\nvar std_dc_luminance_nrcodes = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\nvar std_dc_luminance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_luminance_nrcodes = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\nvar std_ac_luminance_values = [\n 1,\n 2,\n 3,\n 0,\n 4,\n 17,\n 5,\n 18,\n 33,\n 49,\n 65,\n 6,\n 19,\n 81,\n 97,\n 7,\n 34,\n 113,\n 20,\n 50,\n 129,\n 145,\n 161,\n 8,\n 35,\n 66,\n 177,\n 193,\n 21,\n 82,\n 209,\n 240,\n 36,\n 51,\n 98,\n 114,\n 130,\n 9,\n 10,\n 22,\n 23,\n 24,\n 25,\n 26,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 225,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 241,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nvar std_dc_chrominance_nrcodes = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\nvar std_dc_chrominance_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nvar std_ac_chrominance_nrcodes = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\nvar std_ac_chrominance_values = [\n 0,\n 1,\n 2,\n 3,\n 17,\n 4,\n 5,\n 33,\n 49,\n 6,\n 18,\n 65,\n 81,\n 7,\n 97,\n 113,\n 19,\n 34,\n 50,\n 129,\n 8,\n 20,\n 66,\n 145,\n 161,\n 177,\n 193,\n 9,\n 35,\n 51,\n 82,\n 240,\n 21,\n 98,\n 114,\n 209,\n 10,\n 22,\n 36,\n 52,\n 225,\n 37,\n 241,\n 23,\n 24,\n 25,\n 26,\n 38,\n 39,\n 40,\n 41,\n 42,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 67,\n 68,\n 69,\n 70,\n 71,\n 72,\n 73,\n 74,\n 83,\n 84,\n 85,\n 86,\n 87,\n 88,\n 89,\n 90,\n 99,\n 100,\n 101,\n 102,\n 103,\n 104,\n 105,\n 106,\n 115,\n 116,\n 117,\n 118,\n 119,\n 120,\n 121,\n 122,\n 130,\n 131,\n 132,\n 133,\n 134,\n 135,\n 136,\n 137,\n 138,\n 146,\n 147,\n 148,\n 149,\n 150,\n 151,\n 152,\n 153,\n 154,\n 162,\n 163,\n 164,\n 165,\n 166,\n 167,\n 168,\n 169,\n 170,\n 178,\n 179,\n 180,\n 181,\n 182,\n 183,\n 184,\n 185,\n 186,\n 194,\n 195,\n 196,\n 197,\n 198,\n 199,\n 200,\n 201,\n 202,\n 210,\n 211,\n 212,\n 213,\n 214,\n 215,\n 216,\n 217,\n 218,\n 226,\n 227,\n 228,\n 229,\n 230,\n 231,\n 232,\n 233,\n 234,\n 242,\n 243,\n 244,\n 245,\n 246,\n 247,\n 248,\n 249,\n 250\n];\nfunction _initCategoryNumber() {\n let nrlower = 1;\n let nrupper = 2;\n for (let cat = 1; cat <= 15; cat++) {\n for (let nr = nrlower; nr < nrupper; nr++) {\n category[32767 + nr] = cat;\n bitcode[32767 + nr] = [];\n bitcode[32767 + nr][1] = cat;\n bitcode[32767 + nr][0] = nr;\n }\n for (let nrneg = -(nrupper - 1); nrneg <= -nrlower; nrneg++) {\n category[32767 + nrneg] = cat;\n bitcode[32767 + nrneg] = [];\n bitcode[32767 + nrneg][1] = cat;\n bitcode[32767 + nrneg][0] = nrupper - 1 + nrneg;\n }\n nrlower <<= 1;\n nrupper <<= 1;\n }\n}\n_initCategoryNumber();\nfunction _computeHuffmanTbl(nrcodes, std_table) {\n let codevalue = 0;\n let pos_in_table = 0;\n const HT = [];\n for (let k = 1; k <= 16; k++) {\n for (let j = 1; j <= nrcodes[k]; j++) {\n HT[std_table[pos_in_table]] = [];\n HT[std_table[pos_in_table]][0] = codevalue;\n HT[std_table[pos_in_table]][1] = k;\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n}\nvar YDC_HT = _computeHuffmanTbl(std_dc_luminance_nrcodes, std_dc_luminance_values);\nvar UVDC_HT = _computeHuffmanTbl(std_dc_chrominance_nrcodes, std_dc_chrominance_values);\nvar YAC_HT = _computeHuffmanTbl(std_ac_luminance_nrcodes, std_ac_luminance_values);\nvar UVAC_HT = _computeHuffmanTbl(std_ac_chrominance_nrcodes, std_ac_chrominance_values);\nvar __raw, _jfif, _APPn, _qts, _frame, _tail, __f5write, _f5write_fn;\nvar f5stego = class {\n constructor(key2, maxPixels = 4096 * 4096) {\n this.maxPixels = maxPixels;\n __privateAdd(this, __f5write);\n __privateAdd(this, __raw, void 0);\n __privateAdd(this, _jfif, void 0);\n __privateAdd(this, _APPn, void 0);\n __privateAdd(this, _qts, void 0);\n __privateAdd(this, _frame, null);\n __privateAdd(this, _tail, null);\n }\n embed(image, data, k) {\n this.parse(image);\n this.f5put(data, k);\n return this.pack();\n }\n extract(image) {\n try {\n this.gengen = f5get();\n this.gengen.next();\n this.parse(image, true);\n return this.f5get();\n } catch (e) {\n if (e instanceof Buffer2)\n return e;\n throw e;\n }\n }\n f5put(data, k) {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let t, i, comp = __privateGet(this, _frame).components[0];\n if (data.length > 8388607)\n throw "Data too big. Max 8388607 bytes allowed.";\n if (data.length < 32768) {\n t = new Uint8Array(2 + data.length);\n t[0] = data.length & 255;\n t[1] = data.length >>> 8;\n t.set(data, 2);\n } else {\n t = new Uint8Array(3 + data.length);\n t[0] = data.length & 255;\n t[1] = (data.length >>> 8 & 127) + 128;\n t[2] = data.length >>> 15;\n t.set(data, 3);\n }\n if (comp.componentId != 1) {\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n return __privateMethod(this, __f5write, _f5write_fn).call(this, comp.blocks, t, k);\n }\n f5get() {\n if (!__privateGet(this, _frame))\n throw "Parser not run";\n let comp = __privateGet(this, _frame).components[0];\n if (comp.componentId != 1) {\n for (let i = 0; i < __privateGet(this, _frame).components.length; i++) {\n if (__privateGet(this, _frame).components[i].componentId == 1) {\n comp = __privateGet(this, _frame).components[i];\n break;\n }\n }\n }\n if (!("blocks" in comp)) {\n throw "Blocks failed to be parsed";\n }\n const coeff = new Int16Array(comp.blocks.length);\n coeff.set(comp.blocks);\n let pos = -1, extrBit = 0, cCount = coeff.length - 1;\n let n, k = 0;\n let out = new Uint8Array(coeff.length / 8 | 0), extrByte = 0, outPos = 0, bitsAvail = 0, code = 0, hash = 0;\n while (bitsAvail < 4) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n k |= extrBit << bitsAvail;\n bitsAvail++;\n }\n k = (k & 15) + 1;\n n = (1 << k) - 1;\n bitsAvail = 0;\n if (k == 1) {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n extrByte |= extrBit << bitsAvail;\n bitsAvail++;\n if (bitsAvail == 8) {\n out[outPos++] = extrByte;\n extrByte = 0;\n bitsAvail = 0;\n }\n }\n } else {\n while (pos < cCount) {\n pos++;\n if (coeff[pos] === 0) {\n continue;\n }\n extrBit = coeff[pos] & 1;\n if (coeff[pos] < 0) {\n extrBit = 1 - extrBit;\n }\n hash ^= extrBit * ++code;\n if (code == n) {\n extrByte |= hash << bitsAvail;\n bitsAvail += k;\n code = 0;\n hash = 0;\n while (bitsAvail >= 8) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n }\n }\n }\n while (bitsAvail > 0) {\n out[outPos++] = extrByte & 255;\n bitsAvail -= 8;\n extrByte = extrByte >> 8;\n }\n let s = 2, l = out[0];\n if (out[1] & 128) {\n s++;\n l += ((out[1] & 127) << 8) + (out[2] << 15);\n } else {\n l += out[1] << 8;\n }\n return out.subarray(s, s + l);\n }\n parse(data, tolerant = false) {\n let offset = 0;\n function _buildHuffmanTable(nrcodes, values) {\n let codevalue = 0, pos_in_table = 0, HT = new Uint16Array(65536);\n for (let k = 0; k < 16; k++) {\n for (let j2 = 0; j2 < nrcodes[k]; j2++) {\n for (let i2 = codevalue << 15 - k, cntTo = codevalue + 1 << 15 - k; i2 < cntTo; i2++) {\n HT[i2] = values[pos_in_table] + (k + 1 << 8);\n }\n pos_in_table++;\n codevalue++;\n }\n codevalue *= 2;\n }\n return HT;\n }\n const decodeScan = (data2, offset2, frame, components, resetInterval2, spectralStart, spectralEnd, successivePrev, successive) => {\n let startOffset = offset2, bitsData = 0, bitsCount = 0, eobrun = 0, p1 = 1 << successive, m1 = -1 << successive;\n const prevpos = 0;\n const decodeBaseline = (component2, pos) => {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n let diff = 0;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff;\n let k2 = 1, s, r;\n while (k2 < 64) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n bitsCount -= s;\n k2++;\n }\n };\n function decodeDCFirst(component2, pos) {\n let diff = 0;\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n let t = component2.huffmanTableDC[bitsData >>> bitsCount - 16 & 65535];\n if (!t)\n throw "invalid huffman sequence";\n bitsCount -= t >>> 8;\n t &= 255;\n if (t !== 0) {\n while (bitsCount < t) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n diff = bitsData >>> bitsCount - t & (1 << t) - 1;\n bitsCount -= t;\n if (diff < 1 << t - 1)\n diff += (-1 << t) + 1;\n }\n component2.blocksDC[pos >> 6] = component2.pred += diff << successive;\n }\n function decodeDCSuccessive(component2, pos) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocksDC[pos >> 6] |= (bitsData >>> --bitsCount & 1) << successive;\n }\n if (!frame)\n throw "Frame not parsed yet";\n function decodeACFirst(component2, pos) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k2 = spectralStart, s, r;\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s === 0) {\n if (r != 15) {\n eobrun = (1 << r) - 1;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n k2 += 16;\n continue;\n }\n k2 += r;\n while (bitsCount < s) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n component2.blocks[pos + k2] = bitsData >>> bitsCount - s & (1 << s) - 1;\n bitsCount -= s;\n if (component2.blocks[pos + k2] < 1 << s - 1)\n component2.blocks[pos + k2] += (-1 << s) + 1;\n component2.blocks[pos + k2] *= p1;\n k2++;\n }\n }\n function decodeACSuccessive(component2, pos) {\n let k2 = spectralStart, r, s;\n if (frame == null)\n throw "Frame not defined";\n if (!eobrun) {\n while (k2 <= spectralEnd) {\n while (bitsCount < 16) {\n bitsData = (bitsData << 8) + (data2[offset2] | 0);\n bitsCount += 8;\n if (data2[offset2] == 255)\n offset2++;\n offset2++;\n }\n s = component2.huffmanTableAC[bitsData >>> bitsCount - 16 & 65535];\n if (!s)\n throw "invalid huffman sequence";\n bitsCount -= s >>> 8;\n r = s >> 4 & 15;\n s &= 15;\n if (s) {\n if (s != 1)\n throw "bad jpeg";\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n s = bitsData >>> --bitsCount & 1 ? p1 : m1;\n } else {\n if (r != 15) {\n eobrun = 1 << r;\n if (r) {\n while (bitsCount < r) {\n bitsData = (bitsData << 8) + data2[offset2++];\n if ((bitsData & 255) == 255)\n offset2++;\n bitsCount += 8;\n }\n eobrun += bitsData >>> bitsCount - r & (1 << r) - 1;\n bitsCount -= r;\n }\n break;\n }\n }\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n } else {\n if (--r < 0)\n break;\n }\n k2++;\n }\n if (s)\n component2.blocks[pos + k2] = s;\n k2++;\n }\n }\n if (eobrun) {\n while (k2 <= spectralEnd) {\n if (component2.blocks[pos + k2]) {\n if (!bitsCount) {\n bitsData = data2[offset2++];\n if (bitsData == 255)\n offset2++;\n bitsCount = 8;\n }\n component2.blocks[pos + k2] += (bitsData >>> --bitsCount & 1) * (component2.blocks[pos + k2] >= 0 ? p1 : m1);\n }\n k2++;\n }\n eobrun--;\n }\n }\n let decodeFn;\n if (frame.progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n let marker, mcuExpected, i2, j2, k, n, mcusPerLine, mcusPerRow, x, y;\n let lastflushidx = 0;\n const flushBits = () => {\n if (!this.gengen)\n return;\n const component2 = components.find((e) => e.componentId == 1);\n while (component2.blocks[lastflushidx + 1] !== void 0) {\n const blk = component2.blocks[lastflushidx];\n if (blk != 0) {\n const v = blk < 0 ? 1 - (blk & 1) : blk & 1;\n const it = this.gengen.next(v);\n if (it.done) {\n throw it.value;\n }\n }\n lastflushidx++;\n }\n };\n if (components.length == 1) {\n mcusPerLine = components[0].blocksPerLine;\n mcusPerRow = components[0].blocksPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n components[0].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n decodeFn(components[i2], (y * components[i2].blocksPerLineForMcu + x) * 64);\n }\n }\n flushBits();\n }\n } else {\n mcusPerLine = frame.mcusPerLine;\n mcusPerRow = frame.mcusPerColumn;\n mcuExpected = mcusPerRow * mcusPerLine;\n if (!resetInterval2)\n resetInterval2 = mcuExpected;\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n for (y = 0; y < mcusPerRow; y++) {\n for (x = 0; x < mcusPerLine; x++) {\n if (!n) {\n n = resetInterval2;\n for (i2 = 0; i2 < components.length; i2++)\n components[i2].pred = 0;\n eobrun = 0;\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n bitsCount = 0;\n marker = data2[offset2] << 8 | data2[offset2 + 1];\n if (marker >= 65488 && marker <= 65495) {\n offset2 += 2;\n } else {\n if (marker <= 65280) {\n throw "bad jpeg";\n }\n break;\n }\n }\n n--;\n for (i2 = 0; i2 < components.length; i2++) {\n for (j2 = 0; j2 < components[i2].v; j2++) {\n for (k = 0; k < components[i2].h; k++) {\n decodeFn(components[i2], ((y * components[i2].v + j2) * components[i2].blocksPerLineForMcu + x * components[i2].h + k) * 64);\n }\n }\n }\n }\n flushBits();\n }\n }\n offset2 -= bitsCount / 8 | 0;\n if (data2[offset2 - 1] == 255)\n offset2--;\n return offset2 - startOffset;\n };\n function readUint16() {\n const value = data[offset] << 8 | data[offset + 1];\n offset += 2;\n return value;\n }\n function readDataBlock() {\n const length = readUint16();\n const array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n __privateSet(this, __raw, data);\n __privateSet(this, _jfif, null);\n __privateSet(this, _APPn, []);\n __privateSet(this, _qts, []);\n __privateSet(this, _frame, null);\n __privateSet(this, _tail, null);\n let markerHi, markerLo, i, j, resetInterval, component;\n const huffmanTablesAC = [];\n const huffmanTablesDC = [];\n while (1) {\n if (offset >= data.length) {\n if (tolerant)\n break;\n throw "unexpected EOF";\n }\n markerHi = data[offset++];\n markerLo = data[offset++];\n if (markerHi == 255) {\n if (markerLo == 224) {\n __privateSet(this, _jfif, readDataBlock());\n }\n if (markerLo > 224 && markerLo < 240 || markerLo == 254) {\n __privateGet(this, _APPn).push({\n "app": markerLo,\n "data": readDataBlock()\n });\n }\n if (markerLo == 219) {\n __privateGet(this, _qts).push(readDataBlock());\n }\n if (markerLo >= 192 && markerLo <= 194) {\n if (__privateGet(this, _frame))\n throw "Only single frame JPEGs supported";\n readUint16();\n __privateSet(this, _frame, {\n "extended": markerLo === 193,\n "progressive": markerLo === 194,\n "precision": data[offset++],\n "scanLines": readUint16(),\n "samplesPerLine": readUint16(),\n "components": [],\n "componentIds": {},\n "maxH": 1,\n "maxV": 1\n });\n if (__privateGet(this, _frame).scanLines * __privateGet(this, _frame).samplesPerLine > this.maxPixels)\n throw "Image is too big.";\n var componentsCount = data[offset++], componentId;\n let maxH = 0, maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h)\n maxH = h;\n if (maxV < v)\n maxV = v;\n const qId = data[offset + 2];\n const l = __privateGet(this, _frame).components.push({\n componentId,\n h,\n v,\n quantizationTable: qId\n });\n __privateGet(this, _frame).componentIds[componentId] = l - 1;\n offset += 3;\n }\n __privateGet(this, _frame).maxH = maxH;\n __privateGet(this, _frame).maxV = maxV;\n const mcusPerLine = Math.ceil(__privateGet(this, _frame).samplesPerLine / 8 / maxH);\n const mcusPerColumn = Math.ceil(__privateGet(this, _frame).scanLines / 8 / maxV);\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n component = __privateGet(this, _frame).components[i];\n const blocksPerLine = Math.ceil(Math.ceil(__privateGet(this, _frame).samplesPerLine / 8) * component.h / maxH);\n const blocksPerColumn = Math.ceil(Math.ceil(__privateGet(this, _frame).scanLines / 8) * component.v / maxV);\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n __privateGet(this, _frame).components[i] = {\n ...component,\n blocks: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu * 64),\n blocksDC: new Int16Array(blocksPerColumnForMcu * blocksPerLineForMcu),\n blocksPerLine,\n blocksPerColumn,\n blocksPerLineForMcu,\n blocksPerColumnForMcu\n };\n }\n __privateGet(this, _frame).mcusPerLine = mcusPerLine;\n __privateGet(this, _frame).mcusPerColumn = mcusPerColumn;\n }\n if (markerLo == 196) {\n const huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n const v = _buildHuffmanTable(codeLengths, huffmanValues);\n if (huffmanTableSpec >> 4 === 0)\n huffmanTablesDC[huffmanTableSpec & 15] = v;\n else\n huffmanTablesAC[huffmanTableSpec & 15] = v;\n }\n }\n if (markerLo == 221) {\n resetInterval = readUint16();\n }\n if (markerLo == 218) {\n if (__privateGet(this, _frame) == null)\n throw "SOS before SOF";\n readUint16();\n const selectorsCount = data[offset++];\n const components = [];\n for (i = 0; i < selectorsCount; i++) {\n const componentIndex = __privateGet(this, _frame).componentIds[data[offset++]];\n component = __privateGet(this, _frame).components[componentIndex];\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++];\n const spectralEnd = data[offset++];\n const successiveApproximation = data[offset++];\n const processed = decodeScan(data, offset, __privateGet(this, _frame), components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15);\n offset += processed;\n }\n if (markerLo == 217) {\n break;\n }\n } else {\n if (data[offset - 3] == 255 && data[offset - 2] >= 192 && data[offset - 2] <= 254) {\n offset -= 3;\n }\n while (data[offset] != 255 && offset < data.length) {\n offset++;\n }\n if (data[offset] != 255) {\n throw "bad jpeg ";\n }\n }\n }\n if (!__privateGet(this, _frame))\n throw "bad jpeg";\n if (offset < data.length)\n __privateSet(this, _tail, data.subarray(offset));\n return this;\n }\n pack() {\n let byteout;\n let bytenew;\n let bytepos;\n let poslast;\n let outpos;\n let byte;\n function writeByte(value) {\n let t;\n byteout[outpos++] = value;\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n }\n function writeWord(value) {\n writeByte(value >> 8 & 255);\n writeByte(value & 255);\n }\n function writeBlock(block) {\n let t;\n if (outpos + block.length > poslast) {\n t = new Uint8Array(byteout.length * 2 + block.length);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n byteout.set(block, outpos);\n outpos += block.length;\n }\n function writeAPP0(self2) {\n writeWord(65504);\n if (!__privateGet(self2, _jfif)) {\n writeWord(16);\n writeByte(74);\n writeByte(70);\n writeByte(73);\n writeByte(70);\n writeByte(0);\n writeByte(1);\n writeByte(1);\n writeByte(0);\n writeWord(1);\n writeWord(1);\n writeByte(0);\n writeByte(0);\n } else {\n writeWord(__privateGet(self2, _jfif).length + 2);\n writeBlock(__privateGet(self2, _jfif));\n }\n }\n function writeDQT(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _qts).length; i2++) {\n writeWord(65499);\n writeWord(__privateGet(self2, _qts)[i2].length + 2);\n writeBlock(__privateGet(self2, _qts)[i2]);\n }\n }\n function writeAPPn(self2) {\n for (let i2 = 0; i2 < __privateGet(self2, _APPn).length; i2++) {\n writeWord(65280 | __privateGet(self2, _APPn)[i2].app);\n writeWord(__privateGet(self2, _APPn)[i2].data.length + 2);\n writeBlock(__privateGet(self2, _APPn)[i2].data);\n }\n }\n function writeSOF0(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65472);\n writeWord(8 + __privateGet(self2, _frame).components.length * 3);\n writeByte(__privateGet(self2, _frame).precision);\n writeWord(__privateGet(self2, _frame).scanLines);\n writeWord(__privateGet(self2, _frame).samplesPerLine);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n writeByte(c2.h << 4 | c2.v);\n writeByte(c2.quantizationTable);\n }\n }\n function writeDHT(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65476);\n writeWord(31);\n writeByte(0);\n for (let i2 = 0; i2 < 16; i2++) {\n writeByte(std_dc_luminance_nrcodes[i2 + 1]);\n }\n for (let j = 0; j <= 11; j++) {\n writeByte(std_dc_luminance_values[j]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(16);\n for (let k = 0; k < 16; k++) {\n writeByte(std_ac_luminance_nrcodes[k + 1]);\n }\n for (let l = 0; l <= 161; l++) {\n writeByte(std_ac_luminance_values[l]);\n }\n if (__privateGet(self2, _frame).components.length != 1) {\n writeWord(65476);\n writeWord(31);\n writeByte(1);\n for (let m = 0; m < 16; m++) {\n writeByte(std_dc_chrominance_nrcodes[m + 1]);\n }\n for (let n = 0; n <= 11; n++) {\n writeByte(std_dc_chrominance_values[n]);\n }\n writeWord(65476);\n writeWord(181);\n writeByte(17);\n for (let o = 0; o < 16; o++) {\n writeByte(std_ac_chrominance_nrcodes[o + 1]);\n }\n for (let p = 0; p <= 161; p++) {\n writeByte(std_ac_chrominance_values[p]);\n }\n }\n }\n function writeSOS(self2) {\n if (!__privateGet(self2, _frame))\n throw "Frame not ready";\n writeWord(65498);\n writeWord(6 + __privateGet(self2, _frame).components.length * 2);\n writeByte(__privateGet(self2, _frame).components.length);\n for (let i2 = 0; i2 < __privateGet(self2, _frame).components.length; i2++) {\n const c2 = __privateGet(self2, _frame).components[i2];\n writeByte(c2.componentId);\n if (i2 === 0) {\n writeByte(0);\n } else {\n writeByte(17);\n }\n }\n writeByte(0);\n writeByte(63);\n writeByte(0);\n }\n function processDU(comp, POS, DC, HTDC, HTAC) {\n let pos, posval, t;\n if (bytepos === 0)\n bytenew = 0;\n if (!("blocks" in comp))\n throw "Blocks not parsed";\n const Diff = comp.blocksDC[POS >> 6] - DC;\n DC = comp.blocksDC[POS >> 6];\n if (Diff === 0) {\n posval = HTDC[0][1];\n bytenew <<= posval;\n bytenew += HTDC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n } else {\n pos = 32767 + Diff;\n posval = HTDC[category[pos]][1];\n bytenew <<= posval;\n bytenew += HTDC[category[pos]][0];\n bytepos += posval;\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n let end0pos = 63;\n for (; end0pos > 0 && comp.blocks[POS + end0pos] === 0; end0pos--) {\n }\n if (end0pos === 0) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n return DC;\n }\n let i2 = 1;\n let lng;\n while (i2 <= end0pos) {\n const startpos = i2;\n for (; comp.blocks[POS + i2] === 0 && i2 <= end0pos; ++i2) {\n }\n let nrzeroes = i2 - startpos;\n if (nrzeroes >= 16) {\n lng = nrzeroes >> 4;\n for (let nrmarker = 1; nrmarker <= lng; ++nrmarker) {\n posval = HTAC[240][1];\n bytenew <<= posval;\n bytenew += HTAC[240][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n nrzeroes = nrzeroes & 15;\n }\n pos = 32767 + comp.blocks[POS + i2];\n posval = HTAC[(nrzeroes << 4) + category[pos]][1];\n bytenew <<= posval;\n bytenew += HTAC[(nrzeroes << 4) + category[pos]][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n posval = bitcode[pos][1];\n bytenew <<= posval;\n bytenew += bitcode[pos][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n i2++;\n }\n if (end0pos != 63) {\n posval = HTAC[0][1];\n bytenew <<= posval;\n bytenew += HTAC[0][0];\n bytepos += posval;\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n bytenew &= (1 << bytepos) - 1;\n }\n }\n if (outpos > poslast) {\n t = new Uint8Array(byteout.length * 2);\n t.set(byteout);\n byteout = t;\n poslast = t.length - 128;\n }\n return DC;\n }\n byteout = new Uint8Array(65536);\n poslast = 65536 - 128;\n outpos = 0;\n bytenew = 0;\n bytepos = 0;\n writeWord(65496);\n writeAPP0(this);\n writeAPPn(this);\n writeDQT(this);\n writeSOF0(this);\n writeDHT(this);\n writeSOS(this);\n bytenew = 0;\n bytepos = 0;\n if (!__privateGet(this, _frame))\n throw "Frame not ready";\n let c, mcuRow, mcuCol, blockRow, blockCol, mcu, i, v, h;\n const DCdiff = [];\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n DCdiff.push(0);\n }\n for (mcu = 0; mcu < __privateGet(this, _frame).mcusPerLine * __privateGet(this, _frame).mcusPerColumn; mcu++) {\n mcuRow = mcu / __privateGet(this, _frame).mcusPerLine | 0;\n mcuCol = mcu % __privateGet(this, _frame).mcusPerLine;\n for (i = 0; i < __privateGet(this, _frame).components.length; i++) {\n c = __privateGet(this, _frame).components[i];\n for (v = 0; v < c.v; v++) {\n blockRow = mcuRow * c.v + v;\n for (h = 0; h < c.h; h++) {\n blockCol = mcuCol * c.h + h;\n if (i === 0) {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], YDC_HT, YAC_HT);\n } else {\n DCdiff[i] = processDU(c, (blockRow * __privateGet(this, _frame).mcusPerLine * c.h + blockCol) * 64, DCdiff[i], UVDC_HT, UVAC_HT);\n }\n }\n }\n }\n }\n while (bytepos > 7) {\n byte = 255 & bytenew >>> bytepos - 8;\n byteout[outpos++] = byte;\n if (byte == 255) {\n outpos++;\n }\n bytepos -= 8;\n }\n if (bytepos > 0) {\n bytenew <<= 8 - bytepos;\n bytenew += (1 << 8 - bytepos) - 1;\n byteout[outpos++] = 255 & bytenew;\n }\n writeWord(65497);\n if (__privateGet(this, _tail))\n writeBlock(__privateGet(this, _tail));\n return byteout.slice(0, outpos);\n }\n};\n__raw = new WeakMap();\n_jfif = new WeakMap();\n_APPn = new WeakMap();\n_qts = new WeakMap();\n_frame = new WeakMap();\n_tail = new WeakMap();\n__f5write = new WeakSet();\n_f5write_fn = function(coeff, data, k) {\n const coeff_count = coeff.length;\n let _changed = 0, _embedded = 0, _examined = 0, _thrown = 0, shuffled_index = 0, i, n, ii;\n let next_bit_to_embed = 0, byte_to_embed = data.length, data_idx = 0, available_bits_to_embed = 0;\n n = (1 << k) - 1;\n byte_to_embed = k - 1;\n byte_to_embed ^= 0;\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed = 3;\n for (ii = 0; ii < coeff_count; ii++) {\n shuffled_index = ii;\n if (shuffled_index % 64 === 0 || coeff[shuffled_index] === 0)\n continue;\n const cc = coeff[shuffled_index];\n _examined++;\n if (cc > 0 && (cc & 1) != next_bit_to_embed) {\n coeff[shuffled_index]--;\n _changed++;\n } else if (cc < 0 && (cc & 1) == next_bit_to_embed) {\n coeff[shuffled_index]++;\n _changed++;\n }\n if (coeff[shuffled_index] !== 0) {\n _embedded++;\n if (available_bits_to_embed === 0) {\n if (k != 1 || data_idx >= data.length)\n break;\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n } else {\n _thrown++;\n }\n }\n if (k == 1 && _embedded < data.length * 8)\n throw "capacity exceeded " + _embedded / 8 + " " + data.length;\n if (k != 1) {\n let is_last_byte = false, k_bits_to_embed = 0;\n while (!is_last_byte || available_bits_to_embed !== 0 && is_last_byte) {\n k_bits_to_embed = 0;\n for (i = 0; i < k; i++) {\n if (available_bits_to_embed === 0) {\n if (data_idx >= data.length) {\n is_last_byte = true;\n break;\n }\n byte_to_embed = data[data_idx++];\n byte_to_embed ^= 0;\n available_bits_to_embed = 8;\n }\n next_bit_to_embed = byte_to_embed & 1;\n byte_to_embed >>= 1;\n available_bits_to_embed--;\n k_bits_to_embed |= next_bit_to_embed << i;\n }\n const code_word = [];\n let ci = null;\n for (i = 0; i < n; i++) {\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n code_word.push(ci);\n }\n _examined += n;\n while (true) {\n var vhash = 0, extracted_bit;\n for (i = 0; i < code_word.length; i++) {\n if (coeff[code_word[i]] > 0) {\n extracted_bit = coeff[code_word[i]] & 1;\n } else {\n extracted_bit = 1 - (coeff[code_word[i]] & 1);\n }\n if (extracted_bit == 1)\n vhash ^= i + 1;\n }\n i = vhash ^ k_bits_to_embed;\n if (!i) {\n _embedded += k;\n break;\n }\n i--;\n coeff[code_word[i]] += coeff[code_word[i]] < 0 ? 1 : -1;\n _changed++;\n if (coeff[code_word[i]] === 0) {\n _thrown++;\n code_word.splice(i, 1);\n while (true) {\n if (++ii >= coeff_count) {\n throw "capacity exceeded " + _embedded / 8;\n }\n ci = ii;\n if (ci % 64 !== 0 && coeff[ci] !== 0)\n break;\n }\n _examined++;\n code_word.push(ci);\n } else {\n _embedded += k;\n break;\n }\n }\n }\n }\n return {\n "k": k,\n "embedded": _embedded / 8,\n "examined": _examined,\n "changed": _changed,\n "thrown": _thrown,\n "efficiency": (_embedded / _changed).toFixed(2)\n };\n};\n\n// src/jpg.ts\nvar key = import_buffer4.Buffer.from("CUNNYCUNNYCUNNY");\nvar f5inst = new f5stego(key);\nvar inject2 = async (b, links) => {\n if (b.size / 20 < links.join(" ").length)\n throw "Image too small to embed.";\n const arr = new Uint8Array(new Uint8Array(await b.arrayBuffer()));\n const buff = f5inst.embed(arr, new TextEncoder().encode(links.join(" ")), 1);\n return import_buffer4.Buffer.from(buff);\n};\nvar has_embed2 = (b) => {\n try {\n const res = f5inst.extract(b);\n if (!res)\n return false;\n if (res.length > 1024)\n return false;\n const str = import_buffer4.Buffer.from(res).toString();\n if (!str.match(/^[a-zA-Z0-9:/.\\-_ ]+$/))\n return false;\n return str;\n } catch {\n return false;\n }\n};\nvar extract2 = (b, ex) => {\n return decodeCoom3Payload(import_buffer4.Buffer.from(ex));\n};\nvar jpg_default = {\n match: (fn) => !!fn.match(/\\.jpe?g$/),\n has_embed: has_embed2,\n extract: extract2,\n inject: inject2\n};\n\n// src/thirdeye.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer5 = __toESM(require_buffer(), 1);\nvar import_jpeg_js = __toESM(require_jpeg_js(), 1);\n\n// src/phash.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar median = (data) => {\n const mdarr = data.slice(0);\n mdarr.sort((a, b) => a - b);\n if (mdarr.length % 2 === 0)\n return (mdarr[mdarr.length / 2 - 1] + mdarr[mdarr.length / 2]) / 2;\n return mdarr[Math.floor(mdarr.length / 2)];\n};\nvar translate_blocks_to_bits = function(blocks, pixels_per_block) {\n const half_block_value = pixels_per_block * 256 * 3 / 2;\n const bandsize = blocks.length / 4;\n for (let i = 0; i < 4; i++) {\n const m = median(blocks.slice(i * bandsize, (i + 1) * bandsize));\n for (let j = i * bandsize; j < (i + 1) * bandsize; j++) {\n const v = blocks[j];\n blocks[j] = Number(v > m || Math.abs(v - m) < 1 && m > half_block_value);\n }\n }\n};\nvar bits_to_hexhash = (bitsArray) => {\n const hex = [];\n for (let i = 0; i < bitsArray.length; i += 4) {\n const nibble = bitsArray.slice(i, i + 4);\n hex.push(parseInt(nibble.join(""), 2).toString(16));\n }\n return hex.join("");\n};\nvar bmvbhash_even = (data, bits) => {\n const blocksize_x = Math.floor(data.width / bits);\n const blocksize_y = Math.floor(data.height / bits);\n const result = [];\n for (let y = 0; y < bits; y++) {\n for (let x = 0; x < bits; x++) {\n let total = 0;\n for (let iy = 0; iy < blocksize_y; iy++) {\n for (let ix = 0; ix < blocksize_x; ix++) {\n const cx = x * blocksize_x + ix;\n const cy = y * blocksize_y + iy;\n const ii = (cy * data.width + cx) * 4;\n const alpha = data.data[ii + 3];\n if (alpha === 0) {\n total += 765;\n } else {\n total += data.data[ii] + data.data[ii + 1] + data.data[ii + 2];\n }\n }\n }\n result.push(total);\n }\n }\n translate_blocks_to_bits(result, blocksize_x * blocksize_y);\n return bits_to_hexhash(result);\n};\n\n// src/thirdeye.ts\nvar csettings3;\nsettings.subscribe((b) => {\n csettings3 = b;\n});\nvar gelquirk = (prefix) => (a) => {\n let base = a.post || a.data || a;\n if (!Array.isArray(base))\n return [];\n base = base.filter((e) => e.file_url);\n return base.map((e) => ({\n full_url: e.file_url,\n preview_url: e.preview_url || e.preview_url,\n source: e.source,\n ext: e.file_ext || e.file_url.substr(e.file_url.lastIndexOf(".") + 1),\n page: `${prefix}${e.id || e.parent_id}`,\n tags: (e.tag_string || (e.tags && (Array.isArray(e.tags) && (typeof e.tags[0] == "string" ? e.tags.join(" ") : e.tags.map((e2) => e2.name_en).join(" "))) || e.tags) || "").split(" ")\n })) || [];\n};\nvar experimentalApi = false;\nvar black = /* @__PURE__ */ new Set();\nvar phashEn = false;\nvar mindist = 5;\nsettings.subscribe((s) => {\n if (!s)\n return;\n experimentalApi = s.expte;\n boorus = s.rsources.map((e) => ({\n ...e,\n quirks: gelquirk(e.view)\n }));\n black = new Set(s.blacklist);\n mindist = s.mdist || 5;\n phashEn = s.phash;\n});\nvar boorus = [];\nvar unlockQueue = Promise.resolve();\nvar cache = {};\nvar findFileFrom = async (b, hex, abort) => {\n try {\n if (b.domain in cache && hex in cache[b.domain])\n return cache[b.domain][hex];\n const res = await ifetch(`https://${b.domain}${b.endpoint}${hex}`);\n const txt = await res.text();\n const pres = JSON.parse(txt);\n const tran = b.quirks(pres).filter((e) => !e.tags.some((e2) => black.has(e2)));\n if (!(b.domain in cache))\n cache[b.domain] = {};\n cache[b.domain][hex] = tran;\n return tran;\n } catch (e) {\n const error = e;\n if (!error.message.includes("Unexpected end of JSON input"))\n console.error(e);\n return [];\n }\n};\nvar extract3 = async (b, fn) => {\n if (!csettings3)\n throw new Error("Settings uninit");\n let result;\n let booru;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n if (result.length) {\n booru = e.name;\n break;\n }\n }\n let cachedFile;\n const prev = result[0].preview_url;\n const full = result[0].full_url;\n return [{\n source: result[0].source,\n page: {\n title: booru,\n url: result[0].page\n },\n filename: fn.substring(0, 33) + result[0].ext,\n thumbnail: csettings3.hotlink ? prev || full : import_buffer5.Buffer.from(await (await ifetch(prev || full)).arrayBuffer()),\n data: csettings3.hotlink ? full || prev : { url: full || prev }\n }];\n};\nvar phash = (b) => {\n const res = (0, import_jpeg_js.decode)(b);\n return bmvbhash_even(res, 8);\n};\nvar hammingDist = (a, b) => {\n let res = BigInt("0x" + a) ^ BigInt("0x" + b);\n let acc = 0;\n while (res != 0n) {\n acc += Number(res & 1n);\n res >>= 1n;\n }\n return acc;\n};\nvar has_embed3 = async (b, fn, prevlink) => {\n if (import_buffer5.Buffer.from(fn, "hex").equals(b))\n return false;\n let result = void 0;\n for (const e of Object.values(boorus)) {\n if (e.disabled)\n continue;\n result = await findFileFrom(e, fn.substring(0, 32));\n result = result.filter((e2) => e2.full_url || e2.preview_url);\n if (result.length)\n break;\n }\n if (result && result.length != 0 && phashEn && prevlink) {\n if (!result[0].preview_url)\n return true;\n const getHash = async (l) => {\n const ogreq = await ifetch(l);\n const origPreview = await ogreq.arrayBuffer();\n return phash(import_buffer5.Buffer.from(origPreview));\n };\n const [orighash, tehash] = await Promise.all([\n getHash(prevlink),\n getHash(result[0].preview_url)\n ]);\n const d = hammingDist(orighash, tehash);\n console.log(d, prevlink);\n return d > mindist;\n }\n return result && result.length != 0;\n};\nvar thirdeye_default = {\n skip: true,\n extract: extract3,\n has_embed: has_embed3,\n match: (fn) => !!fn.match(/^[0-9a-f]{32}\\.....?/)\n};\n\n// src/pomf.ts\ninit_define_BUILD_VERSION();\ninit_esbuild_inject();\nvar import_buffer6 = __toESM(require_buffer(), 1);\nvar sources = [\n { host: "Catbox", prefix: "files.catbox.moe/" },\n { host: "Litter", prefix: "litter.catbox.moe/" },\n { host: "Zzzz", prefix: "z.zz.fo/" }\n];\nvar csettings4;\nsettings.subscribe((b) => {\n csettings4 = b;\n});\nvar getExt = (fn) => {\n const isB64 = fn.match(/^((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=))?\\.(gif|jpe?g|png|webm)/);\n const isExt = fn.match(/\\[.*=(.*)\\]/);\n let ext;\n let source;\n try {\n if (isB64) {\n ext = atob(isB64[1]);\n } else if (isExt) {\n ext = decodeURIComponent(isExt[1]);\n if (ext.startsWith("https://"))\n ext = ext.slice("https://".length);\n for (const cs of sources)\n if (ext.startsWith(cs.prefix)) {\n source = cs.prefix;\n ext = ext.slice(cs.prefix.length);\n break;\n }\n }\n } catch {\n }\n return { ext, source };\n};\nvar extract4 = async (b, fn) => {\n if (!csettings4)\n throw new Error("Settings uninit");\n const { ext, source } = getExt(fn);\n let rsource;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n await getHeaders("https://" + cs.prefix + ext);\n rsource = "https://" + cs.prefix + ext;\n break;\n } catch {\n }\n }\n return [{\n filename: ext,\n data: csettings4.hotlink ? rsource : { url: rsource },\n thumbnail: import_buffer6.Buffer.from(hasembed_default)\n }];\n};\nvar has_embed4 = async (b, fn) => {\n const { ext, source } = getExt(fn);\n if (!ext)\n return false;\n for (const cs of sources) {\n if (source && cs.prefix != source)\n continue;\n try {\n const e = await getHeaders("https://" + cs.prefix + ext);\n return true;\n } catch {\n }\n }\n return false;\n};\nvar pomf_default = {\n skip: true,\n extract: extract4,\n has_embed: has_embed4,\n match: (fn) => !!getExt(fn)\n};\n\n// src/processor.worker.ts\nconsole.log("Worker started");\nvar pendinggens = {};\nvar proxyAsyncGen = (id) => {\n return {\n next(arg) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n return(v) {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n throw() {\n postMessage({\n type: "ag",\n id\n });\n return new Promise((res) => {\n if (!pendinggens[id])\n pendinggens[id] = [];\n pendinggens[id].push(res);\n });\n },\n [Symbol.asyncIterator]() {\n return this;\n }\n };\n};\nvar deserializeMessage = (m) => {\n if (m instanceof MessagePort)\n return m;\n if (typeof m == "object" && m.type == "AsyncGenerator") {\n return proxyAsyncGen(m.id);\n }\n if (typeof m == "object") {\n for (const p in m) {\n m[p] = deserializeMessage(m[p]);\n }\n }\n return m;\n};\nvar processors = [thirdeye_default, pomf_default, pngv3_default, jpg_default];\nvar processImage = async (srcs, fn, hex, prevurl) => {\n const ret = await Promise.all(processors.filter((e) => e.match(fn)).map(async (proc) => {\n if (proc.skip) {\n const md5 = Buffer2.from(hex, "base64");\n if (await proc.has_embed(md5, fn, prevurl) === true) {\n return [await proc.extract(md5, fn), true];\n }\n return;\n }\n let succ = false;\n let cumul;\n do {\n try {\n const n = await srcs.next();\n if (n.done)\n return;\n const iter = streamRemote(n.value);\n if (!iter)\n return;\n cumul = Buffer2.alloc(0);\n let found;\n let chunk = { done: true };\n do {\n const { value, done } = await iter.next(typeof found === "boolean");\n if (done) {\n chunk = { done: true };\n } else {\n chunk = { done: false, value };\n cumul = Buffer2.concat([cumul, value]);\n const v = await proc.has_embed(cumul);\n if (typeof v == "string") {\n return [await proc.extract(cumul, v), false];\n }\n found = v;\n }\n } while (found !== false && !chunk.done);\n succ = true;\n await iter.next(true);\n if (found !== true) {\n return;\n }\n return [await proc.extract(cumul), false];\n } catch (err) {\n console.log(err);\n }\n } while (!succ);\n }));\n return ret.filter((e) => e).map((e) => e);\n};\nvar init2 = false;\n(async () => {\n onmessage = async (msg) => {\n const des = deserializeMessage(msg.data);\n switch (des.type) {\n case "ipc": {\n setupPort(des.port);\n const nset = await localLoad("settingsv2", initial_settings);\n settings.set(nset);\n break;\n }\n case "cmd": {\n switch (des.fun) {\n case "processImage": {\n if (!init2) {\n await new Promise((_) => {\n settings.subscribe((v) => {\n if (v)\n _();\n });\n });\n init2 = true;\n }\n const res = await processImage(des.args[0], des.args[1], des.args[2], des.args[3]);\n const tr = [];\n for (const ef of res) {\n for (const e of ef[0]) {\n if (e.thumbnail && Buffer2.isBuffer(e.thumbnail) || typeof e.thumbnail != "string")\n tr.push(e.thumbnail.buffer);\n if (Buffer2.isBuffer(e.data) || typeof e.data != "string" && !("url" in e.data))\n tr.push(e.data.buffer);\n }\n }\n postMessage({\n type: "reply",\n id: des.id,\n res\n }, [...new Set(tr)]);\n }\n }\n break;\n }\n case "ag": {\n const cb = pendinggens[des.id].shift();\n if (cb) {\n cb(des.res);\n }\n break;\n }\n }\n };\n})();\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n'); } // src/main.ts @@ -21843,12 +21870,16 @@ Use the WebExtension version of PEE if you want to use b4k!`); } } }); - const meta = document.querySelector('meta[name="referrer"]'); + let meta = document.querySelector('meta[name="referrer"]'); const customStyles = document.createElement("style"); customStyles.appendChild(document.createTextNode(global_default)); document.documentElement.insertBefore(customStyles, null); if (!navigator.userAgent.includes("Firefox") && meta) meta.setAttribute("content", "no-referrer"); + meta = document.createElement("meta"); + meta.setAttribute("http-equiv", "Content-Security-Policy"); + meta.setAttribute("content", "worker-src 'self' blob:"); + document.head.append(meta); appState.set({ ...cappState, is4chanX }); const lqp = getQueryProcessor(is4chanX); if (!lqp) @@ -21948,6 +21979,35 @@ Use the WebExtension version of PEE if you want to use b4k!`); mo2.observe(document.documentElement, { childList: true, subtree: true }); await bodyInit; } + document.addEventListener("QRDialogCreation", (e) => { + const a = document.createElement("span"); + const po = new PostOptions_default({ + target: a, + props: { processors, textinput: (e.detail || e.target).querySelector("textarea") } + }); + let prevFile; + let target; + const somethingChanged = async (m) => { + const currentFile = await getSelectedFile(); + if (prevFile != currentFile) { + prevFile = currentFile; + document.dispatchEvent(new CustomEvent("PEEFile", { detail: prevFile })); + } + }; + const obs = new MutationObserver(somethingChanged); + if (!cappState.is4chanX) { + target = e.detail; + a.style.display = "inline-block"; + target.querySelector("input[type=submit]")?.insertAdjacentElement("beforebegin", a); + const filesinp = target.querySelector("#qrFile"); + filesinp.addEventListener("change", somethingChanged); + } else { + target = e.target; + target.querySelector("#qr-filename-container")?.appendChild(a); + const filesinp = target.querySelector("#file-n-submit"); + obs.observe(filesinp, { attributes: true }); + } + }, { once: !cappState.is4chanX }); try { cp = new CommandProcessor(); } catch { @@ -21955,7 +22015,6 @@ Use the WebExtension version of PEE if you want to use b4k!`); fireNotification("error", "The page you're on has a CSP that prevents PEE from functionning properly.\n\n If using 4chanX, Add 'blob:' to the JS whitelist. Else, install PEE-companion."); else fireNotification("error", "You may be using 4chanX\n\nGo to 4chanX's settings, Advanced > JS Whitelist and add 'blob:' without quotes to the list."); - return; } if (!is4chanX && location.host.startsWith("boards.4chan")) { const notificationHost = document.createElement("span"); @@ -22073,35 +22132,6 @@ Use the WebExtension version of PEE if you want to use b4k!`); } } }); - document.addEventListener("QRDialogCreation", (e) => { - const a = document.createElement("span"); - const po = new PostOptions_default({ - target: a, - props: { processors, textinput: (e.detail || e.target).querySelector("textarea") } - }); - let prevFile; - let target; - const somethingChanged = async (m) => { - const currentFile = await getSelectedFile(); - if (prevFile != currentFile) { - prevFile = currentFile; - document.dispatchEvent(new CustomEvent("PEEFile", { detail: prevFile })); - } - }; - const obs = new MutationObserver(somethingChanged); - if (!cappState.is4chanX) { - target = e.detail; - a.style.display = "inline-block"; - target.querySelector("input[type=submit]")?.insertAdjacentElement("beforebegin", a); - const filesinp = target.querySelector("#qrFile"); - filesinp.addEventListener("change", somethingChanged); - } else { - target = e.target; - target.querySelector("#qr-filename-container")?.appendChild(a); - const filesinp = target.querySelector("#file-n-submit"); - obs.observe(filesinp, { attributes: true }); - } - }, { once: !cappState.is4chanX }); function processAttachments(post, ress) { if (ress.length == 0) return; diff --git a/pngextraembedder-0.324.xpi b/pngextraembedder-0.324.xpi new file mode 100644 index 0000000000000000000000000000000000000000..1008b8b8ee533aa9f762762bb187a3920e608267 GIT binary patch literal 549250 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
  • Hq9%q*AL{94kj{n+Tb4hYdb4ZJ`Cz(0$c_aLK? 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�dJ- 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 z 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�B? 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∾J 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 z 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%0A^g4@shcM3N-lv!Jk)Fe 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 { await bodyInit; } + + document.addEventListener('QRDialogCreation', ((e: CustomEvent) => { + const a = document.createElement('span'); + + const po = new PostOptions({ + target: a, + props: { processors, textinput: (e.detail || e.target).querySelector('textarea')! } + }); + + let prevFile: File; + let target; + const somethingChanged = async (m: any) => { + // file possibly changed + const currentFile = await getSelectedFile(); + if (prevFile != currentFile) { + prevFile = currentFile; + document.dispatchEvent(new CustomEvent("PEEFile", { detail: prevFile })); + } + }; + const obs = new MutationObserver(somethingChanged); + if (!cappState.is4chanX) { + target = e.detail; + a.style.display = "inline-block"; + target.querySelector("input[type=submit]")?.insertAdjacentElement("beforebegin", a); + const filesinp = target.querySelector('#qrFile') as HTMLInputElement; + filesinp.addEventListener("change", somethingChanged); + } + else { + target = e.target as HTMLDivElement; + target.querySelector('#qr-filename-container')?.appendChild(a); + const filesinp = target.querySelector('#file-n-submit') as HTMLInputElement; + obs.observe(filesinp, { attributes: true }); + } + + }), { once: !cappState!.is4chanX }); // 4chan's normal extension destroys the QR form everytime + try { cp = new CommandProcessor(); } catch { @@ -948,41 +984,6 @@ document.addEventListener('ThreadUpdate', (async (e: CustomEvent) => { } })); -document.addEventListener('QRDialogCreation', ((e: CustomEvent) => { - const a = document.createElement('span'); - - const po = new PostOptions({ - target: a, - props: { processors, textinput: (e.detail || e.target).querySelector('textarea')! } - }); - - let prevFile: File; - let target; - const somethingChanged = async (m: any) => { - // file possibly changed - const currentFile = await getSelectedFile(); - if (prevFile != currentFile) { - prevFile = currentFile; - document.dispatchEvent(new CustomEvent("PEEFile", { detail: prevFile })); - } - }; - const obs = new MutationObserver(somethingChanged); - if (!cappState.is4chanX) { - target = e.detail; - a.style.display = "inline-block"; - target.querySelector("input[type=submit]")?.insertAdjacentElement("beforebegin", a); - const filesinp = target.querySelector('#qrFile') as HTMLInputElement; - filesinp.addEventListener("change", somethingChanged); - } - else { - target = e.target as HTMLDivElement; - target.querySelector('#qr-filename-container')?.appendChild(a); - const filesinp = target.querySelector('#file-n-submit') as HTMLInputElement; - obs.observe(filesinp, { attributes: true }); - } - -}), { once: !cappState!.is4chanX }); // 4chan's normal extension destroys the QR form everytime - function processAttachments(post: HTMLDivElement, ress: [EmbeddedFile, boolean][]) { if (ress.length == 0) return; diff --git a/src/platform.ts b/src/platform.ts index e169acf..6ce9433 100644 --- a/src/platform.ts +++ b/src/platform.ts @@ -138,13 +138,13 @@ let popupport: browser.runtime.Port; const pendingcmds: Record void> = {}; if (execution_mode == "chrome_api") { - popupport = chrome.runtime.connect({ name: 'popup' }); - popupport.onMessage.addListener((msg: any) => { - if (msg.id in pendingcmds) { - pendingcmds[msg.id](msg); - delete pendingcmds[msg.id]; - } - }); + //popupport = chrome.runtime.connect({ name: 'popup' }); + //popupport.onMessage.addListener((msg: any) => { + // if (msg.id in pendingcmds) { + // pendingcmds[msg.id](msg); + // delete pendingcmds[msg.id]; + // } + //}); } // Used to call background-only APIs from content scripts @Bridged