@wovin/connect-web3storage 0.0.1-RC5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-54LSD7T6.js +18950 -0
- package/dist/chunk-54LSD7T6.js.map +1 -0
- package/dist/chunk-7D7G4D2O.js +51 -0
- package/dist/chunk-7D7G4D2O.js.map +1 -0
- package/dist/chunk-YC56CFSP.js +14 -0
- package/dist/chunk-YC56CFSP.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/retrieve.d.ts +10 -0
- package/dist/retrieve.js +12 -0
- package/dist/retrieve.js.map +1 -0
- package/dist/store.d.ts +2 -0
- package/dist/store.js +7 -0
- package/dist/store.js.map +1 -0
- package/dist/utils.d.ts +3 -0
- package/dist/utils.js +8 -0
- package/dist/utils.js.map +1 -0
- package/package.json +35 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/.pnpm/varint@6.0.0/node_modules/varint/encode.js","../../../../node_modules/.pnpm/varint@6.0.0/node_modules/varint/decode.js","../../../../node_modules/.pnpm/varint@6.0.0/node_modules/varint/length.js","../../../../node_modules/.pnpm/varint@6.0.0/node_modules/varint/index.js","../../../../node_modules/.pnpm/browser-or-node@2.1.1/node_modules/browser-or-node/lib/index.js","../../../../node_modules/.pnpm/fast-json-stable-stringify@2.1.0/node_modules/fast-json-stable-stringify/index.js","../src/retrieve.ts","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/index.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/buffer-reader.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/fs.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/chunk-44e51b61.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/chunk-4bd36a8f.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/chunk-ce0fbc82.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/chunk-b4205b57.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/chunk-5decc758.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/chunk-2eac56ff.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/chunk-4ccc3a29.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/assert.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/util.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/path.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/chunk-23dbec7b.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/events.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/stream.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/chunk-6c718bbe.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/url.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/chunk-924bb2e1.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/chunk-b04e620d.js","../../../../node_modules/.pnpm/@jspm+core@2.0.1/node_modules/@jspm/core/nodelibs/browser/buffer.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/buffer-reader-browser.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/buffer-decoder.js","../../../../node_modules/.pnpm/@ipld+dag-cbor@9.0.5/node_modules/@ipld/dag-cbor/src/index.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/cborg.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/lib/encode.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/lib/is.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/lib/token.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/lib/bl.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/lib/byte-utils.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/lib/common.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/lib/jump.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/lib/0uint.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/lib/1negint.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/lib/2bytes.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/lib/3string.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/lib/4array.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/lib/5map.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/lib/6tag.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/lib/7float.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/lib/decode.js","../../../../node_modules/.pnpm/multiformats@12.1.3/node_modules/multiformats/src/cid.js","../../../../node_modules/.pnpm/multiformats@12.1.3/node_modules/multiformats/src/bases/base32.js","../../../../node_modules/.pnpm/multiformats@12.1.3/node_modules/multiformats/src/bases/base.js","../../../../node_modules/.pnpm/multiformats@12.1.3/node_modules/multiformats/vendor/base-x.js","../../../../node_modules/.pnpm/multiformats@12.1.3/node_modules/multiformats/src/bytes.js","../../../../node_modules/.pnpm/multiformats@12.1.3/node_modules/multiformats/src/bases/interface.js","../../../../node_modules/.pnpm/multiformats@12.1.3/node_modules/multiformats/src/bases/base58.js","../../../../node_modules/.pnpm/multiformats@12.1.3/node_modules/multiformats/src/hashes/digest.js","../../../../node_modules/.pnpm/multiformats@12.1.3/node_modules/multiformats/src/varint.js","../../../../node_modules/.pnpm/multiformats@12.1.3/node_modules/multiformats/vendor/varint.js","../../../../node_modules/.pnpm/multiformats@12.1.3/node_modules/multiformats/src/link/interface.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/decoder-common.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/header-validator.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/buffer-writer.js","../../../../node_modules/.pnpm/cborg@4.0.3/node_modules/cborg/lib/length.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/indexed-reader.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/indexer.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/decoder.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/reader.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/reader-browser.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/iterator.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/writer.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/encoder.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/writer-browser.js","../../../../node_modules/.pnpm/@ipld+car@5.2.4/node_modules/@ipld/car/src/iterator-channel.js","../../../../node_modules/.pnpm/besonders-logger@1.0.0-RC8_bflwaux7pmv2wgzx5z5pp5uu6i/node_modules/besonders-logger/src/index.ts","../../../../node_modules/.pnpm/besonders-logger@1.0.0-RC8_bflwaux7pmv2wgzx5z5pp5uu6i/node_modules/besonders-logger/src/lib/logger.ts"],"sourcesContent":["module.exports = encode\n\nvar MSB = 0x80\n , REST = 0x7F\n , MSBALL = ~REST\n , INT = Math.pow(2, 31)\n\nfunction encode(num, out, offset) {\n if (Number.MAX_SAFE_INTEGER && num > Number.MAX_SAFE_INTEGER) {\n encode.bytes = 0\n throw new RangeError('Could not encode varint')\n }\n out = out || []\n offset = offset || 0\n var oldOffset = offset\n\n while(num >= INT) {\n out[offset++] = (num & 0xFF) | MSB\n num /= 128\n }\n while(num & MSBALL) {\n out[offset++] = (num & 0xFF) | MSB\n num >>>= 7\n }\n out[offset] = num | 0\n \n encode.bytes = offset - oldOffset + 1\n \n return out\n}\n","module.exports = read\n\nvar MSB = 0x80\n , REST = 0x7F\n\nfunction read(buf, offset) {\n var res = 0\n , offset = offset || 0\n , shift = 0\n , counter = offset\n , b\n , l = buf.length\n\n do {\n if (counter >= l || shift > 49) {\n read.bytes = 0\n throw new RangeError('Could not decode varint')\n }\n b = buf[counter++]\n res += shift < 28\n ? (b & REST) << shift\n : (b & REST) * Math.pow(2, shift)\n shift += 7\n } while (b >= MSB)\n\n read.bytes = counter - offset\n\n return res\n}\n","\nvar N1 = Math.pow(2, 7)\nvar N2 = Math.pow(2, 14)\nvar N3 = Math.pow(2, 21)\nvar N4 = Math.pow(2, 28)\nvar N5 = Math.pow(2, 35)\nvar N6 = Math.pow(2, 42)\nvar N7 = Math.pow(2, 49)\nvar N8 = Math.pow(2, 56)\nvar N9 = Math.pow(2, 63)\n\nmodule.exports = function (value) {\n return (\n value < N1 ? 1\n : value < N2 ? 2\n : value < N3 ? 3\n : value < N4 ? 4\n : value < N5 ? 5\n : value < N6 ? 6\n : value < N7 ? 7\n : value < N8 ? 8\n : value < N9 ? 9\n : 10\n )\n}\n","module.exports = {\n encode: require('./encode.js')\n , decode: require('./decode.js')\n , encodingLength: require('./length.js')\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\";\n\nvar isNode = typeof process !== \"undefined\" && process.versions != null && process.versions.node != null;\n\nvar isWebWorker = (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) === \"object\" && self.constructor && self.constructor.name === \"DedicatedWorkerGlobalScope\";\n\n/**\n * @see https://github.com/jsdom/jsdom/releases/tag/12.0.0\n * @see https://github.com/jsdom/jsdom/issues/1537\n */\nvar isJsDom = typeof window !== \"undefined\" && window.name === \"nodejs\" || typeof navigator !== \"undefined\" && (navigator.userAgent.includes(\"Node.js\") || navigator.userAgent.includes(\"jsdom\"));\n\nvar isDeno = typeof Deno !== \"undefined\" && typeof Deno.version !== \"undefined\" && typeof Deno.version.deno !== \"undefined\";\n\nexports.isBrowser = isBrowser;\nexports.isWebWorker = isWebWorker;\nexports.isNode = isNode;\nexports.isJsDom = isJsDom;\nexports.isDeno = isDeno;","'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n","import { CarReader } from '@ipld/car'\nimport { create } from '@web3-storage/w3up-client'\nimport { Applog, CidString } from '@wovin/core/applog'\nimport { decodeCarToApplogs } from '@wovin/core/ipfs'\nimport { Logger } from 'besonders-logger/src'\n// import * as W3Name from 'w3name'\nimport { parseW3Name } from './utils'\n\nconst { WARN, LOG, DEBUG, VERBOSE, ERROR } = Logger.setup(Logger.INFO) // eslint-disable-line no-unused-vars\n\n// let w3sReadonly: Web3Storage = new Web3Storage({ token: 'FAKE' })\n\n// const client = await create()\nexport async function retrieveApplogsFromIpns(ipns: string): Promise<{ applogs: Array<Applog | Uint8Array> }> {\n\tlet cid // : CID\n\ttry {\n\t\tcid = await resolveIPNS(/* parseW3Name( */ ipns /* ) */)\n\t} catch (err) {\n\t\tthrow ERROR(`Failed to resolve IPNS`, ipns, err)\n\t}\n\n\tconst car = await retrieveCar(cid.toString())\n\treturn await decodeCarToApplogs(car)\n}\n\nexport async function resolveIPNS(name: string /* W3Name.Name */): Promise<String> {\n\tconst response = await fetch(`https://name.web3.storage/name/${name}`)\n\tconst result = await response.json()\n\t// return result\n\t// const revision = await W3Name.resolve(name)\n\t// DEBUG('[w3name] resolved', name.toString(), 'to', revision)\n\tif (!result.value.startsWith('/ipfs/')) {\n\t\tconsole.warn('IPNS value is not ipfs:', result)\n\t}\n\treturn result.value.replace('/ipfs/', '')\n}\n\nexport async function retrieveCar(cid: CidString): Promise<CarReader> {\n\t// Fetch the CAR file from web3.storage\n\tDEBUG('Retrieving:', cid)\n\t// const response = await w3sReadonly.get(cid)\n\t// const response = await fetch(`https://saturn.ms/ipfs/${cid}?format=car&dag-scope=all`)\n\tconst response = await fetch(`https://cloudflare-ipfs.com/ipfs/${cid}?format=car&dag-scope=all`) // HACK: w3s is broken\n\tif (!response?.ok || !response?.body) {\n\t\tthrow new Error(`unexpected response ${response?.statusText}`)\n\t}\n\n\t// The data is an AsyncIterable<Uint8Array>, convert it to an AsyncIterable for the CarReader\n\tconst data: AsyncIterable<Uint8Array> = streamToIterable(response!.body.getReader())\n\n\t// return a CarReader from the CAR data\n\treturn await CarReader.fromIterable(data)\n}\n\nfunction streamToIterable(bodyReader: any): AsyncIterable<Uint8Array> {\n\treturn (async function*() {\n\t\twhile (true) {\n\t\t\tconst { done, value } = await bodyReader.read()\n\t\t\tif (done) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tyield value\n\t\t}\n\t})()\n}\n","import { CarBufferReader } from './buffer-reader.js'\nimport * as CarBufferWriter from './buffer-writer.js'\nimport { CarIndexedReader } from './indexed-reader.js'\nimport { CarIndexer } from './indexer.js'\nimport { CarBlockIterator, CarCIDIterator } from './iterator.js'\nimport { CarReader } from './reader.js'\nimport { CarWriter } from './writer.js'\n\n// @see https://www.iana.org/assignments/media-types/application/vnd.ipld.car\nexport const contentType = 'application/vnd.ipld.car'\n\nexport {\n CarReader,\n CarBufferReader,\n CarIndexer,\n CarBlockIterator,\n CarCIDIterator,\n CarWriter,\n CarIndexedReader,\n CarBufferWriter\n}\n","import fs from 'fs'\nimport { CarBufferReader as BrowserCarBufferReader } from './buffer-reader-browser.js'\n\n/**\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').BlockIndex} BlockIndex\n * @typedef {import('./api').CarBufferReader} ICarBufferReader\n */\n\nconst fsread = fs.readSync\n\n/**\n * @class\n * @implements {ICarBufferReader}\n */\nexport class CarBufferReader extends BrowserCarBufferReader {\n /**\n * Reads a block directly from a file descriptor for an open CAR file. This\n * function is **only available in Node.js** and not a browser environment.\n *\n * This function can be used in connection with {@link CarIndexer} which emits\n * the `BlockIndex` objects that are required by this function.\n *\n * The user is responsible for opening and closing the file used in this call.\n *\n * @static\n * @memberof CarBufferReader\n * @param {number} fd - A file descriptor from the\n * Node.js `fs` module. An integer, from `fs.open()`.\n * @param {BlockIndex} blockIndex - An index pointing to the location of the\n * Block required. This `BlockIndex` should take the form:\n * `{cid:CID, blockLength:number, blockOffset:number}`.\n * @returns {Block} A `{ cid:CID, bytes:Uint8Array }` pair.\n */\n static readRaw (fd, blockIndex) {\n const { cid, blockLength, blockOffset } = blockIndex\n const bytes = new Uint8Array(blockLength)\n let read\n if (typeof fd === 'number') {\n read = fsread(fd, bytes, 0, blockLength, blockOffset)\n } else {\n throw new TypeError('Bad fd')\n }\n if (read !== blockLength) {\n throw new Error(`Failed to read entire block (${read} instead of ${blockLength})`)\n }\n return { cid, bytes }\n }\n}\n\nexport const __browser = false\n","import { b as buffer } from './chunk-44e51b61.js';\nimport et from './assert.js';\nimport './util.js';\nimport { X } from './chunk-b4205b57.js';\nimport './path.js';\nimport { p as process } from './chunk-2eac56ff.js';\nimport './events.js';\nimport { y } from './chunk-4bd36a8f.js';\nimport './stream.js';\nimport h, { fileURLToPath } from './url.js';\nimport { e as exports$i } from './chunk-23dbec7b.js';\nimport { e as exports$j } from './chunk-6c718bbe.js';\nimport { Buffer } from './buffer.js';\nimport './chunk-ce0fbc82.js';\nimport './chunk-5decc758.js';\nimport './chunk-4ccc3a29.js';\nimport './chunk-924bb2e1.js';\nimport './chunk-b04e620d.js';\n\nvar exports$h = {},\n _dewExec$f = false;\nfunction dew$f() {\n if (_dewExec$f) return exports$h;\n _dewExec$f = true;\n Object.defineProperty(exports$h, \"__esModule\", {\n value: true\n });\n exports$h.constants = void 0;\n exports$h.constants = {\n O_RDONLY: 0,\n O_WRONLY: 1,\n O_RDWR: 2,\n S_IFMT: 61440,\n S_IFREG: 32768,\n S_IFDIR: 16384,\n S_IFCHR: 8192,\n S_IFBLK: 24576,\n S_IFIFO: 4096,\n S_IFLNK: 40960,\n S_IFSOCK: 49152,\n O_CREAT: 64,\n O_EXCL: 128,\n O_NOCTTY: 256,\n O_TRUNC: 512,\n O_APPEND: 1024,\n O_DIRECTORY: 65536,\n O_NOATIME: 262144,\n O_NOFOLLOW: 131072,\n O_SYNC: 1052672,\n O_DIRECT: 16384,\n O_NONBLOCK: 2048,\n S_IRWXU: 448,\n S_IRUSR: 256,\n S_IWUSR: 128,\n S_IXUSR: 64,\n S_IRWXG: 56,\n S_IRGRP: 32,\n S_IWGRP: 16,\n S_IXGRP: 8,\n S_IRWXO: 7,\n S_IROTH: 4,\n S_IWOTH: 2,\n S_IXOTH: 1,\n F_OK: 0,\n R_OK: 4,\n W_OK: 2,\n X_OK: 1,\n UV_FS_SYMLINK_DIR: 1,\n UV_FS_SYMLINK_JUNCTION: 2,\n UV_FS_COPYFILE_EXCL: 1,\n UV_FS_COPYFILE_FICLONE: 2,\n UV_FS_COPYFILE_FICLONE_FORCE: 4,\n COPYFILE_EXCL: 1,\n COPYFILE_FICLONE: 2,\n COPYFILE_FICLONE_FORCE: 4\n };\n return exports$h;\n}\n\nvar exports$g = {},\n _dewExec$e = false;\nfunction dew$e() {\n if (_dewExec$e) return exports$g;\n _dewExec$e = true;\n if (typeof BigInt === \"function\") exports$g.default = BigInt;else exports$g.default = function BigIntNotSupported() {\n throw new Error(\"BigInt is not supported in this environment.\");\n };\n return exports$g;\n}\n\nvar exports$f = {},\n _dewExec$d = false;\nfunction dew$d() {\n if (_dewExec$d) return exports$f;\n _dewExec$d = true;\n Object.defineProperty(exports$f, \"__esModule\", {\n value: true\n });\n exports$f.Stats = void 0;\n\n var constants_1 = dew$f();\n\n var getBigInt_1 = dew$e();\n\n var S_IFMT = constants_1.constants.S_IFMT,\n S_IFDIR = constants_1.constants.S_IFDIR,\n S_IFREG = constants_1.constants.S_IFREG,\n S_IFBLK = constants_1.constants.S_IFBLK,\n S_IFCHR = constants_1.constants.S_IFCHR,\n S_IFLNK = constants_1.constants.S_IFLNK,\n S_IFIFO = constants_1.constants.S_IFIFO,\n S_IFSOCK = constants_1.constants.S_IFSOCK;\n /**\n * Statistics about a file/directory, like `fs.Stats`.\n */\n\n var Stats = function () {\n function Stats() {}\n\n Stats.build = function (node, bigint) {\n if (bigint === void 0) {\n bigint = false;\n }\n\n var stats = new Stats();\n var uid = node.uid,\n gid = node.gid,\n atime = node.atime,\n mtime = node.mtime,\n ctime = node.ctime;\n var getStatNumber = !bigint ? function (number) {\n return number;\n } : getBigInt_1.default; // Copy all values on Stats from Node, so that if Node values\n // change, values on Stats would still be the old ones,\n // just like in Node fs.\n\n stats.uid = getStatNumber(uid);\n stats.gid = getStatNumber(gid);\n stats.rdev = getStatNumber(0);\n stats.blksize = getStatNumber(4096);\n stats.ino = getStatNumber(node.ino);\n stats.size = getStatNumber(node.getSize());\n stats.blocks = getStatNumber(1);\n stats.atime = atime;\n stats.mtime = mtime;\n stats.ctime = ctime;\n stats.birthtime = ctime;\n stats.atimeMs = getStatNumber(atime.getTime());\n stats.mtimeMs = getStatNumber(mtime.getTime());\n var ctimeMs = getStatNumber(ctime.getTime());\n stats.ctimeMs = ctimeMs;\n stats.birthtimeMs = ctimeMs;\n stats.dev = getStatNumber(0);\n stats.mode = getStatNumber(node.mode);\n stats.nlink = getStatNumber(node.nlink);\n return stats;\n };\n\n Stats.prototype._checkModeProperty = function (property) {\n return (Number(this.mode) & S_IFMT) === property;\n };\n\n Stats.prototype.isDirectory = function () {\n return this._checkModeProperty(S_IFDIR);\n };\n\n Stats.prototype.isFile = function () {\n return this._checkModeProperty(S_IFREG);\n };\n\n Stats.prototype.isBlockDevice = function () {\n return this._checkModeProperty(S_IFBLK);\n };\n\n Stats.prototype.isCharacterDevice = function () {\n return this._checkModeProperty(S_IFCHR);\n };\n\n Stats.prototype.isSymbolicLink = function () {\n return this._checkModeProperty(S_IFLNK);\n };\n\n Stats.prototype.isFIFO = function () {\n return this._checkModeProperty(S_IFIFO);\n };\n\n Stats.prototype.isSocket = function () {\n return this._checkModeProperty(S_IFSOCK);\n };\n\n return Stats;\n }();\n\n exports$f.Stats = Stats;\n exports$f.default = Stats;\n return exports$f;\n}\n\nvar exports$e = {},\n _dewExec$c = false;\nfunction dew$c() {\n if (_dewExec$c) return exports$e;\n _dewExec$c = true;\n\n var __spreadArray = exports$e && exports$e.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };\n\n Object.defineProperty(exports$e, \"__esModule\", {\n value: true\n });\n exports$e.bufferFrom = exports$e.bufferAllocUnsafe = exports$e.Buffer = void 0;\n var buffer_1 = buffer;\n Object.defineProperty(exports$e, \"Buffer\", {\n enumerable: true,\n get: function () {\n return buffer_1.Buffer;\n }\n });\n\n function bufferV0P12Ponyfill(arg0) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n return new (buffer_1.Buffer.bind.apply(buffer_1.Buffer, __spreadArray([void 0, arg0], args, false)))();\n }\n\n var bufferAllocUnsafe = buffer_1.Buffer.allocUnsafe || bufferV0P12Ponyfill;\n exports$e.bufferAllocUnsafe = bufferAllocUnsafe;\n var bufferFrom = buffer_1.Buffer.from || bufferV0P12Ponyfill;\n exports$e.bufferFrom = bufferFrom;\n return exports$e;\n}\n\nvar exports$d = {},\n _dewExec$b = false;\n\nvar _global$3 = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nfunction dew$b() {\n if (_dewExec$b) return exports$d;\n _dewExec$b = true;\n\n // The whole point behind this internal module is to allow Node.js to no\n // longer be forced to treat every error message change as a semver-major\n // change. The NodeError classes here all expose a `code` property whose\n // value statically and permanently identifies the error. While the error\n // message may change, the code should not.\n var __extends = exports$d && exports$d.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n Object.defineProperty(exports$d, \"__esModule\", {\n value: true\n });\n exports$d.E = exports$d.AssertionError = exports$d.message = exports$d.RangeError = exports$d.TypeError = exports$d.Error = void 0;\n var assert = et;\n var util = X;\n var kCode = typeof Symbol === \"undefined\" ? \"_kCode\" : Symbol(\"code\");\n var messages = {}; // new Map();\n\n function makeNodeError(Base) {\n return function (_super) {\n __extends(NodeError, _super);\n\n function NodeError(key) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n var _this = _super.call(this, message(key, args)) || this;\n\n _this.code = key;\n _this[kCode] = key;\n _this.name = _super.prototype.name + \" [\" + _this[kCode] + \"]\";\n return _this;\n }\n\n return NodeError;\n }(Base);\n }\n\n var g = typeof globalThis !== \"undefined\" ? globalThis : _global$3;\n\n var AssertionError = function (_super) {\n __extends(AssertionError, _super);\n\n function AssertionError(options) {\n var _this = this;\n\n if (typeof options !== \"object\" || options === null) {\n throw new exports$d.TypeError(\"ERR_INVALID_ARG_TYPE\", \"options\", \"object\");\n }\n\n if (options.message) {\n _this = _super.call(this, options.message) || this;\n } else {\n _this = _super.call(this, util.inspect(options.actual).slice(0, 128) + \" \" + (options.operator + \" \" + util.inspect(options.expected).slice(0, 128))) || this;\n }\n\n _this.generatedMessage = !options.message;\n _this.name = \"AssertionError [ERR_ASSERTION]\";\n _this.code = \"ERR_ASSERTION\";\n _this.actual = options.actual;\n _this.expected = options.expected;\n _this.operator = options.operator;\n exports$d.Error.captureStackTrace(_this, options.stackStartFunction);\n return _this;\n }\n\n return AssertionError;\n }(g.Error);\n\n exports$d.AssertionError = AssertionError;\n\n function message(key, args) {\n assert.strictEqual(typeof key, \"string\"); // const msg = messages.get(key);\n\n var msg = messages[key];\n assert(msg, \"An invalid error message key was used: \" + key + \".\");\n var fmt;\n\n if (typeof msg === \"function\") {\n fmt = msg;\n } else {\n fmt = util.format;\n if (args === undefined || args.length === 0) return msg;\n args.unshift(msg);\n }\n\n return String(fmt.apply(null, args));\n }\n\n exports$d.message = message; // Utility function for registering the error codes. Only used here. Exported\n // *only* to allow for testing.\n\n function E(sym, val) {\n messages[sym] = typeof val === \"function\" ? val : String(val);\n }\n\n exports$d.E = E;\n exports$d.Error = makeNodeError(g.Error);\n exports$d.TypeError = makeNodeError(g.TypeError);\n exports$d.RangeError = makeNodeError(g.RangeError); // To declare an error message, use the E(sym, val) function above. The sym\n // must be an upper case string. The val can be either a function or a string.\n // The return value of the function must be a string.\n // Examples:\n // E('EXAMPLE_KEY1', 'This is the error value');\n // E('EXAMPLE_KEY2', (a, b) => return `${a} ${b}`);\n //\n // Once an error code has been assigned, the code itself MUST NOT change and\n // any given error code must never be reused to identify a different error.\n //\n // Any error code added here should also be added to the documentation\n //\n // Note: Please try to keep these in alphabetical order\n\n E(\"ERR_ARG_NOT_ITERABLE\", \"%s must be iterable\");\n E(\"ERR_ASSERTION\", \"%s\");\n E(\"ERR_BUFFER_OUT_OF_BOUNDS\", bufferOutOfBounds);\n E(\"ERR_CHILD_CLOSED_BEFORE_REPLY\", \"Child closed before reply received\");\n E(\"ERR_CONSOLE_WRITABLE_STREAM\", \"Console expects a writable stream instance for %s\");\n E(\"ERR_CPU_USAGE\", \"Unable to obtain cpu usage %s\");\n E(\"ERR_DNS_SET_SERVERS_FAILED\", function (err, servers) {\n return \"c-ares failed to set servers: \\\"\" + err + \"\\\" [\" + servers + \"]\";\n });\n E(\"ERR_FALSY_VALUE_REJECTION\", \"Promise was rejected with falsy value\");\n E(\"ERR_ENCODING_NOT_SUPPORTED\", function (enc) {\n return \"The \\\"\" + enc + \"\\\" encoding is not supported\";\n });\n E(\"ERR_ENCODING_INVALID_ENCODED_DATA\", function (enc) {\n return \"The encoded data was not valid for encoding \" + enc;\n });\n E(\"ERR_HTTP_HEADERS_SENT\", \"Cannot render headers after they are sent to the client\");\n E(\"ERR_HTTP_INVALID_STATUS_CODE\", \"Invalid status code: %s\");\n E(\"ERR_HTTP_TRAILER_INVALID\", \"Trailers are invalid with this transfer encoding\");\n E(\"ERR_INDEX_OUT_OF_RANGE\", \"Index out of range\");\n E(\"ERR_INVALID_ARG_TYPE\", invalidArgType);\n E(\"ERR_INVALID_ARRAY_LENGTH\", function (name, len, actual) {\n assert.strictEqual(typeof actual, \"number\");\n return \"The array \\\"\" + name + \"\\\" (length \" + actual + \") must be of length \" + len + \".\";\n });\n E(\"ERR_INVALID_BUFFER_SIZE\", \"Buffer size must be a multiple of %s\");\n E(\"ERR_INVALID_CALLBACK\", \"Callback must be a function\");\n E(\"ERR_INVALID_CHAR\", \"Invalid character in %s\");\n E(\"ERR_INVALID_CURSOR_POS\", \"Cannot set cursor row without setting its column\");\n E(\"ERR_INVALID_FD\", \"\\\"fd\\\" must be a positive integer: %s\");\n E(\"ERR_INVALID_FILE_URL_HOST\", \"File URL host must be \\\"localhost\\\" or empty on %s\");\n E(\"ERR_INVALID_FILE_URL_PATH\", \"File URL path %s\");\n E(\"ERR_INVALID_HANDLE_TYPE\", \"This handle type cannot be sent\");\n E(\"ERR_INVALID_IP_ADDRESS\", \"Invalid IP address: %s\");\n E(\"ERR_INVALID_OPT_VALUE\", function (name, value) {\n return \"The value \\\"\" + String(value) + \"\\\" is invalid for option \\\"\" + name + \"\\\"\";\n });\n E(\"ERR_INVALID_OPT_VALUE_ENCODING\", function (value) {\n return \"The value \\\"\" + String(value) + \"\\\" is invalid for option \\\"encoding\\\"\";\n });\n E(\"ERR_INVALID_REPL_EVAL_CONFIG\", \"Cannot specify both \\\"breakEvalOnSigint\\\" and \\\"eval\\\" for REPL\");\n E(\"ERR_INVALID_SYNC_FORK_INPUT\", \"Asynchronous forks do not support Buffer, Uint8Array or string input: %s\");\n E(\"ERR_INVALID_THIS\", \"Value of \\\"this\\\" must be of type %s\");\n E(\"ERR_INVALID_TUPLE\", \"%s must be an iterable %s tuple\");\n E(\"ERR_INVALID_URL\", \"Invalid URL: %s\");\n E(\"ERR_INVALID_URL_SCHEME\", function (expected) {\n return \"The URL must be \" + oneOf(expected, \"scheme\");\n });\n E(\"ERR_IPC_CHANNEL_CLOSED\", \"Channel closed\");\n E(\"ERR_IPC_DISCONNECTED\", \"IPC channel is already disconnected\");\n E(\"ERR_IPC_ONE_PIPE\", \"Child process can have only one IPC pipe\");\n E(\"ERR_IPC_SYNC_FORK\", \"IPC cannot be used with synchronous forks\");\n E(\"ERR_MISSING_ARGS\", missingArgs);\n E(\"ERR_MULTIPLE_CALLBACK\", \"Callback called multiple times\");\n E(\"ERR_NAPI_CONS_FUNCTION\", \"Constructor must be a function\");\n E(\"ERR_NAPI_CONS_PROTOTYPE_OBJECT\", \"Constructor.prototype must be an object\");\n E(\"ERR_NO_CRYPTO\", \"Node.js is not compiled with OpenSSL crypto support\");\n E(\"ERR_NO_LONGER_SUPPORTED\", \"%s is no longer supported\");\n E(\"ERR_PARSE_HISTORY_DATA\", \"Could not parse history data in %s\");\n E(\"ERR_SOCKET_ALREADY_BOUND\", \"Socket is already bound\");\n E(\"ERR_SOCKET_BAD_PORT\", \"Port should be > 0 and < 65536\");\n E(\"ERR_SOCKET_BAD_TYPE\", \"Bad socket type specified. Valid types are: udp4, udp6\");\n E(\"ERR_SOCKET_CANNOT_SEND\", \"Unable to send data\");\n E(\"ERR_SOCKET_CLOSED\", \"Socket is closed\");\n E(\"ERR_SOCKET_DGRAM_NOT_RUNNING\", \"Not running\");\n E(\"ERR_STDERR_CLOSE\", \"process.stderr cannot be closed\");\n E(\"ERR_STDOUT_CLOSE\", \"process.stdout cannot be closed\");\n E(\"ERR_STREAM_WRAP\", \"Stream has StringDecoder set or is in objectMode\");\n E(\"ERR_TLS_CERT_ALTNAME_INVALID\", \"Hostname/IP does not match certificate's altnames: %s\");\n E(\"ERR_TLS_DH_PARAM_SIZE\", function (size) {\n return \"DH parameter size \" + size + \" is less than 2048\";\n });\n E(\"ERR_TLS_HANDSHAKE_TIMEOUT\", \"TLS handshake timeout\");\n E(\"ERR_TLS_RENEGOTIATION_FAILED\", \"Failed to renegotiate\");\n E(\"ERR_TLS_REQUIRED_SERVER_NAME\", \"\\\"servername\\\" is required parameter for Server.addContext\");\n E(\"ERR_TLS_SESSION_ATTACK\", \"TSL session renegotiation attack detected\");\n E(\"ERR_TRANSFORM_ALREADY_TRANSFORMING\", \"Calling transform done when still transforming\");\n E(\"ERR_TRANSFORM_WITH_LENGTH_0\", \"Calling transform done when writableState.length != 0\");\n E(\"ERR_UNKNOWN_ENCODING\", \"Unknown encoding: %s\");\n E(\"ERR_UNKNOWN_SIGNAL\", \"Unknown signal: %s\");\n E(\"ERR_UNKNOWN_STDIN_TYPE\", \"Unknown stdin file type\");\n E(\"ERR_UNKNOWN_STREAM_TYPE\", \"Unknown stream file type\");\n E(\"ERR_V8BREAKITERATOR\", \"Full ICU data not installed. \" + \"See https://github.com/nodejs/node/wiki/Intl\");\n\n function invalidArgType(name, expected, actual) {\n assert(name, \"name is required\"); // determiner: 'must be' or 'must not be'\n\n var determiner;\n\n if (expected.includes(\"not \")) {\n determiner = \"must not be\";\n expected = expected.split(\"not \")[1];\n } else {\n determiner = \"must be\";\n }\n\n var msg;\n\n if (Array.isArray(name)) {\n var names = name.map(function (val) {\n return \"\\\"\" + val + \"\\\"\";\n }).join(\", \");\n msg = \"The \" + names + \" arguments \" + determiner + \" \" + oneOf(expected, \"type\");\n } else if (name.includes(\" argument\")) {\n // for the case like 'first argument'\n msg = \"The \" + name + \" \" + determiner + \" \" + oneOf(expected, \"type\");\n } else {\n var type = name.includes(\".\") ? \"property\" : \"argument\";\n msg = \"The \\\"\" + name + \"\\\" \" + type + \" \" + determiner + \" \" + oneOf(expected, \"type\");\n } // if actual value received, output it\n\n\n if (arguments.length >= 3) {\n msg += \". Received type \" + (actual !== null ? typeof actual : \"null\");\n }\n\n return msg;\n }\n\n function missingArgs() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n assert(args.length > 0, \"At least one arg needs to be specified\");\n var msg = \"The \";\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\" + a + \"\\\"\";\n });\n\n switch (len) {\n case 1:\n msg += args[0] + \" argument\";\n break;\n\n case 2:\n msg += args[0] + \" and \" + args[1] + \" arguments\";\n break;\n\n default:\n msg += args.slice(0, len - 1).join(\", \");\n msg += \", and \" + args[len - 1] + \" arguments\";\n break;\n }\n\n return msg + \" must be specified\";\n }\n\n function oneOf(expected, thing) {\n assert(expected, \"expected is required\");\n assert(typeof thing === \"string\", \"thing is required\");\n\n if (Array.isArray(expected)) {\n var len = expected.length;\n assert(len > 0, \"At least one expected value needs to be specified\"); // tslint:disable-next-line\n\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \" + thing + \" \" + expected.slice(0, len - 1).join(\", \") + \", or \" + expected[len - 1];\n } else if (len === 2) {\n return \"one of \" + thing + \" \" + expected[0] + \" or \" + expected[1];\n } else {\n return \"of \" + thing + \" \" + expected[0];\n }\n } else {\n return \"of \" + thing + \" \" + String(expected);\n }\n }\n\n function bufferOutOfBounds(name, isWriting) {\n if (isWriting) {\n return \"Attempt to write outside buffer bounds\";\n } else {\n return \"\\\"\" + name + \"\\\" is outside of buffer bounds\";\n }\n }\n\n return exports$d;\n}\n\nvar exports$c = {},\n _dewExec$a = false;\nfunction dew$a() {\n if (_dewExec$a) return exports$c;\n _dewExec$a = true;\n Object.defineProperty(exports$c, \"__esModule\", {\n value: true\n });\n exports$c.strToEncoding = exports$c.assertEncoding = exports$c.ENCODING_UTF8 = void 0;\n\n var buffer_1 = dew$c();\n\n var errors = dew$b();\n\n exports$c.ENCODING_UTF8 = \"utf8\";\n\n function assertEncoding(encoding) {\n if (encoding && !buffer_1.Buffer.isEncoding(encoding)) throw new errors.TypeError(\"ERR_INVALID_OPT_VALUE_ENCODING\", encoding);\n }\n\n exports$c.assertEncoding = assertEncoding;\n\n function strToEncoding(str, encoding) {\n if (!encoding || encoding === exports$c.ENCODING_UTF8) return str; // UTF-8\n\n if (encoding === \"buffer\") return new buffer_1.Buffer(str); // `buffer` encoding\n\n return new buffer_1.Buffer(str).toString(encoding); // Custom encoding\n }\n\n exports$c.strToEncoding = strToEncoding;\n return exports$c;\n}\n\nvar exports$b = {},\n _dewExec$9 = false;\nfunction dew$9() {\n if (_dewExec$9) return exports$b;\n _dewExec$9 = true;\n Object.defineProperty(exports$b, \"__esModule\", {\n value: true\n });\n exports$b.Dirent = void 0;\n\n var constants_1 = dew$f();\n\n var encoding_1 = dew$a();\n\n var S_IFMT = constants_1.constants.S_IFMT,\n S_IFDIR = constants_1.constants.S_IFDIR,\n S_IFREG = constants_1.constants.S_IFREG,\n S_IFBLK = constants_1.constants.S_IFBLK,\n S_IFCHR = constants_1.constants.S_IFCHR,\n S_IFLNK = constants_1.constants.S_IFLNK,\n S_IFIFO = constants_1.constants.S_IFIFO,\n S_IFSOCK = constants_1.constants.S_IFSOCK;\n /**\n * A directory entry, like `fs.Dirent`.\n */\n\n var Dirent = function () {\n function Dirent() {\n this.name = \"\";\n this.mode = 0;\n }\n\n Dirent.build = function (link, encoding) {\n var dirent = new Dirent();\n var mode = link.getNode().mode;\n dirent.name = (0, encoding_1.strToEncoding)(link.getName(), encoding);\n dirent.mode = mode;\n return dirent;\n };\n\n Dirent.prototype._checkModeProperty = function (property) {\n return (this.mode & S_IFMT) === property;\n };\n\n Dirent.prototype.isDirectory = function () {\n return this._checkModeProperty(S_IFDIR);\n };\n\n Dirent.prototype.isFile = function () {\n return this._checkModeProperty(S_IFREG);\n };\n\n Dirent.prototype.isBlockDevice = function () {\n return this._checkModeProperty(S_IFBLK);\n };\n\n Dirent.prototype.isCharacterDevice = function () {\n return this._checkModeProperty(S_IFCHR);\n };\n\n Dirent.prototype.isSymbolicLink = function () {\n return this._checkModeProperty(S_IFLNK);\n };\n\n Dirent.prototype.isFIFO = function () {\n return this._checkModeProperty(S_IFIFO);\n };\n\n Dirent.prototype.isSocket = function () {\n return this._checkModeProperty(S_IFSOCK);\n };\n\n return Dirent;\n }();\n\n exports$b.Dirent = Dirent;\n exports$b.default = Dirent;\n return exports$b;\n}\n\nvar exports$a = {},\n _dewExec$8 = false;\n\nvar _global$2 = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nfunction dew$8() {\n if (_dewExec$8) return exports$a;\n _dewExec$8 = true;\n var process$1 = process;\n Object.defineProperty(exports$a, \"__esModule\", {\n value: true\n });\n\n var _setImmediate;\n\n if (typeof process$1.nextTick === \"function\") _setImmediate = process$1.nextTick.bind(typeof globalThis !== \"undefined\" ? globalThis : _global$2);else _setImmediate = setTimeout.bind(typeof globalThis !== \"undefined\" ? globalThis : _global$2);\n exports$a.default = _setImmediate;\n return exports$a;\n}\n\nvar exports$9 = {},\n _dewExec$7 = false;\nfunction dew$7() {\n if (_dewExec$7) return exports$9;\n _dewExec$7 = true;\n var process$1 = process;\n // Here we mock the global `process` variable in case we are not in Node's environment.\n Object.defineProperty(exports$9, \"__esModule\", {\n value: true\n });\n exports$9.createProcess = void 0;\n /**\n * Looks to return a `process` object, if one is available.\n *\n * The global `process` is returned if defined;\n * otherwise `require('process')` is attempted.\n *\n * If that fails, `undefined` is returned.\n *\n * @return {IProcess | undefined}\n */\n\n var maybeReturnProcess = function () {\n if (typeof process$1 !== \"undefined\") {\n return process$1;\n }\n\n try {\n return process;\n } catch (_a) {\n return undefined;\n }\n };\n\n function createProcess() {\n var p = maybeReturnProcess() || {};\n if (!p.getuid) p.getuid = function () {\n return 0;\n };\n if (!p.getgid) p.getgid = function () {\n return 0;\n };\n if (!p.cwd) p.cwd = function () {\n return \"/\";\n };\n if (!p.nextTick) p.nextTick = dew$8().default;\n if (!p.emitWarning) p.emitWarning = function (message, type) {\n // tslint:disable-next-line:no-console\n console.warn(\"\" + type + (type ? \": \" : \"\") + message);\n };\n if (!p.env) p.env = {};\n return p;\n }\n\n exports$9.createProcess = createProcess;\n exports$9.default = createProcess();\n return exports$9;\n}\n\nvar exports$8 = {},\n _dewExec$6 = false;\nfunction dew$6() {\n if (_dewExec$6) return exports$8;\n _dewExec$6 = true;\n\n var __extends = exports$8 && exports$8.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n Object.defineProperty(exports$8, \"__esModule\", {\n value: true\n });\n exports$8.File = exports$8.Link = exports$8.Node = exports$8.SEP = void 0;\n\n var process_1 = dew$7();\n\n var buffer_1 = dew$c();\n\n var constants_1 = dew$f();\n\n var events_1 = y;\n\n var Stats_1 = dew$d();\n\n var S_IFMT = constants_1.constants.S_IFMT,\n S_IFDIR = constants_1.constants.S_IFDIR,\n S_IFREG = constants_1.constants.S_IFREG,\n S_IFLNK = constants_1.constants.S_IFLNK,\n O_APPEND = constants_1.constants.O_APPEND;\n exports$8.SEP = \"/\";\n /**\n * Node in a file system (like i-node, v-node).\n */\n\n var Node = function (_super) {\n __extends(Node, _super);\n\n function Node(ino, perm) {\n if (perm === void 0) {\n perm = 438;\n }\n\n var _this = _super.call(this) || this; // User ID and group ID.\n\n\n _this.uid = process_1.default.getuid();\n _this.gid = process_1.default.getgid();\n _this.atime = new Date();\n _this.mtime = new Date();\n _this.ctime = new Date();\n _this.perm = 438; // Permissions `chmod`, `fchmod`\n\n _this.mode = S_IFREG; // S_IFDIR, S_IFREG, etc.. (file by default?)\n // Number of hard links pointing at this Node.\n\n _this.nlink = 1;\n _this.perm = perm;\n _this.mode |= perm;\n _this.ino = ino;\n return _this;\n }\n\n Node.prototype.getString = function (encoding) {\n if (encoding === void 0) {\n encoding = \"utf8\";\n }\n\n return this.getBuffer().toString(encoding);\n };\n\n Node.prototype.setString = function (str) {\n // this.setBuffer(bufferFrom(str, 'utf8'));\n this.buf = (0, buffer_1.bufferFrom)(str, \"utf8\");\n this.touch();\n };\n\n Node.prototype.getBuffer = function () {\n if (!this.buf) this.setBuffer((0, buffer_1.bufferAllocUnsafe)(0));\n return (0, buffer_1.bufferFrom)(this.buf); // Return a copy.\n };\n\n Node.prototype.setBuffer = function (buf) {\n this.buf = (0, buffer_1.bufferFrom)(buf); // Creates a copy of data.\n\n this.touch();\n };\n\n Node.prototype.getSize = function () {\n return this.buf ? this.buf.length : 0;\n };\n\n Node.prototype.setModeProperty = function (property) {\n this.mode = this.mode & ~S_IFMT | property;\n };\n\n Node.prototype.setIsFile = function () {\n this.setModeProperty(S_IFREG);\n };\n\n Node.prototype.setIsDirectory = function () {\n this.setModeProperty(S_IFDIR);\n };\n\n Node.prototype.setIsSymlink = function () {\n this.setModeProperty(S_IFLNK);\n };\n\n Node.prototype.isFile = function () {\n return (this.mode & S_IFMT) === S_IFREG;\n };\n\n Node.prototype.isDirectory = function () {\n return (this.mode & S_IFMT) === S_IFDIR;\n };\n\n Node.prototype.isSymlink = function () {\n // return !!this.symlink;\n return (this.mode & S_IFMT) === S_IFLNK;\n };\n\n Node.prototype.makeSymlink = function (steps) {\n this.symlink = steps;\n this.setIsSymlink();\n };\n\n Node.prototype.write = function (buf, off, len, pos) {\n if (off === void 0) {\n off = 0;\n }\n\n if (len === void 0) {\n len = buf.length;\n }\n\n if (pos === void 0) {\n pos = 0;\n }\n\n if (!this.buf) this.buf = (0, buffer_1.bufferAllocUnsafe)(0);\n\n if (pos + len > this.buf.length) {\n var newBuf = (0, buffer_1.bufferAllocUnsafe)(pos + len);\n this.buf.copy(newBuf, 0, 0, this.buf.length);\n this.buf = newBuf;\n }\n\n buf.copy(this.buf, pos, off, off + len);\n this.touch();\n return len;\n }; // Returns the number of bytes read.\n\n\n Node.prototype.read = function (buf, off, len, pos) {\n if (off === void 0) {\n off = 0;\n }\n\n if (len === void 0) {\n len = buf.byteLength;\n }\n\n if (pos === void 0) {\n pos = 0;\n }\n\n if (!this.buf) this.buf = (0, buffer_1.bufferAllocUnsafe)(0);\n var actualLen = len;\n\n if (actualLen > buf.byteLength) {\n actualLen = buf.byteLength;\n }\n\n if (actualLen + pos > this.buf.length) {\n actualLen = this.buf.length - pos;\n }\n\n this.buf.copy(buf, off, pos, pos + actualLen);\n return actualLen;\n };\n\n Node.prototype.truncate = function (len) {\n if (len === void 0) {\n len = 0;\n }\n\n if (!len) this.buf = (0, buffer_1.bufferAllocUnsafe)(0);else {\n if (!this.buf) this.buf = (0, buffer_1.bufferAllocUnsafe)(0);\n\n if (len <= this.buf.length) {\n this.buf = this.buf.slice(0, len);\n } else {\n var buf = (0, buffer_1.bufferAllocUnsafe)(0);\n this.buf.copy(buf);\n buf.fill(0, len);\n }\n }\n this.touch();\n };\n\n Node.prototype.chmod = function (perm) {\n this.perm = perm;\n this.mode = this.mode & ~511 | perm;\n this.touch();\n };\n\n Node.prototype.chown = function (uid, gid) {\n this.uid = uid;\n this.gid = gid;\n this.touch();\n };\n\n Node.prototype.touch = function () {\n this.mtime = new Date();\n this.emit(\"change\", this);\n };\n\n Node.prototype.canRead = function (uid, gid) {\n if (uid === void 0) {\n uid = process_1.default.getuid();\n }\n\n if (gid === void 0) {\n gid = process_1.default.getgid();\n }\n\n if (this.perm & 4\n /* IROTH */\n ) {\n return true;\n }\n\n if (gid === this.gid) {\n if (this.perm & 32\n /* IRGRP */\n ) {\n return true;\n }\n }\n\n if (uid === this.uid) {\n if (this.perm & 256\n /* IRUSR */\n ) {\n return true;\n }\n }\n\n return false;\n };\n\n Node.prototype.canWrite = function (uid, gid) {\n if (uid === void 0) {\n uid = process_1.default.getuid();\n }\n\n if (gid === void 0) {\n gid = process_1.default.getgid();\n }\n\n if (this.perm & 2\n /* IWOTH */\n ) {\n return true;\n }\n\n if (gid === this.gid) {\n if (this.perm & 16\n /* IWGRP */\n ) {\n return true;\n }\n }\n\n if (uid === this.uid) {\n if (this.perm & 128\n /* IWUSR */\n ) {\n return true;\n }\n }\n\n return false;\n };\n\n Node.prototype.del = function () {\n this.emit(\"delete\", this);\n };\n\n Node.prototype.toJSON = function () {\n return {\n ino: this.ino,\n uid: this.uid,\n gid: this.gid,\n atime: this.atime.getTime(),\n mtime: this.mtime.getTime(),\n ctime: this.ctime.getTime(),\n perm: this.perm,\n mode: this.mode,\n nlink: this.nlink,\n symlink: this.symlink,\n data: this.getString()\n };\n };\n\n return Node;\n }(events_1.EventEmitter);\n\n exports$8.Node = Node;\n /**\n * Represents a hard link that points to an i-node `node`.\n */\n\n var Link = function (_super) {\n __extends(Link, _super);\n\n function Link(vol, parent, name) {\n var _this = _super.call(this) || this;\n\n _this.children = {}; // Path to this node as Array: ['usr', 'bin', 'node'].\n\n _this.steps = []; // \"i-node\" number of the node.\n\n _this.ino = 0; // Number of children.\n\n _this.length = 0;\n _this.vol = vol;\n _this.parent = parent;\n _this.steps = parent ? parent.steps.concat([name]) : [name];\n return _this;\n }\n\n Link.prototype.setNode = function (node) {\n this.node = node;\n this.ino = node.ino;\n };\n\n Link.prototype.getNode = function () {\n return this.node;\n };\n\n Link.prototype.createChild = function (name, node) {\n if (node === void 0) {\n node = this.vol.createNode();\n }\n\n var link = new Link(this.vol, this, name);\n link.setNode(node);\n\n if (node.isDirectory()) ;\n\n this.setChild(name, link);\n return link;\n };\n\n Link.prototype.setChild = function (name, link) {\n if (link === void 0) {\n link = new Link(this.vol, this, name);\n }\n\n this.children[name] = link;\n link.parent = this;\n this.length++;\n this.emit(\"child:add\", link, this);\n return link;\n };\n\n Link.prototype.deleteChild = function (link) {\n delete this.children[link.getName()];\n this.length--;\n this.emit(\"child:delete\", link, this);\n };\n\n Link.prototype.getChild = function (name) {\n if (Object.hasOwnProperty.call(this.children, name)) {\n return this.children[name];\n }\n };\n\n Link.prototype.getPath = function () {\n return this.steps.join(exports$8.SEP);\n };\n\n Link.prototype.getName = function () {\n return this.steps[this.steps.length - 1];\n }; // del() {\n // const parent = this.parent;\n // if(parent) {\n // parent.deleteChild(link);\n // }\n // this.parent = null;\n // this.vol = null;\n // }\n\n /**\n * Walk the tree path and return the `Link` at that location, if any.\n * @param steps {string[]} Desired location.\n * @param stop {number} Max steps to go into.\n * @param i {number} Current step in the `steps` array.\n *\n * @return {Link|null}\n */\n\n\n Link.prototype.walk = function (steps, stop, i) {\n if (stop === void 0) {\n stop = steps.length;\n }\n\n if (i === void 0) {\n i = 0;\n }\n\n if (i >= steps.length) return this;\n if (i >= stop) return this;\n var step = steps[i];\n var link = this.getChild(step);\n if (!link) return null;\n return link.walk(steps, stop, i + 1);\n };\n\n Link.prototype.toJSON = function () {\n return {\n steps: this.steps,\n ino: this.ino,\n children: Object.keys(this.children)\n };\n };\n\n return Link;\n }(events_1.EventEmitter);\n\n exports$8.Link = Link;\n /**\n * Represents an open file (file descriptor) that points to a `Link` (Hard-link) and a `Node`.\n */\n\n var File = function () {\n /**\n * Open a Link-Node pair. `node` is provided separately as that might be a different node\n * rather the one `link` points to, because it might be a symlink.\n * @param link\n * @param node\n * @param flags\n * @param fd\n */\n function File(link, node, flags, fd) {\n /**\n * A cursor/offset position in a file, where data will be written on write.\n * User can \"seek\" this position.\n */\n this.position = 0;\n this.link = link;\n this.node = node;\n this.flags = flags;\n this.fd = fd;\n }\n\n File.prototype.getString = function (encoding) {\n\n return this.node.getString();\n };\n\n File.prototype.setString = function (str) {\n this.node.setString(str);\n };\n\n File.prototype.getBuffer = function () {\n return this.node.getBuffer();\n };\n\n File.prototype.setBuffer = function (buf) {\n this.node.setBuffer(buf);\n };\n\n File.prototype.getSize = function () {\n return this.node.getSize();\n };\n\n File.prototype.truncate = function (len) {\n this.node.truncate(len);\n };\n\n File.prototype.seekTo = function (position) {\n this.position = position;\n };\n\n File.prototype.stats = function () {\n return Stats_1.default.build(this.node);\n };\n\n File.prototype.write = function (buf, offset, length, position) {\n if (offset === void 0) {\n offset = 0;\n }\n\n if (length === void 0) {\n length = buf.length;\n }\n\n if (typeof position !== \"number\") position = this.position;\n if (this.flags & O_APPEND) position = this.getSize();\n var bytes = this.node.write(buf, offset, length, position);\n this.position = position + bytes;\n return bytes;\n };\n\n File.prototype.read = function (buf, offset, length, position) {\n if (offset === void 0) {\n offset = 0;\n }\n\n if (length === void 0) {\n length = buf.byteLength;\n }\n\n if (typeof position !== \"number\") position = this.position;\n var bytes = this.node.read(buf, offset, length, position);\n this.position = position + bytes;\n return bytes;\n };\n\n File.prototype.chmod = function (perm) {\n this.node.chmod(perm);\n };\n\n File.prototype.chown = function (uid, gid) {\n this.node.chown(uid, gid);\n };\n\n return File;\n }();\n\n exports$8.File = File;\n return exports$8;\n}\n\nvar exports$7 = {},\n _dewExec$5 = false;\n\nvar _global$1 = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nfunction dew$5() {\n if (_dewExec$5) return exports$7;\n _dewExec$5 = true;\n Object.defineProperty(exports$7, \"__esModule\", {\n value: true\n });\n /**\n * `setTimeoutUnref` is just like `setTimeout`,\n * only in Node's environment it will \"unref\" its macro task.\n */\n\n function setTimeoutUnref(callback, time, args) {\n var ref = setTimeout.apply(typeof globalThis !== \"undefined\" ? globalThis : _global$1, arguments);\n if (ref && typeof ref === \"object\" && typeof ref.unref === \"function\") ref.unref();\n return ref;\n }\n\n exports$7.default = setTimeoutUnref;\n return exports$7;\n}\n\nvar exports$6 = {},\n _dewExec$4 = false;\nfunction dew$4() {\n if (_dewExec$4) return exports$6;\n _dewExec$4 = true;\n\n var __spreadArray = exports$6 && exports$6.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };\n\n Object.defineProperty(exports$6, \"__esModule\", {\n value: true\n });\n exports$6.FileHandle = void 0;\n\n function promisify(vol, fn, getResult) {\n if (getResult === void 0) {\n getResult = function (input) {\n return input;\n };\n }\n\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return new Promise(function (resolve, reject) {\n vol[fn].bind(vol).apply(void 0, __spreadArray(__spreadArray([], args, false), [function (error, result) {\n if (error) return reject(error);\n return resolve(getResult(result));\n }], false));\n });\n };\n }\n\n var FileHandle = function () {\n function FileHandle(vol, fd) {\n this.vol = vol;\n this.fd = fd;\n }\n\n FileHandle.prototype.appendFile = function (data, options) {\n return promisify(this.vol, \"appendFile\")(this.fd, data, options);\n };\n\n FileHandle.prototype.chmod = function (mode) {\n return promisify(this.vol, \"fchmod\")(this.fd, mode);\n };\n\n FileHandle.prototype.chown = function (uid, gid) {\n return promisify(this.vol, \"fchown\")(this.fd, uid, gid);\n };\n\n FileHandle.prototype.close = function () {\n return promisify(this.vol, \"close\")(this.fd);\n };\n\n FileHandle.prototype.datasync = function () {\n return promisify(this.vol, \"fdatasync\")(this.fd);\n };\n\n FileHandle.prototype.read = function (buffer, offset, length, position) {\n return promisify(this.vol, \"read\", function (bytesRead) {\n return {\n bytesRead: bytesRead,\n buffer: buffer\n };\n })(this.fd, buffer, offset, length, position);\n };\n\n FileHandle.prototype.readFile = function (options) {\n return promisify(this.vol, \"readFile\")(this.fd, options);\n };\n\n FileHandle.prototype.stat = function (options) {\n return promisify(this.vol, \"fstat\")(this.fd, options);\n };\n\n FileHandle.prototype.sync = function () {\n return promisify(this.vol, \"fsync\")(this.fd);\n };\n\n FileHandle.prototype.truncate = function (len) {\n return promisify(this.vol, \"ftruncate\")(this.fd, len);\n };\n\n FileHandle.prototype.utimes = function (atime, mtime) {\n return promisify(this.vol, \"futimes\")(this.fd, atime, mtime);\n };\n\n FileHandle.prototype.write = function (buffer, offset, length, position) {\n return promisify(this.vol, \"write\", function (bytesWritten) {\n return {\n bytesWritten: bytesWritten,\n buffer: buffer\n };\n })(this.fd, buffer, offset, length, position);\n };\n\n FileHandle.prototype.writeFile = function (data, options) {\n return promisify(this.vol, \"writeFile\")(this.fd, data, options);\n };\n\n return FileHandle;\n }();\n\n exports$6.FileHandle = FileHandle;\n\n function createPromisesApi(vol) {\n if (typeof Promise === \"undefined\") return null;\n return {\n FileHandle: FileHandle,\n access: function (path, mode) {\n return promisify(vol, \"access\")(path, mode);\n },\n appendFile: function (path, data, options) {\n return promisify(vol, \"appendFile\")(path instanceof FileHandle ? path.fd : path, data, options);\n },\n chmod: function (path, mode) {\n return promisify(vol, \"chmod\")(path, mode);\n },\n chown: function (path, uid, gid) {\n return promisify(vol, \"chown\")(path, uid, gid);\n },\n copyFile: function (src, dest, flags) {\n return promisify(vol, \"copyFile\")(src, dest, flags);\n },\n lchmod: function (path, mode) {\n return promisify(vol, \"lchmod\")(path, mode);\n },\n lchown: function (path, uid, gid) {\n return promisify(vol, \"lchown\")(path, uid, gid);\n },\n link: function (existingPath, newPath) {\n return promisify(vol, \"link\")(existingPath, newPath);\n },\n lstat: function (path, options) {\n return promisify(vol, \"lstat\")(path, options);\n },\n mkdir: function (path, options) {\n return promisify(vol, \"mkdir\")(path, options);\n },\n mkdtemp: function (prefix, options) {\n return promisify(vol, \"mkdtemp\")(prefix, options);\n },\n open: function (path, flags, mode) {\n return promisify(vol, \"open\", function (fd) {\n return new FileHandle(vol, fd);\n })(path, flags, mode);\n },\n readdir: function (path, options) {\n return promisify(vol, \"readdir\")(path, options);\n },\n readFile: function (id, options) {\n return promisify(vol, \"readFile\")(id instanceof FileHandle ? id.fd : id, options);\n },\n readlink: function (path, options) {\n return promisify(vol, \"readlink\")(path, options);\n },\n realpath: function (path, options) {\n return promisify(vol, \"realpath\")(path, options);\n },\n rename: function (oldPath, newPath) {\n return promisify(vol, \"rename\")(oldPath, newPath);\n },\n rmdir: function (path) {\n return promisify(vol, \"rmdir\")(path);\n },\n stat: function (path, options) {\n return promisify(vol, \"stat\")(path, options);\n },\n symlink: function (target, path, type) {\n return promisify(vol, \"symlink\")(target, path, type);\n },\n truncate: function (path, len) {\n return promisify(vol, \"truncate\")(path, len);\n },\n unlink: function (path) {\n return promisify(vol, \"unlink\")(path);\n },\n utimes: function (path, atime, mtime) {\n return promisify(vol, \"utimes\")(path, atime, mtime);\n },\n writeFile: function (id, data, options) {\n return promisify(vol, \"writeFile\")(id instanceof FileHandle ? id.fd : id, data, options);\n }\n };\n }\n\n exports$6.default = createPromisesApi;\n return exports$6;\n}\n\nvar exports$5 = {},\n _dewExec$3 = false;\nfunction dew$3() {\n if (_dewExec$3) return exports$5;\n _dewExec$3 = true;\n var process$1 = process;\n Object.defineProperty(exports$5, \"__esModule\", {\n value: true\n });\n exports$5.unixify = unixify;\n exports$5.correctPath = correctPath;\n var isWin = process$1.platform === \"win32\";\n\n function removeTrailingSeparator(str) {\n var i = str.length - 1;\n\n if (i < 2) {\n return str;\n }\n\n while (isSeparator(str, i)) {\n i--;\n }\n\n return str.substr(0, i + 1);\n }\n\n function isSeparator(str, i) {\n var _char = str[i];\n return i > 0 && (_char === \"/\" || isWin && _char === \"\\\\\");\n }\n\n function normalizePath(str, stripTrailing) {\n if (typeof str !== \"string\") {\n throw new TypeError(\"expected a string\");\n }\n\n str = str.replace(/[\\\\\\/]+/g, \"/\");\n\n if (stripTrailing !== false) {\n str = removeTrailingSeparator(str);\n }\n\n return str;\n }\n\n function unixify(filepath) {\n var stripTrailing = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (isWin) {\n filepath = normalizePath(filepath, stripTrailing);\n return filepath.replace(/^([a-zA-Z]+:|\\.\\/)/, \"\");\n }\n\n return filepath;\n }\n\n function correctPath(filepath) {\n return unixify(filepath.replace(/^\\\\\\\\\\?\\\\.:\\\\/, \"\\\\\"));\n }\n\n return exports$5;\n}\n\nvar exports$4 = {},\n _dewExec$2 = false;\n\nvar _global = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nfunction dew$2() {\n if (_dewExec$2) return exports$4;\n _dewExec$2 = true;\n\n var __extends = exports$4 && exports$4.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n };\n\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n\n var __spreadArray = exports$4 && exports$4.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };\n\n Object.defineProperty(exports$4, \"__esModule\", {\n value: true\n });\n exports$4.FSWatcher = exports$4.StatWatcher = exports$4.Volume = exports$4.toUnixTimestamp = exports$4.bufferToEncoding = exports$4.dataToBuffer = exports$4.dataToStr = exports$4.pathToSteps = exports$4.filenameToSteps = exports$4.pathToFilename = exports$4.flagsToNumber = exports$4.FLAGS = void 0;\n var pathModule = exports$i;\n\n var node_1 = dew$6();\n\n var Stats_1 = dew$d();\n\n var Dirent_1 = dew$9();\n\n var buffer_1 = dew$c();\n\n var setImmediate_1 = dew$8();\n\n var process_1 = dew$7();\n\n var setTimeoutUnref_1 = dew$5();\n\n var stream_1 = exports$j;\n\n var constants_1 = dew$f();\n\n var events_1 = y;\n\n var encoding_1 = dew$a();\n\n var errors = dew$b();\n\n var util = X;\n\n var promises_1 = dew$4();\n\n var resolveCrossPlatform = pathModule.resolve;\n var O_RDONLY = constants_1.constants.O_RDONLY,\n O_WRONLY = constants_1.constants.O_WRONLY,\n O_RDWR = constants_1.constants.O_RDWR,\n O_CREAT = constants_1.constants.O_CREAT,\n O_EXCL = constants_1.constants.O_EXCL,\n O_TRUNC = constants_1.constants.O_TRUNC,\n O_APPEND = constants_1.constants.O_APPEND,\n O_SYNC = constants_1.constants.O_SYNC,\n O_DIRECTORY = constants_1.constants.O_DIRECTORY,\n F_OK = constants_1.constants.F_OK,\n COPYFILE_EXCL = constants_1.constants.COPYFILE_EXCL,\n COPYFILE_FICLONE_FORCE = constants_1.constants.COPYFILE_FICLONE_FORCE;\n\n var _a = pathModule.posix ? pathModule.posix : pathModule,\n sep = _a.sep,\n relative = _a.relative,\n join = _a.join,\n dirname = _a.dirname;\n\n var isWin = process_1.default.platform === \"win32\";\n var kMinPoolSpace = 128; // const kMaxLength = require('buffer').kMaxLength;\n // ---------------------------------------- Error messages\n // TODO: Use `internal/errors.js` in the future.\n\n var ERRSTR = {\n PATH_STR: \"path must be a string or Buffer\",\n // FD: 'file descriptor must be a unsigned 32-bit integer',\n FD: \"fd must be a file descriptor\",\n MODE_INT: \"mode must be an int\",\n CB: \"callback must be a function\",\n UID: \"uid must be an unsigned int\",\n GID: \"gid must be an unsigned int\",\n LEN: \"len must be an integer\",\n ATIME: \"atime must be an integer\",\n MTIME: \"mtime must be an integer\",\n PREFIX: \"filename prefix is required\",\n BUFFER: \"buffer must be an instance of Buffer or StaticBuffer\",\n OFFSET: \"offset must be an integer\",\n LENGTH: \"length must be an integer\",\n POSITION: \"position must be an integer\"\n };\n\n var ERRSTR_OPTS = function (tipeof) {\n return \"Expected options to be either an object or a string, but got \" + tipeof + \" instead\";\n }; // const ERRSTR_FLAG = flag => `Unknown file open flag: ${flag}`;\n\n\n var ENOENT = \"ENOENT\";\n var EBADF = \"EBADF\";\n var EINVAL = \"EINVAL\";\n var EPERM = \"EPERM\";\n var EPROTO = \"EPROTO\";\n var EEXIST = \"EEXIST\";\n var ENOTDIR = \"ENOTDIR\";\n var EMFILE = \"EMFILE\";\n var EACCES = \"EACCES\";\n var EISDIR = \"EISDIR\";\n var ENOTEMPTY = \"ENOTEMPTY\";\n var ENOSYS = \"ENOSYS\";\n\n function formatError(errorCode, func, path, path2) {\n if (func === void 0) {\n func = \"\";\n }\n\n if (path === void 0) {\n path = \"\";\n }\n\n if (path2 === void 0) {\n path2 = \"\";\n }\n\n var pathFormatted = \"\";\n if (path) pathFormatted = \" '\" + path + \"'\";\n if (path2) pathFormatted += \" -> '\" + path2 + \"'\";\n\n switch (errorCode) {\n case ENOENT:\n return \"ENOENT: no such file or directory, \" + func + pathFormatted;\n\n case EBADF:\n return \"EBADF: bad file descriptor, \" + func + pathFormatted;\n\n case EINVAL:\n return \"EINVAL: invalid argument, \" + func + pathFormatted;\n\n case EPERM:\n return \"EPERM: operation not permitted, \" + func + pathFormatted;\n\n case EPROTO:\n return \"EPROTO: protocol error, \" + func + pathFormatted;\n\n case EEXIST:\n return \"EEXIST: file already exists, \" + func + pathFormatted;\n\n case ENOTDIR:\n return \"ENOTDIR: not a directory, \" + func + pathFormatted;\n\n case EISDIR:\n return \"EISDIR: illegal operation on a directory, \" + func + pathFormatted;\n\n case EACCES:\n return \"EACCES: permission denied, \" + func + pathFormatted;\n\n case ENOTEMPTY:\n return \"ENOTEMPTY: directory not empty, \" + func + pathFormatted;\n\n case EMFILE:\n return \"EMFILE: too many open files, \" + func + pathFormatted;\n\n case ENOSYS:\n return \"ENOSYS: function not implemented, \" + func + pathFormatted;\n\n default:\n return errorCode + \": error occurred, \" + func + pathFormatted;\n }\n }\n\n function createError(errorCode, func, path, path2, Constructor) {\n if (func === void 0) {\n func = \"\";\n }\n\n if (path === void 0) {\n path = \"\";\n }\n\n if (path2 === void 0) {\n path2 = \"\";\n }\n\n if (Constructor === void 0) {\n Constructor = Error;\n }\n\n var error = new Constructor(formatError(errorCode, func, path, path2));\n error.code = errorCode;\n return error;\n } // ---------------------------------------- Flags\n // List of file `flags` as defined by Node.\n\n\n var FLAGS;\n\n (function (FLAGS) {\n // Open file for reading. An exception occurs if the file does not exist.\n FLAGS[FLAGS[\"r\"] = O_RDONLY] = \"r\"; // Open file for reading and writing. An exception occurs if the file does not exist.\n\n FLAGS[FLAGS[\"r+\"] = O_RDWR] = \"r+\"; // Open file for reading in synchronous mode. Instructs the operating system to bypass the local file system cache.\n\n FLAGS[FLAGS[\"rs\"] = O_RDONLY | O_SYNC] = \"rs\";\n FLAGS[FLAGS[\"sr\"] = FLAGS.rs] = \"sr\"; // Open file for reading and writing, telling the OS to open it synchronously. See notes for 'rs' about using this with caution.\n\n FLAGS[FLAGS[\"rs+\"] = O_RDWR | O_SYNC] = \"rs+\";\n FLAGS[FLAGS[\"sr+\"] = FLAGS[\"rs+\"]] = \"sr+\"; // Open file for writing. The file is created (if it does not exist) or truncated (if it exists).\n\n FLAGS[FLAGS[\"w\"] = O_WRONLY | O_CREAT | O_TRUNC] = \"w\"; // Like 'w' but fails if path exists.\n\n FLAGS[FLAGS[\"wx\"] = O_WRONLY | O_CREAT | O_TRUNC | O_EXCL] = \"wx\";\n FLAGS[FLAGS[\"xw\"] = FLAGS.wx] = \"xw\"; // Open file for reading and writing. The file is created (if it does not exist) or truncated (if it exists).\n\n FLAGS[FLAGS[\"w+\"] = O_RDWR | O_CREAT | O_TRUNC] = \"w+\"; // Like 'w+' but fails if path exists.\n\n FLAGS[FLAGS[\"wx+\"] = O_RDWR | O_CREAT | O_TRUNC | O_EXCL] = \"wx+\";\n FLAGS[FLAGS[\"xw+\"] = FLAGS[\"wx+\"]] = \"xw+\"; // Open file for appending. The file is created if it does not exist.\n\n FLAGS[FLAGS[\"a\"] = O_WRONLY | O_APPEND | O_CREAT] = \"a\"; // Like 'a' but fails if path exists.\n\n FLAGS[FLAGS[\"ax\"] = O_WRONLY | O_APPEND | O_CREAT | O_EXCL] = \"ax\";\n FLAGS[FLAGS[\"xa\"] = FLAGS.ax] = \"xa\"; // Open file for reading and appending. The file is created if it does not exist.\n\n FLAGS[FLAGS[\"a+\"] = O_RDWR | O_APPEND | O_CREAT] = \"a+\"; // Like 'a+' but fails if path exists.\n\n FLAGS[FLAGS[\"ax+\"] = O_RDWR | O_APPEND | O_CREAT | O_EXCL] = \"ax+\";\n FLAGS[FLAGS[\"xa+\"] = FLAGS[\"ax+\"]] = \"xa+\";\n })(FLAGS = exports$4.FLAGS || (exports$4.FLAGS = {}));\n\n function flagsToNumber(flags) {\n if (typeof flags === \"number\") return flags;\n\n if (typeof flags === \"string\") {\n var flagsNum = FLAGS[flags];\n if (typeof flagsNum !== \"undefined\") return flagsNum;\n } // throw new TypeError(formatError(ERRSTR_FLAG(flags)));\n\n\n throw new errors.TypeError(\"ERR_INVALID_OPT_VALUE\", \"flags\", flags);\n }\n\n exports$4.flagsToNumber = flagsToNumber; // ---------------------------------------- Options\n\n function getOptions(defaults, options) {\n var opts;\n if (!options) return defaults;else {\n var tipeof = typeof options;\n\n switch (tipeof) {\n case \"string\":\n opts = Object.assign({}, defaults, {\n encoding: options\n });\n break;\n\n case \"object\":\n opts = Object.assign({}, defaults, options);\n break;\n\n default:\n throw TypeError(ERRSTR_OPTS(tipeof));\n }\n }\n if (opts.encoding !== \"buffer\") (0, encoding_1.assertEncoding)(opts.encoding);\n return opts;\n }\n\n function optsGenerator(defaults) {\n return function (options) {\n return getOptions(defaults, options);\n };\n }\n\n function validateCallback(callback) {\n if (typeof callback !== \"function\") throw TypeError(ERRSTR.CB);\n return callback;\n }\n\n function optsAndCbGenerator(getOpts) {\n return function (options, callback) {\n return typeof options === \"function\" ? [getOpts(), options] : [getOpts(options), validateCallback(callback)];\n };\n }\n\n var optsDefaults = {\n encoding: \"utf8\"\n };\n var getDefaultOpts = optsGenerator(optsDefaults);\n var getDefaultOptsAndCb = optsAndCbGenerator(getDefaultOpts);\n var readFileOptsDefaults = {\n flag: \"r\"\n };\n var getReadFileOptions = optsGenerator(readFileOptsDefaults);\n var writeFileDefaults = {\n encoding: \"utf8\",\n mode: 438\n /* DEFAULT */\n ,\n flag: FLAGS[FLAGS.w]\n };\n var getWriteFileOptions = optsGenerator(writeFileDefaults);\n var appendFileDefaults = {\n encoding: \"utf8\",\n mode: 438\n /* DEFAULT */\n ,\n flag: FLAGS[FLAGS.a]\n };\n var getAppendFileOpts = optsGenerator(appendFileDefaults);\n var getAppendFileOptsAndCb = optsAndCbGenerator(getAppendFileOpts);\n var realpathDefaults = optsDefaults;\n var getRealpathOptions = optsGenerator(realpathDefaults);\n var getRealpathOptsAndCb = optsAndCbGenerator(getRealpathOptions);\n var mkdirDefaults = {\n mode: 511\n /* DIR */\n ,\n recursive: false\n };\n\n var getMkdirOptions = function (options) {\n if (typeof options === \"number\") return Object.assign({}, mkdirDefaults, {\n mode: options\n });\n return Object.assign({}, mkdirDefaults, options);\n };\n\n var rmdirDefaults = {\n recursive: false\n };\n\n var getRmdirOptions = function (options) {\n return Object.assign({}, rmdirDefaults, options);\n };\n\n var readdirDefaults = {\n encoding: \"utf8\",\n withFileTypes: false\n };\n var getReaddirOptions = optsGenerator(readdirDefaults);\n var getReaddirOptsAndCb = optsAndCbGenerator(getReaddirOptions);\n var statDefaults = {\n bigint: false\n };\n\n var getStatOptions = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return Object.assign({}, statDefaults, options);\n };\n\n var getStatOptsAndCb = function (options, callback) {\n return typeof options === \"function\" ? [getStatOptions(), options] : [getStatOptions(options), validateCallback(callback)];\n }; // ---------------------------------------- Utility functions\n\n\n function getPathFromURLPosix(url) {\n if (url.hostname !== \"\") {\n throw new errors.TypeError(\"ERR_INVALID_FILE_URL_HOST\", process_1.default.platform);\n }\n\n var pathname = url.pathname;\n\n for (var n = 0; n < pathname.length; n++) {\n if (pathname[n] === \"%\") {\n var third = pathname.codePointAt(n + 2) | 32;\n\n if (pathname[n + 1] === \"2\" && third === 102) {\n throw new errors.TypeError(\"ERR_INVALID_FILE_URL_PATH\", \"must not include encoded / characters\");\n }\n }\n }\n\n return decodeURIComponent(pathname);\n }\n\n function pathToFilename(path) {\n if (typeof path !== \"string\" && !buffer_1.Buffer.isBuffer(path)) {\n try {\n if (!(path instanceof h.URL)) throw new TypeError(ERRSTR.PATH_STR);\n } catch (err) {\n throw new TypeError(ERRSTR.PATH_STR);\n }\n\n path = getPathFromURLPosix(path);\n }\n\n var pathString = String(path);\n nullCheck(pathString); // return slash(pathString);\n\n return pathString;\n }\n\n exports$4.pathToFilename = pathToFilename;\n\n var resolve = function (filename, base) {\n if (base === void 0) {\n base = process_1.default.cwd();\n }\n\n return resolveCrossPlatform(base, filename);\n };\n\n if (isWin) {\n var _resolve_1 = resolve;\n\n var unixify_1 = dew$3().unixify;\n\n resolve = function (filename, base) {\n return unixify_1(_resolve_1(filename, base));\n };\n }\n\n function filenameToSteps(filename, base) {\n var fullPath = resolve(filename, base);\n var fullPathSansSlash = fullPath.substr(1);\n if (!fullPathSansSlash) return [];\n return fullPathSansSlash.split(sep);\n }\n\n exports$4.filenameToSteps = filenameToSteps;\n\n function pathToSteps(path) {\n return filenameToSteps(pathToFilename(path));\n }\n\n exports$4.pathToSteps = pathToSteps;\n\n function dataToStr(data, encoding) {\n if (encoding === void 0) {\n encoding = encoding_1.ENCODING_UTF8;\n }\n\n if (buffer_1.Buffer.isBuffer(data)) return data.toString(encoding);else if (data instanceof Uint8Array) return (0, buffer_1.bufferFrom)(data).toString(encoding);else return String(data);\n }\n\n exports$4.dataToStr = dataToStr;\n\n function dataToBuffer(data, encoding) {\n if (encoding === void 0) {\n encoding = encoding_1.ENCODING_UTF8;\n }\n\n if (buffer_1.Buffer.isBuffer(data)) return data;else if (data instanceof Uint8Array) return (0, buffer_1.bufferFrom)(data);else return (0, buffer_1.bufferFrom)(String(data), encoding);\n }\n\n exports$4.dataToBuffer = dataToBuffer;\n\n function bufferToEncoding(buffer, encoding) {\n if (!encoding || encoding === \"buffer\") return buffer;else return buffer.toString(encoding);\n }\n\n exports$4.bufferToEncoding = bufferToEncoding;\n\n function nullCheck(path, callback) {\n if ((\"\" + path).indexOf(\"\\0\") !== -1) {\n var er = new Error(\"Path must be a string without null bytes\");\n er.code = ENOENT;\n if (typeof callback !== \"function\") throw er;\n process_1.default.nextTick(callback, er);\n return false;\n }\n\n return true;\n }\n\n function _modeToNumber(mode, def) {\n if (typeof mode === \"number\") return mode;\n if (typeof mode === \"string\") return parseInt(mode, 8);\n if (def) return modeToNumber(def);\n return undefined;\n }\n\n function modeToNumber(mode, def) {\n var result = _modeToNumber(mode, def);\n\n if (typeof result !== \"number\" || isNaN(result)) throw new TypeError(ERRSTR.MODE_INT);\n return result;\n }\n\n function isFd(path) {\n return path >>> 0 === path;\n }\n\n function validateFd(fd) {\n if (!isFd(fd)) throw TypeError(ERRSTR.FD);\n } // converts Date or number to a fractional UNIX timestamp\n\n\n function toUnixTimestamp(time) {\n // tslint:disable-next-line triple-equals\n if (typeof time === \"string\" && +time == time) {\n return +time;\n }\n\n if (time instanceof Date) {\n return time.getTime() / 1000;\n }\n\n if (isFinite(time)) {\n if (time < 0) {\n return Date.now() / 1000;\n }\n\n return time;\n }\n\n throw new Error(\"Cannot parse time: \" + time);\n }\n\n exports$4.toUnixTimestamp = toUnixTimestamp;\n\n function validateUid(uid) {\n if (typeof uid !== \"number\") throw TypeError(ERRSTR.UID);\n }\n\n function validateGid(gid) {\n if (typeof gid !== \"number\") throw TypeError(ERRSTR.GID);\n }\n\n function flattenJSON(nestedJSON) {\n var flatJSON = {};\n\n function flatten(pathPrefix, node) {\n for (var path in node) {\n var contentOrNode = node[path];\n var joinedPath = join(pathPrefix, path);\n\n if (typeof contentOrNode === \"string\") {\n flatJSON[joinedPath] = contentOrNode;\n } else if (typeof contentOrNode === \"object\" && contentOrNode !== null && Object.keys(contentOrNode).length > 0) {\n // empty directories need an explicit entry and therefore get handled in `else`, non-empty ones are implicitly considered\n flatten(joinedPath, contentOrNode);\n } else {\n // without this branch null, empty-object or non-object entries would not be handled in the same way\n // by both fromJSON() and fromNestedJSON()\n flatJSON[joinedPath] = null;\n }\n }\n }\n\n flatten(\"\", nestedJSON);\n return flatJSON;\n }\n /**\n * `Volume` represents a file system.\n */\n\n\n var Volume = function () {\n function Volume(props) {\n if (props === void 0) {\n props = {};\n } // I-node number counter.\n\n\n this.ino = 0; // A mapping for i-node numbers to i-nodes (`Node`);\n\n this.inodes = {}; // List of released i-node numbers, for reuse.\n\n this.releasedInos = []; // A mapping for file descriptors to `File`s.\n\n this.fds = {}; // A list of reusable (opened and closed) file descriptors, that should be\n // used first before creating a new file descriptor.\n\n this.releasedFds = []; // Max number of open files.\n\n this.maxFiles = 10000; // Current number of open files.\n\n this.openFiles = 0;\n this.promisesApi = (0, promises_1.default)(this);\n this.statWatchers = {};\n this.props = Object.assign({\n Node: node_1.Node,\n Link: node_1.Link,\n File: node_1.File\n }, props);\n var root = this.createLink();\n root.setNode(this.createNode(true));\n var self = this; // tslint:disable-line no-this-assignment\n\n this.StatWatcher = function (_super) {\n __extends(StatWatcher, _super);\n\n function StatWatcher() {\n return _super.call(this, self) || this;\n }\n\n return StatWatcher;\n }(StatWatcher);\n\n var _ReadStream = FsReadStream;\n\n this.ReadStream = function (_super) {\n __extends(class_1, _super);\n\n function class_1() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return _super.apply(this, __spreadArray([self], args, false)) || this;\n }\n\n return class_1;\n }(_ReadStream);\n\n var _WriteStream = FsWriteStream;\n\n this.WriteStream = function (_super) {\n __extends(class_2, _super);\n\n function class_2() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return _super.apply(this, __spreadArray([self], args, false)) || this;\n }\n\n return class_2;\n }(_WriteStream);\n\n this.FSWatcher = function (_super) {\n __extends(FSWatcher, _super);\n\n function FSWatcher() {\n return _super.call(this, self) || this;\n }\n\n return FSWatcher;\n }(FSWatcher); // root.setChild('.', root);\n // root.getNode().nlink++;\n // root.setChild('..', root);\n // root.getNode().nlink++;\n\n\n this.root = root;\n }\n\n Volume.fromJSON = function (json, cwd) {\n var vol = new Volume();\n vol.fromJSON(json, cwd);\n return vol;\n };\n\n Volume.fromNestedJSON = function (json, cwd) {\n var vol = new Volume();\n vol.fromNestedJSON(json, cwd);\n return vol;\n };\n\n Object.defineProperty(Volume.prototype, \"promises\", {\n get: function () {\n if (this.promisesApi === null) throw new Error(\"Promise is not supported in this environment.\");\n return this.promisesApi;\n },\n enumerable: false,\n configurable: true\n });\n\n Volume.prototype.createLink = function (parent, name, isDirectory, perm) {\n if (isDirectory === void 0) {\n isDirectory = false;\n }\n\n if (!parent) {\n return new this.props.Link(this, null, \"\");\n }\n\n if (!name) {\n throw new Error(\"createLink: name cannot be empty\");\n }\n\n return parent.createChild(name, this.createNode(isDirectory, perm));\n };\n\n Volume.prototype.deleteLink = function (link) {\n var parent = link.parent;\n\n if (parent) {\n parent.deleteChild(link);\n return true;\n }\n\n return false;\n };\n\n Volume.prototype.newInoNumber = function () {\n var releasedFd = this.releasedInos.pop();\n if (releasedFd) return releasedFd;else {\n this.ino = (this.ino + 1) % 4294967295;\n return this.ino;\n }\n };\n\n Volume.prototype.newFdNumber = function () {\n var releasedFd = this.releasedFds.pop();\n return typeof releasedFd === \"number\" ? releasedFd : Volume.fd--;\n };\n\n Volume.prototype.createNode = function (isDirectory, perm) {\n if (isDirectory === void 0) {\n isDirectory = false;\n }\n\n var node = new this.props.Node(this.newInoNumber(), perm);\n if (isDirectory) node.setIsDirectory();\n this.inodes[node.ino] = node;\n return node;\n };\n\n Volume.prototype.getNode = function (ino) {\n return this.inodes[ino];\n };\n\n Volume.prototype.deleteNode = function (node) {\n node.del();\n delete this.inodes[node.ino];\n this.releasedInos.push(node.ino);\n }; // Generates 6 character long random string, used by `mkdtemp`.\n\n\n Volume.prototype.genRndStr = function () {\n var str = (Math.random() + 1).toString(36).substr(2, 6);\n if (str.length === 6) return str;else return this.genRndStr();\n }; // Returns a `Link` (hard link) referenced by path \"split\" into steps.\n\n\n Volume.prototype.getLink = function (steps) {\n return this.root.walk(steps);\n }; // Just link `getLink`, but throws a correct user error, if link to found.\n\n\n Volume.prototype.getLinkOrThrow = function (filename, funcName) {\n var steps = filenameToSteps(filename);\n var link = this.getLink(steps);\n if (!link) throw createError(ENOENT, funcName, filename);\n return link;\n }; // Just like `getLink`, but also dereference/resolves symbolic links.\n\n\n Volume.prototype.getResolvedLink = function (filenameOrSteps) {\n var steps = typeof filenameOrSteps === \"string\" ? filenameToSteps(filenameOrSteps) : filenameOrSteps;\n var link = this.root;\n var i = 0;\n\n while (i < steps.length) {\n var step = steps[i];\n link = link.getChild(step);\n if (!link) return null;\n var node = link.getNode();\n\n if (node.isSymlink()) {\n steps = node.symlink.concat(steps.slice(i + 1));\n link = this.root;\n i = 0;\n continue;\n }\n\n i++;\n }\n\n return link;\n }; // Just like `getLinkOrThrow`, but also dereference/resolves symbolic links.\n\n\n Volume.prototype.getResolvedLinkOrThrow = function (filename, funcName) {\n var link = this.getResolvedLink(filename);\n if (!link) throw createError(ENOENT, funcName, filename);\n return link;\n };\n\n Volume.prototype.resolveSymlinks = function (link) {\n // let node: Node = link.getNode();\n // while(link && node.isSymlink()) {\n // link = this.getLink(node.symlink);\n // if(!link) return null;\n // node = link.getNode();\n // }\n // return link;\n return this.getResolvedLink(link.steps.slice(1));\n }; // Just like `getLinkOrThrow`, but also verifies that the link is a directory.\n\n\n Volume.prototype.getLinkAsDirOrThrow = function (filename, funcName) {\n var link = this.getLinkOrThrow(filename, funcName);\n if (!link.getNode().isDirectory()) throw createError(ENOTDIR, funcName, filename);\n return link;\n }; // Get the immediate parent directory of the link.\n\n\n Volume.prototype.getLinkParent = function (steps) {\n return this.root.walk(steps, steps.length - 1);\n };\n\n Volume.prototype.getLinkParentAsDirOrThrow = function (filenameOrSteps, funcName) {\n var steps = filenameOrSteps instanceof Array ? filenameOrSteps : filenameToSteps(filenameOrSteps);\n var link = this.getLinkParent(steps);\n if (!link) throw createError(ENOENT, funcName, sep + steps.join(sep));\n if (!link.getNode().isDirectory()) throw createError(ENOTDIR, funcName, sep + steps.join(sep));\n return link;\n };\n\n Volume.prototype.getFileByFd = function (fd) {\n return this.fds[String(fd)];\n };\n\n Volume.prototype.getFileByFdOrThrow = function (fd, funcName) {\n if (!isFd(fd)) throw TypeError(ERRSTR.FD);\n var file = this.getFileByFd(fd);\n if (!file) throw createError(EBADF, funcName);\n return file;\n };\n\n Volume.prototype.getNodeByIdOrCreate = function (id, flags, perm) {\n if (typeof id === \"number\") {\n var file = this.getFileByFd(id);\n if (!file) throw Error(\"File nto found\");\n return file.node;\n } else {\n var steps = pathToSteps(id);\n var link = this.getLink(steps);\n if (link) return link.getNode(); // Try creating a node if not found.\n\n if (flags & O_CREAT) {\n var dirLink = this.getLinkParent(steps);\n\n if (dirLink) {\n var name_1 = steps[steps.length - 1];\n link = this.createLink(dirLink, name_1, false, perm);\n return link.getNode();\n }\n }\n\n throw createError(ENOENT, \"getNodeByIdOrCreate\", pathToFilename(id));\n }\n };\n\n Volume.prototype.wrapAsync = function (method, args, callback) {\n var _this = this;\n\n validateCallback(callback);\n (0, setImmediate_1.default)(function () {\n var result;\n\n try {\n result = method.apply(_this, args);\n } catch (err) {\n callback(err);\n return;\n }\n\n callback(null, result);\n });\n };\n\n Volume.prototype._toJSON = function (link, json, path) {\n var _a;\n\n if (link === void 0) {\n link = this.root;\n }\n\n if (json === void 0) {\n json = {};\n }\n\n var isEmpty = true;\n var children = link.children;\n\n if (link.getNode().isFile()) {\n children = (_a = {}, _a[link.getName()] = link.parent.getChild(link.getName()), _a);\n link = link.parent;\n }\n\n for (var name_2 in children) {\n isEmpty = false;\n var child = link.getChild(name_2);\n\n if (!child) {\n throw new Error(\"_toJSON: unexpected undefined\");\n }\n\n var node = child.getNode();\n\n if (node.isFile()) {\n var filename = child.getPath();\n if (path) filename = relative(path, filename);\n json[filename] = node.getString();\n } else if (node.isDirectory()) {\n this._toJSON(child, json, path);\n }\n }\n\n var dirPath = link.getPath();\n if (path) dirPath = relative(path, dirPath);\n\n if (dirPath && isEmpty) {\n json[dirPath] = null;\n }\n\n return json;\n };\n\n Volume.prototype.toJSON = function (paths, json, isRelative) {\n if (json === void 0) {\n json = {};\n }\n\n if (isRelative === void 0) {\n isRelative = false;\n }\n\n var links = [];\n\n if (paths) {\n if (!(paths instanceof Array)) paths = [paths];\n\n for (var _i = 0, paths_1 = paths; _i < paths_1.length; _i++) {\n var path = paths_1[_i];\n var filename = pathToFilename(path);\n var link = this.getResolvedLink(filename);\n if (!link) continue;\n links.push(link);\n }\n } else {\n links.push(this.root);\n }\n\n if (!links.length) return json;\n\n for (var _a = 0, links_1 = links; _a < links_1.length; _a++) {\n var link = links_1[_a];\n\n this._toJSON(link, json, isRelative ? link.getPath() : \"\");\n }\n\n return json;\n };\n\n Volume.prototype.fromJSON = function (json, cwd) {\n if (cwd === void 0) {\n cwd = process_1.default.cwd();\n }\n\n for (var filename in json) {\n var data = json[filename];\n filename = resolve(filename, cwd);\n\n if (typeof data === \"string\") {\n var dir = dirname(filename);\n this.mkdirpBase(dir, 511\n /* DIR */\n );\n this.writeFileSync(filename, data);\n } else {\n this.mkdirpBase(filename, 511\n /* DIR */\n );\n }\n }\n };\n\n Volume.prototype.fromNestedJSON = function (json, cwd) {\n this.fromJSON(flattenJSON(json), cwd);\n };\n\n Volume.prototype.reset = function () {\n this.ino = 0;\n this.inodes = {};\n this.releasedInos = [];\n this.fds = {};\n this.releasedFds = [];\n this.openFiles = 0;\n this.root = this.createLink();\n this.root.setNode(this.createNode(true));\n }; // Legacy interface\n\n\n Volume.prototype.mountSync = function (mountpoint, json) {\n this.fromJSON(json, mountpoint);\n };\n\n Volume.prototype.openLink = function (link, flagsNum, resolveSymlinks) {\n if (resolveSymlinks === void 0) {\n resolveSymlinks = true;\n }\n\n if (this.openFiles >= this.maxFiles) {\n // Too many open files.\n throw createError(EMFILE, \"open\", link.getPath());\n } // Resolve symlinks.\n\n\n var realLink = link;\n if (resolveSymlinks) realLink = this.resolveSymlinks(link);\n if (!realLink) throw createError(ENOENT, \"open\", link.getPath());\n var node = realLink.getNode(); // Check whether node is a directory\n\n if (node.isDirectory()) {\n if ((flagsNum & (O_RDONLY | O_RDWR | O_WRONLY)) !== O_RDONLY) throw createError(EISDIR, \"open\", link.getPath());\n } else {\n if (flagsNum & O_DIRECTORY) throw createError(ENOTDIR, \"open\", link.getPath());\n } // Check node permissions\n\n\n if (!(flagsNum & O_WRONLY)) {\n if (!node.canRead()) {\n throw createError(EACCES, \"open\", link.getPath());\n }\n }\n\n var file = new this.props.File(link, node, flagsNum, this.newFdNumber());\n this.fds[file.fd] = file;\n this.openFiles++;\n if (flagsNum & O_TRUNC) file.truncate();\n return file;\n };\n\n Volume.prototype.openFile = function (filename, flagsNum, modeNum, resolveSymlinks) {\n if (resolveSymlinks === void 0) {\n resolveSymlinks = true;\n }\n\n var steps = filenameToSteps(filename);\n var link = resolveSymlinks ? this.getResolvedLink(steps) : this.getLink(steps); // Try creating a new file, if it does not exist.\n\n if (!link && flagsNum & O_CREAT) {\n // const dirLink: Link = this.getLinkParent(steps);\n var dirLink = this.getResolvedLink(steps.slice(0, steps.length - 1)); // if(!dirLink) throw createError(ENOENT, 'open', filename);\n\n if (!dirLink) throw createError(ENOENT, \"open\", sep + steps.join(sep));\n\n if (flagsNum & O_CREAT && typeof modeNum === \"number\") {\n link = this.createLink(dirLink, steps[steps.length - 1], false, modeNum);\n }\n }\n\n if (link) return this.openLink(link, flagsNum, resolveSymlinks);\n throw createError(ENOENT, \"open\", filename);\n };\n\n Volume.prototype.openBase = function (filename, flagsNum, modeNum, resolveSymlinks) {\n if (resolveSymlinks === void 0) {\n resolveSymlinks = true;\n }\n\n var file = this.openFile(filename, flagsNum, modeNum, resolveSymlinks);\n if (!file) throw createError(ENOENT, \"open\", filename);\n return file.fd;\n };\n\n Volume.prototype.openSync = function (path, flags, mode) {\n if (mode === void 0) {\n mode = 438\n /* DEFAULT */\n ;\n } // Validate (1) mode; (2) path; (3) flags - in that order.\n\n\n var modeNum = modeToNumber(mode);\n var fileName = pathToFilename(path);\n var flagsNum = flagsToNumber(flags);\n return this.openBase(fileName, flagsNum, modeNum);\n };\n\n Volume.prototype.open = function (path, flags, a, b) {\n var mode = a;\n var callback = b;\n\n if (typeof a === \"function\") {\n mode = 438\n /* DEFAULT */\n ;\n callback = a;\n }\n\n mode = mode || 438\n /* DEFAULT */\n ;\n var modeNum = modeToNumber(mode);\n var fileName = pathToFilename(path);\n var flagsNum = flagsToNumber(flags);\n this.wrapAsync(this.openBase, [fileName, flagsNum, modeNum], callback);\n };\n\n Volume.prototype.closeFile = function (file) {\n if (!this.fds[file.fd]) return;\n this.openFiles--;\n delete this.fds[file.fd];\n this.releasedFds.push(file.fd);\n };\n\n Volume.prototype.closeSync = function (fd) {\n validateFd(fd);\n var file = this.getFileByFdOrThrow(fd, \"close\");\n this.closeFile(file);\n };\n\n Volume.prototype.close = function (fd, callback) {\n validateFd(fd);\n this.wrapAsync(this.closeSync, [fd], callback);\n };\n\n Volume.prototype.openFileOrGetById = function (id, flagsNum, modeNum) {\n if (typeof id === \"number\") {\n var file = this.fds[id];\n if (!file) throw createError(ENOENT);\n return file;\n } else {\n return this.openFile(pathToFilename(id), flagsNum, modeNum);\n }\n };\n\n Volume.prototype.readBase = function (fd, buffer, offset, length, position) {\n var file = this.getFileByFdOrThrow(fd);\n return file.read(buffer, Number(offset), Number(length), position);\n };\n\n Volume.prototype.readSync = function (fd, buffer, offset, length, position) {\n validateFd(fd);\n return this.readBase(fd, buffer, offset, length, position);\n };\n\n Volume.prototype.read = function (fd, buffer, offset, length, position, callback) {\n var _this = this;\n\n validateCallback(callback); // This `if` branch is from Node.js\n\n if (length === 0) {\n return process_1.default.nextTick(function () {\n if (callback) callback(null, 0, buffer);\n });\n }\n\n (0, setImmediate_1.default)(function () {\n try {\n var bytes = _this.readBase(fd, buffer, offset, length, position);\n\n callback(null, bytes, buffer);\n } catch (err) {\n callback(err);\n }\n });\n };\n\n Volume.prototype.readFileBase = function (id, flagsNum, encoding) {\n var result;\n var isUserFd = typeof id === \"number\";\n var userOwnsFd = isUserFd && isFd(id);\n var fd;\n if (userOwnsFd) fd = id;else {\n var filename = pathToFilename(id);\n var steps = filenameToSteps(filename);\n var link = this.getResolvedLink(steps);\n\n if (link) {\n var node = link.getNode();\n if (node.isDirectory()) throw createError(EISDIR, \"open\", link.getPath());\n }\n\n fd = this.openSync(id, flagsNum);\n }\n\n try {\n result = bufferToEncoding(this.getFileByFdOrThrow(fd).getBuffer(), encoding);\n } finally {\n if (!userOwnsFd) {\n this.closeSync(fd);\n }\n }\n\n return result;\n };\n\n Volume.prototype.readFileSync = function (file, options) {\n var opts = getReadFileOptions(options);\n var flagsNum = flagsToNumber(opts.flag);\n return this.readFileBase(file, flagsNum, opts.encoding);\n };\n\n Volume.prototype.readFile = function (id, a, b) {\n var _a = optsAndCbGenerator(getReadFileOptions)(a, b),\n opts = _a[0],\n callback = _a[1];\n\n var flagsNum = flagsToNumber(opts.flag);\n this.wrapAsync(this.readFileBase, [id, flagsNum, opts.encoding], callback);\n };\n\n Volume.prototype.writeBase = function (fd, buf, offset, length, position) {\n var file = this.getFileByFdOrThrow(fd, \"write\");\n return file.write(buf, offset, length, position);\n };\n\n Volume.prototype.writeSync = function (fd, a, b, c, d) {\n validateFd(fd);\n var encoding;\n var offset;\n var length;\n var position;\n var isBuffer = typeof a !== \"string\";\n\n if (isBuffer) {\n offset = (b || 0) | 0;\n length = c;\n position = d;\n } else {\n position = b;\n encoding = c;\n }\n\n var buf = dataToBuffer(a, encoding);\n\n if (isBuffer) {\n if (typeof length === \"undefined\") {\n length = buf.length;\n }\n } else {\n offset = 0;\n length = buf.length;\n }\n\n return this.writeBase(fd, buf, offset, length, position);\n };\n\n Volume.prototype.write = function (fd, a, b, c, d, e) {\n var _this = this;\n\n validateFd(fd);\n var offset;\n var length;\n var position;\n var encoding;\n var callback;\n var tipa = typeof a;\n var tipb = typeof b;\n var tipc = typeof c;\n var tipd = typeof d;\n\n if (tipa !== \"string\") {\n if (tipb === \"function\") {\n callback = b;\n } else if (tipc === \"function\") {\n offset = b | 0;\n callback = c;\n } else if (tipd === \"function\") {\n offset = b | 0;\n length = c;\n callback = d;\n } else {\n offset = b | 0;\n length = c;\n position = d;\n callback = e;\n }\n } else {\n if (tipb === \"function\") {\n callback = b;\n } else if (tipc === \"function\") {\n position = b;\n callback = c;\n } else if (tipd === \"function\") {\n position = b;\n encoding = c;\n callback = d;\n }\n }\n\n var buf = dataToBuffer(a, encoding);\n\n if (tipa !== \"string\") {\n if (typeof length === \"undefined\") length = buf.length;\n } else {\n offset = 0;\n length = buf.length;\n }\n\n var cb = validateCallback(callback);\n (0, setImmediate_1.default)(function () {\n try {\n var bytes = _this.writeBase(fd, buf, offset, length, position);\n\n if (tipa !== \"string\") {\n cb(null, bytes, buf);\n } else {\n cb(null, bytes, a);\n }\n } catch (err) {\n cb(err);\n }\n });\n };\n\n Volume.prototype.writeFileBase = function (id, buf, flagsNum, modeNum) {\n // console.log('writeFileBase', id, buf, flagsNum, modeNum);\n // const node = this.getNodeByIdOrCreate(id, flagsNum, modeNum);\n // node.setBuffer(buf);\n var isUserFd = typeof id === \"number\";\n var fd;\n if (isUserFd) fd = id;else {\n fd = this.openBase(pathToFilename(id), flagsNum, modeNum); // fd = this.openSync(id as PathLike, flagsNum, modeNum);\n }\n var offset = 0;\n var length = buf.length;\n var position = flagsNum & O_APPEND ? undefined : 0;\n\n try {\n while (length > 0) {\n var written = this.writeSync(fd, buf, offset, length, position);\n offset += written;\n length -= written;\n if (position !== undefined) position += written;\n }\n } finally {\n if (!isUserFd) this.closeSync(fd);\n }\n };\n\n Volume.prototype.writeFileSync = function (id, data, options) {\n var opts = getWriteFileOptions(options);\n var flagsNum = flagsToNumber(opts.flag);\n var modeNum = modeToNumber(opts.mode);\n var buf = dataToBuffer(data, opts.encoding);\n this.writeFileBase(id, buf, flagsNum, modeNum);\n };\n\n Volume.prototype.writeFile = function (id, data, a, b) {\n var options = a;\n var callback = b;\n\n if (typeof a === \"function\") {\n options = writeFileDefaults;\n callback = a;\n }\n\n var cb = validateCallback(callback);\n var opts = getWriteFileOptions(options);\n var flagsNum = flagsToNumber(opts.flag);\n var modeNum = modeToNumber(opts.mode);\n var buf = dataToBuffer(data, opts.encoding);\n this.wrapAsync(this.writeFileBase, [id, buf, flagsNum, modeNum], cb);\n };\n\n Volume.prototype.linkBase = function (filename1, filename2) {\n var steps1 = filenameToSteps(filename1);\n var link1 = this.getLink(steps1);\n if (!link1) throw createError(ENOENT, \"link\", filename1, filename2);\n var steps2 = filenameToSteps(filename2); // Check new link directory exists.\n\n var dir2 = this.getLinkParent(steps2);\n if (!dir2) throw createError(ENOENT, \"link\", filename1, filename2);\n var name = steps2[steps2.length - 1]; // Check if new file already exists.\n\n if (dir2.getChild(name)) throw createError(EEXIST, \"link\", filename1, filename2);\n var node = link1.getNode();\n node.nlink++;\n dir2.createChild(name, node);\n };\n\n Volume.prototype.copyFileBase = function (src, dest, flags) {\n var buf = this.readFileSync(src);\n\n if (flags & COPYFILE_EXCL) {\n if (this.existsSync(dest)) {\n throw createError(EEXIST, \"copyFile\", src, dest);\n }\n }\n\n if (flags & COPYFILE_FICLONE_FORCE) {\n throw createError(ENOSYS, \"copyFile\", src, dest);\n }\n\n this.writeFileBase(dest, buf, FLAGS.w, 438\n /* DEFAULT */\n );\n };\n\n Volume.prototype.copyFileSync = function (src, dest, flags) {\n var srcFilename = pathToFilename(src);\n var destFilename = pathToFilename(dest);\n return this.copyFileBase(srcFilename, destFilename, (flags || 0) | 0);\n };\n\n Volume.prototype.copyFile = function (src, dest, a, b) {\n var srcFilename = pathToFilename(src);\n var destFilename = pathToFilename(dest);\n var flags;\n var callback;\n\n if (typeof a === \"function\") {\n flags = 0;\n callback = a;\n } else {\n flags = a;\n callback = b;\n }\n\n validateCallback(callback);\n this.wrapAsync(this.copyFileBase, [srcFilename, destFilename, flags], callback);\n };\n\n Volume.prototype.linkSync = function (existingPath, newPath) {\n var existingPathFilename = pathToFilename(existingPath);\n var newPathFilename = pathToFilename(newPath);\n this.linkBase(existingPathFilename, newPathFilename);\n };\n\n Volume.prototype.link = function (existingPath, newPath, callback) {\n var existingPathFilename = pathToFilename(existingPath);\n var newPathFilename = pathToFilename(newPath);\n this.wrapAsync(this.linkBase, [existingPathFilename, newPathFilename], callback);\n };\n\n Volume.prototype.unlinkBase = function (filename) {\n var steps = filenameToSteps(filename);\n var link = this.getLink(steps);\n if (!link) throw createError(ENOENT, \"unlink\", filename); // TODO: Check if it is file, dir, other...\n\n if (link.length) throw Error(\"Dir not empty...\");\n this.deleteLink(link);\n var node = link.getNode();\n node.nlink--; // When all hard links to i-node are deleted, remove the i-node, too.\n\n if (node.nlink <= 0) {\n this.deleteNode(node);\n }\n };\n\n Volume.prototype.unlinkSync = function (path) {\n var filename = pathToFilename(path);\n this.unlinkBase(filename);\n };\n\n Volume.prototype.unlink = function (path, callback) {\n var filename = pathToFilename(path);\n this.wrapAsync(this.unlinkBase, [filename], callback);\n };\n\n Volume.prototype.symlinkBase = function (targetFilename, pathFilename) {\n var pathSteps = filenameToSteps(pathFilename); // Check if directory exists, where we about to create a symlink.\n\n var dirLink = this.getLinkParent(pathSteps);\n if (!dirLink) throw createError(ENOENT, \"symlink\", targetFilename, pathFilename);\n var name = pathSteps[pathSteps.length - 1]; // Check if new file already exists.\n\n if (dirLink.getChild(name)) throw createError(EEXIST, \"symlink\", targetFilename, pathFilename); // Create symlink.\n\n var symlink = dirLink.createChild(name);\n symlink.getNode().makeSymlink(filenameToSteps(targetFilename));\n return symlink;\n }; // `type` argument works only on Windows.\n\n\n Volume.prototype.symlinkSync = function (target, path, type) {\n var targetFilename = pathToFilename(target);\n var pathFilename = pathToFilename(path);\n this.symlinkBase(targetFilename, pathFilename);\n };\n\n Volume.prototype.symlink = function (target, path, a, b) {\n var callback = validateCallback(typeof a === \"function\" ? a : b);\n var targetFilename = pathToFilename(target);\n var pathFilename = pathToFilename(path);\n this.wrapAsync(this.symlinkBase, [targetFilename, pathFilename], callback);\n };\n\n Volume.prototype.realpathBase = function (filename, encoding) {\n var steps = filenameToSteps(filename);\n var realLink = this.getResolvedLink(steps);\n if (!realLink) throw createError(ENOENT, \"realpath\", filename);\n return (0, encoding_1.strToEncoding)(realLink.getPath(), encoding);\n };\n\n Volume.prototype.realpathSync = function (path, options) {\n return this.realpathBase(pathToFilename(path), getRealpathOptions(options).encoding);\n };\n\n Volume.prototype.realpath = function (path, a, b) {\n var _a = getRealpathOptsAndCb(a, b),\n opts = _a[0],\n callback = _a[1];\n\n var pathFilename = pathToFilename(path);\n this.wrapAsync(this.realpathBase, [pathFilename, opts.encoding], callback);\n };\n\n Volume.prototype.lstatBase = function (filename, bigint) {\n if (bigint === void 0) {\n bigint = false;\n }\n\n var link = this.getLink(filenameToSteps(filename));\n if (!link) throw createError(ENOENT, \"lstat\", filename);\n return Stats_1.default.build(link.getNode(), bigint);\n };\n\n Volume.prototype.lstatSync = function (path, options) {\n return this.lstatBase(pathToFilename(path), getStatOptions(options).bigint);\n };\n\n Volume.prototype.lstat = function (path, a, b) {\n var _a = getStatOptsAndCb(a, b),\n opts = _a[0],\n callback = _a[1];\n\n this.wrapAsync(this.lstatBase, [pathToFilename(path), opts.bigint], callback);\n };\n\n Volume.prototype.statBase = function (filename, bigint) {\n if (bigint === void 0) {\n bigint = false;\n }\n\n var link = this.getResolvedLink(filenameToSteps(filename));\n if (!link) throw createError(ENOENT, \"stat\", filename);\n return Stats_1.default.build(link.getNode(), bigint);\n };\n\n Volume.prototype.statSync = function (path, options) {\n return this.statBase(pathToFilename(path), getStatOptions(options).bigint);\n };\n\n Volume.prototype.stat = function (path, a, b) {\n var _a = getStatOptsAndCb(a, b),\n opts = _a[0],\n callback = _a[1];\n\n this.wrapAsync(this.statBase, [pathToFilename(path), opts.bigint], callback);\n };\n\n Volume.prototype.fstatBase = function (fd, bigint) {\n if (bigint === void 0) {\n bigint = false;\n }\n\n var file = this.getFileByFd(fd);\n if (!file) throw createError(EBADF, \"fstat\");\n return Stats_1.default.build(file.node, bigint);\n };\n\n Volume.prototype.fstatSync = function (fd, options) {\n return this.fstatBase(fd, getStatOptions(options).bigint);\n };\n\n Volume.prototype.fstat = function (fd, a, b) {\n var _a = getStatOptsAndCb(a, b),\n opts = _a[0],\n callback = _a[1];\n\n this.wrapAsync(this.fstatBase, [fd, opts.bigint], callback);\n };\n\n Volume.prototype.renameBase = function (oldPathFilename, newPathFilename) {\n var link = this.getLink(filenameToSteps(oldPathFilename));\n if (!link) throw createError(ENOENT, \"rename\", oldPathFilename, newPathFilename); // TODO: Check if it is directory, if non-empty, we cannot move it, right?\n\n var newPathSteps = filenameToSteps(newPathFilename); // Check directory exists for the new location.\n\n var newPathDirLink = this.getLinkParent(newPathSteps);\n if (!newPathDirLink) throw createError(ENOENT, \"rename\", oldPathFilename, newPathFilename); // TODO: Also treat cases with directories and symbolic links.\n // TODO: See: http://man7.org/linux/man-pages/man2/rename.2.html\n // Remove hard link from old folder.\n\n var oldLinkParent = link.parent;\n\n if (oldLinkParent) {\n oldLinkParent.deleteChild(link);\n } // Rename should overwrite the new path, if that exists.\n\n\n var name = newPathSteps[newPathSteps.length - 1];\n link.steps = __spreadArray(__spreadArray([], newPathDirLink.steps, true), [name], false);\n newPathDirLink.setChild(link.getName(), link);\n };\n\n Volume.prototype.renameSync = function (oldPath, newPath) {\n var oldPathFilename = pathToFilename(oldPath);\n var newPathFilename = pathToFilename(newPath);\n this.renameBase(oldPathFilename, newPathFilename);\n };\n\n Volume.prototype.rename = function (oldPath, newPath, callback) {\n var oldPathFilename = pathToFilename(oldPath);\n var newPathFilename = pathToFilename(newPath);\n this.wrapAsync(this.renameBase, [oldPathFilename, newPathFilename], callback);\n };\n\n Volume.prototype.existsBase = function (filename) {\n return !!this.statBase(filename);\n };\n\n Volume.prototype.existsSync = function (path) {\n try {\n return this.existsBase(pathToFilename(path));\n } catch (err) {\n return false;\n }\n };\n\n Volume.prototype.exists = function (path, callback) {\n var _this = this;\n\n var filename = pathToFilename(path);\n if (typeof callback !== \"function\") throw Error(ERRSTR.CB);\n (0, setImmediate_1.default)(function () {\n try {\n callback(_this.existsBase(filename));\n } catch (err) {\n callback(false);\n }\n });\n };\n\n Volume.prototype.accessBase = function (filename, mode) {\n this.getLinkOrThrow(filename, \"access\"); // TODO: Verify permissions\n };\n\n Volume.prototype.accessSync = function (path, mode) {\n if (mode === void 0) {\n mode = F_OK;\n }\n\n var filename = pathToFilename(path);\n mode = mode | 0;\n this.accessBase(filename, mode);\n };\n\n Volume.prototype.access = function (path, a, b) {\n var mode = F_OK;\n var callback;\n\n if (typeof a !== \"function\") {\n mode = a | 0; // cast to number\n\n callback = validateCallback(b);\n } else {\n callback = a;\n }\n\n var filename = pathToFilename(path);\n this.wrapAsync(this.accessBase, [filename, mode], callback);\n };\n\n Volume.prototype.appendFileSync = function (id, data, options) {\n if (options === void 0) {\n options = appendFileDefaults;\n }\n\n var opts = getAppendFileOpts(options); // force append behavior when using a supplied file descriptor\n\n if (!opts.flag || isFd(id)) opts.flag = \"a\";\n this.writeFileSync(id, data, opts);\n };\n\n Volume.prototype.appendFile = function (id, data, a, b) {\n var _a = getAppendFileOptsAndCb(a, b),\n opts = _a[0],\n callback = _a[1]; // force append behavior when using a supplied file descriptor\n\n\n if (!opts.flag || isFd(id)) opts.flag = \"a\";\n this.writeFile(id, data, opts, callback);\n };\n\n Volume.prototype.readdirBase = function (filename, options) {\n var steps = filenameToSteps(filename);\n var link = this.getResolvedLink(steps);\n if (!link) throw createError(ENOENT, \"readdir\", filename);\n var node = link.getNode();\n if (!node.isDirectory()) throw createError(ENOTDIR, \"scandir\", filename);\n\n if (options.withFileTypes) {\n var list_1 = [];\n\n for (var name_3 in link.children) {\n var child = link.getChild(name_3);\n\n if (!child) {\n continue;\n }\n\n list_1.push(Dirent_1.default.build(child, options.encoding));\n }\n\n if (!isWin && options.encoding !== \"buffer\") list_1.sort(function (a, b) {\n if (a.name < b.name) return -1;\n if (a.name > b.name) return 1;\n return 0;\n });\n return list_1;\n }\n\n var list = [];\n\n for (var name_4 in link.children) {\n list.push((0, encoding_1.strToEncoding)(name_4, options.encoding));\n }\n\n if (!isWin && options.encoding !== \"buffer\") list.sort();\n return list;\n };\n\n Volume.prototype.readdirSync = function (path, options) {\n var opts = getReaddirOptions(options);\n var filename = pathToFilename(path);\n return this.readdirBase(filename, opts);\n };\n\n Volume.prototype.readdir = function (path, a, b) {\n var _a = getReaddirOptsAndCb(a, b),\n options = _a[0],\n callback = _a[1];\n\n var filename = pathToFilename(path);\n this.wrapAsync(this.readdirBase, [filename, options], callback);\n };\n\n Volume.prototype.readlinkBase = function (filename, encoding) {\n var link = this.getLinkOrThrow(filename, \"readlink\");\n var node = link.getNode();\n if (!node.isSymlink()) throw createError(EINVAL, \"readlink\", filename);\n var str = sep + node.symlink.join(sep);\n return (0, encoding_1.strToEncoding)(str, encoding);\n };\n\n Volume.prototype.readlinkSync = function (path, options) {\n var opts = getDefaultOpts(options);\n var filename = pathToFilename(path);\n return this.readlinkBase(filename, opts.encoding);\n };\n\n Volume.prototype.readlink = function (path, a, b) {\n var _a = getDefaultOptsAndCb(a, b),\n opts = _a[0],\n callback = _a[1];\n\n var filename = pathToFilename(path);\n this.wrapAsync(this.readlinkBase, [filename, opts.encoding], callback);\n };\n\n Volume.prototype.fsyncBase = function (fd) {\n this.getFileByFdOrThrow(fd, \"fsync\");\n };\n\n Volume.prototype.fsyncSync = function (fd) {\n this.fsyncBase(fd);\n };\n\n Volume.prototype.fsync = function (fd, callback) {\n this.wrapAsync(this.fsyncBase, [fd], callback);\n };\n\n Volume.prototype.fdatasyncBase = function (fd) {\n this.getFileByFdOrThrow(fd, \"fdatasync\");\n };\n\n Volume.prototype.fdatasyncSync = function (fd) {\n this.fdatasyncBase(fd);\n };\n\n Volume.prototype.fdatasync = function (fd, callback) {\n this.wrapAsync(this.fdatasyncBase, [fd], callback);\n };\n\n Volume.prototype.ftruncateBase = function (fd, len) {\n var file = this.getFileByFdOrThrow(fd, \"ftruncate\");\n file.truncate(len);\n };\n\n Volume.prototype.ftruncateSync = function (fd, len) {\n this.ftruncateBase(fd, len);\n };\n\n Volume.prototype.ftruncate = function (fd, a, b) {\n var len = typeof a === \"number\" ? a : 0;\n var callback = validateCallback(typeof a === \"number\" ? b : a);\n this.wrapAsync(this.ftruncateBase, [fd, len], callback);\n };\n\n Volume.prototype.truncateBase = function (path, len) {\n var fd = this.openSync(path, \"r+\");\n\n try {\n this.ftruncateSync(fd, len);\n } finally {\n this.closeSync(fd);\n }\n };\n\n Volume.prototype.truncateSync = function (id, len) {\n if (isFd(id)) return this.ftruncateSync(id, len);\n this.truncateBase(id, len);\n };\n\n Volume.prototype.truncate = function (id, a, b) {\n var len = typeof a === \"number\" ? a : 0;\n var callback = validateCallback(typeof a === \"number\" ? b : a);\n if (isFd(id)) return this.ftruncate(id, len, callback);\n this.wrapAsync(this.truncateBase, [id, len], callback);\n };\n\n Volume.prototype.futimesBase = function (fd, atime, mtime) {\n var file = this.getFileByFdOrThrow(fd, \"futimes\");\n var node = file.node;\n node.atime = new Date(atime * 1000);\n node.mtime = new Date(mtime * 1000);\n };\n\n Volume.prototype.futimesSync = function (fd, atime, mtime) {\n this.futimesBase(fd, toUnixTimestamp(atime), toUnixTimestamp(mtime));\n };\n\n Volume.prototype.futimes = function (fd, atime, mtime, callback) {\n this.wrapAsync(this.futimesBase, [fd, toUnixTimestamp(atime), toUnixTimestamp(mtime)], callback);\n };\n\n Volume.prototype.utimesBase = function (filename, atime, mtime) {\n var fd = this.openSync(filename, \"r+\");\n\n try {\n this.futimesBase(fd, atime, mtime);\n } finally {\n this.closeSync(fd);\n }\n };\n\n Volume.prototype.utimesSync = function (path, atime, mtime) {\n this.utimesBase(pathToFilename(path), toUnixTimestamp(atime), toUnixTimestamp(mtime));\n };\n\n Volume.prototype.utimes = function (path, atime, mtime, callback) {\n this.wrapAsync(this.utimesBase, [pathToFilename(path), toUnixTimestamp(atime), toUnixTimestamp(mtime)], callback);\n };\n\n Volume.prototype.mkdirBase = function (filename, modeNum) {\n var steps = filenameToSteps(filename); // This will throw if user tries to create root dir `fs.mkdirSync('/')`.\n\n if (!steps.length) {\n throw createError(EEXIST, \"mkdir\", filename);\n }\n\n var dir = this.getLinkParentAsDirOrThrow(filename, \"mkdir\"); // Check path already exists.\n\n var name = steps[steps.length - 1];\n if (dir.getChild(name)) throw createError(EEXIST, \"mkdir\", filename);\n dir.createChild(name, this.createNode(true, modeNum));\n };\n /**\n * Creates directory tree recursively.\n * @param filename\n * @param modeNum\n */\n\n\n Volume.prototype.mkdirpBase = function (filename, modeNum) {\n var steps = filenameToSteps(filename);\n var link = this.root;\n\n for (var i = 0; i < steps.length; i++) {\n var step = steps[i];\n if (!link.getNode().isDirectory()) throw createError(ENOTDIR, \"mkdir\", link.getPath());\n var child = link.getChild(step);\n\n if (child) {\n if (child.getNode().isDirectory()) link = child;else throw createError(ENOTDIR, \"mkdir\", child.getPath());\n } else {\n link = link.createChild(step, this.createNode(true, modeNum));\n }\n }\n };\n\n Volume.prototype.mkdirSync = function (path, options) {\n var opts = getMkdirOptions(options);\n var modeNum = modeToNumber(opts.mode, 511);\n var filename = pathToFilename(path);\n if (opts.recursive) this.mkdirpBase(filename, modeNum);else this.mkdirBase(filename, modeNum);\n };\n\n Volume.prototype.mkdir = function (path, a, b) {\n var opts = getMkdirOptions(a);\n var callback = validateCallback(typeof a === \"function\" ? a : b);\n var modeNum = modeToNumber(opts.mode, 511);\n var filename = pathToFilename(path);\n if (opts.recursive) this.wrapAsync(this.mkdirpBase, [filename, modeNum], callback);else this.wrapAsync(this.mkdirBase, [filename, modeNum], callback);\n }; // legacy interface\n\n\n Volume.prototype.mkdirpSync = function (path, mode) {\n this.mkdirSync(path, {\n mode: mode,\n recursive: true\n });\n };\n\n Volume.prototype.mkdirp = function (path, a, b) {\n var mode = typeof a === \"function\" ? undefined : a;\n var callback = validateCallback(typeof a === \"function\" ? a : b);\n this.mkdir(path, {\n mode: mode,\n recursive: true\n }, callback);\n };\n\n Volume.prototype.mkdtempBase = function (prefix, encoding, retry) {\n if (retry === void 0) {\n retry = 5;\n }\n\n var filename = prefix + this.genRndStr();\n\n try {\n this.mkdirBase(filename, 511\n /* DIR */\n );\n return (0, encoding_1.strToEncoding)(filename, encoding);\n } catch (err) {\n if (err.code === EEXIST) {\n if (retry > 1) return this.mkdtempBase(prefix, encoding, retry - 1);else throw Error(\"Could not create temp dir.\");\n } else throw err;\n }\n };\n\n Volume.prototype.mkdtempSync = function (prefix, options) {\n var encoding = getDefaultOpts(options).encoding;\n if (!prefix || typeof prefix !== \"string\") throw new TypeError(\"filename prefix is required\");\n nullCheck(prefix);\n return this.mkdtempBase(prefix, encoding);\n };\n\n Volume.prototype.mkdtemp = function (prefix, a, b) {\n var _a = getDefaultOptsAndCb(a, b),\n encoding = _a[0].encoding,\n callback = _a[1];\n\n if (!prefix || typeof prefix !== \"string\") throw new TypeError(\"filename prefix is required\");\n if (!nullCheck(prefix)) return;\n this.wrapAsync(this.mkdtempBase, [prefix, encoding], callback);\n };\n\n Volume.prototype.rmdirBase = function (filename, options) {\n var opts = getRmdirOptions(options);\n var link = this.getLinkAsDirOrThrow(filename, \"rmdir\"); // Check directory is empty.\n\n if (link.length && !opts.recursive) throw createError(ENOTEMPTY, \"rmdir\", filename);\n this.deleteLink(link);\n };\n\n Volume.prototype.rmdirSync = function (path, options) {\n this.rmdirBase(pathToFilename(path), options);\n };\n\n Volume.prototype.rmdir = function (path, a, b) {\n var opts = getRmdirOptions(a);\n var callback = validateCallback(typeof a === \"function\" ? a : b);\n this.wrapAsync(this.rmdirBase, [pathToFilename(path), opts], callback);\n };\n\n Volume.prototype.fchmodBase = function (fd, modeNum) {\n var file = this.getFileByFdOrThrow(fd, \"fchmod\");\n file.chmod(modeNum);\n };\n\n Volume.prototype.fchmodSync = function (fd, mode) {\n this.fchmodBase(fd, modeToNumber(mode));\n };\n\n Volume.prototype.fchmod = function (fd, mode, callback) {\n this.wrapAsync(this.fchmodBase, [fd, modeToNumber(mode)], callback);\n };\n\n Volume.prototype.chmodBase = function (filename, modeNum) {\n var fd = this.openSync(filename, \"r+\");\n\n try {\n this.fchmodBase(fd, modeNum);\n } finally {\n this.closeSync(fd);\n }\n };\n\n Volume.prototype.chmodSync = function (path, mode) {\n var modeNum = modeToNumber(mode);\n var filename = pathToFilename(path);\n this.chmodBase(filename, modeNum);\n };\n\n Volume.prototype.chmod = function (path, mode, callback) {\n var modeNum = modeToNumber(mode);\n var filename = pathToFilename(path);\n this.wrapAsync(this.chmodBase, [filename, modeNum], callback);\n };\n\n Volume.prototype.lchmodBase = function (filename, modeNum) {\n var fd = this.openBase(filename, O_RDWR, 0, false);\n\n try {\n this.fchmodBase(fd, modeNum);\n } finally {\n this.closeSync(fd);\n }\n };\n\n Volume.prototype.lchmodSync = function (path, mode) {\n var modeNum = modeToNumber(mode);\n var filename = pathToFilename(path);\n this.lchmodBase(filename, modeNum);\n };\n\n Volume.prototype.lchmod = function (path, mode, callback) {\n var modeNum = modeToNumber(mode);\n var filename = pathToFilename(path);\n this.wrapAsync(this.lchmodBase, [filename, modeNum], callback);\n };\n\n Volume.prototype.fchownBase = function (fd, uid, gid) {\n this.getFileByFdOrThrow(fd, \"fchown\").chown(uid, gid);\n };\n\n Volume.prototype.fchownSync = function (fd, uid, gid) {\n validateUid(uid);\n validateGid(gid);\n this.fchownBase(fd, uid, gid);\n };\n\n Volume.prototype.fchown = function (fd, uid, gid, callback) {\n validateUid(uid);\n validateGid(gid);\n this.wrapAsync(this.fchownBase, [fd, uid, gid], callback);\n };\n\n Volume.prototype.chownBase = function (filename, uid, gid) {\n var link = this.getResolvedLinkOrThrow(filename, \"chown\");\n var node = link.getNode();\n node.chown(uid, gid); // if(node.isFile() || node.isSymlink()) {\n //\n // } else if(node.isDirectory()) {\n //\n // } else {\n // TODO: What do we do here?\n // }\n };\n\n Volume.prototype.chownSync = function (path, uid, gid) {\n validateUid(uid);\n validateGid(gid);\n this.chownBase(pathToFilename(path), uid, gid);\n };\n\n Volume.prototype.chown = function (path, uid, gid, callback) {\n validateUid(uid);\n validateGid(gid);\n this.wrapAsync(this.chownBase, [pathToFilename(path), uid, gid], callback);\n };\n\n Volume.prototype.lchownBase = function (filename, uid, gid) {\n this.getLinkOrThrow(filename, \"lchown\").getNode().chown(uid, gid);\n };\n\n Volume.prototype.lchownSync = function (path, uid, gid) {\n validateUid(uid);\n validateGid(gid);\n this.lchownBase(pathToFilename(path), uid, gid);\n };\n\n Volume.prototype.lchown = function (path, uid, gid, callback) {\n validateUid(uid);\n validateGid(gid);\n this.wrapAsync(this.lchownBase, [pathToFilename(path), uid, gid], callback);\n };\n\n Volume.prototype.watchFile = function (path, a, b) {\n var filename = pathToFilename(path);\n var options = a;\n var listener = b;\n\n if (typeof options === \"function\") {\n listener = a;\n options = null;\n }\n\n if (typeof listener !== \"function\") {\n throw Error(\"\\\"watchFile()\\\" requires a listener function\");\n }\n\n var interval = 5007;\n var persistent = true;\n\n if (options && typeof options === \"object\") {\n if (typeof options.interval === \"number\") interval = options.interval;\n if (typeof options.persistent === \"boolean\") persistent = options.persistent;\n }\n\n var watcher = this.statWatchers[filename];\n\n if (!watcher) {\n watcher = new this.StatWatcher();\n watcher.start(filename, persistent, interval);\n this.statWatchers[filename] = watcher;\n }\n\n watcher.addListener(\"change\", listener);\n return watcher;\n };\n\n Volume.prototype.unwatchFile = function (path, listener) {\n var filename = pathToFilename(path);\n var watcher = this.statWatchers[filename];\n if (!watcher) return;\n\n if (typeof listener === \"function\") {\n watcher.removeListener(\"change\", listener);\n } else {\n watcher.removeAllListeners(\"change\");\n }\n\n if (watcher.listenerCount(\"change\") === 0) {\n watcher.stop();\n delete this.statWatchers[filename];\n }\n };\n\n Volume.prototype.createReadStream = function (path, options) {\n return new this.ReadStream(path, options);\n };\n\n Volume.prototype.createWriteStream = function (path, options) {\n return new this.WriteStream(path, options);\n }; // watch(path: PathLike): FSWatcher;\n // watch(path: PathLike, options?: IWatchOptions | string): FSWatcher;\n\n\n Volume.prototype.watch = function (path, options, listener) {\n var filename = pathToFilename(path);\n var givenOptions = options;\n\n if (typeof options === \"function\") {\n listener = options;\n givenOptions = null;\n } // tslint:disable-next-line prefer-const\n\n\n var _a = getDefaultOpts(givenOptions),\n persistent = _a.persistent,\n recursive = _a.recursive,\n encoding = _a.encoding;\n\n if (persistent === undefined) persistent = true;\n if (recursive === undefined) recursive = false;\n var watcher = new this.FSWatcher();\n watcher.start(filename, persistent, recursive, encoding);\n\n if (listener) {\n watcher.addListener(\"change\", listener);\n }\n\n return watcher;\n };\n /**\n * Global file descriptor counter. UNIX file descriptors start from 0 and go sequentially\n * up, so here, in order not to conflict with them, we choose some big number and descrease\n * the file descriptor of every new opened file.\n * @type {number}\n * @todo This should not be static, right?\n */\n\n\n Volume.fd = 2147483647;\n return Volume;\n }();\n\n exports$4.Volume = Volume;\n\n function emitStop(self) {\n self.emit(\"stop\");\n }\n\n var StatWatcher = function (_super) {\n __extends(StatWatcher, _super);\n\n function StatWatcher(vol) {\n var _this = _super.call(this) || this;\n\n _this.onInterval = function () {\n try {\n var stats = _this.vol.statSync(_this.filename);\n\n if (_this.hasChanged(stats)) {\n _this.emit(\"change\", stats, _this.prev);\n\n _this.prev = stats;\n }\n } finally {\n _this.loop();\n }\n };\n\n _this.vol = vol;\n return _this;\n }\n\n StatWatcher.prototype.loop = function () {\n this.timeoutRef = this.setTimeout(this.onInterval, this.interval);\n };\n\n StatWatcher.prototype.hasChanged = function (stats) {\n // if(!this.prev) return false;\n if (stats.mtimeMs > this.prev.mtimeMs) return true;\n if (stats.nlink !== this.prev.nlink) return true;\n return false;\n };\n\n StatWatcher.prototype.start = function (path, persistent, interval) {\n if (persistent === void 0) {\n persistent = true;\n }\n\n if (interval === void 0) {\n interval = 5007;\n }\n\n this.filename = pathToFilename(path);\n this.setTimeout = persistent ? setTimeout.bind(typeof globalThis !== \"undefined\" ? globalThis : _global) : setTimeoutUnref_1.default;\n this.interval = interval;\n this.prev = this.vol.statSync(this.filename);\n this.loop();\n };\n\n StatWatcher.prototype.stop = function () {\n clearTimeout(this.timeoutRef);\n process_1.default.nextTick(emitStop, this);\n };\n\n return StatWatcher;\n }(events_1.EventEmitter);\n\n exports$4.StatWatcher = StatWatcher;\n var pool;\n\n function allocNewPool(poolSize) {\n pool = (0, buffer_1.bufferAllocUnsafe)(poolSize);\n pool.used = 0;\n }\n\n util.inherits(FsReadStream, stream_1.Readable);\n exports$4.ReadStream = FsReadStream;\n\n function FsReadStream(vol, path, options) {\n if (!(this instanceof FsReadStream)) return new FsReadStream(vol, path, options);\n this._vol = vol; // a little bit bigger buffer and water marks by default\n\n options = Object.assign({}, getOptions(options, {}));\n if (options.highWaterMark === undefined) options.highWaterMark = 64 * 1024;\n stream_1.Readable.call(this, options);\n this.path = pathToFilename(path);\n this.fd = options.fd === undefined ? null : options.fd;\n this.flags = options.flags === undefined ? \"r\" : options.flags;\n this.mode = options.mode === undefined ? 438 : options.mode;\n this.start = options.start;\n this.end = options.end;\n this.autoClose = options.autoClose === undefined ? true : options.autoClose;\n this.pos = undefined;\n this.bytesRead = 0;\n\n if (this.start !== undefined) {\n if (typeof this.start !== \"number\") {\n throw new TypeError(\"\\\"start\\\" option must be a Number\");\n }\n\n if (this.end === undefined) {\n this.end = Infinity;\n } else if (typeof this.end !== \"number\") {\n throw new TypeError(\"\\\"end\\\" option must be a Number\");\n }\n\n if (this.start > this.end) {\n throw new Error(\"\\\"start\\\" option must be <= \\\"end\\\" option\");\n }\n\n this.pos = this.start;\n }\n\n if (typeof this.fd !== \"number\") this.open();\n this.on(\"end\", function () {\n if (this.autoClose) {\n if (this.destroy) this.destroy();\n }\n });\n }\n\n FsReadStream.prototype.open = function () {\n var self = this; // tslint:disable-line no-this-assignment\n\n this._vol.open(this.path, this.flags, this.mode, function (er, fd) {\n if (er) {\n if (self.autoClose) {\n if (self.destroy) self.destroy();\n }\n\n self.emit(\"error\", er);\n return;\n }\n\n self.fd = fd;\n self.emit(\"open\", fd); // start the flow of data.\n\n self.read();\n });\n };\n\n FsReadStream.prototype._read = function (n) {\n if (typeof this.fd !== \"number\") {\n return this.once(\"open\", function () {\n this._read(n);\n });\n }\n\n if (this.destroyed) return;\n\n if (!pool || pool.length - pool.used < kMinPoolSpace) {\n // discard the old pool.\n allocNewPool(this._readableState.highWaterMark);\n } // Grab another reference to the pool in the case that while we're\n // in the thread pool another read() finishes up the pool, and\n // allocates a new one.\n\n\n var thisPool = pool;\n var toRead = Math.min(pool.length - pool.used, n);\n var start = pool.used;\n if (this.pos !== undefined) toRead = Math.min(this.end - this.pos + 1, toRead); // already read everything we were supposed to read!\n // treat as EOF.\n\n if (toRead <= 0) return this.push(null); // the actual read.\n\n var self = this; // tslint:disable-line no-this-assignment\n\n this._vol.read(this.fd, pool, pool.used, toRead, this.pos, onread); // move the pool positions, and internal position for reading.\n\n\n if (this.pos !== undefined) this.pos += toRead;\n pool.used += toRead;\n\n function onread(er, bytesRead) {\n if (er) {\n if (self.autoClose && self.destroy) {\n self.destroy();\n }\n\n self.emit(\"error\", er);\n } else {\n var b = null;\n\n if (bytesRead > 0) {\n self.bytesRead += bytesRead;\n b = thisPool.slice(start, start + bytesRead);\n }\n\n self.push(b);\n }\n }\n };\n\n FsReadStream.prototype._destroy = function (err, cb) {\n this.close(function (err2) {\n cb(err || err2);\n });\n };\n\n FsReadStream.prototype.close = function (cb) {\n var _this = this;\n\n if (cb) this.once(\"close\", cb);\n\n if (this.closed || typeof this.fd !== \"number\") {\n if (typeof this.fd !== \"number\") {\n this.once(\"open\", closeOnOpen);\n return;\n }\n\n return process_1.default.nextTick(function () {\n return _this.emit(\"close\");\n });\n }\n\n this.closed = true;\n\n this._vol.close(this.fd, function (er) {\n if (er) _this.emit(\"error\", er);else _this.emit(\"close\");\n });\n\n this.fd = null;\n }; // needed because as it will be called with arguments\n // that does not match this.close() signature\n\n\n function closeOnOpen(fd) {\n this.close();\n }\n\n util.inherits(FsWriteStream, stream_1.Writable);\n exports$4.WriteStream = FsWriteStream;\n\n function FsWriteStream(vol, path, options) {\n if (!(this instanceof FsWriteStream)) return new FsWriteStream(vol, path, options);\n this._vol = vol;\n options = Object.assign({}, getOptions(options, {}));\n stream_1.Writable.call(this, options);\n this.path = pathToFilename(path);\n this.fd = options.fd === undefined ? null : options.fd;\n this.flags = options.flags === undefined ? \"w\" : options.flags;\n this.mode = options.mode === undefined ? 438 : options.mode;\n this.start = options.start;\n this.autoClose = options.autoClose === undefined ? true : !!options.autoClose;\n this.pos = undefined;\n this.bytesWritten = 0;\n\n if (this.start !== undefined) {\n if (typeof this.start !== \"number\") {\n throw new TypeError(\"\\\"start\\\" option must be a Number\");\n }\n\n if (this.start < 0) {\n throw new Error(\"\\\"start\\\" must be >= zero\");\n }\n\n this.pos = this.start;\n }\n\n if (options.encoding) this.setDefaultEncoding(options.encoding);\n if (typeof this.fd !== \"number\") this.open(); // dispose on finish.\n\n this.once(\"finish\", function () {\n if (this.autoClose) {\n this.close();\n }\n });\n }\n\n FsWriteStream.prototype.open = function () {\n this._vol.open(this.path, this.flags, this.mode, function (er, fd) {\n if (er) {\n if (this.autoClose && this.destroy) {\n this.destroy();\n }\n\n this.emit(\"error\", er);\n return;\n }\n\n this.fd = fd;\n this.emit(\"open\", fd);\n }.bind(this));\n };\n\n FsWriteStream.prototype._write = function (data, encoding, cb) {\n if (!(data instanceof buffer_1.Buffer)) return this.emit(\"error\", new Error(\"Invalid data\"));\n\n if (typeof this.fd !== \"number\") {\n return this.once(\"open\", function () {\n this._write(data, encoding, cb);\n });\n }\n\n var self = this; // tslint:disable-line no-this-assignment\n\n this._vol.write(this.fd, data, 0, data.length, this.pos, function (er, bytes) {\n if (er) {\n if (self.autoClose && self.destroy) {\n self.destroy();\n }\n\n return cb(er);\n }\n\n self.bytesWritten += bytes;\n cb();\n });\n\n if (this.pos !== undefined) this.pos += data.length;\n };\n\n FsWriteStream.prototype._writev = function (data, cb) {\n if (typeof this.fd !== \"number\") {\n return this.once(\"open\", function () {\n this._writev(data, cb);\n });\n }\n\n var self = this; // tslint:disable-line no-this-assignment\n\n var len = data.length;\n var chunks = new Array(len);\n var size = 0;\n\n for (var i = 0; i < len; i++) {\n var chunk = data[i].chunk;\n chunks[i] = chunk;\n size += chunk.length;\n }\n\n var buf = buffer_1.Buffer.concat(chunks);\n\n this._vol.write(this.fd, buf, 0, buf.length, this.pos, function (er, bytes) {\n if (er) {\n if (self.destroy) self.destroy();\n return cb(er);\n }\n\n self.bytesWritten += bytes;\n cb();\n });\n\n if (this.pos !== undefined) this.pos += size;\n };\n\n FsWriteStream.prototype._destroy = FsReadStream.prototype._destroy;\n FsWriteStream.prototype.close = FsReadStream.prototype.close; // There is no shutdown() for files.\n\n FsWriteStream.prototype.destroySoon = FsWriteStream.prototype.end; // ---------------------------------------- FSWatcher\n\n var FSWatcher = function (_super) {\n __extends(FSWatcher, _super);\n\n function FSWatcher(vol) {\n var _this = _super.call(this) || this;\n\n _this._filename = \"\";\n _this._filenameEncoded = \"\"; // _persistent: boolean = true;\n\n _this._recursive = false;\n _this._encoding = encoding_1.ENCODING_UTF8;\n\n _this._onNodeChange = function () {\n _this._emit(\"change\");\n };\n\n _this._onParentChild = function (link) {\n if (link.getName() === _this._getName()) {\n _this._emit(\"rename\");\n }\n };\n\n _this._emit = function (type) {\n _this.emit(\"change\", type, _this._filenameEncoded);\n };\n\n _this._persist = function () {\n _this._timer = setTimeout(_this._persist, 1000000);\n };\n\n _this._vol = vol;\n return _this; // TODO: Emit \"error\" messages when watching.\n // this._handle.onchange = function(status, eventType, filename) {\n // if (status < 0) {\n // self._handle.close();\n // const error = !filename ?\n // errnoException(status, 'Error watching file for changes:') :\n // errnoException(status, `Error watching file ${filename} for changes:`);\n // error.filename = filename;\n // self.emit('error', error);\n // } else {\n // self.emit('change', eventType, filename);\n // }\n // };\n }\n\n FSWatcher.prototype._getName = function () {\n return this._steps[this._steps.length - 1];\n };\n\n FSWatcher.prototype.start = function (path, persistent, recursive, encoding) {\n if (persistent === void 0) {\n persistent = true;\n }\n\n if (recursive === void 0) {\n recursive = false;\n }\n\n if (encoding === void 0) {\n encoding = encoding_1.ENCODING_UTF8;\n }\n\n this._filename = pathToFilename(path);\n this._steps = filenameToSteps(this._filename);\n this._filenameEncoded = (0, encoding_1.strToEncoding)(this._filename); // this._persistent = persistent;\n\n this._recursive = recursive;\n this._encoding = encoding;\n\n try {\n this._link = this._vol.getLinkOrThrow(this._filename, \"FSWatcher\");\n } catch (err) {\n var error = new Error(\"watch \" + this._filename + \" \" + err.code);\n error.code = err.code;\n error.errno = err.code;\n throw error;\n }\n\n this._link.getNode().on(\"change\", this._onNodeChange);\n\n this._link.on(\"child:add\", this._onNodeChange);\n\n this._link.on(\"child:delete\", this._onNodeChange);\n\n var parent = this._link.parent;\n\n if (parent) {\n // parent.on('child:add', this._onParentChild);\n parent.setMaxListeners(parent.getMaxListeners() + 1);\n parent.on(\"child:delete\", this._onParentChild);\n }\n\n if (persistent) this._persist();\n };\n\n FSWatcher.prototype.close = function () {\n clearTimeout(this._timer);\n\n this._link.getNode().removeListener(\"change\", this._onNodeChange);\n\n var parent = this._link.parent;\n\n if (parent) {\n // parent.removeListener('child:add', this._onParentChild);\n parent.removeListener(\"child:delete\", this._onParentChild);\n }\n };\n\n return FSWatcher;\n }(events_1.EventEmitter);\n\n exports$4.FSWatcher = FSWatcher;\n return exports$4;\n}\n\nvar exports$3 = {},\n _dewExec$1 = false;\nfunction dew$1() {\n if (_dewExec$1) return exports$3;\n _dewExec$1 = true;\n Object.defineProperty(exports$3, \"__esModule\", {\n value: true\n });\n exports$3.fsAsyncMethods = exports$3.fsSyncMethods = exports$3.fsProps = void 0;\n var fsProps = [\"constants\", \"F_OK\", \"R_OK\", \"W_OK\", \"X_OK\", \"Stats\"];\n exports$3.fsProps = fsProps;\n var fsSyncMethods = [\"renameSync\", \"ftruncateSync\", \"truncateSync\", \"chownSync\", \"fchownSync\", \"lchownSync\", \"chmodSync\", \"fchmodSync\", \"lchmodSync\", \"statSync\", \"lstatSync\", \"fstatSync\", \"linkSync\", \"symlinkSync\", \"readlinkSync\", \"realpathSync\", \"unlinkSync\", \"rmdirSync\", \"mkdirSync\", \"mkdirpSync\", \"readdirSync\", \"closeSync\", \"openSync\", \"utimesSync\", \"futimesSync\", \"fsyncSync\", \"writeSync\", \"readSync\", \"readFileSync\", \"writeFileSync\", \"appendFileSync\", \"existsSync\", \"accessSync\", \"fdatasyncSync\", \"mkdtempSync\", \"copyFileSync\", \"createReadStream\", \"createWriteStream\"];\n exports$3.fsSyncMethods = fsSyncMethods;\n var fsAsyncMethods = [\"rename\", \"ftruncate\", \"truncate\", \"chown\", \"fchown\", \"lchown\", \"chmod\", \"fchmod\", \"lchmod\", \"stat\", \"lstat\", \"fstat\", \"link\", \"symlink\", \"readlink\", \"realpath\", \"unlink\", \"rmdir\", \"mkdir\", \"mkdirp\", \"readdir\", \"close\", \"open\", \"utimes\", \"futimes\", \"fsync\", \"write\", \"read\", \"readFile\", \"writeFile\", \"appendFile\", \"exists\", \"access\", \"fdatasync\", \"mkdtemp\", \"copyFile\", \"watchFile\", \"unwatchFile\", \"watch\"];\n exports$3.fsAsyncMethods = fsAsyncMethods;\n return exports$3;\n}\n\nvar exports$2 = {},\n _dewExec = false;\nfunction dew() {\n if (_dewExec) return exports$2;\n _dewExec = true;\n\n var __assign = exports$2 && exports$2.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n };\n\n Object.defineProperty(exports$2, \"__esModule\", {\n value: true\n });\n exports$2.fs = exports$2.createFsFromVolume = exports$2.vol = exports$2.Volume = void 0;\n\n var Stats_1 = dew$d();\n\n var Dirent_1 = dew$9();\n\n var volume_1 = dew$2();\n\n var _a = dew$1(),\n fsSyncMethods = _a.fsSyncMethods,\n fsAsyncMethods = _a.fsAsyncMethods;\n\n var constants_1 = dew$f();\n\n var F_OK = constants_1.constants.F_OK,\n R_OK = constants_1.constants.R_OK,\n W_OK = constants_1.constants.W_OK,\n X_OK = constants_1.constants.X_OK;\n exports$2.Volume = volume_1.Volume; // Default volume.\n\n exports$2.vol = new volume_1.Volume();\n\n function createFsFromVolume(vol) {\n var fs = {\n F_OK: F_OK,\n R_OK: R_OK,\n W_OK: W_OK,\n X_OK: X_OK,\n constants: constants_1.constants,\n Stats: Stats_1.default,\n Dirent: Dirent_1.default\n }; // Bind FS methods.\n\n for (var _i = 0, fsSyncMethods_1 = fsSyncMethods; _i < fsSyncMethods_1.length; _i++) {\n var method = fsSyncMethods_1[_i];\n if (typeof vol[method] === \"function\") fs[method] = vol[method].bind(vol);\n }\n\n for (var _a = 0, fsAsyncMethods_1 = fsAsyncMethods; _a < fsAsyncMethods_1.length; _a++) {\n var method = fsAsyncMethods_1[_a];\n if (typeof vol[method] === \"function\") fs[method] = vol[method].bind(vol);\n }\n\n fs.StatWatcher = vol.StatWatcher;\n fs.FSWatcher = vol.FSWatcher;\n fs.WriteStream = vol.WriteStream;\n fs.ReadStream = vol.ReadStream;\n fs.promises = vol.promises;\n fs._toUnixTimestamp = volume_1.toUnixTimestamp;\n return fs;\n }\n\n exports$2.createFsFromVolume = createFsFromVolume;\n exports$2.fs = createFsFromVolume(exports$2.vol);\n exports$2 = __assign(__assign({}, exports$2), exports$2.fs);\n exports$2.semantic = true;\n return exports$2;\n}\n\nconst exports$1 = dew();\nexports$1['__esModule']; exports$1['fs']; exports$1['createFsFromVolume']; exports$1['vol']; exports$1['Volume']; exports$1['semantic'];\n\nconst exports = dew$2();\nexports['__esModule']; exports['FSWatcher']; exports['StatWatcher']; exports['Volume']; exports['toUnixTimestamp']; exports['bufferToEncoding']; exports['dataToBuffer']; exports['dataToStr']; exports['pathToSteps']; exports['filenameToSteps']; exports['pathToFilename']; exports['flagsToNumber']; exports['FLAGS']; exports['ReadStream']; exports['WriteStream'];\n\nconst { vol, createFsFromVolume } = exports$1;\r\n\r\nfunction unimplemented(name) {\r\n throw new Error(`Node.js fs ${name} is not supported by JSPM core in the browser`);\r\n}\r\n\r\nvol.fromNestedJSON({\r\n '/dev': { stdin: '', stdout: '', stderr: '' },\r\n '/usr/bin': {},\r\n '/home': {},\r\n '/tmp': {},\r\n});\r\n\r\nvol.releasedFds = [2, 1, 0];\r\nvol.openSync('/dev/stdin', 'w');\r\nvol.openSync('/dev/stdout', 'r');\r\nvol.openSync('/dev/stderr', 'r');\r\nwatchStdo('/dev/stdout', 1, console.log);\r\nwatchStdo('/dev/stderr', 2, console.error);\r\nfunction watchStdo(path, fd, listener) {\r\n let oldSize = 0;\r\n const decoder = new TextDecoder();\r\n vol.watch(path, 'utf8', () => {\r\n const { size } = vol.fstatSync(fd);\r\n const buf = Buffer.alloc(size - oldSize);\r\n vol.readSync(fd, buf, 0, buf.length, oldSize);\r\n oldSize = size;\r\n listener(decoder.decode(buf, { stream: true }));\r\n });\r\n}\r\n\r\nconst fs = createFsFromVolume(vol);\r\n\r\nfs.opendir = () => unimplemented('opendir');\r\nfs.opendirSync = () => unimplemented('opendirSync');\r\nfs.promises.opendir = () => unimplemented('promises.opendir');\r\nfs.cp = () => unimplemented('cp');\r\nfs.cpSync = () => unimplemented('cpSync');\r\nfs.promises.cp = () => unimplemented('promises.cp');\r\nfs.readv = () => unimplemented('readv');\r\nfs.readvSync = () => unimplemented('readvSync');\r\nfs.rm = () => unimplemented('rm');\r\nfs.rmSync = () => unimplemented('rmSync');\r\nfs.promises.rm = () => unimplemented('promises.rm');\r\nfs.Dir = () => unimplemented('Dir');\r\nfs.promises.watch = () => unimplemented('promises.watch');\r\n\r\nfs.FileReadStream = fs.ReadStream;\r\nfs.FileWriteStream = fs.WriteStream;\r\n\r\nfunction handleFsUrl (url, isSync) {\r\n if (url.protocol === 'file:')\r\n return fileURLToPath(url);\r\n if (url.protocol === 'https:' || url.protocol === 'http:') {\r\n const path = '\\\\\\\\url\\\\' + url.href.replaceAll(/\\//g, '\\\\\\\\');\r\n if (existsSync(path))\r\n return path;\r\n if (isSync)\r\n throw new Error(`Cannot sync request URL ${url} via FS. JSPM FS support for network URLs requires using async FS methods or priming the MemFS cache first with an async request before a sync request.`);\r\n return (async () => {\r\n const res = await fetch(url);\r\n if (!res.ok)\r\n throw new Error(`Unable to fetch ${url.href}, ${res.status}`);\r\n const buf = await res.arrayBuffer();\r\n writeFileSync(path, Buffer.from(buf));\r\n return path;\r\n })();\r\n }\r\n throw new Error('URL ' + url + ' not supported in JSPM FS implementation.');\r\n}\r\n\r\nfunction wrapFsSync (fn) {\r\n return function (path, ...args) {\r\n if (path instanceof URL)\r\n return fn(handleFsUrl(path, true), ...args);\r\n return fn(path, ...args);\r\n };\r\n}\r\n\r\nfunction wrapFsPromise (fn) {\r\n return async function (path, ...args) {\r\n if (path instanceof URL)\r\n return fn(await handleFsUrl(path), ...args);\r\n return fn(path, ...args);\r\n };\r\n}\r\n\r\nfunction wrapFsCallback (fn) {\r\n return function (path, ...args) {\r\n const cb = args[args.length - 1];\r\n if (path instanceof URL && typeof cb === 'function') {\r\n handleFsUrl(path).then(path => {\r\n fn(path, ...args);\r\n }, cb);\r\n }\r\n else {\r\n fn(path, ...args);\r\n }\r\n }; \r\n}\r\n\r\nfs.promises.readFile = wrapFsPromise(fs.promises.readFile);\r\nfs.readFile = wrapFsCallback(fs.readFile);\r\nfs.readFileSync = wrapFsSync(fs.readFileSync);\r\n\r\nconst {\r\n appendFile,\r\n appendFileSync,\r\n access,\r\n accessSync,\r\n chown,\r\n chownSync,\r\n chmod,\r\n chmodSync,\r\n close,\r\n closeSync,\r\n copyFile,\r\n copyFileSync,\r\n cp,\r\n cpSync,\r\n createReadStream,\r\n createWriteStream,\r\n exists,\r\n existsSync,\r\n fchown,\r\n fchownSync,\r\n fchmod,\r\n fchmodSync,\r\n fdatasync,\r\n fdatasyncSync,\r\n fstat,\r\n fstatSync,\r\n fsync,\r\n fsyncSync,\r\n ftruncate,\r\n ftruncateSync,\r\n futimes,\r\n futimesSync,\r\n lchown,\r\n lchownSync,\r\n lchmod,\r\n lchmodSync,\r\n link,\r\n linkSync,\r\n lstat,\r\n lstatSync,\r\n mkdir,\r\n mkdirSync,\r\n mkdtemp,\r\n mkdtempSync,\r\n open,\r\n openSync,\r\n opendir,\r\n opendirSync,\r\n readdir,\r\n readdirSync,\r\n read,\r\n readSync,\r\n readv,\r\n readvSync,\r\n readFile,\r\n readFileSync,\r\n readlink,\r\n readlinkSync,\r\n realpath,\r\n realpathSync,\r\n rename,\r\n renameSync,\r\n rm,\r\n rmSync,\r\n rmdir,\r\n rmdirSync,\r\n stat,\r\n statSync,\r\n symlink,\r\n symlinkSync,\r\n truncate,\r\n truncateSync,\r\n unwatchFile,\r\n unlink,\r\n unlinkSync,\r\n utimes,\r\n utimesSync,\r\n watch,\r\n watchFile,\r\n writeFile,\r\n writeFileSync,\r\n write,\r\n writeSync,\r\n writev,\r\n writevSync,\r\n Dir,\r\n Dirent,\r\n Stats,\r\n ReadStream,\r\n WriteStream,\r\n FileReadStream,\r\n FileWriteStream,\r\n _toUnixTimestamp,\r\n constants: { F_OK, R_OK, W_OK, X_OK },\r\n constants,\r\n promises,\r\n} = fs;\n\nexport { Dir, Dirent, F_OK, FileReadStream, FileWriteStream, R_OK, ReadStream, Stats, W_OK, WriteStream, X_OK, _toUnixTimestamp, access, accessSync, appendFile, appendFileSync, chmod, chmodSync, chown, chownSync, close, closeSync, constants, copyFile, copyFileSync, cp, cpSync, createReadStream, createWriteStream, fs as default, exists, existsSync, fchmod, fchmodSync, fchown, fchownSync, fdatasync, fdatasyncSync, fstat, fstatSync, fsync, fsyncSync, ftruncate, ftruncateSync, futimes, futimesSync, lchmod, lchmodSync, lchown, lchownSync, link, linkSync, lstat, lstatSync, mkdir, mkdirSync, mkdtemp, mkdtempSync, open, openSync, opendir, opendirSync, promises, read, readFile, readFileSync, readSync, readdir, readdirSync, readlink, readlinkSync, readv, readvSync, realpath, realpathSync, rename, renameSync, rm, rmSync, rmdir, rmdirSync, stat, statSync, symlink, symlinkSync, truncate, truncateSync, unlink, unlinkSync, unwatchFile, utimes, utimesSync, watch, watchFile, write, writeFile, writeFileSync, writeSync, writev, writevSync };\n","import { y } from './chunk-4bd36a8f.js';\nimport './chunk-ce0fbc82.js';\nimport { X } from './chunk-b4205b57.js';\nimport { p as process } from './chunk-2eac56ff.js';\nimport { a as e$1 } from './chunk-4ccc3a29.js';\n\nvar exports$2$1 = {},\n _dewExec$2$1 = false;\nfunction dew$2$1() {\n if (_dewExec$2$1) return exports$2$1;\n _dewExec$2$1 = true;\n exports$2$1.byteLength = byteLength;\n exports$2$1.toByteArray = toByteArray;\n exports$2$1.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\n var code = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n } // Support decoding URL-safe base64 strings, as Node.js does.\n // See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\n\n revLookup[\"-\".charCodeAt(0)] = 62;\n revLookup[\"_\".charCodeAt(0)] = 63;\n\n function getLens(b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error(\"Invalid string. Length must be a multiple of 4\");\n } // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n\n\n var validLen = b64.indexOf(\"=\");\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n } // base64 is 4/3 + up to two characters of the original data\n\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\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\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; // if there are placeholders, only get up to the last complete 4 chars\n\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n\n for (i = 0; i < len; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n\n return arr;\n }\n\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 16711680) + (uint8[i + 1] << 8 & 65280) + (uint8[i + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n\n return output.join(\"\");\n }\n\n function fromByteArray(uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n // go through the array every three bytes, we'll deal with trailing stuff later\n\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + \"==\");\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + \"=\");\n }\n\n return parts.join(\"\");\n }\n\n return exports$2$1;\n}\n\nvar exports$1$1 = {},\n _dewExec$1$1 = false;\nfunction dew$1$1() {\n if (_dewExec$1$1) return exports$1$1;\n _dewExec$1$1 = true;\n\n /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\n exports$1$1.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\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\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\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n\n exports$1$1.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\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\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {}\n\n e = e << mLen | m;\n eLen += mLen;\n\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 return exports$1$1;\n}\n\nvar exports$g = {},\n _dewExec$g = false;\nfunction dew$g() {\n if (_dewExec$g) return exports$g;\n _dewExec$g = true;\n\n const base64 = dew$2$1();\n\n const ieee754 = dew$1$1();\n\n const customInspectSymbol = typeof Symbol === \"function\" && typeof Symbol[\"for\"] === \"function\" ? Symbol[\"for\"](\"nodejs.util.inspect.custom\") // eslint-disable-line dot-notation\n : null;\n exports$g.Buffer = Buffer;\n exports$g.SlowBuffer = SlowBuffer;\n exports$g.INSPECT_MAX_BYTES = 50;\n const K_MAX_LENGTH = 2147483647;\n exports$g.kMaxLength = K_MAX_LENGTH;\n /**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\n\n Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n if (!Buffer.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\n function typedArraySupport() {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1);\n const proto = {\n foo: function () {\n return 42;\n }\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\n Object.defineProperty(Buffer.prototype, \"parent\", {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer.prototype, \"offset\", {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined;\n return this.byteOffset;\n }\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 } // Return an augmented `Uint8Array` instance\n\n\n const buf = new Uint8Array(length);\n Object.setPrototypeOf(buf, Buffer.prototype);\n return buf;\n }\n /**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n\n function Buffer(arg, encodingOrOffset, length) {\n // Common case.\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\n return allocUnsafe(arg);\n }\n\n return from(arg, encodingOrOffset, length);\n }\n\n Buffer.poolSize = 8192; // not used by this implementation\n\n function from(value, encodingOrOffset, length) {\n if (typeof value === \"string\") {\n return fromString(value, encodingOrOffset);\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\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\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n\n if (typeof SharedArrayBuffer !== \"undefined\" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n\n if (typeof value === \"number\") {\n throw new TypeError(\"The \\\"value\\\" argument must not be of type number. Received type number\");\n }\n\n const valueOf = value.valueOf && value.valueOf();\n\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length);\n }\n\n const b = fromObject(value);\n if (b) return b;\n\n if (typeof Symbol !== \"undefined\" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === \"function\") {\n return Buffer.from(value[Symbol.toPrimitive](\"string\"), encodingOrOffset, length);\n }\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 /**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n\n\n Buffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n }; // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n // https://github.com/feross/buffer/pull/148\n\n\n Object.setPrototypeOf(Buffer.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer, Uint8Array);\n\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\n function alloc(size, fill, encoding) {\n assertSize(size);\n\n if (size <= 0) {\n return createBuffer(size);\n }\n\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === \"string\" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n\n return createBuffer(size);\n }\n /**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\n Buffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n /**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\n Buffer.allocUnsafe = function (size) {\n return allocUnsafe(size);\n };\n /**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n\n\n Buffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size);\n };\n\n function fromString(string, encoding) {\n if (typeof encoding !== \"string\" || encoding === \"\") {\n encoding = \"utf8\";\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError(\"Unknown encoding: \" + encoding);\n }\n\n const length = byteLength(string, encoding) | 0;\n let buf = createBuffer(length);\n const actual = buf.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual);\n }\n\n return buf;\n }\n\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf = createBuffer(length);\n\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255;\n }\n\n return buf;\n }\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\n return fromArrayLike(arrayView);\n }\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\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\"\\\"length\\\" is outside of buffer bounds\");\n }\n\n let buf;\n\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array);\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset);\n } else {\n buf = new Uint8Array(array, byteOffset, length);\n } // Return an augmented `Uint8Array` instance\n\n\n Object.setPrototypeOf(buf, Buffer.prototype);\n return buf;\n }\n\n function fromObject(obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf = createBuffer(len);\n\n if (buf.length === 0) {\n return buf;\n }\n\n obj.copy(buf, 0, 0, len);\n return buf;\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== \"number\" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n\n return fromArrayLike(obj);\n }\n\n if (obj.type === \"Buffer\" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n\n function checked(length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError(\"Attempt to allocate Buffer larger than maximum \" + \"size: 0x\" + K_MAX_LENGTH.toString(16) + \" bytes\");\n }\n\n return length | 0;\n }\n\n function SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n\n return Buffer.alloc(+length);\n }\n\n Buffer.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer.prototype; // so Buffer.isBuffer(Buffer.prototype) will be false\n };\n\n Buffer.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\"The \\\"buf1\\\", \\\"buf2\\\" arguments must be one of type Buffer or Uint8Array\");\n }\n\n if (a === b) return 0;\n let x = a.length;\n let y = b.length;\n\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\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n\n Buffer.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\n default:\n return false;\n }\n };\n\n Buffer.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\"\\\"list\\\" argument must be an Array of Buffers\");\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n\n let i;\n\n if (length === undefined) {\n length = 0;\n\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n const buffer = Buffer.allocUnsafe(length);\n let pos = 0;\n\n for (i = 0; i < list.length; ++i) {\n let buf = list[i];\n\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n buf.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf, pos);\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError(\"\\\"list\\\" argument must be an Array of Buffers\");\n } else {\n buf.copy(buffer, pos);\n }\n\n pos += buf.length;\n }\n\n return buffer;\n };\n\n function byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\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\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0) return 0; // Use a for loop to avoid recursion\n\n let loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return len;\n\n case \"utf8\":\n case \"utf-8\":\n return utf8ToBytes(string).length;\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return len * 2;\n\n case \"hex\":\n return len >>> 1;\n\n case \"base64\":\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length; // assume utf8\n }\n\n encoding = (\"\" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n\n Buffer.byteLength = byteLength;\n\n function slowToString(encoding, start, end) {\n let loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\n if (start > this.length) {\n return \"\";\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return \"\";\n } // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\n\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return \"\";\n }\n\n if (!encoding) encoding = \"utf8\";\n\n while (true) {\n switch (encoding) {\n case \"hex\":\n return hexSlice(this, start, end);\n\n case \"utf8\":\n case \"utf-8\":\n return utf8Slice(this, start, end);\n\n case \"ascii\":\n return asciiSlice(this, start, end);\n\n case \"latin1\":\n case \"binary\":\n return latin1Slice(this, start, end);\n\n case \"base64\":\n return base64Slice(this, start, end);\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return utf16leSlice(this, start, end);\n\n default:\n if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n encoding = (encoding + \"\").toLowerCase();\n loweredCase = true;\n }\n }\n } // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n // to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n // reliably in a browserify context because there could be multiple different\n // copies of the 'buffer' package in use. This method works even for Buffer\n // instances that were created from another copy of the `buffer` package.\n // See: https://github.com/feross/buffer/issues/154\n\n\n Buffer.prototype._isBuffer = true;\n\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n\n Buffer.prototype.swap16 = function swap16() {\n const len = this.length;\n\n if (len % 2 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 16-bits\");\n }\n\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n };\n\n Buffer.prototype.swap32 = function swap32() {\n const len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 32-bits\");\n }\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\n return this;\n };\n\n Buffer.prototype.swap64 = function swap64() {\n const len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 64-bits\");\n }\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\n return this;\n };\n\n Buffer.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0) return \"\";\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n\n Buffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n Buffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError(\"Argument must be a Buffer\");\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n };\n\n Buffer.prototype.inspect = function inspect() {\n let str = \"\";\n const max = exports$g.INSPECT_MAX_BYTES;\n str = this.toString(\"hex\", 0, max).replace(/(.{2})/g, \"$1 \").trim();\n if (this.length > max) str += \" ... \";\n return \"<Buffer \" + str + \">\";\n };\n\n if (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n }\n\n Buffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength);\n }\n\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\"The \\\"target\\\" argument must be one of type Buffer or Uint8Array. \" + \"Received type \" + typeof target);\n }\n\n if (start === undefined) {\n start = 0;\n }\n\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\n\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError(\"out of range index\");\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) 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\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\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n }; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n // OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n //\n // Arguments:\n // - buffer - a Buffer to search\n // - val - a string, Buffer, or number\n // - byteOffset - an index into `buffer`; will be clamped to an int32\n // - encoding - an optional encoding, relevant is val is a string\n // - dir - true for indexOf, false for lastIndexOf\n\n\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\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\n byteOffset = +byteOffset; // Coerce to Number.\n\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === \"string\") {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === \"number\") {\n val = val & 255; // Search for a byte value [0-255]\n\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\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n\n throw new TypeError(\"val must be string, number or Buffer\");\n }\n\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n\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\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n\n let i;\n\n if (dir) {\n let foundIndex = -1;\n\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n\n if (found) return i;\n }\n }\n\n return -1;\n }\n\n Buffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n\n Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n\n Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n\n function hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf.length - offset;\n\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n }\n\n const strLen = string.length;\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n\n let i;\n\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n\n return i;\n }\n\n function utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n }\n\n function asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n }\n\n function base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n }\n\n function ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n }\n\n Buffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = \"utf8\";\n length = this.length;\n offset = 0; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === \"string\") {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === undefined) encoding = \"utf8\";\n } else {\n encoding = length;\n length = undefined;\n }\n } else {\n throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");\n }\n\n const remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError(\"Attempt to write outside buffer bounds\");\n }\n\n if (!encoding) encoding = \"utf8\";\n let loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case \"hex\":\n return hexWrite(this, string, offset, length);\n\n case \"utf8\":\n case \"utf-8\":\n return utf8Write(this, string, offset, length);\n\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return asciiWrite(this, string, offset, length);\n\n case \"base64\":\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return ucs2Write(this, string, offset, length);\n\n default:\n if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n encoding = (\"\" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n\n Buffer.prototype.toJSON = function toJSON() {\n return {\n type: \"Buffer\",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n\n function base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n }\n\n function utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n const res = [];\n let i = start;\n\n while (i < end) {\n const firstByte = buf[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\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\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res);\n } // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n // the lowest limit is Chrome, with 0x10000 args.\n // We go 1 magnitude less, for safety\n\n\n const MAX_ARGUMENTS_LENGTH = 4096;\n\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n let res = \"\";\n let i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n\n return res;\n }\n\n function asciiSlice(buf, start, end) {\n let ret = \"\";\n end = Math.min(buf.length, end);\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 127);\n }\n\n return ret;\n }\n\n function latin1Slice(buf, start, end) {\n let ret = \"\";\n end = Math.min(buf.length, end);\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n\n return ret;\n }\n\n function hexSlice(buf, start, end) {\n const len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n let out = \"\";\n\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]];\n }\n\n return out;\n }\n\n function utf16leSlice(buf, start, end) {\n const bytes = buf.slice(start, end);\n let res = \"\"; // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n\n return res;\n }\n\n Buffer.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n const newBuf = this.subarray(start, end); // Return an augmented `Uint8Array` instance\n\n Object.setPrototypeOf(newBuf, Buffer.prototype);\n return newBuf;\n };\n /*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\n\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError(\"offset is not uint\");\n if (offset + ext > length) throw new RangeError(\"Trying to access beyond buffer length\");\n }\n\n Buffer.prototype.readUintLE = Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n\n while (++i < byteLength && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n\n return val;\n };\n\n Buffer.prototype.readUintBE = Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n let val = this[offset + --byteLength];\n let mul = 1;\n\n while (byteLength > 0 && (mul *= 256)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val;\n };\n\n Buffer.prototype.readUint8 = Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n };\n\n Buffer.prototype.readUint16LE = Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n\n Buffer.prototype.readUint16BE = Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n\n Buffer.prototype.readUint32LE = Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n\n Buffer.prototype.readUint32BE = Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n\n Buffer.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\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\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 Buffer.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\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\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\n Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n\n while (++i < byteLength && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 128;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n\n Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n let i = byteLength;\n let mul = 1;\n let val = this[offset + --i];\n\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 128;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n\n Buffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128)) return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n\n Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n\n Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n\n Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n\n Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n\n Buffer.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\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24); // Overflow\n\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer.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\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n\n const val = (first << 24) + // Overflow\n 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\n Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n };\n\n Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n };\n\n Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n };\n\n Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n };\n\n function checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError(\"\\\"buffer\\\" argument must be a Buffer instance\");\n if (value > max || value < min) throw new RangeError(\"\\\"value\\\" argument is out of bounds\");\n if (offset + ext > buf.length) throw new RangeError(\"Index out of range\");\n }\n\n Buffer.prototype.writeUintLE = Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n\n while (++i < byteLength && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeUintBE = Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n let i = byteLength - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeUint8 = Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n\n Buffer.prototype.writeUint16LE = Buffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n\n Buffer.prototype.writeUint16BE = Buffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n\n Buffer.prototype.writeUint32LE = Buffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) 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\n Buffer.prototype.writeUint32BE = Buffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) 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\n function wrtBigUInt64LE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n return offset;\n }\n\n function wrtBigUInt64BE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf[offset + 7] = lo;\n lo = lo >> 8;\n buf[offset + 6] = lo;\n lo = lo >> 8;\n buf[offset + 5] = lo;\n lo = lo >> 8;\n buf[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf[offset + 3] = hi;\n hi = hi >> 8;\n buf[offset + 2] = hi;\n hi = hi >> 8;\n buf[offset + 1] = hi;\n hi = hi >> 8;\n buf[offset] = hi;\n return offset + 8;\n }\n\n Buffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n });\n Buffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n });\n\n Buffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n\n while (++i < byteLength && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n let i = byteLength - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 127, -128);\n if (value < 0) value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n\n Buffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n\n Buffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n\n Buffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) 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\n Buffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0) 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\n Buffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n Buffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n\n function checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError(\"Index out of range\");\n if (offset < 0) throw new RangeError(\"Index out of range\");\n }\n\n function writeFloat(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n\n Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n\n Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n\n function writeDouble(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n\n Buffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n\n Buffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n }; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\n Buffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError(\"argument should be a Buffer\");\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError(\"targetStart out of bounds\");\n }\n\n if (start < 0 || start >= this.length) throw new RangeError(\"Index out of range\");\n if (end < 0) throw new RangeError(\"sourceEnd out of bounds\"); // Are we oob?\n\n if (end > this.length) end = this.length;\n\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n const len = end - start;\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === \"function\") {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n\n return len;\n }; // Usage:\n // buffer.fill(number[, offset[, end]])\n // buffer.fill(buffer[, offset[, end]])\n // buffer.fill(string[, offset[, end]][, encoding])\n\n\n Buffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === \"string\") {\n if (typeof start === \"string\") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === \"string\") {\n encoding = end;\n end = this.length;\n }\n\n if (encoding !== undefined && typeof encoding !== \"string\") {\n throw new TypeError(\"encoding must be a string\");\n }\n\n if (typeof encoding === \"string\" && !Buffer.isEncoding(encoding)) {\n throw new TypeError(\"Unknown encoding: \" + encoding);\n }\n\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n\n if (encoding === \"utf8\" && code < 128 || encoding === \"latin1\") {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code;\n }\n }\n } else if (typeof val === \"number\") {\n val = val & 255;\n } else if (typeof val === \"boolean\") {\n val = Number(val);\n } // Invalid ranges are not set to a default, so can range check early.\n\n\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError(\"Out of range index\");\n }\n\n if (end <= start) {\n return this;\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n let i;\n\n if (typeof val === \"number\") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer.isBuffer(val) ? val : Buffer.from(val, encoding);\n const len = bytes.length;\n\n if (len === 0) {\n throw new TypeError(\"The value \\\"\" + val + \"\\\" is invalid for argument \\\"value\\\"\");\n }\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n }; // CUSTOM ERRORS\n // =============\n // Simplified versions from Node, changed for Buffer-only usage\n\n\n const errors = {};\n\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 }); // Add the error code to the name to include it in the stack trace.\n\n this.name = `${this.name} [${sym}]`; // Access the stack to generate the error message including the error code\n // from the name.\n\n this.stack; // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n\n delete this.name;\n }\n\n get code() {\n return sym;\n }\n\n set code(value) {\n Object.defineProperty(this, \"code\", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n\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\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\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\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n\n received += \"n\";\n }\n\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n\n function addNumericalSeparator(val) {\n let res = \"\";\n let i = val.length;\n const start = val[0] === \"-\" ? 1 : 0;\n\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n\n return `${val.slice(0, i)}${res}`;\n } // CHECK FUNCTIONS\n // ===============\n\n\n function checkBounds(buf, offset, byteLength) {\n validateNumber(offset, \"offset\");\n\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1));\n }\n }\n\n function checkIntBI(value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === \"bigint\" ? \"n\" : \"\";\n let range;\n\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` + `${(byteLength + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n\n throw new errors.ERR_OUT_OF_RANGE(\"value\", range, value);\n }\n\n checkBounds(buf, offset, byteLength);\n }\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\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\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || \"offset\", `>= ${type ? 1 : 0} and <= ${length}`, value);\n } // HELPER FUNCTIONS\n // ================\n\n\n const INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n function base64clean(str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split(\"=\")[0]; // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\n str = str.trim().replace(INVALID_BASE64_RE, \"\"); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return \"\"; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + \"=\";\n }\n\n return str;\n }\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\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i); // is surrogate component\n\n if (codePoint > 55295 && codePoint < 57344) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 56319) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n continue;\n } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 56320) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n }\n\n leadSurrogate = null; // encode utf8\n\n if (codePoint < 128) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0) 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\n return bytes;\n }\n\n function asciiToBytes(str) {\n const byteArray = [];\n\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 255);\n }\n\n return byteArray;\n }\n\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray;\n }\n\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n\n function blitBuffer(src, dst, offset, length) {\n let i;\n\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n\n return i;\n } // ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n // the `instanceof` check but they should be treated as of that type.\n // See: https://github.com/feross/buffer/issues/166\n\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\n function numberIsNaN(obj) {\n // For IE11 support\n return obj !== obj; // eslint-disable-line no-self-compare\n } // Create lookup table for `toString('hex')`\n // See: https://github.com/feross/buffer/issues/219\n\n\n const hexSliceLookupTable = function () {\n const alphabet = \"0123456789abcdef\";\n const table = new Array(256);\n\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n\n return table;\n }(); // Return not function with Error if BigInt not supported\n\n\n function defineBigIntMethod(fn) {\n return typeof BigInt === \"undefined\" ? BufferBigIntNotDefined : fn;\n }\n\n function BufferBigIntNotDefined() {\n throw new Error(\"BigInt not supported\");\n }\n\n return exports$g;\n}\n\nvar buffer = dew$g();\n\nbuffer.Buffer;\nbuffer.INSPECT_MAX_BYTES;\nbuffer.kMaxLength;\n\nvar exports$f = {},\n _dewExec$f = false;\nfunction dew$f() {\n if (_dewExec$f) return exports$f;\n _dewExec$f = true;\n\n if (typeof Object.create === \"function\") {\n // implementation from standard node.js 'util' module\n exports$f = 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 // old school shim for old browsers\n exports$f = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n\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 return exports$f;\n}\n\nvar exports$e = {},\n _dewExec$e = false;\nfunction dew$e() {\n if (_dewExec$e) return exports$e;\n _dewExec$e = true;\n exports$e = y.EventEmitter;\n return exports$e;\n}\n\nvar exports$d = {},\n _dewExec$d = false;\nfunction dew$d() {\n if (_dewExec$d) return exports$d;\n _dewExec$d = true;\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\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\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) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n var _require = buffer,\n Buffer = _require.Buffer;\n var _require2 = X,\n inspect = _require2.inspect;\n var custom = inspect && inspect.custom || \"inspect\";\n\n function copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n }\n\n exports$d = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\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) this.tail.next = entry;else 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) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else 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) return \"\";\n var p = this.head;\n var ret = \"\" + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\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 // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered 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\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n }();\n\n return exports$d;\n}\n\nvar exports$c = {},\n _dewExec$c = false;\nfunction dew$c() {\n if (_dewExec$c) return exports$c;\n _dewExec$c = true;\n var process$1 = process;\n\n // undocumented cb() API, needed for core, not for public API\n function destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process$1.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process$1.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process$1.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process$1.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process$1.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process$1.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process$1.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n }\n\n function emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n }\n\n function emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit(\"close\");\n }\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\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\n function emitErrorNT(self, err) {\n self.emit(\"error\", err);\n }\n\n function errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit(\"error\", err);\n }\n\n exports$c = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n };\n return exports$c;\n}\n\nvar exports$b = {},\n _dewExec$b = false;\nfunction dew$b() {\n if (_dewExec$b) return exports$b;\n _dewExec$b = true;\n const codes = {};\n\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\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\n class NodeError extends Base {\n constructor(arg1, arg2, arg3) {\n super(getMessage(arg1, arg2, arg3));\n }\n\n }\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n } // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n const len = expected.length;\n expected = expected.map(i => String(i));\n\n if (len > 2) {\n return `one of ${thing} ${expected.slice(0, len - 1).join(\", \")}, or ` + expected[len - 1];\n } else if (len === 2) {\n return `one of ${thing} ${expected[0]} or ${expected[1]}`;\n } else {\n return `of ${thing} ${expected[0]}`;\n }\n } else {\n return `of ${thing} ${String(expected)}`;\n }\n } // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n } // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\n function endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n } // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\n function includes(str, search, start) {\n if (typeof start !== \"number\") {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\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 // determiner: 'must be' or 'must not be'\n let determiner;\n\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\n let msg;\n\n if (endsWith(name, \" argument\")) {\n // For cases like 'first argument'\n msg = `The ${name} ${determiner} ${oneOf(expected, \"type\")}`;\n } else {\n const type = includes(name, \".\") ? \"property\" : \"argument\";\n msg = `The \"${name}\" ${type} ${determiner} ${oneOf(expected, \"type\")}`;\n }\n\n msg += `. Received type ${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 exports$b.codes = codes;\n return exports$b;\n}\n\nvar exports$a = {},\n _dewExec$a = false;\nfunction dew$a() {\n if (_dewExec$a) return exports$a;\n _dewExec$a = true;\n\n var ERR_INVALID_OPT_VALUE = dew$b().codes.ERR_INVALID_OPT_VALUE;\n\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\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\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n }\n\n exports$a = {\n getHighWaterMark: getHighWaterMark\n };\n return exports$a;\n}\n\nvar exports$9 = {},\n _dewExec$9 = false;\n\nvar _global$2 = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nfunction dew$9() {\n if (_dewExec$9) return exports$9;\n _dewExec$9 = true;\n\n /**\n * Module exports.\n */\n exports$9 = deprecate;\n /**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\n function deprecate(fn, msg) {\n if (config(\"noDeprecation\")) {\n return fn;\n }\n\n var warned = false;\n\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\n warned = true;\n }\n\n return fn.apply(this || _global$2, arguments);\n }\n\n return deprecated;\n }\n /**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\n\n function config(name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!_global$2.localStorage) return false;\n } catch (_) {\n return false;\n }\n\n var val = _global$2.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === \"true\";\n }\n\n return exports$9;\n}\n\nvar exports$8 = {},\n _dewExec$8 = false;\n\nvar _global$1 = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nfunction dew$8() {\n if (_dewExec$8) return exports$8;\n _dewExec$8 = true;\n var process$1 = process;\n exports$8 = Writable;\n // there will be only 2 of these for each stream\n\n\n function CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n }\n /* </replacement> */\n\n /*<replacement>*/\n\n\n var Duplex;\n /*</replacement>*/\n\n Writable.WritableState = WritableState;\n /*<replacement>*/\n\n var internalUtil = {\n deprecate: dew$9()\n };\n /*</replacement>*/\n\n /*<replacement>*/\n\n var Stream = dew$e();\n /*</replacement>*/\n\n\n var Buffer = buffer.Buffer;\n\n var OurUint8Array = _global$1.Uint8Array || function () {};\n\n function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n }\n\n function _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n\n var destroyImpl = dew$c();\n\n var _require = dew$a(),\n getHighWaterMark = _require.getHighWaterMark;\n\n var _require$codes = dew$b().codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n\n dew$f()(Writable, Stream);\n\n function nop() {}\n\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || dew$7();\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== \"boolean\") isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, \"writableHighWaterMark\", isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || \"utf8\"; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n };\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 })(); // Test _writableState for inheritance to account for Duplex streams,\n // whose prototype chain only points to Readable.\n\n\n var realHasInstance;\n\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)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n }\n\n function Writable(options) {\n Duplex = Duplex || dew$7(); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === \"function\") this._write = options.write;\n if (typeof options.writev === \"function\") this._writev = options.writev;\n if (typeof options.destroy === \"function\") this._destroy = options.destroy;\n if (typeof options.final === \"function\") this._final = options.final;\n }\n\n Stream.call(this);\n } // Otherwise people can pipe Writable streams, which is just wrong.\n\n\n Writable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process$1.nextTick(cb, er);\n } // Checks that a user-supplied chunk is valid, especially for the particular\n // mode the stream is in. Currently this means that `null` is never accepted\n // and undefined/non-string values are only allowed in object mode.\n\n\n function validChunk(stream, state, chunk, cb) {\n var er;\n\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\n if (er) {\n errorOrDestroy(stream, er);\n process$1.nextTick(cb, er);\n return false;\n }\n\n return true;\n }\n\n Writable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === \"function\") {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = \"buffer\";else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== \"function\") cb = nop;\n if (state.ending) writeAfterEnd(this, cb);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\n Writable.prototype.cork = function () {\n this._writableState.corked++;\n };\n\n Writable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n };\n\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === \"string\") encoding = encoding.toLowerCase();\n if (!([\"hex\", \"utf8\", \"utf-8\", \"ascii\", \"binary\", \"base64\", \"ucs2\", \"ucs-2\", \"utf16le\", \"utf-16le\", \"raw\"].indexOf((encoding + \"\").toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n\n Object.defineProperty(Writable.prototype, \"writableBuffer\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === \"string\") {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n }\n\n Object.defineProperty(Writable.prototype, \"writableHighWaterMark\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n }); // if we're already writing something, then just put this\n // in the queue, and wait our turn. Otherwise, call _write\n // If we return false, then we need a drain event, so set that flag.\n\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = \"buffer\";\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n }\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) state.onwrite(new ERR_STREAM_DESTROYED(\"write\"));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process$1.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process$1.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\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\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\") throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process$1.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n\n function afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n } // Must force callback to be called on nextTick, so that we don't\n // emit 'drain' before the write() consumer gets the 'false' return\n // value, and has a chance to attach a 'drain' listener.\n\n\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit(\"drain\");\n }\n } // if there's something in the buffer waiting, then process it\n\n\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\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\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, \"\", holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\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--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n\n Writable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED(\"_write()\"));\n };\n\n Writable.prototype._writev = null;\n\n Writable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\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\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n };\n\n Object.defineProperty(Writable.prototype, \"writableLength\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n\n function callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit(\"prefinish\");\n finishMaybe(stream, state);\n });\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$1.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit(\"prefinish\");\n }\n }\n }\n\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit(\"finish\");\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n }\n\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process$1.nextTick(cb);else stream.once(\"finish\", cb);\n }\n\n state.ended = true;\n stream.writable = false;\n }\n\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n }\n\n Object.defineProperty(Writable.prototype, \"destroyed\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n\n Writable.prototype._destroy = function (err, cb) {\n cb(err);\n };\n\n return exports$8;\n}\n\nvar exports$7 = {},\n _dewExec$7 = false;\nfunction dew$7() {\n if (_dewExec$7) return exports$7;\n _dewExec$7 = true;\n var process$1 = process;\n\n /*<replacement>*/\n var objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n };\n /*</replacement>*/\n\n\n exports$7 = Duplex;\n\n var Readable = dew$3();\n\n var Writable = dew$8();\n\n dew$f()(Duplex, Readable);\n\n {\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n\n function Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once(\"end\", onend);\n }\n }\n }\n\n Object.defineProperty(Duplex.prototype, \"writableHighWaterMark\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, \"writableBuffer\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, \"writableLength\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n }); // the no-half-open enforcer\n\n function onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process$1.nextTick(onEndNT, this);\n }\n\n function onEndNT(self) {\n self.end();\n }\n\n Object.defineProperty(Duplex.prototype, \"destroyed\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n return exports$7;\n}\n\nvar exports$6 = {},\n _dewExec$6 = false;\nfunction dew$6() {\n if (_dewExec$6) return exports$6;\n _dewExec$6 = true;\n\n var ERR_STREAM_PREMATURE_CLOSE = dew$b().codes.ERR_STREAM_PREMATURE_CLOSE;\n\n function once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n }\n\n function noop() {}\n\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === \"function\";\n }\n\n function eos(stream, opts, callback) {\n if (typeof opts === \"function\") return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on(\"finish\", onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on(\"complete\", onfinish);\n stream.on(\"abort\", onclose);\n if (stream.req) onrequest();else stream.on(\"request\", onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on(\"end\", onlegacyfinish);\n stream.on(\"close\", onlegacyfinish);\n }\n\n stream.on(\"end\", onend);\n stream.on(\"finish\", onfinish);\n if (opts.error !== false) 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) 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\n exports$6 = eos;\n return exports$6;\n}\n\nvar exports$5 = {},\n _dewExec$5 = false;\nfunction dew$5() {\n if (_dewExec$5) return exports$5;\n _dewExec$5 = true;\n var process$1 = process;\n\n var _Object$setPrototypeO;\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n var finished = dew$6();\n\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\n function createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n }\n\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\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\n function onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process$1.nextTick(readAndResolve, iter);\n }\n\n function wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n\n var AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this; // if we have detected an error in the meanwhile\n // reject straight away\n\n\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process$1.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\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; // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n\n\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\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\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]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on(\"readable\", onReadable.bind(null, iterator));\n return iterator;\n };\n\n exports$5 = createReadableStreamAsyncIterator;\n return exports$5;\n}\n\nvar exports$4 = {},\n _dewExec$4 = false;\nfunction dew$4() {\n if (_dewExec$4) return exports$4;\n _dewExec$4 = true;\n\n exports$4 = function () {\n throw new Error(\"Readable.from is not available in the browser\");\n };\n\n return exports$4;\n}\n\nvar exports$3 = {},\n _dewExec$3 = false;\n\nvar _global = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nfunction dew$3() {\n if (_dewExec$3) return exports$3;\n _dewExec$3 = true;\n var process$1 = process;\n exports$3 = Readable;\n /*<replacement>*/\n\n var Duplex;\n /*</replacement>*/\n\n Readable.ReadableState = ReadableState;\n /*<replacement>*/\n\n y.EventEmitter;\n\n var EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n };\n /*</replacement>*/\n\n /*<replacement>*/\n\n\n var Stream = dew$e();\n /*</replacement>*/\n\n\n var Buffer = buffer.Buffer;\n\n var OurUint8Array = _global.Uint8Array || function () {};\n\n function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n }\n\n function _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n /*<replacement>*/\n\n\n var debugUtil = X;\n var debug;\n\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog(\"stream\");\n } else {\n debug = function debug() {};\n }\n /*</replacement>*/\n\n\n var BufferList = dew$d();\n\n var destroyImpl = dew$c();\n\n var _require = dew$a(),\n getHighWaterMark = _require.getHighWaterMark;\n\n var _require$codes = dew$b().codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n\n dew$f()(Readable, Stream);\n\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = [\"error\", \"close\", \"destroy\", \"pause\", \"resume\"];\n\n function prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === \"function\") return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n }\n\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || dew$7();\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== \"boolean\") isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, \"readableHighWaterMark\", isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\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; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || \"utf8\"; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = e$1.StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n\n function Readable(options) {\n Duplex = Duplex || dew$7();\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === \"function\") this._read = options.read;\n if (typeof options.destroy === \"function\") this._destroy = options.destroy;\n }\n\n Stream.call(this);\n }\n\n Object.defineProperty(Readable.prototype, \"destroyed\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n\n Readable.prototype._destroy = function (err, cb) {\n cb(err);\n }; // Manually shove something into the read() buffer.\n // This returns true if the highWaterMark has not been hit yet,\n // similar to how Writable.write() returns true if you should\n // write() some more.\n\n\n Readable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === \"string\") {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = \"\";\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n }; // Unshift should *always* be something directly out of read()\n\n\n Readable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug(\"readableAddChunk\", chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\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) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else 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\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else 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 } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\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 // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n }\n\n function chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== \"string\" && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE(\"chunk\", [\"string\", \"Buffer\", \"Uint8Array\"], chunk);\n }\n\n return er;\n }\n\n Readable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n }; // backwards compatibility.\n\n\n Readable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = e$1.StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = \"\";\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== \"\") this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n }; // Don't raise the hwm > 1GB\n\n\n var MAX_HWM = 1073741824;\n\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\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\n return n;\n } // This function is designed to be inlinable, so please take care when making\n // changes to the function body.\n\n\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n } // you can override either this method, or the async _read(n) below.\n\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) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\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) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug(\"need readable\", doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug(\"length less than watermark\", doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\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; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\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\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit(\"data\", ret);\n return ret;\n };\n\n function onEofChunk(stream, state) {\n debug(\"onEofChunk\");\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n } // Don't emit readable right away in sync mode, because this can trigger\n // another read() call => stack overflow. This way, it might trigger\n // a nextTick recursion warning, but that's not so bad.\n\n\n function emitReadable(stream) {\n var state = stream._readableState;\n debug(\"emitReadable\", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug(\"emitReadable\", state.flowing);\n state.emittedReadable = true;\n process$1.nextTick(emitReadable_, stream);\n }\n }\n\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug(\"emitReadable_\", state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit(\"readable\");\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n } // at this point, the user has presumably seen the 'readable' event,\n // and called read() to consume some data. that may have triggered\n // in turn another _read(n) call, in which case reading = true if\n // it's in progress.\n // However, if we're not ended, or reading, and the length < hwm,\n // then go ahead and try to read some more preemptively.\n\n\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process$1.nextTick(maybeReadMore_, stream, state);\n }\n }\n\n function maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\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) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n } // abstract method. to be overridden in specific implementation classes.\n // call cb(er, data) where data is <= n in length.\n // for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n // arbitrary, and perhaps not very meaningful.\n\n\n Readable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED(\"_read()\"));\n };\n\n Readable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug(\"pipe count=%d opts=%j\", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process$1.stdout && dest !== process$1.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process$1.nextTick(endFn);else src.once(\"end\", endFn);\n dest.on(\"unpipe\", onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug(\"onunpipe\");\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug(\"onend\");\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on(\"drain\", ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug(\"cleanup\"); // cleanup event handlers once the pipe is broken\n\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; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on(\"data\", ondata);\n\n function ondata(chunk) {\n debug(\"ondata\");\n var ret = dest.write(chunk);\n debug(\"dest.write\", ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\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\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug(\"onerror\", er);\n unpipe();\n dest.removeListener(\"error\", onerror);\n if (EElistenerCount(dest, \"error\") === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, \"error\", onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener(\"finish\", onfinish);\n unpipe();\n }\n\n dest.once(\"close\", onclose);\n\n function onfinish() {\n debug(\"onfinish\");\n dest.removeListener(\"close\", onclose);\n unpipe();\n }\n\n dest.once(\"finish\", onfinish);\n\n function unpipe() {\n debug(\"unpipe\");\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit(\"pipe\", src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug(\"pipe resume\");\n src.resume();\n }\n\n return dest;\n };\n\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug(\"pipeOnDrain\", state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, \"data\")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n\n Readable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit(\"unpipe\", this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit(\"unpipe\", this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit(\"unpipe\", this, unpipeInfo);\n return this;\n }; // set up data events if they are asked for\n // Ensure readable listeners eventually get something\n\n\n Readable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === \"data\") {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount(\"readable\") > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) 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\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process$1.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n };\n\n Readable.prototype.addListener = Readable.prototype.on;\n\n Readable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === \"readable\") {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process$1.nextTick(updateReadableListening, this);\n }\n\n return res;\n };\n\n Readable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === \"readable\" || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process$1.nextTick(updateReadableListening, this);\n }\n\n return res;\n };\n\n function updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount(\"readable\") > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount(\"data\") > 0) {\n self.resume();\n }\n }\n\n function nReadingNextTick(self) {\n debug(\"readable nexttick read 0\");\n self.read(0);\n } // pause() and resume() are remnants of the legacy readable stream API\n // If the user uses them, then switch into old mode.\n\n\n Readable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug(\"resume\"); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n };\n\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process$1.nextTick(resume_, stream, state);\n }\n }\n\n function resume_(stream, state) {\n debug(\"resume\", state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit(\"resume\");\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n }\n\n Readable.prototype.pause = function () {\n debug(\"call pause flowing=%j\", this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug(\"pause\");\n this._readableState.flowing = false;\n this.emit(\"pause\");\n }\n\n this._readableState.paused = true;\n return this;\n };\n\n function flow(stream) {\n var state = stream._readableState;\n debug(\"flow\", state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n }\n } // wrap an old-style stream as the async data source.\n // This is *not* part of the readable stream interface.\n // It is an ugly unfortunate mess of history.\n\n\n Readable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on(\"end\", function () {\n debug(\"wrapped end\");\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on(\"data\", function (chunk) {\n debug(\"wrapped data\");\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && 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 } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug(\"wrapped _read\", n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n };\n\n if (typeof Symbol === \"function\") {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = dew$5();\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n }\n\n Object.defineProperty(Readable.prototype, \"readableHighWaterMark\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, \"readableBuffer\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, \"readableFlowing\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\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 }); // exposed for testing purposes only.\n\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, \"readableLength\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n }); // Pluck off n bytes from an array of buffers.\n // Length is the combined lengths of all the buffers in the list.\n // This function is designed to be inlinable, so please take care when making\n // changes to the function body.\n\n function fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join(\"\");else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n\n function endReadable(stream) {\n var state = stream._readableState;\n debug(\"endReadable\", state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process$1.nextTick(endReadableNT, state, stream);\n }\n }\n\n function endReadableNT(state, stream) {\n debug(\"endReadableNT\", state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit(\"end\");\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n\n if (typeof Symbol === \"function\") {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = dew$4();\n }\n\n return from(Readable, iterable, opts);\n };\n }\n\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n }\n\n return exports$3;\n}\n\nvar exports$2 = {},\n _dewExec$2 = false;\nfunction dew$2() {\n if (_dewExec$2) return exports$2;\n _dewExec$2 = true;\n exports$2 = Transform;\n\n var _require$codes = dew$b().codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\n var Duplex = dew$7();\n\n dew$f()(Transform, Duplex);\n\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit(\"error\", new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n\n function Transform(options) {\n if (!(this instanceof Transform)) 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 }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === \"function\") this._transform = options.transform;\n if (typeof options.flush === \"function\") this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on(\"prefinish\", prefinish);\n }\n\n function prefinish() {\n var _this = this;\n\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\n Transform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n }; // This is the part where you do stuff!\n // override this function in implementation classes.\n // 'chunk' is an input chunk.\n //\n // Call `push(newChunk)` to pass along transformed output\n // to the readable side. You may call 'push' zero or more times.\n //\n // Call `cb(err)` when you are done with this chunk. If you pass\n // an error, then that'll put the hurt on the whole operation. If you\n // never call cb(), then you'll never get another chunk.\n\n\n Transform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED(\"_transform()\"));\n };\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\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n }; // Doesn't matter what the args are here.\n // _transform does all the work.\n // That we got here means that the readable side wants more data.\n\n\n Transform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n };\n\n Transform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n };\n\n function done(stream, er, data) {\n if (er) return stream.emit(\"error\", er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n\n return exports$2;\n}\n\nvar exports$1 = {},\n _dewExec$1 = false;\nfunction dew$1() {\n if (_dewExec$1) return exports$1;\n _dewExec$1 = true;\n exports$1 = PassThrough;\n\n var Transform = dew$2();\n\n dew$f()(PassThrough, Transform);\n\n function PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n }\n\n PassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n };\n\n return exports$1;\n}\n\nvar exports = {},\n _dewExec = false;\nfunction dew() {\n if (_dewExec) return exports;\n _dewExec = true;\n var eos;\n\n function once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n\n var _require$codes = dew$b().codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\n function noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n }\n\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === \"function\";\n }\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 === undefined) eos = dew$6();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === \"function\") return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED(\"pipe\"));\n };\n }\n\n function call(fn) {\n fn();\n }\n\n function pipe(from, to) {\n return from.pipe(to);\n }\n\n function popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== \"function\") return noop;\n return streams.pop();\n }\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\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS(\"streams\");\n }\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) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n\n exports = pipeline;\n return exports;\n}\n\nexport { dew$3 as a, buffer as b, dew$8 as c, dew$f as d, dew$7 as e, dew$2 as f, dew$1 as g, dew$6 as h, dew as i };\n","var e,t,n=\"object\"==typeof Reflect?Reflect:null,r=n&&\"function\"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&\"function\"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!=e};function o(){o.init.call(this);}e=o,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var s=10;function u(e){if(\"function\"!=typeof e)throw new TypeError('The \"listener\" argument must be of type Function. Received type '+typeof e)}function f(e){return void 0===e._maxListeners?o.defaultMaxListeners:e._maxListeners}function v(e,t,n,r){var i,o,s,v;if(u(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit(\"newListener\",t,n.listener?n.listener:n),o=e._events),s=o[t]),void 0===s)s=o[t]=n,++e._eventsCount;else if(\"function\"==typeof s?s=o[t]=r?[n,s]:[s,n]:r?s.unshift(n):s.push(n),(i=f(e))>0&&s.length>i&&!s.warned){s.warned=!0;var a=new Error(\"Possible EventEmitter memory leak detected. \"+s.length+\" \"+String(t)+\" listeners added. Use emitter.setMaxListeners() to increase limit\");a.name=\"MaxListenersExceededWarning\",a.emitter=e,a.type=t,a.count=s.length,v=a,console&&console.warn&&console.warn(v);}return e}function a(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function l(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=a.bind(r);return i.listener=n,r.wrapFn=i,i}function h(e,t,n){var r=e._events;if(void 0===r)return [];var i=r[t];return void 0===i?[]:\"function\"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(i):c(i,i.length)}function p(e){var t=this._events;if(void 0!==t){var n=t[e];if(\"function\"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function c(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}Object.defineProperty(o,\"defaultMaxListeners\",{enumerable:!0,get:function(){return s},set:function(e){if(\"number\"!=typeof e||e<0||i(e))throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received '+e+\".\");s=e;}}),o.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0;},o.prototype.setMaxListeners=function(e){if(\"number\"!=typeof e||e<0||i(e))throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received '+e+\".\");return this._maxListeners=e,this},o.prototype.getMaxListeners=function(){return f(this)},o.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var i=\"error\"===e,o=this._events;if(void 0!==o)i=i&&void 0===o.error;else if(!i)return !1;if(i){var s;if(t.length>0&&(s=t[0]),s instanceof Error)throw s;var u=new Error(\"Unhandled error.\"+(s?\" (\"+s.message+\")\":\"\"));throw u.context=s,u}var f=o[e];if(void 0===f)return !1;if(\"function\"==typeof f)r(f,this,t);else {var v=f.length,a=c(f,v);for(n=0;n<v;++n)r(a[n],this,t);}return !0},o.prototype.addListener=function(e,t){return v(this,e,t,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(e,t){return v(this,e,t,!0)},o.prototype.once=function(e,t){return u(t),this.on(e,l(this,e,t)),this},o.prototype.prependOnceListener=function(e,t){return u(t),this.prependListener(e,l(this,e,t)),this},o.prototype.removeListener=function(e,t){var n,r,i,o,s;if(u(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit(\"removeListener\",e,n.listener||t));else if(\"function\"!=typeof n){for(i=-1,o=n.length-1;o>=0;o--)if(n[o]===t||n[o].listener===t){s=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():!function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop();}(n,i),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit(\"removeListener\",e,s||t);}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var i,o=Object.keys(n);for(r=0;r<o.length;++r)\"removeListener\"!==(i=o[r])&&this.removeAllListeners(i);return this.removeAllListeners(\"removeListener\"),this._events=Object.create(null),this._eventsCount=0,this}if(\"function\"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},o.prototype.listeners=function(e){return h(this,e,!0)},o.prototype.rawListeners=function(e){return h(this,e,!1)},o.listenerCount=function(e,t){return \"function\"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},o.prototype.listenerCount=p,o.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]};var y=e;y.EventEmitter;y.defaultMaxListeners;y.init;y.listenerCount;\n\ny.EventEmitter;\ny.defaultMaxListeners;\ny.init;\ny.listenerCount;\n\nexport { y };\n","import { X } from './chunk-b4205b57.js';\nimport './chunk-5decc758.js';\n\nX._extend;X.callbackify;X.debuglog;X.deprecate;X.format;X.inherits;X.inspect;X.isArray;X.isBoolean;X.isBuffer;X.isDate;X.isError;X.isFunction;X.isNull;X.isNullOrUndefined;X.isNumber;X.isObject;X.isPrimitive;X.isRegExp;X.isString;X.isSymbol;X.isUndefined;X.log;X.promisify;\n\nvar _extend = X._extend;\nvar callbackify = X.callbackify;\nvar debuglog = X.debuglog;\nvar deprecate = X.deprecate;\nvar format = X.format;\nvar inherits = X.inherits;\nvar inspect = X.inspect;\nvar isArray = X.isArray;\nvar isBoolean = X.isBoolean;\nvar isBuffer = X.isBuffer;\nvar isDate = X.isDate;\nvar isError = X.isError;\nvar isFunction = X.isFunction;\nvar isNull = X.isNull;\nvar isNullOrUndefined = X.isNullOrUndefined;\nvar isNumber = X.isNumber;\nvar isObject = X.isObject;\nvar isPrimitive = X.isPrimitive;\nvar isRegExp = X.isRegExp;\nvar isString = X.isString;\nvar isSymbol = X.isSymbol;\nvar isUndefined = X.isUndefined;\nvar log = X.log;\nvar promisify = X.promisify;\nvar types = X.types;\n\nconst TextEncoder = self.TextEncoder;\nconst TextDecoder = self.TextDecoder;\n\nexport { TextDecoder as T, _extend as _, TextEncoder as a, deprecate as b, callbackify as c, debuglog as d, inspect as e, format as f, isArray as g, isBoolean as h, inherits as i, isBuffer as j, isDate as k, isError as l, isFunction as m, isNull as n, isNullOrUndefined as o, promisify as p, isNumber as q, isObject as r, isPrimitive as s, isRegExp as t, isString as u, isSymbol as v, isUndefined as w, log as x, types as y };\n","import { T as T$1 } from './chunk-5decc758.js';\n\nvar t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.toStringTag,e=Object.prototype.toString,o=function(o){return !(t&&o&&\"object\"==typeof o&&Symbol.toStringTag in o)&&\"[object Arguments]\"===e.call(o)},n=function(t){return !!o(t)||null!==t&&\"object\"==typeof t&&\"number\"==typeof t.length&&t.length>=0&&\"[object Array]\"!==e.call(t)&&\"[object Function]\"===e.call(t.callee)},r=function(){return o(arguments)}();o.isLegacyArguments=n;var l=r?o:n;var t$1=Object.prototype.toString,o$1=Function.prototype.toString,n$1=/^\\s*(?:function)?\\*/,e$1=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.toStringTag,r$1=Object.getPrototypeOf,c=function(){if(!e$1)return !1;try{return Function(\"return function*() {}\")()}catch(t){}}(),u=c?r$1(c):{},i=function(c){return \"function\"==typeof c&&(!!n$1.test(o$1.call(c))||(e$1?r$1(c)===u:\"[object GeneratorFunction]\"===t$1.call(c)))};var t$2=\"function\"==typeof Object.create?function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}));}:function(t,e){if(e){t.super_=e;var o=function(){};o.prototype=e.prototype,t.prototype=new o,t.prototype.constructor=t;}};var i$1=function(e){return e&&\"object\"==typeof e&&\"function\"==typeof e.copy&&\"function\"==typeof e.fill&&\"function\"==typeof e.readUInt8},o$2={},u$1=i$1,f=l,a=i;function c$1(e){return e.call.bind(e)}var s=\"undefined\"!=typeof BigInt,p=\"undefined\"!=typeof Symbol,y=p&&void 0!==Symbol.toStringTag,l$1=\"undefined\"!=typeof Uint8Array,d=\"undefined\"!=typeof ArrayBuffer;if(l$1&&y)var g=Object.getPrototypeOf(Uint8Array.prototype),b=c$1(Object.getOwnPropertyDescriptor(g,Symbol.toStringTag).get);var m=c$1(Object.prototype.toString),h=c$1(Number.prototype.valueOf),j=c$1(String.prototype.valueOf),A=c$1(Boolean.prototype.valueOf);if(s)var w=c$1(BigInt.prototype.valueOf);if(p)var v=c$1(Symbol.prototype.valueOf);function O(e,t){if(\"object\"!=typeof e)return !1;try{return t(e),!0}catch(e){return !1}}function S(e){return l$1&&y?void 0!==b(e):B(e)||k(e)||E(e)||D(e)||U(e)||P(e)||x(e)||I(e)||M(e)||z(e)||F(e)}function B(e){return l$1&&y?\"Uint8Array\"===b(e):\"[object Uint8Array]\"===m(e)||u$1(e)&&void 0!==e.buffer}function k(e){return l$1&&y?\"Uint8ClampedArray\"===b(e):\"[object Uint8ClampedArray]\"===m(e)}function E(e){return l$1&&y?\"Uint16Array\"===b(e):\"[object Uint16Array]\"===m(e)}function D(e){return l$1&&y?\"Uint32Array\"===b(e):\"[object Uint32Array]\"===m(e)}function U(e){return l$1&&y?\"Int8Array\"===b(e):\"[object Int8Array]\"===m(e)}function P(e){return l$1&&y?\"Int16Array\"===b(e):\"[object Int16Array]\"===m(e)}function x(e){return l$1&&y?\"Int32Array\"===b(e):\"[object Int32Array]\"===m(e)}function I(e){return l$1&&y?\"Float32Array\"===b(e):\"[object Float32Array]\"===m(e)}function M(e){return l$1&&y?\"Float64Array\"===b(e):\"[object Float64Array]\"===m(e)}function z(e){return l$1&&y?\"BigInt64Array\"===b(e):\"[object BigInt64Array]\"===m(e)}function F(e){return l$1&&y?\"BigUint64Array\"===b(e):\"[object BigUint64Array]\"===m(e)}function T(e){return \"[object Map]\"===m(e)}function N(e){return \"[object Set]\"===m(e)}function W(e){return \"[object WeakMap]\"===m(e)}function $(e){return \"[object WeakSet]\"===m(e)}function C(e){return \"[object ArrayBuffer]\"===m(e)}function V(e){return \"undefined\"!=typeof ArrayBuffer&&(C.working?C(e):e instanceof ArrayBuffer)}function G(e){return \"[object DataView]\"===m(e)}function R(e){return \"undefined\"!=typeof DataView&&(G.working?G(e):e instanceof DataView)}function J(e){return \"[object SharedArrayBuffer]\"===m(e)}function _(e){return \"undefined\"!=typeof SharedArrayBuffer&&(J.working?J(e):e instanceof SharedArrayBuffer)}function H(e){return O(e,h)}function Z(e){return O(e,j)}function q(e){return O(e,A)}function K(e){return s&&O(e,w)}function L(e){return p&&O(e,v)}o$2.isArgumentsObject=f,o$2.isGeneratorFunction=a,o$2.isPromise=function(e){return \"undefined\"!=typeof Promise&&e instanceof Promise||null!==e&&\"object\"==typeof e&&\"function\"==typeof e.then&&\"function\"==typeof e.catch},o$2.isArrayBufferView=function(e){return d&&ArrayBuffer.isView?ArrayBuffer.isView(e):S(e)||R(e)},o$2.isTypedArray=S,o$2.isUint8Array=B,o$2.isUint8ClampedArray=k,o$2.isUint16Array=E,o$2.isUint32Array=D,o$2.isInt8Array=U,o$2.isInt16Array=P,o$2.isInt32Array=x,o$2.isFloat32Array=I,o$2.isFloat64Array=M,o$2.isBigInt64Array=z,o$2.isBigUint64Array=F,T.working=\"undefined\"!=typeof Map&&T(new Map),o$2.isMap=function(e){return \"undefined\"!=typeof Map&&(T.working?T(e):e instanceof Map)},N.working=\"undefined\"!=typeof Set&&N(new Set),o$2.isSet=function(e){return \"undefined\"!=typeof Set&&(N.working?N(e):e instanceof Set)},W.working=\"undefined\"!=typeof WeakMap&&W(new WeakMap),o$2.isWeakMap=function(e){return \"undefined\"!=typeof WeakMap&&(W.working?W(e):e instanceof WeakMap)},$.working=\"undefined\"!=typeof WeakSet&&$(new WeakSet),o$2.isWeakSet=function(e){return $(e)},C.working=\"undefined\"!=typeof ArrayBuffer&&C(new ArrayBuffer),o$2.isArrayBuffer=V,G.working=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof DataView&&G(new DataView(new ArrayBuffer(1),0,1)),o$2.isDataView=R,J.working=\"undefined\"!=typeof SharedArrayBuffer&&J(new SharedArrayBuffer),o$2.isSharedArrayBuffer=_,o$2.isAsyncFunction=function(e){return \"[object AsyncFunction]\"===m(e)},o$2.isMapIterator=function(e){return \"[object Map Iterator]\"===m(e)},o$2.isSetIterator=function(e){return \"[object Set Iterator]\"===m(e)},o$2.isGeneratorObject=function(e){return \"[object Generator]\"===m(e)},o$2.isWebAssemblyCompiledModule=function(e){return \"[object WebAssembly.Module]\"===m(e)},o$2.isNumberObject=H,o$2.isStringObject=Z,o$2.isBooleanObject=q,o$2.isBigIntObject=K,o$2.isSymbolObject=L,o$2.isBoxedPrimitive=function(e){return H(e)||Z(e)||q(e)||K(e)||L(e)},o$2.isAnyArrayBuffer=function(e){return l$1&&(V(e)||_(e))},[\"isProxy\",\"isExternal\",\"isModuleNamespaceObject\"].forEach((function(e){Object.defineProperty(o$2,e,{enumerable:!1,value:function(){throw new Error(e+\" is not supported in userland\")}});}));var Q=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:global,X={},Y=T$1,ee=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),r={},n=0;n<t.length;n++)r[t[n]]=Object.getOwnPropertyDescriptor(e,t[n]);return r},te=/%[sdj%]/g;X.format=function(e){if(!ge(e)){for(var t=[],r=0;r<arguments.length;r++)t.push(oe(arguments[r]));return t.join(\" \")}r=1;for(var n=arguments,i=n.length,o=String(e).replace(te,(function(e){if(\"%%\"===e)return \"%\";if(r>=i)return e;switch(e){case\"%s\":return String(n[r++]);case\"%d\":return Number(n[r++]);case\"%j\":try{return JSON.stringify(n[r++])}catch(e){return \"[Circular]\"}default:return e}})),u=n[r];r<i;u=n[++r])le(u)||!he(u)?o+=\" \"+u:o+=\" \"+oe(u);return o},X.deprecate=function(e,t){if(void 0!==Y&&!0===Y.noDeprecation)return e;if(void 0===Y)return function(){return X.deprecate(e,t).apply(this||Q,arguments)};var r=!1;return function(){if(!r){if(Y.throwDeprecation)throw new Error(t);Y.traceDeprecation?console.trace(t):console.error(t),r=!0;}return e.apply(this||Q,arguments)}};var re={},ne=/^$/;if(Y.env.NODE_DEBUG){var ie=Y.env.NODE_DEBUG;ie=ie.replace(/[|\\\\{}()[\\]^$+?.]/g,\"\\\\$&\").replace(/\\*/g,\".*\").replace(/,/g,\"$|^\").toUpperCase(),ne=new RegExp(\"^\"+ie+\"$\",\"i\");}function oe(e,t){var r={seen:[],stylize:fe};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),ye(t)?r.showHidden=t:t&&X._extend(r,t),be(r.showHidden)&&(r.showHidden=!1),be(r.depth)&&(r.depth=2),be(r.colors)&&(r.colors=!1),be(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=ue),ae(r,e,r.depth)}function ue(e,t){var r=oe.styles[t];return r?\"\u001b[\"+oe.colors[r][0]+\"m\"+e+\"\u001b[\"+oe.colors[r][1]+\"m\":e}function fe(e,t){return e}function ae(e,t,r){if(e.customInspect&&t&&we(t.inspect)&&t.inspect!==X.inspect&&(!t.constructor||t.constructor.prototype!==t)){var n=t.inspect(r,e);return ge(n)||(n=ae(e,n,r)),n}var i=function(e,t){if(be(t))return e.stylize(\"undefined\",\"undefined\");if(ge(t)){var r=\"'\"+JSON.stringify(t).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return e.stylize(r,\"string\")}if(de(t))return e.stylize(\"\"+t,\"number\");if(ye(t))return e.stylize(\"\"+t,\"boolean\");if(le(t))return e.stylize(\"null\",\"null\")}(e,t);if(i)return i;var o=Object.keys(t),u=function(e){var t={};return e.forEach((function(e,r){t[e]=!0;})),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),Ae(t)&&(o.indexOf(\"message\")>=0||o.indexOf(\"description\")>=0))return ce(t);if(0===o.length){if(we(t)){var f=t.name?\": \"+t.name:\"\";return e.stylize(\"[Function\"+f+\"]\",\"special\")}if(me(t))return e.stylize(RegExp.prototype.toString.call(t),\"regexp\");if(je(t))return e.stylize(Date.prototype.toString.call(t),\"date\");if(Ae(t))return ce(t)}var a,c=\"\",s=!1,p=[\"{\",\"}\"];(pe(t)&&(s=!0,p=[\"[\",\"]\"]),we(t))&&(c=\" [Function\"+(t.name?\": \"+t.name:\"\")+\"]\");return me(t)&&(c=\" \"+RegExp.prototype.toString.call(t)),je(t)&&(c=\" \"+Date.prototype.toUTCString.call(t)),Ae(t)&&(c=\" \"+ce(t)),0!==o.length||s&&0!=t.length?r<0?me(t)?e.stylize(RegExp.prototype.toString.call(t),\"regexp\"):e.stylize(\"[Object]\",\"special\"):(e.seen.push(t),a=s?function(e,t,r,n,i){for(var o=[],u=0,f=t.length;u<f;++u)ke(t,String(u))?o.push(se(e,t,r,n,String(u),!0)):o.push(\"\");return i.forEach((function(i){i.match(/^\\d+$/)||o.push(se(e,t,r,n,i,!0));})),o}(e,t,r,u,o):o.map((function(n){return se(e,t,r,u,n,s)})),e.seen.pop(),function(e,t,r){var n=0;if(e.reduce((function(e,t){return n++,t.indexOf(\"\\n\")>=0&&n++,e+t.replace(/\\u001b\\[\\d\\d?m/g,\"\").length+1}),0)>60)return r[0]+(\"\"===t?\"\":t+\"\\n \")+\" \"+e.join(\",\\n \")+\" \"+r[1];return r[0]+t+\" \"+e.join(\", \")+\" \"+r[1]}(a,c,p)):p[0]+c+p[1]}function ce(e){return \"[\"+Error.prototype.toString.call(e)+\"]\"}function se(e,t,r,n,i,o){var u,f,a;if((a=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?f=a.set?e.stylize(\"[Getter/Setter]\",\"special\"):e.stylize(\"[Getter]\",\"special\"):a.set&&(f=e.stylize(\"[Setter]\",\"special\")),ke(n,i)||(u=\"[\"+i+\"]\"),f||(e.seen.indexOf(a.value)<0?(f=le(r)?ae(e,a.value,null):ae(e,a.value,r-1)).indexOf(\"\\n\")>-1&&(f=o?f.split(\"\\n\").map((function(e){return \" \"+e})).join(\"\\n\").substr(2):\"\\n\"+f.split(\"\\n\").map((function(e){return \" \"+e})).join(\"\\n\")):f=e.stylize(\"[Circular]\",\"special\")),be(u)){if(o&&i.match(/^\\d+$/))return f;(u=JSON.stringify(\"\"+i)).match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(u=u.substr(1,u.length-2),u=e.stylize(u,\"name\")):(u=u.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),u=e.stylize(u,\"string\"));}return u+\": \"+f}function pe(e){return Array.isArray(e)}function ye(e){return \"boolean\"==typeof e}function le(e){return null===e}function de(e){return \"number\"==typeof e}function ge(e){return \"string\"==typeof e}function be(e){return void 0===e}function me(e){return he(e)&&\"[object RegExp]\"===ve(e)}function he(e){return \"object\"==typeof e&&null!==e}function je(e){return he(e)&&\"[object Date]\"===ve(e)}function Ae(e){return he(e)&&(\"[object Error]\"===ve(e)||e instanceof Error)}function we(e){return \"function\"==typeof e}function ve(e){return Object.prototype.toString.call(e)}function Oe(e){return e<10?\"0\"+e.toString(10):e.toString(10)}X.debuglog=function(e){if(e=e.toUpperCase(),!re[e])if(ne.test(e)){var t=Y.pid;re[e]=function(){var r=X.format.apply(X,arguments);console.error(\"%s %d: %s\",e,t,r);};}else re[e]=function(){};return re[e]},X.inspect=oe,oe.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},oe.styles={special:\"cyan\",number:\"yellow\",boolean:\"yellow\",undefined:\"grey\",null:\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"},X.types=o$2,X.isArray=pe,X.isBoolean=ye,X.isNull=le,X.isNullOrUndefined=function(e){return null==e},X.isNumber=de,X.isString=ge,X.isSymbol=function(e){return \"symbol\"==typeof e},X.isUndefined=be,X.isRegExp=me,X.types.isRegExp=me,X.isObject=he,X.isDate=je,X.types.isDate=je,X.isError=Ae,X.types.isNativeError=Ae,X.isFunction=we,X.isPrimitive=function(e){return null===e||\"boolean\"==typeof e||\"number\"==typeof e||\"string\"==typeof e||\"symbol\"==typeof e||void 0===e},X.isBuffer=i$1;var Se=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function Be(){var e=new Date,t=[Oe(e.getHours()),Oe(e.getMinutes()),Oe(e.getSeconds())].join(\":\");return [e.getDate(),Se[e.getMonth()],t].join(\" \")}function ke(e,t){return Object.prototype.hasOwnProperty.call(e,t)}X.log=function(){console.log(\"%s - %s\",Be(),X.format.apply(X,arguments));},X.inherits=t$2,X._extend=function(e,t){if(!t||!he(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e};var Ee=\"undefined\"!=typeof Symbol?Symbol(\"util.promisify.custom\"):void 0;function De(e,t){if(!e){var r=new Error(\"Promise was rejected with a falsy value\");r.reason=e,e=r;}return t(e)}X.promisify=function(e){if(\"function\"!=typeof e)throw new TypeError('The \"original\" argument must be of type Function');if(Ee&&e[Ee]){var t;if(\"function\"!=typeof(t=e[Ee]))throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');return Object.defineProperty(t,Ee,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,r,n=new Promise((function(e,n){t=e,r=n;})),i=[],o=0;o<arguments.length;o++)i.push(arguments[o]);i.push((function(e,n){e?r(e):t(n);}));try{e.apply(this||Q,i);}catch(e){r(e);}return n}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),Ee&&Object.defineProperty(t,Ee,{value:t,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(t,ee(e))},X.promisify.custom=Ee,X.callbackify=function(e){if(\"function\"!=typeof e)throw new TypeError('The \"original\" argument must be of type Function');function t(){for(var t=[],r=0;r<arguments.length;r++)t.push(arguments[r]);var n=t.pop();if(\"function\"!=typeof n)throw new TypeError(\"The last argument must be of type Function\");var i=this||Q,o=function(){return n.apply(i,arguments)};e.apply(this||Q,t).then((function(e){Y.nextTick(o.bind(null,null,e));}),(function(e){Y.nextTick(De.bind(null,e,o));}));}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),Object.defineProperties(t,ee(e)),t};\n\nexport { X, t$2 as t };\n","var e,t,n,r=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:global,o=e={};function i(){throw new Error(\"setTimeout has not been defined\")}function u(){throw new Error(\"clearTimeout has not been defined\")}function c(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this||r,e,0)}}}!function(){try{t=\"function\"==typeof setTimeout?setTimeout:i;}catch(e){t=i;}try{n=\"function\"==typeof clearTimeout?clearTimeout:u;}catch(e){n=u;}}();var l,s=[],f=!1,a=-1;function h(){f&&l&&(f=!1,l.length?s=l.concat(s):a=-1,s.length&&d());}function d(){if(!f){var e=c(h);f=!0;for(var t=s.length;t;){for(l=s,s=[];++a<t;)l&&l[a].run();a=-1,t=s.length;}l=null,f=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===u||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e);}catch(t){try{return n.call(null,e)}catch(t){return n.call(this||r,e)}}}(e);}}function m(e,t){(this||r).fun=e,(this||r).array=t;}function p(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];s.push(new m(e,t)),1!==s.length||f||c(d);},m.prototype.run=function(){(this||r).fun.apply(null,(this||r).array);},o.title=\"browser\",o.browser=!0,o.env={},o.argv=[],o.version=\"\",o.versions={},o.on=p,o.addListener=p,o.once=p,o.off=p,o.removeListener=p,o.removeAllListeners=p,o.emit=p,o.prependListener=p,o.prependOnceListener=p,o.listeners=function(e){return []},o.binding=function(e){throw new Error(\"process.binding is not supported\")},o.cwd=function(){return \"/\"},o.chdir=function(e){throw new Error(\"process.chdir is not supported\")},o.umask=function(){return 0};var T=e;T.addListener;T.argv;T.binding;T.browser;T.chdir;T.cwd;T.emit;T.env;T.listeners;T.nextTick;T.off;T.on;T.once;T.prependListener;T.prependOnceListener;T.removeAllListeners;T.removeListener;T.title;T.umask;T.version;T.versions;\n\nexport { T };\n","var exports = {},\n _dewExec = false;\n\nvar _global = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nfunction dew() {\n if (_dewExec) return exports;\n _dewExec = true;\n // shim for using process in browser\n var process = exports = {}; // cached from whatever global is present so that test runners that stub it\n // don't break things. But we need to wrap it in a try catch in case it is\n // wrapped in strict mode code which doesn't define any globals. It's inside a\n // function because try/catches deoptimize in certain engines.\n\n var cachedSetTimeout;\n var cachedClearTimeout;\n\n function defaultSetTimout() {\n throw new Error(\"setTimeout has not been defined\");\n }\n\n function defaultClearTimeout() {\n throw new Error(\"clearTimeout has not been defined\");\n }\n\n (function () {\n try {\n if (typeof setTimeout === \"function\") {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === \"function\") {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n })();\n\n function runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this || _global, fun, 0);\n }\n }\n }\n\n function runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this || _global, marker);\n }\n }\n }\n\n var queue = [];\n var draining = false;\n var currentQueue;\n var queueIndex = -1;\n\n function cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n }\n\n function drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n }\n\n process.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n }; // v8 likes predictible objects\n\n\n function Item(fun, array) {\n (this || _global).fun = fun;\n (this || _global).array = array;\n }\n\n Item.prototype.run = function () {\n (this || _global).fun.apply(null, (this || _global).array);\n };\n\n process.title = \"browser\";\n process.browser = true;\n process.env = {};\n process.argv = [];\n process.version = \"\"; // empty string to avoid regexp issues\n\n process.versions = {};\n\n function noop() {}\n\n process.on = noop;\n process.addListener = noop;\n process.once = noop;\n process.off = noop;\n process.removeListener = noop;\n process.removeAllListeners = noop;\n process.emit = noop;\n process.prependListener = noop;\n process.prependOnceListener = noop;\n\n process.listeners = function (name) {\n return [];\n };\n\n process.binding = function (name) {\n throw new Error(\"process.binding is not supported\");\n };\n\n process.cwd = function () {\n return \"/\";\n };\n\n process.chdir = function (dir) {\n throw new Error(\"process.chdir is not supported\");\n };\n\n process.umask = function () {\n return 0;\n };\n\n return exports;\n}\n\nvar process = dew();\n\nprocess.platform = 'browser';\nprocess.addListener;\nprocess.argv;\nprocess.binding;\nprocess.browser;\nprocess.chdir;\nprocess.cwd;\nprocess.emit;\nprocess.env;\nprocess.listeners;\nprocess.nextTick;\nprocess.off;\nprocess.on;\nprocess.once;\nprocess.prependListener;\nprocess.prependOnceListener;\nprocess.removeAllListeners;\nprocess.removeListener;\nprocess.title;\nprocess.umask;\nprocess.version;\nprocess.versions;\n\nexport { process as p };\n","for(var r$1={byteLength:function(r){var t=u$2(r),e=t[0],n=t[1];return 3*(e+n)/4-n},toByteArray:function(r){var t,o,a=u$2(r),h=a[0],c=a[1],d=new n$2(function(r,t,e){return 3*(t+e)/4-e}(0,h,c)),f=0,A=c>0?h-4:h;for(o=0;o<A;o+=4)t=e$2[r.charCodeAt(o)]<<18|e$2[r.charCodeAt(o+1)]<<12|e$2[r.charCodeAt(o+2)]<<6|e$2[r.charCodeAt(o+3)],d[f++]=t>>16&255,d[f++]=t>>8&255,d[f++]=255&t;2===c&&(t=e$2[r.charCodeAt(o)]<<2|e$2[r.charCodeAt(o+1)]>>4,d[f++]=255&t);1===c&&(t=e$2[r.charCodeAt(o)]<<10|e$2[r.charCodeAt(o+1)]<<4|e$2[r.charCodeAt(o+2)]>>2,d[f++]=t>>8&255,d[f++]=255&t);return d},fromByteArray:function(r){for(var e,n=r.length,o=n%3,a=[],h=0,u=n-o;h<u;h+=16383)a.push(c$1(r,h,h+16383>u?u:h+16383));1===o?(e=r[n-1],a.push(t$1[e>>2]+t$1[e<<4&63]+\"==\")):2===o&&(e=(r[n-2]<<8)+r[n-1],a.push(t$1[e>>10]+t$1[e>>4&63]+t$1[e<<2&63]+\"=\"));return a.join(\"\")}},t$1=[],e$2=[],n$2=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,o$2=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",a$1=0,h$1=o$2.length;a$1<h$1;++a$1)t$1[a$1]=o$2[a$1],e$2[o$2.charCodeAt(a$1)]=a$1;function u$2(r){var t=r.length;if(t%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var e=r.indexOf(\"=\");return -1===e&&(e=t),[e,e===t?0:4-e%4]}function c$1(r,e,n){for(var o,a,h=[],u=e;u<n;u+=3)o=(r[u]<<16&16711680)+(r[u+1]<<8&65280)+(255&r[u+2]),h.push(t$1[(a=o)>>18&63]+t$1[a>>12&63]+t$1[a>>6&63]+t$1[63&a]);return h.join(\"\")}e$2[\"-\".charCodeAt(0)]=62,e$2[\"_\".charCodeAt(0)]=63;var a$1$1={read:function(a,t,o,r,h){var M,f,p=8*h-r-1,w=(1<<p)-1,e=w>>1,i=-7,N=o?h-1:0,n=o?-1:1,u=a[t+N];for(N+=n,M=u&(1<<-i)-1,u>>=-i,i+=p;i>0;M=256*M+a[t+N],N+=n,i-=8);for(f=M&(1<<-i)-1,M>>=-i,i+=r;i>0;f=256*f+a[t+N],N+=n,i-=8);if(0===M)M=1-e;else {if(M===w)return f?NaN:1/0*(u?-1:1);f+=Math.pow(2,r),M-=e;}return (u?-1:1)*f*Math.pow(2,M-r)},write:function(a,t,o,r,h,M){var f,p,w,e=8*M-h-1,i=(1<<e)-1,N=i>>1,n=23===h?Math.pow(2,-24)-Math.pow(2,-77):0,u=r?0:M-1,l=r?1:-1,s=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(p=isNaN(t)?1:0,f=i):(f=Math.floor(Math.log(t)/Math.LN2),t*(w=Math.pow(2,-f))<1&&(f--,w*=2),(t+=f+N>=1?n/w:n*Math.pow(2,1-N))*w>=2&&(f++,w/=2),f+N>=i?(p=0,f=i):f+N>=1?(p=(t*w-1)*Math.pow(2,h),f+=N):(p=t*Math.pow(2,N-1)*Math.pow(2,h),f=0));h>=8;a[o+u]=255&p,u+=l,p/=256,h-=8);for(f=f<<h|p,e+=h;e>0;a[o+u]=255&f,u+=l,f/=256,e-=8);a[o+u-l]|=128*s;}};var e$1$1={},n$1$1=r$1,i$1=a$1$1,o$1$1=\"function\"==typeof Symbol&&\"function\"==typeof Symbol.for?Symbol.for(\"nodejs.util.inspect.custom\"):null;e$1$1.Buffer=u$1$1,e$1$1.SlowBuffer=function(t){+t!=t&&(t=0);return u$1$1.alloc(+t)},e$1$1.INSPECT_MAX_BYTES=50;function f$2(t){if(t>2147483647)throw new RangeError('The value \"'+t+'\" is invalid for option \"size\"');var r=new Uint8Array(t);return Object.setPrototypeOf(r,u$1$1.prototype),r}function u$1$1(t,r,e){if(\"number\"==typeof t){if(\"string\"==typeof r)throw new TypeError('The \"string\" argument must be of type string. Received type number');return a$2(t)}return s$1(t,r,e)}function s$1(t,r,e){if(\"string\"==typeof t)return function(t,r){\"string\"==typeof r&&\"\"!==r||(r=\"utf8\");if(!u$1$1.isEncoding(r))throw new TypeError(\"Unknown encoding: \"+r);var e=0|y(t,r),n=f$2(e),i=n.write(t,r);i!==e&&(n=n.slice(0,i));return n}(t,r);if(ArrayBuffer.isView(t))return p(t);if(null==t)throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof t);if(F(t,ArrayBuffer)||t&&F(t.buffer,ArrayBuffer))return c$1$1(t,r,e);if(\"undefined\"!=typeof SharedArrayBuffer&&(F(t,SharedArrayBuffer)||t&&F(t.buffer,SharedArrayBuffer)))return c$1$1(t,r,e);if(\"number\"==typeof t)throw new TypeError('The \"value\" argument must not be of type number. Received type number');var n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return u$1$1.from(n,r,e);var i=function(t){if(u$1$1.isBuffer(t)){var r=0|l$1(t.length),e=f$2(r);return 0===e.length||t.copy(e,0,0,r),e}if(void 0!==t.length)return \"number\"!=typeof t.length||N(t.length)?f$2(0):p(t);if(\"Buffer\"===t.type&&Array.isArray(t.data))return p(t.data)}(t);if(i)return i;if(\"undefined\"!=typeof Symbol&&null!=Symbol.toPrimitive&&\"function\"==typeof t[Symbol.toPrimitive])return u$1$1.from(t[Symbol.toPrimitive](\"string\"),r,e);throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof t)}function h$1$1(t){if(\"number\"!=typeof t)throw new TypeError('\"size\" argument must be of type number');if(t<0)throw new RangeError('The value \"'+t+'\" is invalid for option \"size\"')}function a$2(t){return h$1$1(t),f$2(t<0?0:0|l$1(t))}function p(t){for(var r=t.length<0?0:0|l$1(t.length),e=f$2(r),n=0;n<r;n+=1)e[n]=255&t[n];return e}function c$1$1(t,r,e){if(r<0||t.byteLength<r)throw new RangeError('\"offset\" is outside of buffer bounds');if(t.byteLength<r+(e||0))throw new RangeError('\"length\" is outside of buffer bounds');var n;return n=void 0===r&&void 0===e?new Uint8Array(t):void 0===e?new Uint8Array(t,r):new Uint8Array(t,r,e),Object.setPrototypeOf(n,u$1$1.prototype),n}function l$1(t){if(t>=2147483647)throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+2147483647..toString(16)+\" bytes\");return 0|t}function y(t,r){if(u$1$1.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||F(t,ArrayBuffer))return t.byteLength;if(\"string\"!=typeof t)throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var e=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===e)return 0;for(var i=!1;;)switch(r){case\"ascii\":case\"latin1\":case\"binary\":return e;case\"utf8\":case\"utf-8\":return _(t).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*e;case\"hex\":return e>>>1;case\"base64\":return z(t).length;default:if(i)return n?-1:_(t).length;r=(\"\"+r).toLowerCase(),i=!0;}}function g(t,r,e){var n=!1;if((void 0===r||r<0)&&(r=0),r>this.length)return \"\";if((void 0===e||e>this.length)&&(e=this.length),e<=0)return \"\";if((e>>>=0)<=(r>>>=0))return \"\";for(t||(t=\"utf8\");;)switch(t){case\"hex\":return O(this,r,e);case\"utf8\":case\"utf-8\":return I(this,r,e);case\"ascii\":return S(this,r,e);case\"latin1\":case\"binary\":return R(this,r,e);case\"base64\":return T(this,r,e);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return L(this,r,e);default:if(n)throw new TypeError(\"Unknown encoding: \"+t);t=(t+\"\").toLowerCase(),n=!0;}}function w(t,r,e){var n=t[r];t[r]=t[e],t[e]=n;}function d(t,r,e,n,i){if(0===t.length)return -1;if(\"string\"==typeof e?(n=e,e=0):e>2147483647?e=2147483647:e<-2147483648&&(e=-2147483648),N(e=+e)&&(e=i?0:t.length-1),e<0&&(e=t.length+e),e>=t.length){if(i)return -1;e=t.length-1;}else if(e<0){if(!i)return -1;e=0;}if(\"string\"==typeof r&&(r=u$1$1.from(r,n)),u$1$1.isBuffer(r))return 0===r.length?-1:v(t,r,e,n,i);if(\"number\"==typeof r)return r&=255,\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,r,e):Uint8Array.prototype.lastIndexOf.call(t,r,e):v(t,[r],e,n,i);throw new TypeError(\"val must be string, number or Buffer\")}function v(t,r,e,n,i){var o,f=1,u=t.length,s=r.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(t.length<2||r.length<2)return -1;f=2,u/=2,s/=2,e/=2;}function h(t,r){return 1===f?t[r]:t.readUInt16BE(r*f)}if(i){var a=-1;for(o=e;o<u;o++)if(h(t,o)===h(r,-1===a?0:o-a)){if(-1===a&&(a=o),o-a+1===s)return a*f}else -1!==a&&(o-=o-a),a=-1;}else for(e+s>u&&(e=u-s),o=e;o>=0;o--){for(var p=!0,c=0;c<s;c++)if(h(t,o+c)!==h(r,c)){p=!1;break}if(p)return o}return -1}function b(t,r,e,n){e=Number(e)||0;var i=t.length-e;n?(n=Number(n))>i&&(n=i):n=i;var o=r.length;n>o/2&&(n=o/2);for(var f=0;f<n;++f){var u=parseInt(r.substr(2*f,2),16);if(N(u))return f;t[e+f]=u;}return f}function m(t,r,e,n){return D(_(r,t.length-e),t,e,n)}function E(t,r,e,n){return D(function(t){for(var r=[],e=0;e<t.length;++e)r.push(255&t.charCodeAt(e));return r}(r),t,e,n)}function B(t,r,e,n){return E(t,r,e,n)}function A(t,r,e,n){return D(z(r),t,e,n)}function U(t,r,e,n){return D(function(t,r){for(var e,n,i,o=[],f=0;f<t.length&&!((r-=2)<0);++f)e=t.charCodeAt(f),n=e>>8,i=e%256,o.push(i),o.push(n);return o}(r,t.length-e),t,e,n)}function T(t,r,e){return 0===r&&e===t.length?n$1$1.fromByteArray(t):n$1$1.fromByteArray(t.slice(r,e))}function I(t,r,e){e=Math.min(t.length,e);for(var n=[],i=r;i<e;){var o,f,u,s,h=t[i],a=null,p=h>239?4:h>223?3:h>191?2:1;if(i+p<=e)switch(p){case 1:h<128&&(a=h);break;case 2:128==(192&(o=t[i+1]))&&(s=(31&h)<<6|63&o)>127&&(a=s);break;case 3:o=t[i+1],f=t[i+2],128==(192&o)&&128==(192&f)&&(s=(15&h)<<12|(63&o)<<6|63&f)>2047&&(s<55296||s>57343)&&(a=s);break;case 4:o=t[i+1],f=t[i+2],u=t[i+3],128==(192&o)&&128==(192&f)&&128==(192&u)&&(s=(15&h)<<18|(63&o)<<12|(63&f)<<6|63&u)>65535&&s<1114112&&(a=s);}null===a?(a=65533,p=1):a>65535&&(a-=65536,n.push(a>>>10&1023|55296),a=56320|1023&a),n.push(a),i+=p;}return function(t){var r=t.length;if(r<=4096)return String.fromCharCode.apply(String,t);var e=\"\",n=0;for(;n<r;)e+=String.fromCharCode.apply(String,t.slice(n,n+=4096));return e}(n)}e$1$1.kMaxLength=2147483647,u$1$1.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1),r={foo:function(){return 42}};return Object.setPrototypeOf(r,Uint8Array.prototype),Object.setPrototypeOf(t,r),42===t.foo()}catch(t){return !1}}(),u$1$1.TYPED_ARRAY_SUPPORT||\"undefined\"==typeof console||\"function\"!=typeof console.error||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.\"),Object.defineProperty(u$1$1.prototype,\"parent\",{enumerable:!0,get:function(){if(u$1$1.isBuffer(this))return this.buffer}}),Object.defineProperty(u$1$1.prototype,\"offset\",{enumerable:!0,get:function(){if(u$1$1.isBuffer(this))return this.byteOffset}}),u$1$1.poolSize=8192,u$1$1.from=function(t,r,e){return s$1(t,r,e)},Object.setPrototypeOf(u$1$1.prototype,Uint8Array.prototype),Object.setPrototypeOf(u$1$1,Uint8Array),u$1$1.alloc=function(t,r,e){return function(t,r,e){return h$1$1(t),t<=0?f$2(t):void 0!==r?\"string\"==typeof e?f$2(t).fill(r,e):f$2(t).fill(r):f$2(t)}(t,r,e)},u$1$1.allocUnsafe=function(t){return a$2(t)},u$1$1.allocUnsafeSlow=function(t){return a$2(t)},u$1$1.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==u$1$1.prototype},u$1$1.compare=function(t,r){if(F(t,Uint8Array)&&(t=u$1$1.from(t,t.offset,t.byteLength)),F(r,Uint8Array)&&(r=u$1$1.from(r,r.offset,r.byteLength)),!u$1$1.isBuffer(t)||!u$1$1.isBuffer(r))throw new TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array');if(t===r)return 0;for(var e=t.length,n=r.length,i=0,o=Math.min(e,n);i<o;++i)if(t[i]!==r[i]){e=t[i],n=r[i];break}return e<n?-1:n<e?1:0},u$1$1.isEncoding=function(t){switch(String(t).toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"latin1\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return !0;default:return !1}},u$1$1.concat=function(t,r){if(!Array.isArray(t))throw new TypeError('\"list\" argument must be an Array of Buffers');if(0===t.length)return u$1$1.alloc(0);var e;if(void 0===r)for(r=0,e=0;e<t.length;++e)r+=t[e].length;var n=u$1$1.allocUnsafe(r),i=0;for(e=0;e<t.length;++e){var o=t[e];if(F(o,Uint8Array)&&(o=u$1$1.from(o)),!u$1$1.isBuffer(o))throw new TypeError('\"list\" argument must be an Array of Buffers');o.copy(n,i),i+=o.length;}return n},u$1$1.byteLength=y,u$1$1.prototype._isBuffer=!0,u$1$1.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError(\"Buffer size must be a multiple of 16-bits\");for(var r=0;r<t;r+=2)w(this,r,r+1);return this},u$1$1.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError(\"Buffer size must be a multiple of 32-bits\");for(var r=0;r<t;r+=4)w(this,r,r+3),w(this,r+1,r+2);return this},u$1$1.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError(\"Buffer size must be a multiple of 64-bits\");for(var r=0;r<t;r+=8)w(this,r,r+7),w(this,r+1,r+6),w(this,r+2,r+5),w(this,r+3,r+4);return this},u$1$1.prototype.toString=function(){var t=this.length;return 0===t?\"\":0===arguments.length?I(this,0,t):g.apply(this,arguments)},u$1$1.prototype.toLocaleString=u$1$1.prototype.toString,u$1$1.prototype.equals=function(t){if(!u$1$1.isBuffer(t))throw new TypeError(\"Argument must be a Buffer\");return this===t||0===u$1$1.compare(this,t)},u$1$1.prototype.inspect=function(){var t=\"\",r=e$1$1.INSPECT_MAX_BYTES;return t=this.toString(\"hex\",0,r).replace(/(.{2})/g,\"$1 \").trim(),this.length>r&&(t+=\" ... \"),\"<Buffer \"+t+\">\"},o$1$1&&(u$1$1.prototype[o$1$1]=u$1$1.prototype.inspect),u$1$1.prototype.compare=function(t,r,e,n,i){if(F(t,Uint8Array)&&(t=u$1$1.from(t,t.offset,t.byteLength)),!u$1$1.isBuffer(t))throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===r&&(r=0),void 0===e&&(e=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),r<0||e>t.length||n<0||i>this.length)throw new RangeError(\"out of range index\");if(n>=i&&r>=e)return 0;if(n>=i)return -1;if(r>=e)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(n>>>=0),f=(e>>>=0)-(r>>>=0),s=Math.min(o,f),h=this.slice(n,i),a=t.slice(r,e),p=0;p<s;++p)if(h[p]!==a[p]){o=h[p],f=a[p];break}return o<f?-1:f<o?1:0},u$1$1.prototype.includes=function(t,r,e){return -1!==this.indexOf(t,r,e)},u$1$1.prototype.indexOf=function(t,r,e){return d(this,t,r,e,!0)},u$1$1.prototype.lastIndexOf=function(t,r,e){return d(this,t,r,e,!1)},u$1$1.prototype.write=function(t,r,e,n){if(void 0===r)n=\"utf8\",e=this.length,r=0;else if(void 0===e&&\"string\"==typeof r)n=r,e=this.length,r=0;else {if(!isFinite(r))throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");r>>>=0,isFinite(e)?(e>>>=0,void 0===n&&(n=\"utf8\")):(n=e,e=void 0);}var i=this.length-r;if((void 0===e||e>i)&&(e=i),t.length>0&&(e<0||r<0)||r>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");n||(n=\"utf8\");for(var o=!1;;)switch(n){case\"hex\":return b(this,t,r,e);case\"utf8\":case\"utf-8\":return m(this,t,r,e);case\"ascii\":return E(this,t,r,e);case\"latin1\":case\"binary\":return B(this,t,r,e);case\"base64\":return A(this,t,r,e);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return U(this,t,r,e);default:if(o)throw new TypeError(\"Unknown encoding: \"+n);n=(\"\"+n).toLowerCase(),o=!0;}},u$1$1.prototype.toJSON=function(){return {type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};function S(t,r,e){var n=\"\";e=Math.min(t.length,e);for(var i=r;i<e;++i)n+=String.fromCharCode(127&t[i]);return n}function R(t,r,e){var n=\"\";e=Math.min(t.length,e);for(var i=r;i<e;++i)n+=String.fromCharCode(t[i]);return n}function O(t,r,e){var n=t.length;(!r||r<0)&&(r=0),(!e||e<0||e>n)&&(e=n);for(var i=\"\",o=r;o<e;++o)i+=Y[t[o]];return i}function L(t,r,e){for(var n=t.slice(r,e),i=\"\",o=0;o<n.length;o+=2)i+=String.fromCharCode(n[o]+256*n[o+1]);return i}function x(t,r,e){if(t%1!=0||t<0)throw new RangeError(\"offset is not uint\");if(t+r>e)throw new RangeError(\"Trying to access beyond buffer length\")}function C(t,r,e,n,i,o){if(!u$1$1.isBuffer(t))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(r>i||r<o)throw new RangeError('\"value\" argument is out of bounds');if(e+n>t.length)throw new RangeError(\"Index out of range\")}function P(t,r,e,n,i,o){if(e+n>t.length)throw new RangeError(\"Index out of range\");if(e<0)throw new RangeError(\"Index out of range\")}function k(t,r,e,n,o){return r=+r,e>>>=0,o||P(t,0,e,4),i$1.write(t,r,e,n,23,4),e+4}function M(t,r,e,n,o){return r=+r,e>>>=0,o||P(t,0,e,8),i$1.write(t,r,e,n,52,8),e+8}u$1$1.prototype.slice=function(t,r){var e=this.length;(t=~~t)<0?(t+=e)<0&&(t=0):t>e&&(t=e),(r=void 0===r?e:~~r)<0?(r+=e)<0&&(r=0):r>e&&(r=e),r<t&&(r=t);var n=this.subarray(t,r);return Object.setPrototypeOf(n,u$1$1.prototype),n},u$1$1.prototype.readUIntLE=function(t,r,e){t>>>=0,r>>>=0,e||x(t,r,this.length);for(var n=this[t],i=1,o=0;++o<r&&(i*=256);)n+=this[t+o]*i;return n},u$1$1.prototype.readUIntBE=function(t,r,e){t>>>=0,r>>>=0,e||x(t,r,this.length);for(var n=this[t+--r],i=1;r>0&&(i*=256);)n+=this[t+--r]*i;return n},u$1$1.prototype.readUInt8=function(t,r){return t>>>=0,r||x(t,1,this.length),this[t]},u$1$1.prototype.readUInt16LE=function(t,r){return t>>>=0,r||x(t,2,this.length),this[t]|this[t+1]<<8},u$1$1.prototype.readUInt16BE=function(t,r){return t>>>=0,r||x(t,2,this.length),this[t]<<8|this[t+1]},u$1$1.prototype.readUInt32LE=function(t,r){return t>>>=0,r||x(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u$1$1.prototype.readUInt32BE=function(t,r){return t>>>=0,r||x(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u$1$1.prototype.readIntLE=function(t,r,e){t>>>=0,r>>>=0,e||x(t,r,this.length);for(var n=this[t],i=1,o=0;++o<r&&(i*=256);)n+=this[t+o]*i;return n>=(i*=128)&&(n-=Math.pow(2,8*r)),n},u$1$1.prototype.readIntBE=function(t,r,e){t>>>=0,r>>>=0,e||x(t,r,this.length);for(var n=r,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*r)),o},u$1$1.prototype.readInt8=function(t,r){return t>>>=0,r||x(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u$1$1.prototype.readInt16LE=function(t,r){t>>>=0,r||x(t,2,this.length);var e=this[t]|this[t+1]<<8;return 32768&e?4294901760|e:e},u$1$1.prototype.readInt16BE=function(t,r){t>>>=0,r||x(t,2,this.length);var e=this[t+1]|this[t]<<8;return 32768&e?4294901760|e:e},u$1$1.prototype.readInt32LE=function(t,r){return t>>>=0,r||x(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u$1$1.prototype.readInt32BE=function(t,r){return t>>>=0,r||x(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u$1$1.prototype.readFloatLE=function(t,r){return t>>>=0,r||x(t,4,this.length),i$1.read(this,t,!0,23,4)},u$1$1.prototype.readFloatBE=function(t,r){return t>>>=0,r||x(t,4,this.length),i$1.read(this,t,!1,23,4)},u$1$1.prototype.readDoubleLE=function(t,r){return t>>>=0,r||x(t,8,this.length),i$1.read(this,t,!0,52,8)},u$1$1.prototype.readDoubleBE=function(t,r){return t>>>=0,r||x(t,8,this.length),i$1.read(this,t,!1,52,8)},u$1$1.prototype.writeUIntLE=function(t,r,e,n){(t=+t,r>>>=0,e>>>=0,n)||C(this,t,r,e,Math.pow(2,8*e)-1,0);var i=1,o=0;for(this[r]=255&t;++o<e&&(i*=256);)this[r+o]=t/i&255;return r+e},u$1$1.prototype.writeUIntBE=function(t,r,e,n){(t=+t,r>>>=0,e>>>=0,n)||C(this,t,r,e,Math.pow(2,8*e)-1,0);var i=e-1,o=1;for(this[r+i]=255&t;--i>=0&&(o*=256);)this[r+i]=t/o&255;return r+e},u$1$1.prototype.writeUInt8=function(t,r,e){return t=+t,r>>>=0,e||C(this,t,r,1,255,0),this[r]=255&t,r+1},u$1$1.prototype.writeUInt16LE=function(t,r,e){return t=+t,r>>>=0,e||C(this,t,r,2,65535,0),this[r]=255&t,this[r+1]=t>>>8,r+2},u$1$1.prototype.writeUInt16BE=function(t,r,e){return t=+t,r>>>=0,e||C(this,t,r,2,65535,0),this[r]=t>>>8,this[r+1]=255&t,r+2},u$1$1.prototype.writeUInt32LE=function(t,r,e){return t=+t,r>>>=0,e||C(this,t,r,4,4294967295,0),this[r+3]=t>>>24,this[r+2]=t>>>16,this[r+1]=t>>>8,this[r]=255&t,r+4},u$1$1.prototype.writeUInt32BE=function(t,r,e){return t=+t,r>>>=0,e||C(this,t,r,4,4294967295,0),this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=255&t,r+4},u$1$1.prototype.writeIntLE=function(t,r,e,n){if(t=+t,r>>>=0,!n){var i=Math.pow(2,8*e-1);C(this,t,r,e,i-1,-i);}var o=0,f=1,u=0;for(this[r]=255&t;++o<e&&(f*=256);)t<0&&0===u&&0!==this[r+o-1]&&(u=1),this[r+o]=(t/f>>0)-u&255;return r+e},u$1$1.prototype.writeIntBE=function(t,r,e,n){if(t=+t,r>>>=0,!n){var i=Math.pow(2,8*e-1);C(this,t,r,e,i-1,-i);}var o=e-1,f=1,u=0;for(this[r+o]=255&t;--o>=0&&(f*=256);)t<0&&0===u&&0!==this[r+o+1]&&(u=1),this[r+o]=(t/f>>0)-u&255;return r+e},u$1$1.prototype.writeInt8=function(t,r,e){return t=+t,r>>>=0,e||C(this,t,r,1,127,-128),t<0&&(t=255+t+1),this[r]=255&t,r+1},u$1$1.prototype.writeInt16LE=function(t,r,e){return t=+t,r>>>=0,e||C(this,t,r,2,32767,-32768),this[r]=255&t,this[r+1]=t>>>8,r+2},u$1$1.prototype.writeInt16BE=function(t,r,e){return t=+t,r>>>=0,e||C(this,t,r,2,32767,-32768),this[r]=t>>>8,this[r+1]=255&t,r+2},u$1$1.prototype.writeInt32LE=function(t,r,e){return t=+t,r>>>=0,e||C(this,t,r,4,2147483647,-2147483648),this[r]=255&t,this[r+1]=t>>>8,this[r+2]=t>>>16,this[r+3]=t>>>24,r+4},u$1$1.prototype.writeInt32BE=function(t,r,e){return t=+t,r>>>=0,e||C(this,t,r,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=255&t,r+4},u$1$1.prototype.writeFloatLE=function(t,r,e){return k(this,t,r,!0,e)},u$1$1.prototype.writeFloatBE=function(t,r,e){return k(this,t,r,!1,e)},u$1$1.prototype.writeDoubleLE=function(t,r,e){return M(this,t,r,!0,e)},u$1$1.prototype.writeDoubleBE=function(t,r,e){return M(this,t,r,!1,e)},u$1$1.prototype.copy=function(t,r,e,n){if(!u$1$1.isBuffer(t))throw new TypeError(\"argument should be a Buffer\");if(e||(e=0),n||0===n||(n=this.length),r>=t.length&&(r=t.length),r||(r=0),n>0&&n<e&&(n=e),n===e)return 0;if(0===t.length||0===this.length)return 0;if(r<0)throw new RangeError(\"targetStart out of bounds\");if(e<0||e>=this.length)throw new RangeError(\"Index out of range\");if(n<0)throw new RangeError(\"sourceEnd out of bounds\");n>this.length&&(n=this.length),t.length-r<n-e&&(n=t.length-r+e);var i=n-e;if(this===t&&\"function\"==typeof Uint8Array.prototype.copyWithin)this.copyWithin(r,e,n);else if(this===t&&e<r&&r<n)for(var o=i-1;o>=0;--o)t[o+r]=this[o+e];else Uint8Array.prototype.set.call(t,this.subarray(e,n),r);return i},u$1$1.prototype.fill=function(t,r,e,n){if(\"string\"==typeof t){if(\"string\"==typeof r?(n=r,r=0,e=this.length):\"string\"==typeof e&&(n=e,e=this.length),void 0!==n&&\"string\"!=typeof n)throw new TypeError(\"encoding must be a string\");if(\"string\"==typeof n&&!u$1$1.isEncoding(n))throw new TypeError(\"Unknown encoding: \"+n);if(1===t.length){var i=t.charCodeAt(0);(\"utf8\"===n&&i<128||\"latin1\"===n)&&(t=i);}}else \"number\"==typeof t?t&=255:\"boolean\"==typeof t&&(t=Number(t));if(r<0||this.length<r||this.length<e)throw new RangeError(\"Out of range index\");if(e<=r)return this;var o;if(r>>>=0,e=void 0===e?this.length:e>>>0,t||(t=0),\"number\"==typeof t)for(o=r;o<e;++o)this[o]=t;else {var f=u$1$1.isBuffer(t)?t:u$1$1.from(t,n),s=f.length;if(0===s)throw new TypeError('The value \"'+t+'\" is invalid for argument \"value\"');for(o=0;o<e-r;++o)this[o+r]=f[o%s];}return this};var j=/[^+/0-9A-Za-z-_]/g;function _(t,r){var e;r=r||1/0;for(var n=t.length,i=null,o=[],f=0;f<n;++f){if((e=t.charCodeAt(f))>55295&&e<57344){if(!i){if(e>56319){(r-=3)>-1&&o.push(239,191,189);continue}if(f+1===n){(r-=3)>-1&&o.push(239,191,189);continue}i=e;continue}if(e<56320){(r-=3)>-1&&o.push(239,191,189),i=e;continue}e=65536+(i-55296<<10|e-56320);}else i&&(r-=3)>-1&&o.push(239,191,189);if(i=null,e<128){if((r-=1)<0)break;o.push(e);}else if(e<2048){if((r-=2)<0)break;o.push(e>>6|192,63&e|128);}else if(e<65536){if((r-=3)<0)break;o.push(e>>12|224,e>>6&63|128,63&e|128);}else {if(!(e<1114112))throw new Error(\"Invalid code point\");if((r-=4)<0)break;o.push(e>>18|240,e>>12&63|128,e>>6&63|128,63&e|128);}}return o}function z(t){return n$1$1.toByteArray(function(t){if((t=(t=t.split(\"=\")[0]).trim().replace(j,\"\")).length<2)return \"\";for(;t.length%4!=0;)t+=\"=\";return t}(t))}function D(t,r,e,n){for(var i=0;i<n&&!(i+e>=r.length||i>=t.length);++i)r[i+e]=t[i];return i}function F(t,r){return t instanceof r||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===r.name}function N(t){return t!=t}var Y=function(){for(var t=new Array(256),r=0;r<16;++r)for(var e=16*r,n=0;n<16;++n)t[e+n]=\"0123456789abcdef\"[r]+\"0123456789abcdef\"[n];return t}();e$1$1.Buffer;e$1$1.INSPECT_MAX_BYTES;e$1$1.kMaxLength;\n\nvar e={},n=e$1$1,o=n.Buffer;function t(r,e){for(var n in r)e[n]=r[n];}function f(r,e,n){return o(r,e,n)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e=n:(t(n,e),e.Buffer=f),f.prototype=Object.create(o.prototype),t(o,f),f.from=function(r,e,n){if(\"number\"==typeof r)throw new TypeError(\"Argument must not be a number\");return o(r,e,n)},f.alloc=function(r,e,n){if(\"number\"!=typeof r)throw new TypeError(\"Argument must be a number\");var t=o(r);return void 0!==e?\"string\"==typeof n?t.fill(e,n):t.fill(e):t.fill(0),t},f.allocUnsafe=function(r){if(\"number\"!=typeof r)throw new TypeError(\"Argument must be a number\");return o(r)},f.allocUnsafeSlow=function(r){if(\"number\"!=typeof r)throw new TypeError(\"Argument must be a number\");return n.SlowBuffer(r)};var u=e;var e$1={},s=u.Buffer,i=s.isEncoding||function(t){switch((t=\"\"+t)&&t.toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":case\"raw\":return !0;default:return !1}};function a(t){var e;switch(this.encoding=function(t){var e=function(t){if(!t)return \"utf8\";for(var e;;)switch(t){case\"utf8\":case\"utf-8\":return \"utf8\";case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return \"utf16le\";case\"latin1\":case\"binary\":return \"latin1\";case\"base64\":case\"ascii\":case\"hex\":return t;default:if(e)return;t=(\"\"+t).toLowerCase(),e=!0;}}(t);if(\"string\"!=typeof e&&(s.isEncoding===i||!i(t)))throw new Error(\"Unknown encoding: \"+t);return e||t}(t),this.encoding){case\"utf16le\":this.text=h,this.end=l,e=4;break;case\"utf8\":this.fillLast=n$1,e=4;break;case\"base64\":this.text=u$1,this.end=o$1,e=3;break;default:return this.write=f$1,this.end=c,void 0}this.lastNeed=0,this.lastTotal=0,this.lastChar=s.allocUnsafe(e);}function r(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function n$1(t){var e=this.lastTotal-this.lastNeed,s=function(t,e,s){if(128!=(192&e[0]))return t.lastNeed=0,\"�\";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,\"�\";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,\"�\"}}(this,t);return void 0!==s?s:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length,void 0)}function h(t,e){if((t.length-e)%2==0){var s=t.toString(\"utf16le\",e);if(s){var i=s.charCodeAt(s.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],s.slice(0,-1)}return s}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString(\"utf16le\",e,t.length-1)}function l(t){var e=t&&t.length?this.write(t):\"\";if(this.lastNeed){var s=this.lastTotal-this.lastNeed;return e+this.lastChar.toString(\"utf16le\",0,s)}return e}function u$1(t,e){var s=(t.length-e)%3;return 0===s?t.toString(\"base64\",e):(this.lastNeed=3-s,this.lastTotal=3,1===s?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString(\"base64\",e,t.length-s))}function o$1(t){var e=t&&t.length?this.write(t):\"\";return this.lastNeed?e+this.lastChar.toString(\"base64\",0,3-this.lastNeed):e}function f$1(t){return t.toString(this.encoding)}function c(t){return t&&t.length?this.write(t):\"\"}e$1.StringDecoder=a,a.prototype.write=function(t){if(0===t.length)return \"\";var e,s;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return \"\";s=this.lastNeed,this.lastNeed=0;}else s=0;return s<t.length?e?e+this.text(t,s):this.text(t,s):e||\"\"},a.prototype.end=function(t){var e=t&&t.length?this.write(t):\"\";return this.lastNeed?e+\"�\":e},a.prototype.text=function(t,e){var s=function(t,e,s){var i=e.length-1;if(i<s)return 0;var a=r(e[i]);if(a>=0)return a>0&&(t.lastNeed=a-1),a;if(--i<s||-2===a)return 0;if((a=r(e[i]))>=0)return a>0&&(t.lastNeed=a-2),a;if(--i<s||-2===a)return 0;if((a=r(e[i]))>=0)return a>0&&(2===a?a=0:t.lastNeed=a-3),a;return 0}(this,t,e);if(!this.lastNeed)return t.toString(\"utf8\",e);this.lastTotal=s;var i=t.length-(s-this.lastNeed);return t.copy(this.lastChar,0,i),t.toString(\"utf8\",e,i)},a.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length;};\n\ne$1.StringDecoder;\n\ne$1.StringDecoder;\n\nexport { e$1 as a, e$1$1 as e, u };\n","import { X as X$1 } from './chunk-b4205b57.js';\nimport { T as T$1 } from './chunk-5decc758.js';\n\nfunction e(e,r){if(null==e)throw new TypeError(\"Cannot convert first argument to object\");for(var t=Object(e),n=1;n<arguments.length;n++){var o=arguments[n];if(null!=o)for(var a=Object.keys(Object(o)),l=0,i=a.length;l<i;l++){var c=a[l],b=Object.getOwnPropertyDescriptor(o,c);void 0!==b&&b.enumerable&&(t[c]=o[c]);}}return t}var r={assign:e,polyfill:function(){Object.assign||Object.defineProperty(Object,\"assign\",{enumerable:!1,configurable:!0,writable:!0,value:e});}};var t,e$1=Object.prototype.toString,r$1=function(t){var r=e$1.call(t),n=\"[object Arguments]\"===r;return n||(n=\"[object Array]\"!==r&&null!==t&&\"object\"==typeof t&&\"number\"==typeof t.length&&t.length>=0&&\"[object Function]\"===e$1.call(t.callee)),n};if(!Object.keys){var n=Object.prototype.hasOwnProperty,o=Object.prototype.toString,c=r$1,l=Object.prototype.propertyIsEnumerable,i=!l.call({toString:null},\"toString\"),a=l.call((function(){}),\"prototype\"),u=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],f=function(t){var e=t.constructor;return e&&e.prototype===t},p={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},s=function(){if(\"undefined\"==typeof window)return !1;for(var t in window)try{if(!p[\"$\"+t]&&n.call(window,t)&&null!==window[t]&&\"object\"==typeof window[t])try{f(window[t]);}catch(t){return !0}}catch(t){return !0}return !1}();t=function(t){var e=null!==t&&\"object\"==typeof t,r=\"[object Function]\"===o.call(t),l=c(t),p=e&&\"[object String]\"===o.call(t),y=[];if(!e&&!r&&!l)throw new TypeError(\"Object.keys called on a non-object\");var b=a&&r;if(p&&t.length>0&&!n.call(t,0))for(var g=0;g<t.length;++g)y.push(String(g));if(l&&t.length>0)for(var h=0;h<t.length;++h)y.push(String(h));else for(var $ in t)b&&\"prototype\"===$||!n.call(t,$)||y.push(String($));if(i)for(var j=function(t){if(\"undefined\"==typeof window||!s)return f(t);try{return f(t)}catch(t){return !1}}(t),w=0;w<u.length;++w)j&&\"constructor\"===u[w]||!n.call(t,u[w])||y.push(u[w]);return y};}var y=t,b=Array.prototype.slice,g=r$1,h=Object.keys,$=h?function(t){return h(t)}:y,j=Object.keys;$.shim=function(){Object.keys?function(){var t=Object.keys(arguments);return t&&t.length===arguments.length}(1,2)||(Object.keys=function(t){return g(t)?j(b.call(t)):j(t)}):Object.keys=$;return Object.keys||$};var w=$;var r$2=w,e$2=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol(\"foo\"),o$1=Object.prototype.toString,n$1=Array.prototype.concat,a$1=Object.defineProperty,c$1=a$1&&function(){var t={};try{for(var r in a$1(t,\"x\",{enumerable:!1,value:t}),t)return !1;return t.x===t}catch(t){return !1}}(),l$1=function(t,r,e,n){var l;(!(r in t)||\"function\"==typeof(l=n)&&\"[object Function]\"===o$1.call(l)&&n())&&(c$1?a$1(t,r,{configurable:!0,enumerable:!1,value:e,writable:!0}):t[r]=e);},u$1=function(t,o){var a=arguments.length>2?arguments[2]:{},c=r$2(o);e$2&&(c=n$1.call(c,Object.getOwnPropertySymbols(o)));for(var u=0;u<c.length;u+=1)l$1(t,c[u],o[c[u]],a[c[u]]);};u$1.supportsDescriptors=!!c$1;var f$1=u$1;var t$1=function(){if(\"function\"!=typeof Symbol||\"function\"!=typeof Object.getOwnPropertySymbols)return !1;if(\"symbol\"==typeof Symbol.iterator)return !0;var t={},e=Symbol(\"test\"),r=Object(e);if(\"string\"==typeof e)return !1;if(\"[object Symbol]\"!==Object.prototype.toString.call(e))return !1;if(\"[object Symbol]\"!==Object.prototype.toString.call(r))return !1;for(e in t[e]=42,t)return !1;if(\"function\"==typeof Object.keys&&0!==Object.keys(t).length)return !1;if(\"function\"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return !1;var o=Object.getOwnPropertySymbols(t);if(1!==o.length||o[0]!==e)return !1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return !1;if(\"function\"==typeof Object.getOwnPropertyDescriptor){var n=Object.getOwnPropertyDescriptor(t,e);if(42!==n.value||!0!==n.enumerable)return !1}return !0};var f$2=(\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:global).Symbol,e$3=t$1,l$2=function(){return \"function\"==typeof f$2&&(\"function\"==typeof Symbol&&(\"symbol\"==typeof f$2(\"foo\")&&(\"symbol\"==typeof Symbol(\"bar\")&&e$3())))};var t$2=\"Function.prototype.bind called on incompatible \",n$2=Array.prototype.slice,o$2=Object.prototype.toString,r$3=function(r){var e=this;if(\"function\"!=typeof e||\"[object Function]\"!==o$2.call(e))throw new TypeError(t$2+e);for(var p,i=n$2.call(arguments,1),c=function(){if(this instanceof p){var t=e.apply(this,i.concat(n$2.call(arguments)));return Object(t)===t?t:this}return e.apply(r,i.concat(n$2.call(arguments)))},a=Math.max(0,e.length-i.length),l=[],u=0;u<a;u++)l.push(\"$\"+u);if(p=Function(\"binder\",\"return function (\"+l.join(\",\")+\"){ return binder.apply(this,arguments); }\")(c),e.prototype){var y=function(){};y.prototype=e.prototype,p.prototype=new y,y.prototype=null;}return p},e$4=Function.prototype.bind||r$3;var o$3=TypeError,t$3=Object.getOwnPropertyDescriptor;if(t$3)try{t$3({},\"\");}catch(r){t$3=null;}var n$3=function(){throw new o$3},y$1=t$3?function(){try{return arguments.callee,n$3}catch(r){try{return t$3(arguments,\"callee\").get}catch(r){return n$3}}}():n$3,a$2=l$2(),i$1=Object.getPrototypeOf||function(r){return r.__proto__},d=\"undefined\"==typeof Uint8Array?void 0:i$1(Uint8Array),f$3={\"%Array%\":Array,\"%ArrayBuffer%\":\"undefined\"==typeof ArrayBuffer?void 0:ArrayBuffer,\"%ArrayBufferPrototype%\":\"undefined\"==typeof ArrayBuffer?void 0:ArrayBuffer.prototype,\"%ArrayIteratorPrototype%\":a$2?i$1([][Symbol.iterator]()):void 0,\"%ArrayPrototype%\":Array.prototype,\"%ArrayProto_entries%\":Array.prototype.entries,\"%ArrayProto_forEach%\":Array.prototype.forEach,\"%ArrayProto_keys%\":Array.prototype.keys,\"%ArrayProto_values%\":Array.prototype.values,\"%AsyncFromSyncIteratorPrototype%\":void 0,\"%AsyncFunction%\":void 0,\"%AsyncFunctionPrototype%\":void 0,\"%AsyncGenerator%\":void 0,\"%AsyncGeneratorFunction%\":void 0,\"%AsyncGeneratorPrototype%\":void 0,\"%AsyncIteratorPrototype%\":void 0,\"%Atomics%\":\"undefined\"==typeof Atomics?void 0:Atomics,\"%Boolean%\":Boolean,\"%BooleanPrototype%\":Boolean.prototype,\"%DataView%\":\"undefined\"==typeof DataView?void 0:DataView,\"%DataViewPrototype%\":\"undefined\"==typeof DataView?void 0:DataView.prototype,\"%Date%\":Date,\"%DatePrototype%\":Date.prototype,\"%decodeURI%\":decodeURI,\"%decodeURIComponent%\":decodeURIComponent,\"%encodeURI%\":encodeURI,\"%encodeURIComponent%\":encodeURIComponent,\"%Error%\":Error,\"%ErrorPrototype%\":Error.prototype,\"%eval%\":eval,\"%EvalError%\":EvalError,\"%EvalErrorPrototype%\":EvalError.prototype,\"%Float32Array%\":\"undefined\"==typeof Float32Array?void 0:Float32Array,\"%Float32ArrayPrototype%\":\"undefined\"==typeof Float32Array?void 0:Float32Array.prototype,\"%Float64Array%\":\"undefined\"==typeof Float64Array?void 0:Float64Array,\"%Float64ArrayPrototype%\":\"undefined\"==typeof Float64Array?void 0:Float64Array.prototype,\"%Function%\":Function,\"%FunctionPrototype%\":Function.prototype,\"%Generator%\":void 0,\"%GeneratorFunction%\":void 0,\"%GeneratorPrototype%\":void 0,\"%Int8Array%\":\"undefined\"==typeof Int8Array?void 0:Int8Array,\"%Int8ArrayPrototype%\":\"undefined\"==typeof Int8Array?void 0:Int8Array.prototype,\"%Int16Array%\":\"undefined\"==typeof Int16Array?void 0:Int16Array,\"%Int16ArrayPrototype%\":\"undefined\"==typeof Int16Array?void 0:Int8Array.prototype,\"%Int32Array%\":\"undefined\"==typeof Int32Array?void 0:Int32Array,\"%Int32ArrayPrototype%\":\"undefined\"==typeof Int32Array?void 0:Int32Array.prototype,\"%isFinite%\":isFinite,\"%isNaN%\":isNaN,\"%IteratorPrototype%\":a$2?i$1(i$1([][Symbol.iterator]())):void 0,\"%JSON%\":\"object\"==typeof JSON?JSON:void 0,\"%JSONParse%\":\"object\"==typeof JSON?JSON.parse:void 0,\"%Map%\":\"undefined\"==typeof Map?void 0:Map,\"%MapIteratorPrototype%\":\"undefined\"!=typeof Map&&a$2?i$1((new Map)[Symbol.iterator]()):void 0,\"%MapPrototype%\":\"undefined\"==typeof Map?void 0:Map.prototype,\"%Math%\":Math,\"%Number%\":Number,\"%NumberPrototype%\":Number.prototype,\"%Object%\":Object,\"%ObjectPrototype%\":Object.prototype,\"%ObjProto_toString%\":Object.prototype.toString,\"%ObjProto_valueOf%\":Object.prototype.valueOf,\"%parseFloat%\":parseFloat,\"%parseInt%\":parseInt,\"%Promise%\":\"undefined\"==typeof Promise?void 0:Promise,\"%PromisePrototype%\":\"undefined\"==typeof Promise?void 0:Promise.prototype,\"%PromiseProto_then%\":\"undefined\"==typeof Promise?void 0:Promise.prototype.then,\"%Promise_all%\":\"undefined\"==typeof Promise?void 0:Promise.all,\"%Promise_reject%\":\"undefined\"==typeof Promise?void 0:Promise.reject,\"%Promise_resolve%\":\"undefined\"==typeof Promise?void 0:Promise.resolve,\"%Proxy%\":\"undefined\"==typeof Proxy?void 0:Proxy,\"%RangeError%\":RangeError,\"%RangeErrorPrototype%\":RangeError.prototype,\"%ReferenceError%\":ReferenceError,\"%ReferenceErrorPrototype%\":ReferenceError.prototype,\"%Reflect%\":\"undefined\"==typeof Reflect?void 0:Reflect,\"%RegExp%\":RegExp,\"%RegExpPrototype%\":RegExp.prototype,\"%Set%\":\"undefined\"==typeof Set?void 0:Set,\"%SetIteratorPrototype%\":\"undefined\"!=typeof Set&&a$2?i$1((new Set)[Symbol.iterator]()):void 0,\"%SetPrototype%\":\"undefined\"==typeof Set?void 0:Set.prototype,\"%SharedArrayBuffer%\":\"undefined\"==typeof SharedArrayBuffer?void 0:SharedArrayBuffer,\"%SharedArrayBufferPrototype%\":\"undefined\"==typeof SharedArrayBuffer?void 0:SharedArrayBuffer.prototype,\"%String%\":String,\"%StringIteratorPrototype%\":a$2?i$1(\"\"[Symbol.iterator]()):void 0,\"%StringPrototype%\":String.prototype,\"%Symbol%\":a$2?Symbol:void 0,\"%SymbolPrototype%\":a$2?Symbol.prototype:void 0,\"%SyntaxError%\":SyntaxError,\"%SyntaxErrorPrototype%\":SyntaxError.prototype,\"%ThrowTypeError%\":y$1,\"%TypedArray%\":d,\"%TypedArrayPrototype%\":d?d.prototype:void 0,\"%TypeError%\":o$3,\"%TypeErrorPrototype%\":o$3.prototype,\"%Uint8Array%\":\"undefined\"==typeof Uint8Array?void 0:Uint8Array,\"%Uint8ArrayPrototype%\":\"undefined\"==typeof Uint8Array?void 0:Uint8Array.prototype,\"%Uint8ClampedArray%\":\"undefined\"==typeof Uint8ClampedArray?void 0:Uint8ClampedArray,\"%Uint8ClampedArrayPrototype%\":\"undefined\"==typeof Uint8ClampedArray?void 0:Uint8ClampedArray.prototype,\"%Uint16Array%\":\"undefined\"==typeof Uint16Array?void 0:Uint16Array,\"%Uint16ArrayPrototype%\":\"undefined\"==typeof Uint16Array?void 0:Uint16Array.prototype,\"%Uint32Array%\":\"undefined\"==typeof Uint32Array?void 0:Uint32Array,\"%Uint32ArrayPrototype%\":\"undefined\"==typeof Uint32Array?void 0:Uint32Array.prototype,\"%URIError%\":URIError,\"%URIErrorPrototype%\":URIError.prototype,\"%WeakMap%\":\"undefined\"==typeof WeakMap?void 0:WeakMap,\"%WeakMapPrototype%\":\"undefined\"==typeof WeakMap?void 0:WeakMap.prototype,\"%WeakSet%\":\"undefined\"==typeof WeakSet?void 0:WeakSet,\"%WeakSetPrototype%\":\"undefined\"==typeof WeakSet?void 0:WeakSet.prototype},u$2=e$4.call(Function.call,String.prototype.replace),A=/[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g,l$3=/\\\\(\\\\)?/g,v=function(r){var e=[];return u$2(r,A,(function(r,o,t,n){e[e.length]=t?u$2(n,l$3,\"$1\"):o||r;})),e},P=function(r,e){if(!(r in f$3))throw new SyntaxError(\"intrinsic \"+r+\" does not exist!\");if(void 0===f$3[r]&&!e)throw new o$3(\"intrinsic \"+r+\" exists, but is not available. Please file an issue!\");return f$3[r]},c$2=function(r,e){if(\"string\"!=typeof r||0===r.length)throw new TypeError(\"intrinsic name must be a non-empty string\");if(arguments.length>1&&\"boolean\"!=typeof e)throw new TypeError('\"allowMissing\" argument must be a boolean');for(var n=v(r),y=P(\"%\"+(n.length>0?n[0]:\"\")+\"%\",e),a=1;a<n.length;a+=1)if(null!=y)if(t$3&&a+1>=n.length){var i=t$3(y,n[a]);if(!e&&!(n[a]in y))throw new o$3(\"base intrinsic for \"+r+\" exists, but the property is not available.\");y=i?i.get||i.value:y[n[a]];}else y=y[n[a]];return y};var t$4,p$1=e$4,o$4=c$2(\"%Function%\"),i$2=o$4.apply,a$3=o$4.call;(t$4=function(){return p$1.apply(a$3,arguments)}).apply=function(){return p$1.apply(i$2,arguments)};var l$4=t$4;var r$4,n$4,i$3=function(t){return t!=t},o$5=(r$4=function(t,e){return 0===t&&0===e?1/t==1/e:t===e||!(!i$3(t)||!i$3(e))},r$4),c$3=(n$4=function(){return \"function\"==typeof Object.is?Object.is:o$5},n$4),f$4=f$1,u$3=f$1,s$1=r$4,a$4=n$4,l$5=function(){var t=c$3();return f$4(Object,{is:t},{is:function(){return Object.is!==t}}),t},p$2=l$4(a$4(),Object);u$3(p$2,{getPolyfill:a$4,implementation:s$1,shim:l$5});var m=p$2;N=function(r){return r!=r};var N,e$5,i$4=N,n$5=(e$5=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN(\"a\")?Number.isNaN:i$4},f$1),t$5=e$5,u$4=f$1,a$5=N,m$1=e$5,o$6=function(){var r=t$5();return n$5(Number,{isNaN:r},{isNaN:function(){return Number.isNaN!==r}}),r},s$2=m$1();u$4(s$2,{getPolyfill:m$1,implementation:a$5,shim:o$6});var f$5=s$2;var c$4={},a$6=!1;function i$5(){if(a$6)return c$4;function e(t){return (e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function n(t,n){return !n||\"object\"!==e(n)&&\"function\"!=typeof n?function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}(t):n}function r(t){return (r=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function o(t,e){return (o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}a$6=!0;var i,u,l={};function f(t,e,c){c||(c=Error);var a=function(c){function a(o,c,i){var u;return !function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,a),(u=n(this,r(a).call(this,function(t,n,r){return \"string\"==typeof e?e:e(t,n,r)}(o,c,i)))).code=t,u}return !function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e);}(a,c),a}(c);l[t]=a;}function s(t,e){if(Array.isArray(t)){var n=t.length;return t=t.map((function(t){return String(t)})),n>2?\"one of \".concat(e,\" \").concat(t.slice(0,n-1).join(\", \"),\", or \")+t[n-1]:2===n?\"one of \".concat(e,\" \").concat(t[0],\" or \").concat(t[1]):\"of \".concat(e,\" \").concat(t[0])}return \"of \".concat(e,\" \").concat(String(t))}return f(\"ERR_AMBIGUOUS_ARGUMENT\",'The \"%s\" argument is ambiguous. %s',TypeError),f(\"ERR_INVALID_ARG_TYPE\",(function(t,n,r){var o,c,u;if(void 0===i&&(i=tt()),i(\"string\"==typeof t,\"'name' must be a string\"),\"string\"==typeof n&&(c=\"not \",n.substr(0,c.length)===c)?(o=\"must not be\",n=n.replace(/^not /,\"\")):o=\"must be\",function(t,e,n){return (void 0===n||n>t.length)&&(n=t.length),t.substring(n-e.length,n)===e}(t,\" argument\"))u=\"The \".concat(t,\" \").concat(o,\" \").concat(s(n,\"type\"));else {var l=function(t,e,n){return \"number\"!=typeof n&&(n=0),!(n+e.length>t.length)&&-1!==t.indexOf(e,n)}(t,\".\")?\"property\":\"argument\";u='The \"'.concat(t,'\" ').concat(l,\" \").concat(o,\" \").concat(s(n,\"type\"));}return u+=\". Received type \".concat(e(r))}),TypeError),f(\"ERR_INVALID_ARG_VALUE\",(function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"is invalid\";void 0===u&&(u=X$1);var o=u.inspect(n);return o.length>128&&(o=\"\".concat(o.slice(0,128),\"...\")),\"The argument '\".concat(e,\"' \").concat(r,\". Received \").concat(o)}),TypeError),f(\"ERR_INVALID_RETURN_VALUE\",(function(t,n,r){var o;return o=r&&r.constructor&&r.constructor.name?\"instance of \".concat(r.constructor.name):\"type \".concat(e(r)),\"Expected \".concat(t,' to be returned from the \"').concat(n,'\"')+\" function but got \".concat(o,\".\")}),TypeError),f(\"ERR_MISSING_ARGS\",(function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];void 0===i&&(i=tt()),i(e.length>0,\"At least one arg needs to be specified\");var r=\"The \",o=e.length;switch(e=e.map((function(t){return '\"'.concat(t,'\"')})),o){case 1:r+=\"\".concat(e[0],\" argument\");break;case 2:r+=\"\".concat(e[0],\" and \").concat(e[1],\" arguments\");break;default:r+=e.slice(0,o-1).join(\", \"),r+=\", and \".concat(e[o-1],\" arguments\");}return \"\".concat(r,\" must be specified\")}),TypeError),c$4.codes=l,c$4}var u$5={},l$6=!1;function f$6(){if(l$6)return u$5;l$6=!0;var n=T$1;function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r);}}function c(t,e){return !e||\"object\"!==y(e)&&\"function\"!=typeof e?a(t):e}function a(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}function f(t){var e=\"function\"==typeof Map?new Map:void 0;return (f=function(t){if(null===t||(n=t,-1===Function.toString.call(n).indexOf(\"[native code]\")))return t;var n;if(\"function\"!=typeof t)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r);}function r(){return p(t,arguments,h(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),g(r,t)})(t)}function s(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return !1;if(Reflect.construct.sham)return !1;if(\"function\"==typeof Proxy)return !0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return !1}}function p(t,e,n){return (p=s()?Reflect.construct:function(t,e,n){var r=[null];r.push.apply(r,e);var o=new(Function.bind.apply(t,r));return n&&g(o,n.prototype),o}).apply(null,arguments)}function g(t,e){return (g=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(t){return (h=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function y(t){return (y=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var b=X$1.inspect,v=i$5().codes.ERR_INVALID_ARG_TYPE;function d(t,e,n){return (void 0===n||n>t.length)&&(n=t.length),t.substring(n-e.length,n)===e}var m=\"\",E=\"\",w=\"\",S=\"\",j={deepStrictEqual:\"Expected values to be strictly deep-equal:\",strictEqual:\"Expected values to be strictly equal:\",strictEqualObject:'Expected \"actual\" to be reference-equal to \"expected\":',deepEqual:\"Expected values to be loosely deep-equal:\",equal:\"Expected values to be loosely equal:\",notDeepStrictEqual:'Expected \"actual\" not to be strictly deep-equal to:',notStrictEqual:'Expected \"actual\" to be strictly unequal to:',notStrictEqualObject:'Expected \"actual\" not to be reference-equal to \"expected\":',notDeepEqual:'Expected \"actual\" not to be loosely deep-equal to:',notEqual:'Expected \"actual\" to be loosely unequal to:',notIdentical:\"Values identical but not reference-equal:\"};function O(t){var e=Object.keys(t),n=Object.create(Object.getPrototypeOf(t));return e.forEach((function(e){n[e]=t[e];})),Object.defineProperty(n,\"message\",{value:t.message}),n}function x(t){return b(t,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function q(t,e,r){var o=\"\",c=\"\",a=0,i=\"\",u=!1,l=x(t),f=l.split(\"\\n\"),s=x(e).split(\"\\n\"),p=0,g=\"\";if(\"strictEqual\"===r&&\"object\"===y(t)&&\"object\"===y(e)&&null!==t&&null!==e&&(r=\"strictEqualObject\"),1===f.length&&1===s.length&&f[0]!==s[0]){var h=f[0].length+s[0].length;if(h<=10){if(!(\"object\"===y(t)&&null!==t||\"object\"===y(e)&&null!==e||0===t&&0===e))return \"\".concat(j[r],\"\\n\\n\")+\"\".concat(f[0],\" !== \").concat(s[0],\"\\n\")}else if(\"strictEqualObject\"!==r){if(h<(n.stderr&&n.stderr.isTTY?n.stderr.columns:80)){for(;f[0][p]===s[0][p];)p++;p>2&&(g=\"\\n \".concat(function(t,e){if(e=Math.floor(e),0==t.length||0==e)return \"\";var n=t.length*e;for(e=Math.floor(Math.log(e)/Math.log(2));e;)t+=t,e--;return t+=t.substring(0,n-t.length)}(\" \",p),\"^\"),p=0);}}}for(var b=f[f.length-1],v=s[s.length-1];b===v&&(p++<2?i=\"\\n \".concat(b).concat(i):o=b,f.pop(),s.pop(),0!==f.length&&0!==s.length);)b=f[f.length-1],v=s[s.length-1];var O=Math.max(f.length,s.length);if(0===O){var q=l.split(\"\\n\");if(q.length>30)for(q[26]=\"\".concat(m,\"...\").concat(S);q.length>27;)q.pop();return \"\".concat(j.notIdentical,\"\\n\\n\").concat(q.join(\"\\n\"),\"\\n\")}p>3&&(i=\"\\n\".concat(m,\"...\").concat(S).concat(i),u=!0),\"\"!==o&&(i=\"\\n \".concat(o).concat(i),o=\"\");var R=0,A=j[r]+\"\\n\".concat(E,\"+ actual\").concat(S,\" \").concat(w,\"- expected\").concat(S),k=\" \".concat(m,\"...\").concat(S,\" Lines skipped\");for(p=0;p<O;p++){var _=p-a;if(f.length<p+1)_>1&&p>2&&(_>4?(c+=\"\\n\".concat(m,\"...\").concat(S),u=!0):_>3&&(c+=\"\\n \".concat(s[p-2]),R++),c+=\"\\n \".concat(s[p-1]),R++),a=p,o+=\"\\n\".concat(w,\"-\").concat(S,\" \").concat(s[p]),R++;else if(s.length<p+1)_>1&&p>2&&(_>4?(c+=\"\\n\".concat(m,\"...\").concat(S),u=!0):_>3&&(c+=\"\\n \".concat(f[p-2]),R++),c+=\"\\n \".concat(f[p-1]),R++),a=p,c+=\"\\n\".concat(E,\"+\").concat(S,\" \").concat(f[p]),R++;else {var T=s[p],P=f[p],I=P!==T&&(!d(P,\",\")||P.slice(0,-1)!==T);I&&d(T,\",\")&&T.slice(0,-1)===P&&(I=!1,P+=\",\"),I?(_>1&&p>2&&(_>4?(c+=\"\\n\".concat(m,\"...\").concat(S),u=!0):_>3&&(c+=\"\\n \".concat(f[p-2]),R++),c+=\"\\n \".concat(f[p-1]),R++),a=p,c+=\"\\n\".concat(E,\"+\").concat(S,\" \").concat(P),o+=\"\\n\".concat(w,\"-\").concat(S,\" \").concat(T),R+=2):(c+=o,o=\"\",1!==_&&0!==p||(c+=\"\\n \".concat(P),R++));}if(R>20&&p<O-2)return \"\".concat(A).concat(k,\"\\n\").concat(c,\"\\n\").concat(m,\"...\").concat(S).concat(o,\"\\n\")+\"\".concat(m,\"...\").concat(S)}return \"\".concat(A).concat(u?k:\"\",\"\\n\").concat(c).concat(o).concat(i).concat(g)}var R=function(t){function e(t){var r;if(!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,e),\"object\"!==y(t)||null===t)throw new v(\"options\",\"Object\",t);var o=t.message,i=t.operator,u=t.stackStartFn,l=t.actual,f=t.expected,s=Error.stackTraceLimit;if(Error.stackTraceLimit=0,null!=o)r=c(this,h(e).call(this,String(o)));else if(n.stderr&&n.stderr.isTTY&&(n.stderr&&n.stderr.getColorDepth&&1!==n.stderr.getColorDepth()?(m=\"\u001b[34m\",E=\"\u001b[32m\",S=\"\u001b[39m\",w=\"\u001b[31m\"):(m=\"\",E=\"\",S=\"\",w=\"\")),\"object\"===y(l)&&null!==l&&\"object\"===y(f)&&null!==f&&\"stack\"in l&&l instanceof Error&&\"stack\"in f&&f instanceof Error&&(l=O(l),f=O(f)),\"deepStrictEqual\"===i||\"strictEqual\"===i)r=c(this,h(e).call(this,q(l,f,i)));else if(\"notDeepStrictEqual\"===i||\"notStrictEqual\"===i){var p=j[i],g=x(l).split(\"\\n\");if(\"notStrictEqual\"===i&&\"object\"===y(l)&&null!==l&&(p=j.notStrictEqualObject),g.length>30)for(g[26]=\"\".concat(m,\"...\").concat(S);g.length>27;)g.pop();r=1===g.length?c(this,h(e).call(this,\"\".concat(p,\" \").concat(g[0]))):c(this,h(e).call(this,\"\".concat(p,\"\\n\\n\").concat(g.join(\"\\n\"),\"\\n\")));}else {var b=x(l),d=\"\",R=j[i];\"notDeepEqual\"===i||\"notEqual\"===i?(b=\"\".concat(j[i],\"\\n\\n\").concat(b)).length>1024&&(b=\"\".concat(b.slice(0,1021),\"...\")):(d=\"\".concat(x(f)),b.length>512&&(b=\"\".concat(b.slice(0,509),\"...\")),d.length>512&&(d=\"\".concat(d.slice(0,509),\"...\")),\"deepEqual\"===i||\"equal\"===i?b=\"\".concat(R,\"\\n\\n\").concat(b,\"\\n\\nshould equal\\n\\n\"):d=\" \".concat(i,\" \").concat(d)),r=c(this,h(e).call(this,\"\".concat(b).concat(d)));}return Error.stackTraceLimit=s,r.generatedMessage=!o,Object.defineProperty(a(r),\"name\",{value:\"AssertionError [ERR_ASSERTION]\",enumerable:!1,writable:!0,configurable:!0}),r.code=\"ERR_ASSERTION\",r.actual=l,r.expected=f,r.operator=i,Error.captureStackTrace&&Error.captureStackTrace(a(r),u),r.stack,r.name=\"AssertionError\",c(r)}var i,u;return !function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&g(t,e);}(e,t),i=e,(u=[{key:\"toString\",value:function(){return \"\".concat(this.name,\" [\").concat(this.code,\"]: \").concat(this.message)}},{key:b.custom,value:function(t,e){return b(this,function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},o=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter((function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable})))),o.forEach((function(e){r(t,e,n[e]);}));}return t}({},e,{customInspect:!1,depth:0}))}}])&&o(i.prototype,u),e}(f(Error));return u$5=R}function s$3(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=[],r=!0,o=!1,c=void 0;try{for(var a,i=t[Symbol.iterator]();!(r=(a=i.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){o=!0,c=t;}finally{try{r||null==i.return||i.return();}finally{if(o)throw c}}return n}(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}()}function p$3(t){return (p$3=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var g$1=void 0!==/a/g.flags,h$1=function(t){var e=[];return t.forEach((function(t){return e.push(t)})),e},y$2=function(t){var e=[];return t.forEach((function(t,n){return e.push([n,t])})),e},b$1=Object.is?Object.is:m,v$1=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols:function(){return []},d$1=Number.isNaN?Number.isNaN:f$5;function m$2(t){return t.call.bind(t)}var E=m$2(Object.prototype.hasOwnProperty),w$1=m$2(Object.prototype.propertyIsEnumerable),S=m$2(Object.prototype.toString),j$1=X$1.types,O=j$1.isAnyArrayBuffer,x=j$1.isArrayBufferView,q=j$1.isDate,R=j$1.isMap,A$1=j$1.isRegExp,k=j$1.isSet,_=j$1.isNativeError,T=j$1.isBoxedPrimitive,P$1=j$1.isNumberObject,I=j$1.isStringObject,D=j$1.isBooleanObject,F=j$1.isBigIntObject,N$1=j$1.isSymbolObject,L=j$1.isFloat32Array,M=j$1.isFloat64Array;function U(t){if(0===t.length||t.length>10)return !0;for(var e=0;e<t.length;e++){var n=t.charCodeAt(e);if(n<48||n>57)return !0}return 10===t.length&&t>=Math.pow(2,32)}function G(t){return Object.keys(t).filter(U).concat(v$1(t).filter(Object.prototype.propertyIsEnumerable.bind(t)))}\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */function V(t,e){if(t===e)return 0;for(var n=t.length,r=e.length,o=0,c=Math.min(n,r);o<c;++o)if(t[o]!==e[o]){n=t[o],r=e[o];break}return n<r?-1:r<n?1:0}function B(t,e,n,r){if(t===e)return 0!==t||(!n||b$1(t,e));if(n){if(\"object\"!==p$3(t))return \"number\"==typeof t&&d$1(t)&&d$1(e);if(\"object\"!==p$3(e)||null===t||null===e)return !1;if(Object.getPrototypeOf(t)!==Object.getPrototypeOf(e))return !1}else {if(null===t||\"object\"!==p$3(t))return (null===e||\"object\"!==p$3(e))&&t==e;if(null===e||\"object\"!==p$3(e))return !1}var o,c,a,i,u=S(t);if(u!==S(e))return !1;if(Array.isArray(t)){if(t.length!==e.length)return !1;var l=G(t),f=G(e);return l.length===f.length&&C(t,e,n,r,1,l)}if(\"[object Object]\"===u&&(!R(t)&&R(e)||!k(t)&&k(e)))return !1;if(q(t)){if(!q(e)||Date.prototype.getTime.call(t)!==Date.prototype.getTime.call(e))return !1}else if(A$1(t)){if(!A$1(e)||(a=t,i=e,!(g$1?a.source===i.source&&a.flags===i.flags:RegExp.prototype.toString.call(a)===RegExp.prototype.toString.call(i))))return !1}else if(_(t)||t instanceof Error){if(t.message!==e.message||t.name!==e.name)return !1}else {if(x(t)){if(n||!L(t)&&!M(t)){if(!function(t,e){return t.byteLength===e.byteLength&&0===V(new Uint8Array(t.buffer,t.byteOffset,t.byteLength),new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}(t,e))return !1}else if(!function(t,e){if(t.byteLength!==e.byteLength)return !1;for(var n=0;n<t.byteLength;n++)if(t[n]!==e[n])return !1;return !0}(t,e))return !1;var s=G(t),h=G(e);return s.length===h.length&&C(t,e,n,r,0,s)}if(k(t))return !(!k(e)||t.size!==e.size)&&C(t,e,n,r,2);if(R(t))return !(!R(e)||t.size!==e.size)&&C(t,e,n,r,3);if(O(t)){if(c=e,(o=t).byteLength!==c.byteLength||0!==V(new Uint8Array(o),new Uint8Array(c)))return !1}else if(T(t)&&!function(t,e){return P$1(t)?P$1(e)&&b$1(Number.prototype.valueOf.call(t),Number.prototype.valueOf.call(e)):I(t)?I(e)&&String.prototype.valueOf.call(t)===String.prototype.valueOf.call(e):D(t)?D(e)&&Boolean.prototype.valueOf.call(t)===Boolean.prototype.valueOf.call(e):F(t)?F(e)&&BigInt.prototype.valueOf.call(t)===BigInt.prototype.valueOf.call(e):N$1(e)&&Symbol.prototype.valueOf.call(t)===Symbol.prototype.valueOf.call(e)}(t,e))return !1}return C(t,e,n,r,0)}function z(t,e){return e.filter((function(e){return w$1(t,e)}))}function C(t,e,n,r,o,c){if(5===arguments.length){c=Object.keys(t);var a=Object.keys(e);if(c.length!==a.length)return !1}for(var i=0;i<c.length;i++)if(!E(e,c[i]))return !1;if(n&&5===arguments.length){var u=v$1(t);if(0!==u.length){var l=0;for(i=0;i<u.length;i++){var f=u[i];if(w$1(t,f)){if(!w$1(e,f))return !1;c.push(f),l++;}else if(w$1(e,f))return !1}var s=v$1(e);if(u.length!==s.length&&z(e,s).length!==l)return !1}else {var p=v$1(e);if(0!==p.length&&0!==z(e,p).length)return !1}}if(0===c.length&&(0===o||1===o&&0===t.length||0===t.size))return !0;if(void 0===r)r={val1:new Map,val2:new Map,position:0};else {var g=r.val1.get(t);if(void 0!==g){var h=r.val2.get(e);if(void 0!==h)return g===h}r.position++;}r.val1.set(t,r.position),r.val2.set(e,r.position);var y=Q(t,e,n,c,r,o);return r.val1.delete(t),r.val2.delete(e),y}function Y(t,e,n,r){for(var o=h$1(t),c=0;c<o.length;c++){var a=o[c];if(B(e,a,n,r))return t.delete(a),!0}return !1}function W(t){switch(p$3(t)){case\"undefined\":return null;case\"object\":return;case\"symbol\":return !1;case\"string\":t=+t;case\"number\":if(d$1(t))return !1}return !0}function H(t,e,n){var r=W(n);return null!=r?r:e.has(r)&&!t.has(r)}function J(t,e,n,r,o){var c=W(n);if(null!=c)return c;var a=e.get(c);return !(void 0===a&&!e.has(c)||!B(r,a,!1,o))&&(!t.has(c)&&B(r,a,!1,o))}function K(t,e,n,r,o,c){for(var a=h$1(t),i=0;i<a.length;i++){var u=a[i];if(B(n,u,o,c)&&B(r,e.get(u),o,c))return t.delete(u),!0}return !1}function Q(t,e,n,r,o,c){var a=0;if(2===c){if(!function(t,e,n,r){for(var o=null,c=h$1(t),a=0;a<c.length;a++){var i=c[a];if(\"object\"===p$3(i)&&null!==i)null===o&&(o=new Set),o.add(i);else if(!e.has(i)){if(n)return !1;if(!H(t,e,i))return !1;null===o&&(o=new Set),o.add(i);}}if(null!==o){for(var u=h$1(e),l=0;l<u.length;l++){var f=u[l];if(\"object\"===p$3(f)&&null!==f){if(!Y(o,f,n,r))return !1}else if(!n&&!t.has(f)&&!Y(o,f,n,r))return !1}return 0===o.size}return !0}(t,e,n,o))return !1}else if(3===c){if(!function(t,e,n,r){for(var o=null,c=y$2(t),a=0;a<c.length;a++){var i=s$3(c[a],2),u=i[0],l=i[1];if(\"object\"===p$3(u)&&null!==u)null===o&&(o=new Set),o.add(u);else {var f=e.get(u);if(void 0===f&&!e.has(u)||!B(l,f,n,r)){if(n)return !1;if(!J(t,e,u,l,r))return !1;null===o&&(o=new Set),o.add(u);}}}if(null!==o){for(var g=y$2(e),h=0;h<g.length;h++){var b=s$3(g[h],2),v=(u=b[0],b[1]);if(\"object\"===p$3(u)&&null!==u){if(!K(o,t,u,v,n,r))return !1}else if(!(n||t.has(u)&&B(t.get(u),v,!1,r)||K(o,t,u,v,!1,r)))return !1}return 0===o.size}return !0}(t,e,n,o))return !1}else if(1===c)for(;a<t.length;a++){if(!E(t,a)){if(E(e,a))return !1;for(var i=Object.keys(t);a<i.length;a++){var u=i[a];if(!E(e,u)||!B(t[u],e[u],n,o))return !1}return i.length===Object.keys(e).length}if(!E(e,a)||!B(t[a],e[a],n,o))return !1}for(a=0;a<r.length;a++){var l=r[a];if(!B(t[l],e[l],n,o))return !1}return !0}var X={isDeepEqual:function(t,e){return B(t,e,!1)},isDeepStrictEqual:function(t,e){return B(t,e,!0)}},Z={},$$1=!1;function tt(){if($$1)return Z;$$1=!0;var o=T$1;function c(t){return (c=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var a,u,l=i$5().codes,s=l.ERR_AMBIGUOUS_ARGUMENT,p=l.ERR_INVALID_ARG_TYPE,g=l.ERR_INVALID_ARG_VALUE,h=l.ERR_INVALID_RETURN_VALUE,y=l.ERR_MISSING_ARGS,b=f$6(),v=X$1.inspect,d=X$1.types,m$1=d.isPromise,E=d.isRegExp,w=Object.assign?Object.assign:r.assign,S=Object.is?Object.is:m;function j(){a=X.isDeepEqual,u=X.isDeepStrictEqual;}var O=!1,x=Z=k,q={};function R(t){if(t.message instanceof Error)throw t.message;throw new b(t)}function A(t,e,n,r){if(!n){var o=!1;if(0===e)o=!0,r=\"No value argument passed to `assert.ok()`\";else if(r instanceof Error)throw r;var c=new b({actual:n,expected:!0,message:r,operator:\"==\",stackStartFn:t});throw c.generatedMessage=o,c}}function k(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];A.apply(void 0,[k,e.length].concat(e));}x.fail=function t(e,n,r,c,a){var i,u=arguments.length;if(0===u)i=\"Failed\";else if(1===u)r=e,e=void 0;else {if(!1===O){O=!0;var l=o.emitWarning?o.emitWarning:console.warn.bind(console);l(\"assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.\",\"DeprecationWarning\",\"DEP0094\");}2===u&&(c=\"!=\");}if(r instanceof Error)throw r;var f={actual:e,expected:n,operator:void 0===c?\"fail\":c,stackStartFn:a||t};void 0!==r&&(f.message=r);var s=new b(f);throw i&&(s.message=i,s.generatedMessage=!0),s},x.AssertionError=b,x.ok=k,x.equal=function t(e,n,r){if(arguments.length<2)throw new y(\"actual\",\"expected\");e!=n&&R({actual:e,expected:n,message:r,operator:\"==\",stackStartFn:t});},x.notEqual=function t(e,n,r){if(arguments.length<2)throw new y(\"actual\",\"expected\");e==n&&R({actual:e,expected:n,message:r,operator:\"!=\",stackStartFn:t});},x.deepEqual=function t(e,n,r){if(arguments.length<2)throw new y(\"actual\",\"expected\");void 0===a&&j(),a(e,n)||R({actual:e,expected:n,message:r,operator:\"deepEqual\",stackStartFn:t});},x.notDeepEqual=function t(e,n,r){if(arguments.length<2)throw new y(\"actual\",\"expected\");void 0===a&&j(),a(e,n)&&R({actual:e,expected:n,message:r,operator:\"notDeepEqual\",stackStartFn:t});},x.deepStrictEqual=function t(e,n,r){if(arguments.length<2)throw new y(\"actual\",\"expected\");void 0===a&&j(),u(e,n)||R({actual:e,expected:n,message:r,operator:\"deepStrictEqual\",stackStartFn:t});},x.notDeepStrictEqual=function t(e,n,r){if(arguments.length<2)throw new y(\"actual\",\"expected\");void 0===a&&j();u(e,n)&&R({actual:e,expected:n,message:r,operator:\"notDeepStrictEqual\",stackStartFn:t});},x.strictEqual=function t(e,n,r){if(arguments.length<2)throw new y(\"actual\",\"expected\");S(e,n)||R({actual:e,expected:n,message:r,operator:\"strictEqual\",stackStartFn:t});},x.notStrictEqual=function t(e,n,r){if(arguments.length<2)throw new y(\"actual\",\"expected\");S(e,n)&&R({actual:e,expected:n,message:r,operator:\"notStrictEqual\",stackStartFn:t});};var _=function t(e,n,r){var o=this;!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),n.forEach((function(t){t in e&&(void 0!==r&&\"string\"==typeof r[t]&&E(e[t])&&e[t].test(r[t])?o[t]=r[t]:o[t]=e[t]);}));};function T(t,e,n,r,o,c){if(!(n in t)||!u(t[n],e[n])){if(!r){var a=new _(t,o),i=new _(e,o,t),l=new b({actual:a,expected:i,operator:\"deepStrictEqual\",stackStartFn:c});throw l.actual=t,l.expected=e,l.operator=c.name,l}R({actual:t,expected:e,message:r,operator:c.name,stackStartFn:c});}}function P(t,e,n,r){if(\"function\"!=typeof e){if(E(e))return e.test(t);if(2===arguments.length)throw new p(\"expected\",[\"Function\",\"RegExp\"],e);if(\"object\"!==c(t)||null===t){var o=new b({actual:t,expected:e,message:n,operator:\"deepStrictEqual\",stackStartFn:r});throw o.operator=r.name,o}var i=Object.keys(e);if(e instanceof Error)i.push(\"name\",\"message\");else if(0===i.length)throw new g(\"error\",e,\"may not be an empty object\");return void 0===a&&j(),i.forEach((function(o){\"string\"==typeof t[o]&&E(e[o])&&e[o].test(t[o])||T(t,e,o,n,i,r);})),!0}return void 0!==e.prototype&&t instanceof e||!Error.isPrototypeOf(e)&&!0===e.call({},t)}function I(t){if(\"function\"!=typeof t)throw new p(\"fn\",\"Function\",t);try{t();}catch(t){return t}return q}function D(t){return m$1(t)||null!==t&&\"object\"===c(t)&&\"function\"==typeof t.then&&\"function\"==typeof t.catch}function F(t){return Promise.resolve().then((function(){var e;if(\"function\"==typeof t){if(!D(e=t()))throw new h(\"instance of Promise\",\"promiseFn\",e)}else {if(!D(t))throw new p(\"promiseFn\",[\"Function\",\"Promise\"],t);e=t;}return Promise.resolve().then((function(){return e})).then((function(){return q})).catch((function(t){return t}))}))}function N(t,e,n,r){if(\"string\"==typeof n){if(4===arguments.length)throw new p(\"error\",[\"Object\",\"Error\",\"Function\",\"RegExp\"],n);if(\"object\"===c(e)&&null!==e){if(e.message===n)throw new s(\"error/message\",'The error message \"'.concat(e.message,'\" is identical to the message.'))}else if(e===n)throw new s(\"error/message\",'The error \"'.concat(e,'\" is identical to the message.'));r=n,n=void 0;}else if(null!=n&&\"object\"!==c(n)&&\"function\"!=typeof n)throw new p(\"error\",[\"Object\",\"Error\",\"Function\",\"RegExp\"],n);if(e===q){var o=\"\";n&&n.name&&(o+=\" (\".concat(n.name,\")\")),o+=r?\": \".concat(r):\".\";var a=\"rejects\"===t.name?\"rejection\":\"exception\";R({actual:void 0,expected:n,operator:t.name,message:\"Missing expected \".concat(a).concat(o),stackStartFn:t});}if(n&&!P(e,n,r,t))throw e}function L(t,e,n,r){if(e!==q){if(\"string\"==typeof n&&(r=n,n=void 0),!n||P(e,n)){var o=r?\": \".concat(r):\".\",c=\"doesNotReject\"===t.name?\"rejection\":\"exception\";R({actual:e,expected:n,operator:t.name,message:\"Got unwanted \".concat(c).concat(o,\"\\n\")+'Actual message: \"'.concat(e&&e.message,'\"'),stackStartFn:t});}throw e}}function M(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];A.apply(void 0,[M,e.length].concat(e));}return x.throws=function t(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];N.apply(void 0,[t,I(e)].concat(r));},x.rejects=function t(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return F(e).then((function(e){return N.apply(void 0,[t,e].concat(r))}))},x.doesNotThrow=function t(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];L.apply(void 0,[t,I(e)].concat(r));},x.doesNotReject=function t(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return F(e).then((function(e){return L.apply(void 0,[t,e].concat(r))}))},x.ifError=function t(e){if(null!=e){var n=\"ifError got unwanted exception: \";\"object\"===c(e)&&\"string\"==typeof e.message?0===e.message.length&&e.constructor?n+=e.constructor.name:n+=e.message:n+=v(e);var r=new b({actual:e,expected:null,operator:\"ifError\",message:n,stackStartFn:t}),o=e.stack;if(\"string\"==typeof o){var a=o.split(\"\\n\");a.shift();for(var i=r.stack.split(\"\\n\"),u=0;u<a.length;u++){var l=i.indexOf(a[u]);if(-1!==l){i=i.slice(0,l);break}}r.stack=\"\".concat(i.join(\"\\n\"),\"\\n\").concat(a.join(\"\\n\"));}throw r}},x.strict=w(M,x,{equal:x.strictEqual,deepEqual:x.deepStrictEqual,notEqual:x.notStrictEqual,notDeepEqual:x.notDeepStrictEqual}),x.strict.strict=x.strict,Z}var et=tt();et.AssertionError;et.deepEqual;et.deepStrictEqual;et.doesNotReject;et.doesNotThrow;et.equal;et.fail;et.ifError;et.notDeepEqual;et.notDeepStrictEqual;et.notEqual;et.notStrictEqual;et.ok;et.rejects;et.strict;et.strictEqual;et.throws;\n\net.AssertionError;\net.deepEqual;\net.deepStrictEqual;\net.doesNotReject;\net.doesNotThrow;\net.equal;\net.fail;\net.ifError;\net.notDeepEqual;\net.notDeepStrictEqual;\net.notEqual;\net.notStrictEqual;\net.ok;\net.rejects;\net.strict;\net.strictEqual;\net.throws;\n\nvar AssertionError = et.AssertionError;\r\nvar deepEqual = et.deepEqual;\r\nvar deepStrictEqual = et.deepStrictEqual;\r\nvar doesNotReject = et.doesNotReject;\r\nvar doesNotThrow = et.doesNotThrow;\r\nvar equal = et.equal;\r\nvar fail = et.fail;\r\nvar ifError = et.ifError;\r\nvar notDeepEqual = et.notDeepEqual;\r\nvar notDeepStrictEqual = et.notDeepStrictEqual;\r\nvar notEqual = et.notEqual;\r\nvar notStrictEqual = et.notStrictEqual;\r\nvar ok = et.ok;\r\nvar rejects = et.rejects;\r\nvar strict = et.strict;\r\nvar strictEqual = et.strictEqual;\r\nvar throws = et.throws;\n\nexport { AssertionError, deepEqual, deepStrictEqual, et as default, doesNotReject, doesNotThrow, equal, fail, ifError, notDeepEqual, notDeepStrictEqual, notEqual, notStrictEqual, ok, rejects, strict, strictEqual, throws };\n","import './chunk-ce0fbc82.js';\nimport { X } from './chunk-b4205b57.js';\nexport { X as default } from './chunk-b4205b57.js';\nimport './chunk-5decc758.js';\n\nvar _extend = X._extend;\r\nvar callbackify = X.callbackify;\r\nvar debuglog = X.debuglog;\r\nvar deprecate = X.deprecate;\r\nvar format = X.format;\r\nvar inherits = X.inherits;\r\nvar inspect = X.inspect;\r\nvar isArray = X.isArray;\r\nvar isBoolean = X.isBoolean;\r\nvar isBuffer = X.isBuffer;\r\nvar isDate = X.isDate;\r\nvar isError = X.isError;\r\nvar isFunction = X.isFunction;\r\nvar isNull = X.isNull;\r\nvar isNullOrUndefined = X.isNullOrUndefined;\r\nvar isNumber = X.isNumber;\r\nvar isObject = X.isObject;\r\nvar isPrimitive = X.isPrimitive;\r\nvar isRegExp = X.isRegExp;\r\nvar isString = X.isString;\r\nvar isSymbol = X.isSymbol;\r\nvar isUndefined = X.isUndefined;\r\nvar log = X.log;\r\nvar promisify = X.promisify;\r\nvar types = X.types;\r\n\r\nconst TextEncoder = X.TextEncoder = globalThis.TextEncoder;\r\nconst TextDecoder = X.TextDecoder = globalThis.TextDecoder;\n\nexport { TextDecoder, TextEncoder, _extend, callbackify, debuglog, deprecate, format, inherits, inspect, isArray, isBoolean, isBuffer, isDate, isError, isFunction, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isRegExp, isString, isSymbol, isUndefined, log, promisify, types };\n","import { e as exports } from './chunk-23dbec7b.js';\nexport { e as default } from './chunk-23dbec7b.js';\nimport './chunk-2eac56ff.js';\n\nvar _makeLong = exports._makeLong;\r\nvar basename = exports.basename;\r\nvar delimiter = exports.delimiter;\r\nvar dirname = exports.dirname;\r\nvar extname = exports.extname;\r\nvar format = exports.format;\r\nvar isAbsolute = exports.isAbsolute;\r\nvar join = exports.join;\r\nvar normalize = exports.normalize;\r\nvar parse = exports.parse;\r\nvar posix = exports.posix;\r\nvar relative = exports.relative;\r\nvar resolve = exports.resolve;\r\nvar sep = exports.sep;\r\nvar win32 = exports.win32;\n\nexport { _makeLong, basename, delimiter, dirname, extname, format, isAbsolute, join, normalize, parse, posix, relative, resolve, sep, win32 };\n","import { p as process } from './chunk-2eac56ff.js';\n\nvar exports$1 = {},\n _dewExec = false;\nfunction dew() {\n if (_dewExec) return exports$1;\n _dewExec = true;\n var process$1 = process;\n\n function assertPath(path) {\n if (typeof path !== \"string\") {\n throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(path));\n }\n } // Resolves . and .. elements in a path with directory names\n\n\n function normalizeStringPosix(path, allowAboveRoot) {\n var res = \"\";\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length) code = path.charCodeAt(i);else if (code === 47\n /*/*/\n ) break;else code = 47\n /*/*/\n ;\n\n if (code === 47\n /*/*/\n ) {\n if (lastSlash === i - 1 || dots === 1) ; else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46\n /*.*/\n || res.charCodeAt(res.length - 2) !== 46\n /*.*/\n ) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf(\"/\");\n\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = \"\";\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf(\"/\");\n }\n\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = \"\";\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n\n if (allowAboveRoot) {\n if (res.length > 0) res += \"/..\";else res = \"..\";\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0) res += \"/\" + path.slice(lastSlash + 1, i);else res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n\n lastSlash = i;\n dots = 0;\n } else if (code === 46\n /*.*/\n && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n\n return res;\n }\n\n function _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || \"\") + (pathObject.ext || \"\");\n\n if (!dir) {\n return base;\n }\n\n if (dir === pathObject.root) {\n return dir + base;\n }\n\n return dir + sep + base;\n }\n\n var posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = \"\";\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0) path = arguments[i];else {\n if (cwd === undefined) cwd = process$1.cwd();\n path = cwd;\n }\n assertPath(path); // Skip empty entries\n\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + \"/\" + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47\n /*/*/\n ;\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0) return \"/\" + resolvedPath;else return \"/\";\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return \".\";\n }\n },\n normalize: function normalize(path) {\n assertPath(path);\n if (path.length === 0) return \".\";\n var isAbsolute = path.charCodeAt(0) === 47\n /*/*/\n ;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47\n /*/*/\n ; // Normalize the path\n\n path = normalizeStringPosix(path, !isAbsolute);\n if (path.length === 0 && !isAbsolute) path = \".\";\n if (path.length > 0 && trailingSeparator) path += \"/\";\n if (isAbsolute) return \"/\" + path;\n return path;\n },\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47\n /*/*/\n ;\n },\n join: function join() {\n if (arguments.length === 0) return \".\";\n var joined;\n\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n\n if (arg.length > 0) {\n if (joined === undefined) joined = arg;else joined += \"/\" + arg;\n }\n }\n\n if (joined === undefined) return \".\";\n return posix.normalize(joined);\n },\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n if (from === to) return \"\";\n from = posix.resolve(from);\n to = posix.resolve(to);\n if (from === to) return \"\"; // Trim any leading backslashes\n\n var fromStart = 1;\n\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47\n /*/*/\n ) break;\n }\n\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart; // Trim any leading backslashes\n\n var toStart = 1;\n\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47\n /*/*/\n ) break;\n }\n\n var toEnd = to.length;\n var toLen = toEnd - toStart; // Compare paths to find the longest common path from root\n\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47\n /*/*/\n ) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47\n /*/*/\n ) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n\n break;\n }\n\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode) break;else if (fromCode === 47\n /*/*/\n ) lastCommonSep = i;\n }\n\n var out = \"\"; // Generate the relative path based on the path difference between `to`\n // and `from`\n\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47\n /*/*/\n ) {\n if (out.length === 0) out += \"..\";else out += \"/..\";\n }\n } // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n\n\n if (out.length > 0) return out + to.slice(toStart + lastCommonSep);else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47\n /*/*/\n ) ++toStart;\n return to.slice(toStart);\n }\n },\n _makeLong: function _makeLong(path) {\n return path;\n },\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return \".\";\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? \"/\" : \".\";\n if (hasRoot && end === 1) return \"//\";\n return path.slice(0, end);\n },\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== \"string\") throw new TypeError(\"\\\"ext\\\" argument must be a string\");\n assertPath(path);\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return \"\";\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return \"\";\n return path.slice(start, end);\n }\n },\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return \"\";\n }\n\n return path.slice(startDot, end);\n },\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== \"object\") {\n throw new TypeError(\"The \\\"pathObject\\\" argument must be of type Object. Received type \" + typeof pathObject);\n }\n\n return _format(\"/\", pathObject);\n },\n parse: function parse(path) {\n assertPath(path);\n var ret = {\n root: \"\",\n dir: \"\",\n base: \"\",\n ext: \"\",\n name: \"\"\n };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47\n /*/*/\n ;\n var start;\n\n if (isAbsolute) {\n ret.root = \"/\";\n start = 1;\n } else {\n start = 0;\n }\n\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0; // Get non-dir info\n\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = \"/\";\n return ret;\n },\n sep: \"/\",\n delimiter: \":\",\n win32: null,\n posix: null\n };\n posix.posix = posix;\n exports$1 = posix;\n return exports$1;\n}\n\nconst exports = dew();\n\nexport { exports as e };\n","import { y } from './chunk-4bd36a8f.js';\nexport { y as default } from './chunk-4bd36a8f.js';\n\n// https://github.com/denoland/deno_std/blob/d005433c709054af87aca54f57a446b4f7966f11/node/events.ts#L501-L638\r\ny.once = function (emitter, event) {\r\n return new Promise((resolve, reject) => {\r\n function eventListener(...args) {\r\n if (errorListener !== undefined) {\r\n emitter.removeListener('error', errorListener);\r\n }\r\n resolve(args);\r\n }\r\n let errorListener;\r\n if (event !== 'error') {\r\n // deno-lint-ignore no-explicit-any\r\n errorListener = (err) => {\r\n emitter.removeListener(name, eventListener);\r\n reject(err);\r\n };\r\n\r\n emitter.once('error', errorListener);\r\n }\r\n\r\n emitter.once(event, eventListener);\r\n });\r\n};\r\ny.on = function (emitter, event) {\r\n const unconsumedEventValues = [];\r\n const unconsumedPromises = [];\r\n let error = null;\r\n let finished = false;\r\n\r\n const iterator = {\r\n async next() {\r\n const value = unconsumedEventValues.shift();\r\n if (value) {\r\n return createIterResult(value, false);\r\n }\r\n\r\n if (error) {\r\n const p = Promise.reject(error);\r\n error = null;\r\n return p;\r\n }\r\n\r\n if (finished) {\r\n return createIterResult(undefined, true);\r\n }\r\n\r\n return new Promise((resolve, reject) => unconsumedPromises.push({ resolve, reject }));\r\n },\r\n async return() {\r\n emitter.removeListener(event, eventHandler);\r\n emitter.removeListener('error', errorHandler);\r\n finished = true;\r\n\r\n for (const promise of unconsumedPromises) {\r\n promise.resolve(createIterResult(undefined, true));\r\n }\r\n\r\n return createIterResult(undefined, true);\r\n },\r\n throw(err) {\r\n error = err;\r\n emitter.removeListener(event, eventHandler);\r\n emitter.removeListener('error', errorHandler);\r\n },\r\n [Symbol.asyncIterator]() {\r\n return this;\r\n },\r\n };\r\n\r\n emitter.on(event, eventHandler);\r\n emitter.on('error', errorHandler);\r\n\r\n return iterator;\r\n\r\n function eventHandler(...args) {\r\n const promise = unconsumedPromises.shift();\r\n if (promise) {\r\n promise.resolve(createIterResult(args, false));\r\n } else {\r\n unconsumedEventValues.push(args);\r\n }\r\n }\r\n\r\n function errorHandler(err) {\r\n finished = true;\r\n const toError = unconsumedPromises.shift();\r\n if (toError) {\r\n toError.reject(err);\r\n } else {\r\n error = err;\r\n }\r\n iterator.return();\r\n }\r\n};\r\nconst {\r\n EventEmitter,\r\n defaultMaxListeners,\r\n init,\r\n listenerCount,\r\n on,\r\n once,\r\n} = y;\n\nexport { EventEmitter, defaultMaxListeners, init, listenerCount, on, once };\n","import { e as exports } from './chunk-6c718bbe.js';\nexport { e as default } from './chunk-6c718bbe.js';\nimport { promisify } from './util.js';\nimport './events.js';\nimport './chunk-4bd36a8f.js';\nimport './chunk-44e51b61.js';\nimport './chunk-ce0fbc82.js';\nimport './chunk-b4205b57.js';\nimport './chunk-5decc758.js';\nimport './chunk-2eac56ff.js';\nimport './chunk-4ccc3a29.js';\n\nvar Readable = exports.Readable;\r\nReadable.wrap = function(src, options) {\r\n options = Object.assign({ objectMode: src.readableObjectMode != null || src.objectMode != null || true }, options);\r\n options.destroy = function(err, callback) {\r\n src.destroy(err);\r\n callback(err);\r\n };\r\n return new Readable(options).wrap(src);\r\n};\r\n\r\nvar Writable = exports.Writable;\r\nvar Duplex = exports.Duplex;\r\nvar Transform = exports.Transform;\r\nvar PassThrough = exports.PassThrough;\r\nvar finished = exports.finished;\r\nvar pipeline = exports.pipeline;\r\nvar Stream = exports.Stream;\r\n\r\nconst promises = {\r\n finished: promisify(exports.finished),\r\n pipeline: promisify(exports.pipeline)\r\n};\n\nexport { Duplex, PassThrough, Readable, Stream, Transform, Writable, finished, pipeline, promises };\n","import './events.js';\nimport { a as dew$1, c as dew$2, e as dew$3, f as dew$4, g as dew$5, h as dew$6, i as dew$7, d as dew$8 } from './chunk-44e51b61.js';\nimport { y } from './chunk-4bd36a8f.js';\n\nvar exports$1 = {},\n _dewExec = false;\n\nvar _global = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nfunction dew() {\n if (_dewExec) return exports$1;\n _dewExec = true;\n // Copyright Joyent, Inc. and other Node contributors.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a\n // copy of this software and associated documentation files (the\n // \"Software\"), to deal in the Software without restriction, including\n // without limitation the rights to use, copy, modify, merge, publish,\n // distribute, sublicense, and/or sell copies of the Software, and to permit\n // persons to whom the Software is furnished to do so, subject to the\n // following conditions:\n //\n // The above copyright notice and this permission notice shall be included\n // in all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n // USE OR OTHER DEALINGS IN THE SOFTWARE.\n exports$1 = Stream;\n var EE = y.EventEmitter;\n\n var inherits = dew$8();\n\n inherits(Stream, EE);\n Stream.Readable = dew$1();\n Stream.Writable = dew$2();\n Stream.Duplex = dew$3();\n Stream.Transform = dew$4();\n Stream.PassThrough = dew$5();\n Stream.finished = dew$6();\n Stream.pipeline = dew$7(); // Backwards-compat with node 0.4.x\n\n Stream.Stream = Stream; // old-style streams. Note that the pipe method (the only relevant\n // part of this class) is overridden in the Readable class.\n\n function Stream() {\n EE.call(this || _global);\n }\n\n Stream.prototype.pipe = function (dest, options) {\n var source = this || _global;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on(\"data\", ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on(\"drain\", ondrain); // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on(\"end\", onend);\n source.on(\"close\", onclose);\n }\n\n var didOnEnd = false;\n\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n dest.end();\n }\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n if (typeof dest.destroy === \"function\") dest.destroy();\n } // don't leave dangling pipes when there are errors.\n\n\n function onerror(er) {\n cleanup();\n\n if (EE.listenerCount(this || _global, \"error\") === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on(\"error\", onerror);\n dest.on(\"error\", onerror); // remove all the event listeners that were added.\n\n function cleanup() {\n source.removeListener(\"data\", ondata);\n dest.removeListener(\"drain\", ondrain);\n source.removeListener(\"end\", onend);\n source.removeListener(\"close\", onclose);\n source.removeListener(\"error\", onerror);\n dest.removeListener(\"error\", onerror);\n source.removeListener(\"end\", cleanup);\n source.removeListener(\"close\", cleanup);\n dest.removeListener(\"close\", cleanup);\n }\n\n source.on(\"end\", cleanup);\n source.on(\"close\", cleanup);\n dest.on(\"close\", cleanup);\n dest.emit(\"pipe\", source); // Allow for unix-like usage: A.pipe(B).pipe(C)\n\n return dest;\n };\n\n return exports$1;\n}\n\nconst exports = dew();\n\nexport { exports as e };\n","import { p as p$1 } from './chunk-924bb2e1.js';\nimport { o as o$1 } from './chunk-b04e620d.js';\nimport { T } from './chunk-5decc758.js';\nimport { e as exports$1 } from './chunk-23dbec7b.js';\nimport './chunk-2eac56ff.js';\n\nvar h={},e=p$1,a={isString:function(t){return \"string\"==typeof t},isObject:function(t){return \"object\"==typeof t&&null!==t},isNull:function(t){return null===t},isNullOrUndefined:function(t){return null==t}};function r(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null;}h.parse=O,h.resolve=function(t,s){return O(t,!1,!0).resolve(s)},h.resolveObject=function(t,s){return t?O(t,!1,!0).resolveObject(s):s},h.format=function(t){a.isString(t)&&(t=O(t));return t instanceof r?t.format():r.prototype.format.call(t)},h.Url=r;var o=/^([a-z0-9.+-]+:)/i,n=/:[0-9]*$/,i=/^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,l=[\"{\",\"}\",\"|\",\"\\\\\",\"^\",\"`\"].concat([\"<\",\">\",'\"',\"`\",\" \",\"\\r\",\"\\n\",\"\\t\"]),p=[\"'\"].concat(l),c=[\"%\",\"/\",\"?\",\";\",\"#\"].concat(p),u=[\"/\",\"?\",\"#\"],f=/^[+a-z0-9A-Z_-]{0,63}$/,m=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,v={javascript:!0,\"javascript:\":!0},g={javascript:!0,\"javascript:\":!0},y={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,\"http:\":!0,\"https:\":!0,\"ftp:\":!0,\"gopher:\":!0,\"file:\":!0},b=o$1;function O(t,s,h){if(t&&a.isObject(t)&&t instanceof r)return t;var e=new r;return e.parse(t,s,h),e}r.prototype.parse=function(t,s,h){if(!a.isString(t))throw new TypeError(\"Parameter 'url' must be a string, not \"+typeof t);var r=t.indexOf(\"?\"),n=-1!==r&&r<t.indexOf(\"#\")?\"?\":\"#\",l=t.split(n);l[0]=l[0].replace(/\\\\/g,\"/\");var O=t=l.join(n);if(O=O.trim(),!h&&1===t.split(\"#\").length){var d=i.exec(O);if(d)return this.path=O,this.href=O,this.pathname=d[1],d[2]?(this.search=d[2],this.query=s?b.parse(this.search.substr(1)):this.search.substr(1)):s&&(this.search=\"\",this.query={}),this}var j=o.exec(O);if(j){var q=(j=j[0]).toLowerCase();this.protocol=q,O=O.substr(j.length);}if(h||j||O.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)){var x=\"//\"===O.substr(0,2);!x||j&&g[j]||(O=O.substr(2),this.slashes=!0);}if(!g[j]&&(x||j&&!y[j])){for(var A,C,I=-1,w=0;w<u.length;w++){-1!==(N=O.indexOf(u[w]))&&(-1===I||N<I)&&(I=N);}-1!==(C=-1===I?O.lastIndexOf(\"@\"):O.lastIndexOf(\"@\",I))&&(A=O.slice(0,C),O=O.slice(C+1),this.auth=decodeURIComponent(A)),I=-1;for(w=0;w<c.length;w++){var N;-1!==(N=O.indexOf(c[w]))&&(-1===I||N<I)&&(I=N);}-1===I&&(I=O.length),this.host=O.slice(0,I),O=O.slice(I),this.parseHost(),this.hostname=this.hostname||\"\";var U=\"[\"===this.hostname[0]&&\"]\"===this.hostname[this.hostname.length-1];if(!U)for(var k=this.hostname.split(/\\./),S=(w=0,k.length);w<S;w++){var R=k[w];if(R&&!R.match(f)){for(var $=\"\",z=0,H=R.length;z<H;z++)R.charCodeAt(z)>127?$+=\"x\":$+=R[z];if(!$.match(f)){var L=k.slice(0,w),Z=k.slice(w+1),_=R.match(m);_&&(L.push(_[1]),Z.unshift(_[2])),Z.length&&(O=\"/\"+Z.join(\".\")+O),this.hostname=L.join(\".\");break}}}this.hostname.length>255?this.hostname=\"\":this.hostname=this.hostname.toLowerCase(),U||(this.hostname=e.toASCII(this.hostname));var E=this.port?\":\"+this.port:\"\",P=this.hostname||\"\";this.host=P+E,this.href+=this.host,U&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),\"/\"!==O[0]&&(O=\"/\"+O));}if(!v[q])for(w=0,S=p.length;w<S;w++){var T=p[w];if(-1!==O.indexOf(T)){var B=encodeURIComponent(T);B===T&&(B=escape(T)),O=O.split(T).join(B);}}var D=O.indexOf(\"#\");-1!==D&&(this.hash=O.substr(D),O=O.slice(0,D));var F=O.indexOf(\"?\");if(-1!==F?(this.search=O.substr(F),this.query=O.substr(F+1),s&&(this.query=b.parse(this.query)),O=O.slice(0,F)):s&&(this.search=\"\",this.query={}),O&&(this.pathname=O),y[q]&&this.hostname&&!this.pathname&&(this.pathname=\"/\"),this.pathname||this.search){E=this.pathname||\"\";var G=this.search||\"\";this.path=E+G;}return this.href=this.format(),this},r.prototype.format=function(){var t=this.auth||\"\";t&&(t=(t=encodeURIComponent(t)).replace(/%3A/i,\":\"),t+=\"@\");var s=this.protocol||\"\",h=this.pathname||\"\",e=this.hash||\"\",r=!1,o=\"\";this.host?r=t+this.host:this.hostname&&(r=t+(-1===this.hostname.indexOf(\":\")?this.hostname:\"[\"+this.hostname+\"]\"),this.port&&(r+=\":\"+this.port)),this.query&&a.isObject(this.query)&&Object.keys(this.query).length&&(o=b.stringify(this.query));var n=this.search||o&&\"?\"+o||\"\";return s&&\":\"!==s.substr(-1)&&(s+=\":\"),this.slashes||(!s||y[s])&&!1!==r?(r=\"//\"+(r||\"\"),h&&\"/\"!==h.charAt(0)&&(h=\"/\"+h)):r||(r=\"\"),e&&\"#\"!==e.charAt(0)&&(e=\"#\"+e),n&&\"?\"!==n.charAt(0)&&(n=\"?\"+n),s+r+(h=h.replace(/[?#]/g,(function(t){return encodeURIComponent(t)})))+(n=n.replace(\"#\",\"%23\"))+e},r.prototype.resolve=function(t){return this.resolveObject(O(t,!1,!0)).format()},r.prototype.resolveObject=function(t){if(a.isString(t)){var s=new r;s.parse(t,!1,!0),t=s;}for(var h=new r,e=Object.keys(this),o=0;o<e.length;o++){var n=e[o];h[n]=this[n];}if(h.hash=t.hash,\"\"===t.href)return h.href=h.format(),h;if(t.slashes&&!t.protocol){for(var i=Object.keys(t),l=0;l<i.length;l++){var p=i[l];\"protocol\"!==p&&(h[p]=t[p]);}return y[h.protocol]&&h.hostname&&!h.pathname&&(h.path=h.pathname=\"/\"),h.href=h.format(),h}if(t.protocol&&t.protocol!==h.protocol){if(!y[t.protocol]){for(var c=Object.keys(t),u=0;u<c.length;u++){var f=c[u];h[f]=t[f];}return h.href=h.format(),h}if(h.protocol=t.protocol,t.host||g[t.protocol])h.pathname=t.pathname;else {for(var m=(t.pathname||\"\").split(\"/\");m.length&&!(t.host=m.shift()););t.host||(t.host=\"\"),t.hostname||(t.hostname=\"\"),\"\"!==m[0]&&m.unshift(\"\"),m.length<2&&m.unshift(\"\"),h.pathname=m.join(\"/\");}if(h.search=t.search,h.query=t.query,h.host=t.host||\"\",h.auth=t.auth,h.hostname=t.hostname||t.host,h.port=t.port,h.pathname||h.search){var v=h.pathname||\"\",b=h.search||\"\";h.path=v+b;}return h.slashes=h.slashes||t.slashes,h.href=h.format(),h}var O=h.pathname&&\"/\"===h.pathname.charAt(0),d=t.host||t.pathname&&\"/\"===t.pathname.charAt(0),j=d||O||h.host&&t.pathname,q=j,x=h.pathname&&h.pathname.split(\"/\")||[],A=(m=t.pathname&&t.pathname.split(\"/\")||[],h.protocol&&!y[h.protocol]);if(A&&(h.hostname=\"\",h.port=null,h.host&&(\"\"===x[0]?x[0]=h.host:x.unshift(h.host)),h.host=\"\",t.protocol&&(t.hostname=null,t.port=null,t.host&&(\"\"===m[0]?m[0]=t.host:m.unshift(t.host)),t.host=null),j=j&&(\"\"===m[0]||\"\"===x[0])),d)h.host=t.host||\"\"===t.host?t.host:h.host,h.hostname=t.hostname||\"\"===t.hostname?t.hostname:h.hostname,h.search=t.search,h.query=t.query,x=m;else if(m.length)x||(x=[]),x.pop(),x=x.concat(m),h.search=t.search,h.query=t.query;else if(!a.isNullOrUndefined(t.search)){if(A)h.hostname=h.host=x.shift(),(U=!!(h.host&&h.host.indexOf(\"@\")>0)&&h.host.split(\"@\"))&&(h.auth=U.shift(),h.host=h.hostname=U.shift());return h.search=t.search,h.query=t.query,a.isNull(h.pathname)&&a.isNull(h.search)||(h.path=(h.pathname?h.pathname:\"\")+(h.search?h.search:\"\")),h.href=h.format(),h}if(!x.length)return h.pathname=null,h.search?h.path=\"/\"+h.search:h.path=null,h.href=h.format(),h;for(var C=x.slice(-1)[0],I=(h.host||t.host||x.length>1)&&(\".\"===C||\"..\"===C)||\"\"===C,w=0,N=x.length;N>=0;N--)\".\"===(C=x[N])?x.splice(N,1):\"..\"===C?(x.splice(N,1),w++):w&&(x.splice(N,1),w--);if(!j&&!q)for(;w--;w)x.unshift(\"..\");!j||\"\"===x[0]||x[0]&&\"/\"===x[0].charAt(0)||x.unshift(\"\"),I&&\"/\"!==x.join(\"/\").substr(-1)&&x.push(\"\");var U,k=\"\"===x[0]||x[0]&&\"/\"===x[0].charAt(0);A&&(h.hostname=h.host=k?\"\":x.length?x.shift():\"\",(U=!!(h.host&&h.host.indexOf(\"@\")>0)&&h.host.split(\"@\"))&&(h.auth=U.shift(),h.host=h.hostname=U.shift()));return (j=j||h.host&&x.length)&&!k&&x.unshift(\"\"),x.length?h.pathname=x.join(\"/\"):(h.pathname=null,h.path=null),a.isNull(h.pathname)&&a.isNull(h.search)||(h.path=(h.pathname?h.pathname:\"\")+(h.search?h.search:\"\")),h.auth=t.auth||h.auth,h.slashes=h.slashes||t.slashes,h.href=h.format(),h},r.prototype.parseHost=function(){var t=this.host,s=n.exec(t);s&&(\":\"!==(s=s[0])&&(this.port=s.substr(1)),t=t.substr(0,t.length-s.length)),t&&(this.hostname=t);};\nh.Url;h.format;h.resolve;h.resolveObject;\n\nvar exports = {},\n _dewExec = false;\nfunction dew() {\n if (_dewExec) return exports;\n _dewExec = true;\n var process = T;\n\n function assertPath(path) {\n if (typeof path !== \"string\") {\n throw new TypeError(\"Path must be a string. Received \" + JSON.stringify(path));\n }\n } // Resolves . and .. elements in a path with directory names\n\n\n function normalizeStringPosix(path, allowAboveRoot) {\n var res = \"\";\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length) code = path.charCodeAt(i);else if (code === 47\n /*/*/\n ) break;else code = 47\n /*/*/\n ;\n\n if (code === 47\n /*/*/\n ) {\n if (lastSlash === i - 1 || dots === 1) ; else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46\n /*.*/\n || res.charCodeAt(res.length - 2) !== 46\n /*.*/\n ) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf(\"/\");\n\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = \"\";\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf(\"/\");\n }\n\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = \"\";\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n\n if (allowAboveRoot) {\n if (res.length > 0) res += \"/..\";else res = \"..\";\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0) res += \"/\" + path.slice(lastSlash + 1, i);else res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n\n lastSlash = i;\n dots = 0;\n } else if (code === 46\n /*.*/\n && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n\n return res;\n }\n\n function _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || \"\") + (pathObject.ext || \"\");\n\n if (!dir) {\n return base;\n }\n\n if (dir === pathObject.root) {\n return dir + base;\n }\n\n return dir + sep + base;\n }\n\n var posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = \"\";\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0) path = arguments[i];else {\n if (cwd === undefined) cwd = process.cwd();\n path = cwd;\n }\n assertPath(path); // Skip empty entries\n\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + \"/\" + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47\n /*/*/\n ;\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0) return \"/\" + resolvedPath;else return \"/\";\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return \".\";\n }\n },\n normalize: function normalize(path) {\n assertPath(path);\n if (path.length === 0) return \".\";\n var isAbsolute = path.charCodeAt(0) === 47\n /*/*/\n ;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47\n /*/*/\n ; // Normalize the path\n\n path = normalizeStringPosix(path, !isAbsolute);\n if (path.length === 0 && !isAbsolute) path = \".\";\n if (path.length > 0 && trailingSeparator) path += \"/\";\n if (isAbsolute) return \"/\" + path;\n return path;\n },\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47\n /*/*/\n ;\n },\n join: function join() {\n if (arguments.length === 0) return \".\";\n var joined;\n\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n\n if (arg.length > 0) {\n if (joined === undefined) joined = arg;else joined += \"/\" + arg;\n }\n }\n\n if (joined === undefined) return \".\";\n return posix.normalize(joined);\n },\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n if (from === to) return \"\";\n from = posix.resolve(from);\n to = posix.resolve(to);\n if (from === to) return \"\"; // Trim any leading backslashes\n\n var fromStart = 1;\n\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47\n /*/*/\n ) break;\n }\n\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart; // Trim any leading backslashes\n\n var toStart = 1;\n\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47\n /*/*/\n ) break;\n }\n\n var toEnd = to.length;\n var toLen = toEnd - toStart; // Compare paths to find the longest common path from root\n\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47\n /*/*/\n ) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47\n /*/*/\n ) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n\n break;\n }\n\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode) break;else if (fromCode === 47\n /*/*/\n ) lastCommonSep = i;\n }\n\n var out = \"\"; // Generate the relative path based on the path difference between `to`\n // and `from`\n\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47\n /*/*/\n ) {\n if (out.length === 0) out += \"..\";else out += \"/..\";\n }\n } // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n\n\n if (out.length > 0) return out + to.slice(toStart + lastCommonSep);else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47\n /*/*/\n ) ++toStart;\n return to.slice(toStart);\n }\n },\n _makeLong: function _makeLong(path) {\n return path;\n },\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return \".\";\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? \"/\" : \".\";\n if (hasRoot && end === 1) return \"//\";\n return path.slice(0, end);\n },\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== \"string\") throw new TypeError(\"\\\"ext\\\" argument must be a string\");\n assertPath(path);\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return \"\";\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return \"\";\n return path.slice(start, end);\n }\n },\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return \"\";\n }\n\n return path.slice(startDot, end);\n },\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== \"object\") {\n throw new TypeError(\"The \\\"pathObject\\\" argument must be of type Object. Received type \" + typeof pathObject);\n }\n\n return _format(\"/\", pathObject);\n },\n parse: function parse(path) {\n assertPath(path);\n var ret = {\n root: \"\",\n dir: \"\",\n base: \"\",\n ext: \"\",\n name: \"\"\n };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47\n /*/*/\n ;\n var start;\n\n if (isAbsolute) {\n ret.root = \"/\";\n start = 1;\n } else {\n start = 0;\n }\n\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0; // Get non-dir info\n\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = \"/\";\n return ret;\n },\n sep: \"/\",\n delimiter: \":\",\n win32: null,\n posix: null\n };\n posix.posix = posix;\n exports = posix;\n return exports;\n}\n\nvar path = dew();\n\n// Copyright Joyent, Inc. and other Node contributors.\n\nconst processPlatform$1 = typeof Deno !== 'undefined' ? (Deno.build.os === \"windows\" ? \"win32\" : Deno.build.os) : undefined;\n\nh.URL = typeof URL !== 'undefined' ? URL : null;\nh.pathToFileURL = pathToFileURL$1;\nh.fileURLToPath = fileURLToPath$1;\n\nh.Url;\nh.format;\nh.resolve;\nh.resolveObject;\n\nh.URL;\n\nconst CHAR_BACKWARD_SLASH$1 = 92;\nconst CHAR_FORWARD_SLASH$1 = 47;\nconst CHAR_LOWERCASE_A$1 = 97;\nconst CHAR_LOWERCASE_Z$1 = 122;\n\nconst isWindows$1 = processPlatform$1 === 'win32';\n\nconst forwardSlashRegEx$1 = /\\//g;\nconst percentRegEx$1 = /%/g;\nconst backslashRegEx$1 = /\\\\/g;\nconst newlineRegEx$1 = /\\n/g;\nconst carriageReturnRegEx$1 = /\\r/g;\nconst tabRegEx$1 = /\\t/g;\n\n/**\n * Get fully resolved platform-specific file path from the given URL string/ object\n * @param path The file URL string or URL object to convert to a path\n */\nfunction fileURLToPath$1(path) {\n if (typeof path === \"string\") path = new URL(path);\n else if (!(path instanceof URL)) {\n throw new Deno.errors.InvalidData(\n \"invalid argument path , must be a string or URL\",\n );\n }\n if (path.protocol !== \"file:\") {\n throw new Deno.errors.InvalidData(\"invalid url scheme\");\n }\n return isWindows$1 ? getPathFromURLWin$1(path) : getPathFromURLPosix$1(path);\n}\n\nfunction getPathFromURLWin$1(url) {\n const hostname = url.hostname;\n let pathname = url.pathname;\n for (let n = 0; n < pathname.length; n++) {\n if (pathname[n] === \"%\") {\n const third = pathname.codePointAt(n + 2) || 0x20;\n if (\n (pathname[n + 1] === \"2\" && third === 102) || // 2f 2F /\n (pathname[n + 1] === \"5\" && third === 99)\n ) {\n // 5c 5C \\\n throw new Deno.errors.InvalidData(\n \"must not include encoded \\\\ or / characters\",\n );\n }\n }\n }\n\n pathname = pathname.replace(forwardSlashRegEx$1, \"\\\\\");\n pathname = decodeURIComponent(pathname);\n if (hostname !== \"\") {\n //TODO add support for punycode encodings\n return `\\\\\\\\${hostname}${pathname}`;\n } else {\n // Otherwise, it's a local path that requires a drive letter\n const letter = pathname.codePointAt(1) | 0x20;\n const sep = pathname[2];\n if (\n letter < CHAR_LOWERCASE_A$1 ||\n letter > CHAR_LOWERCASE_Z$1 || // a..z A..Z\n sep !== \":\"\n ) {\n throw new Deno.errors.InvalidData(\"file url path must be absolute\");\n }\n return pathname.slice(1);\n }\n}\nfunction getPathFromURLPosix$1(url) {\n if (url.hostname !== \"\") {\n throw new Deno.errors.InvalidData(\"invalid file url hostname\");\n }\n const pathname = url.pathname;\n for (let n = 0; n < pathname.length; n++) {\n if (pathname[n] === \"%\") {\n const third = pathname.codePointAt(n + 2) || 0x20;\n if (pathname[n + 1] === \"2\" && third === 102) {\n throw new Deno.errors.InvalidData(\n \"must not include encoded / characters\",\n );\n }\n }\n }\n return decodeURIComponent(pathname);\n}\n\n/** Get fully resolved platform-specific File URL from the given file path */\nfunction pathToFileURL$1(filepath) {\n let resolved = path.resolve(filepath);\n // path.resolve strips trailing slashes so we must add them back\n const filePathLast = filepath.charCodeAt(filepath.length - 1);\n if (\n (filePathLast === CHAR_FORWARD_SLASH$1 ||\n (isWindows$1 && filePathLast === CHAR_BACKWARD_SLASH$1)) &&\n resolved[resolved.length - 1] !== path.sep\n ) {\n resolved += \"/\";\n }\n const outURL = new URL(\"file://\");\n if (resolved.includes(\"%\")) resolved = resolved.replace(percentRegEx$1, \"%25\");\n // In posix, \"/\" is a valid character in paths\n if (!isWindows$1 && resolved.includes(\"\\\\\")) {\n resolved = resolved.replace(backslashRegEx$1, \"%5C\");\n }\n if (resolved.includes(\"\\n\")) resolved = resolved.replace(newlineRegEx$1, \"%0A\");\n if (resolved.includes(\"\\r\")) {\n resolved = resolved.replace(carriageReturnRegEx$1, \"%0D\");\n }\n if (resolved.includes(\"\\t\")) resolved = resolved.replace(tabRegEx$1, \"%09\");\n outURL.pathname = resolved;\n return outURL;\n}\n\n// Copyright Joyent, Inc. and other Node contributors.\r\n\r\nconst processPlatform = typeof Deno !== 'undefined' ? (Deno.build.os === \"windows\" ? \"win32\" : Deno.build.os) : undefined;\r\n\r\nh.URL = typeof URL !== 'undefined' ? URL : null;\r\nh.pathToFileURL = pathToFileURL;\r\nh.fileURLToPath = fileURLToPath;\r\n\r\nvar Url = h.Url;\r\nvar format = h.format;\r\nvar resolve = h.resolve;\r\nvar resolveObject = h.resolveObject;\r\nvar parse = h.parse;\r\n\r\nconst _URL = h.URL;\r\n\r\nconst CHAR_BACKWARD_SLASH = 92;\r\nconst CHAR_FORWARD_SLASH = 47;\r\nconst CHAR_LOWERCASE_A = 97;\r\nconst CHAR_LOWERCASE_Z = 122;\r\n\r\nconst isWindows = processPlatform === 'win32';\r\n\r\nconst forwardSlashRegEx = /\\//g;\r\nconst percentRegEx = /%/g;\r\nconst backslashRegEx = /\\\\/g;\r\nconst newlineRegEx = /\\n/g;\r\nconst carriageReturnRegEx = /\\r/g;\r\nconst tabRegEx = /\\t/g;\r\n\r\n/**\r\n * Get fully resolved platform-specific file path from the given URL string/ object\r\n * @param path The file URL string or URL object to convert to a path\r\n */\r\nfunction fileURLToPath(path) {\r\n if (typeof path === \"string\") path = new URL(path);\r\n else if (!(path instanceof URL)) {\r\n throw new Deno.errors.InvalidData(\r\n \"invalid argument path , must be a string or URL\",\r\n );\r\n }\r\n if (path.protocol !== \"file:\") {\r\n throw new Deno.errors.InvalidData(\"invalid url scheme\");\r\n }\r\n return isWindows ? getPathFromURLWin(path) : getPathFromURLPosix(path);\r\n}\r\n\r\nfunction getPathFromURLWin(url) {\r\n const hostname = url.hostname;\r\n let pathname = url.pathname;\r\n for (let n = 0; n < pathname.length; n++) {\r\n if (pathname[n] === \"%\") {\r\n const third = pathname.codePointAt(n + 2) || 0x20;\r\n if (\r\n (pathname[n + 1] === \"2\" && third === 102) || // 2f 2F /\r\n (pathname[n + 1] === \"5\" && third === 99)\r\n ) {\r\n // 5c 5C \\\r\n throw new Deno.errors.InvalidData(\r\n \"must not include encoded \\\\ or / characters\",\r\n );\r\n }\r\n }\r\n }\r\n\r\n pathname = pathname.replace(forwardSlashRegEx, \"\\\\\");\r\n pathname = decodeURIComponent(pathname);\r\n if (hostname !== \"\") {\r\n //TODO add support for punycode encodings\r\n return `\\\\\\\\${hostname}${pathname}`;\r\n } else {\r\n // Otherwise, it's a local path that requires a drive letter\r\n const letter = pathname.codePointAt(1) | 0x20;\r\n const sep = pathname[2];\r\n if (\r\n letter < CHAR_LOWERCASE_A ||\r\n letter > CHAR_LOWERCASE_Z || // a..z A..Z\r\n sep !== \":\"\r\n ) {\r\n throw new Deno.errors.InvalidData(\"file url path must be absolute\");\r\n }\r\n return pathname.slice(1);\r\n }\r\n}\r\nfunction getPathFromURLPosix(url) {\r\n if (url.hostname !== \"\") {\r\n throw new Deno.errors.InvalidData(\"invalid file url hostname\");\r\n }\r\n const pathname = url.pathname;\r\n for (let n = 0; n < pathname.length; n++) {\r\n if (pathname[n] === \"%\") {\r\n const third = pathname.codePointAt(n + 2) || 0x20;\r\n if (pathname[n + 1] === \"2\" && third === 102) {\r\n throw new Deno.errors.InvalidData(\r\n \"must not include encoded / characters\",\r\n );\r\n }\r\n }\r\n }\r\n return decodeURIComponent(pathname);\r\n}\r\n\r\n/** Get fully resolved platform-specific File URL from the given file path */\r\nfunction pathToFileURL(filepath) {\r\n let resolved = exports$1.resolve(filepath);\r\n // path.resolve strips trailing slashes so we must add them back\r\n const filePathLast = filepath.charCodeAt(filepath.length - 1);\r\n if (\r\n (filePathLast === CHAR_FORWARD_SLASH ||\r\n (isWindows && filePathLast === CHAR_BACKWARD_SLASH)) &&\r\n resolved[resolved.length - 1] !== exports$1.sep\r\n ) {\r\n resolved += \"/\";\r\n }\r\n const outURL = new URL(\"file://\");\r\n if (resolved.includes(\"%\")) resolved = resolved.replace(percentRegEx, \"%25\");\r\n // In posix, \"/\" is a valid character in paths\r\n if (!isWindows && resolved.includes(\"\\\\\")) {\r\n resolved = resolved.replace(backslashRegEx, \"%5C\");\r\n }\r\n if (resolved.includes(\"\\n\")) resolved = resolved.replace(newlineRegEx, \"%0A\");\r\n if (resolved.includes(\"\\r\")) {\r\n resolved = resolved.replace(carriageReturnRegEx, \"%0D\");\r\n }\r\n if (resolved.includes(\"\\t\")) resolved = resolved.replace(tabRegEx, \"%09\");\r\n outURL.pathname = resolved;\r\n return outURL;\r\n}\n\nexport { _URL as URL, Url, h as default, fileURLToPath, format, parse, pathToFileURL, resolve, resolveObject };\n","const t=2147483647,o=/^xn--/,n=/[^\\0-\\x7E]/,e=/[\\x2E\\u3002\\uFF0E\\uFF61]/g,r={overflow:\"Overflow: input needs wider integers to process\",\"not-basic\":\"Illegal input >= 0x80 (not a basic code point)\",\"invalid-input\":\"Invalid input\"},c=Math.floor,s=String.fromCharCode;function i(t){throw new RangeError(r[t])}function f(t,o){const n=t.split(\"@\");let r=\"\";n.length>1&&(r=n[0]+\"@\",t=n[1]);const c=function(t,o){const n=[];let e=t.length;for(;e--;)n[e]=o(t[e]);return n}((t=t.replace(e,\".\")).split(\".\"),o).join(\".\");return r+c}function l(t){const o=[];let n=0;const e=t.length;for(;n<e;){const r=t.charCodeAt(n++);if(r>=55296&&r<=56319&&n<e){const e=t.charCodeAt(n++);56320==(64512&e)?o.push(((1023&r)<<10)+(1023&e)+65536):(o.push(r),n--);}else o.push(r);}return o}const u=function(t,o){return t+22+75*(t<26)-((0!=o)<<5)},a=function(t,o,n){let e=0;for(t=n?c(t/700):t>>1,t+=c(t/o);t>455;e+=36)t=c(t/35);return c(e+36*t/(t+38))},d=function(o){const n=[],e=o.length;let r=0,s=128,f=72,l=o.lastIndexOf(\"-\");l<0&&(l=0);for(let t=0;t<l;++t)o.charCodeAt(t)>=128&&i(\"not-basic\"),n.push(o.charCodeAt(t));for(let d=l>0?l+1:0;d<e;){let l=r;for(let n=1,s=36;;s+=36){d>=e&&i(\"invalid-input\");const l=(u=o.charCodeAt(d++))-48<10?u-22:u-65<26?u-65:u-97<26?u-97:36;(l>=36||l>c((t-r)/n))&&i(\"overflow\"),r+=l*n;const a=s<=f?1:s>=f+26?26:s-f;if(l<a)break;const h=36-a;n>c(t/h)&&i(\"overflow\"),n*=h;}const h=n.length+1;f=a(r-l,h,0==l),c(r/h)>t-s&&i(\"overflow\"),s+=c(r/h),r%=h,n.splice(r++,0,s);}var u;return String.fromCodePoint(...n)},h=function(o){const n=[];let e=(o=l(o)).length,r=128,f=0,d=72;for(const t of o)t<128&&n.push(s(t));let h=n.length,p=h;for(h&&n.push(\"-\");p<e;){let e=t;for(const t of o)t>=r&&t<e&&(e=t);const l=p+1;e-r>c((t-f)/l)&&i(\"overflow\"),f+=(e-r)*l,r=e;for(const e of o)if(e<r&&++f>t&&i(\"overflow\"),e==r){let t=f;for(let o=36;;o+=36){const e=o<=d?1:o>=d+26?26:o-d;if(t<e)break;const r=t-e,i=36-e;n.push(s(u(e+r%i,0))),t=c(r/i);}n.push(s(u(t,0))),d=a(f,l,p==h),f=0,++p;}++f,++r;}return n.join(\"\")};var p={version:\"2.1.0\",ucs2:{decode:l,encode:t=>String.fromCodePoint(...t)},decode:d,encode:h,toASCII:function(t){return f(t,(function(t){return n.test(t)?\"xn--\"+h(t):t}))},toUnicode:function(t){return f(t,(function(t){return o.test(t)?d(t.slice(4).toLowerCase()):t}))}};p.decode;p.encode;p.toASCII;p.toUnicode;p.ucs2;p.version;\n\nexport { p };\n","function e(e,n){return Object.prototype.hasOwnProperty.call(e,n)}var n=function(n,r,t,o){r=r||\"&\",t=t||\"=\";var a={};if(\"string\"!=typeof n||0===n.length)return a;var u=/\\+/g;n=n.split(r);var c=1e3;o&&\"number\"==typeof o.maxKeys&&(c=o.maxKeys);var i=n.length;c>0&&i>c&&(i=c);for(var s=0;s<i;++s){var p,f,d,y,m=n[s].replace(u,\"%20\"),l=m.indexOf(t);l>=0?(p=m.substr(0,l),f=m.substr(l+1)):(p=m,f=\"\"),d=decodeURIComponent(p),y=decodeURIComponent(f),e(a,d)?Array.isArray(a[d])?a[d].push(y):a[d]=[a[d],y]:a[d]=y;}return a},r=function(e){switch(typeof e){case\"string\":return e;case\"boolean\":return e?\"true\":\"false\";case\"number\":return isFinite(e)?e:\"\";default:return \"\"}},t=function(e,n,t,o){return n=n||\"&\",t=t||\"=\",null===e&&(e=void 0),\"object\"==typeof e?Object.keys(e).map((function(o){var a=encodeURIComponent(r(o))+t;return Array.isArray(e[o])?e[o].map((function(e){return a+encodeURIComponent(r(e))})).join(n):a+encodeURIComponent(r(e[o]))})).join(n):o?encodeURIComponent(r(o))+t+encodeURIComponent(r(e)):\"\"},o={};o.decode=o.parse=n,o.encode=o.stringify=t;o.decode;o.encode;o.parse;o.stringify;\n\nexport { o };\n","var exports$3 = {},\n _dewExec$2 = false;\nfunction dew$2() {\n if (_dewExec$2) return exports$3;\n _dewExec$2 = true;\n exports$3.byteLength = byteLength;\n exports$3.toByteArray = toByteArray;\n exports$3.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\n var code = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n } // Support decoding URL-safe base64 strings, as Node.js does.\n // See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\n\n revLookup[\"-\".charCodeAt(0)] = 62;\n revLookup[\"_\".charCodeAt(0)] = 63;\n\n function getLens(b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error(\"Invalid string. Length must be a multiple of 4\");\n } // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n\n\n var validLen = b64.indexOf(\"=\");\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n } // base64 is 4/3 + up to two characters of the original data\n\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\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\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; // if there are placeholders, only get up to the last complete 4 chars\n\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n\n for (i = 0; i < len; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n\n return arr;\n }\n\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 16711680) + (uint8[i + 1] << 8 & 65280) + (uint8[i + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n\n return output.join(\"\");\n }\n\n function fromByteArray(uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n // go through the array every three bytes, we'll deal with trailing stuff later\n\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 63] + \"==\");\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + \"=\");\n }\n\n return parts.join(\"\");\n }\n\n return exports$3;\n}\n\nvar exports$2 = {},\n _dewExec$1 = false;\nfunction dew$1() {\n if (_dewExec$1) return exports$2;\n _dewExec$1 = true;\n\n /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\n exports$2.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\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\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\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n\n exports$2.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\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\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {}\n\n e = e << mLen | m;\n eLen += mLen;\n\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 return exports$2;\n}\n\nvar exports$1 = {},\n _dewExec = false;\nfunction dew() {\n if (_dewExec) return exports$1;\n _dewExec = true;\n\n const base64 = dew$2();\n\n const ieee754 = dew$1();\n\n const customInspectSymbol = typeof Symbol === \"function\" && typeof Symbol[\"for\"] === \"function\" ? Symbol[\"for\"](\"nodejs.util.inspect.custom\") // eslint-disable-line dot-notation\n : null;\n exports$1.Buffer = Buffer;\n exports$1.SlowBuffer = SlowBuffer;\n exports$1.INSPECT_MAX_BYTES = 50;\n const K_MAX_LENGTH = 2147483647;\n exports$1.kMaxLength = K_MAX_LENGTH;\n /**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\n\n Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n if (!Buffer.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\n function typedArraySupport() {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1);\n const proto = {\n foo: function () {\n return 42;\n }\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\n Object.defineProperty(Buffer.prototype, \"parent\", {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer.prototype, \"offset\", {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined;\n return this.byteOffset;\n }\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 } // Return an augmented `Uint8Array` instance\n\n\n const buf = new Uint8Array(length);\n Object.setPrototypeOf(buf, Buffer.prototype);\n return buf;\n }\n /**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n\n function Buffer(arg, encodingOrOffset, length) {\n // Common case.\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\n return allocUnsafe(arg);\n }\n\n return from(arg, encodingOrOffset, length);\n }\n\n Buffer.poolSize = 8192; // not used by this implementation\n\n function from(value, encodingOrOffset, length) {\n if (typeof value === \"string\") {\n return fromString(value, encodingOrOffset);\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\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\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n\n if (typeof SharedArrayBuffer !== \"undefined\" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n\n if (typeof value === \"number\") {\n throw new TypeError(\"The \\\"value\\\" argument must not be of type number. Received type number\");\n }\n\n const valueOf = value.valueOf && value.valueOf();\n\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length);\n }\n\n const b = fromObject(value);\n if (b) return b;\n\n if (typeof Symbol !== \"undefined\" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === \"function\") {\n return Buffer.from(value[Symbol.toPrimitive](\"string\"), encodingOrOffset, length);\n }\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 /**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n\n\n Buffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n }; // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n // https://github.com/feross/buffer/pull/148\n\n\n Object.setPrototypeOf(Buffer.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer, Uint8Array);\n\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\n function alloc(size, fill, encoding) {\n assertSize(size);\n\n if (size <= 0) {\n return createBuffer(size);\n }\n\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === \"string\" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n\n return createBuffer(size);\n }\n /**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\n Buffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n /**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\n Buffer.allocUnsafe = function (size) {\n return allocUnsafe(size);\n };\n /**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n\n\n Buffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size);\n };\n\n function fromString(string, encoding) {\n if (typeof encoding !== \"string\" || encoding === \"\") {\n encoding = \"utf8\";\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError(\"Unknown encoding: \" + encoding);\n }\n\n const length = byteLength(string, encoding) | 0;\n let buf = createBuffer(length);\n const actual = buf.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual);\n }\n\n return buf;\n }\n\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf = createBuffer(length);\n\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255;\n }\n\n return buf;\n }\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\n return fromArrayLike(arrayView);\n }\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\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError(\"\\\"length\\\" is outside of buffer bounds\");\n }\n\n let buf;\n\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array);\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset);\n } else {\n buf = new Uint8Array(array, byteOffset, length);\n } // Return an augmented `Uint8Array` instance\n\n\n Object.setPrototypeOf(buf, Buffer.prototype);\n return buf;\n }\n\n function fromObject(obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf = createBuffer(len);\n\n if (buf.length === 0) {\n return buf;\n }\n\n obj.copy(buf, 0, 0, len);\n return buf;\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== \"number\" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n\n return fromArrayLike(obj);\n }\n\n if (obj.type === \"Buffer\" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n\n function checked(length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError(\"Attempt to allocate Buffer larger than maximum \" + \"size: 0x\" + K_MAX_LENGTH.toString(16) + \" bytes\");\n }\n\n return length | 0;\n }\n\n function SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n\n return Buffer.alloc(+length);\n }\n\n Buffer.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer.prototype; // so Buffer.isBuffer(Buffer.prototype) will be false\n };\n\n Buffer.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\"The \\\"buf1\\\", \\\"buf2\\\" arguments must be one of type Buffer or Uint8Array\");\n }\n\n if (a === b) return 0;\n let x = a.length;\n let y = b.length;\n\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\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n\n Buffer.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\n default:\n return false;\n }\n };\n\n Buffer.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError(\"\\\"list\\\" argument must be an Array of Buffers\");\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n\n let i;\n\n if (length === undefined) {\n length = 0;\n\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n const buffer = Buffer.allocUnsafe(length);\n let pos = 0;\n\n for (i = 0; i < list.length; ++i) {\n let buf = list[i];\n\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n buf.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf, pos);\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError(\"\\\"list\\\" argument must be an Array of Buffers\");\n } else {\n buf.copy(buffer, pos);\n }\n\n pos += buf.length;\n }\n\n return buffer;\n };\n\n function byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\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\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0) return 0; // Use a for loop to avoid recursion\n\n let loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return len;\n\n case \"utf8\":\n case \"utf-8\":\n return utf8ToBytes(string).length;\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return len * 2;\n\n case \"hex\":\n return len >>> 1;\n\n case \"base64\":\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length; // assume utf8\n }\n\n encoding = (\"\" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n\n Buffer.byteLength = byteLength;\n\n function slowToString(encoding, start, end) {\n let loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\n if (start > this.length) {\n return \"\";\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return \"\";\n } // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\n\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return \"\";\n }\n\n if (!encoding) encoding = \"utf8\";\n\n while (true) {\n switch (encoding) {\n case \"hex\":\n return hexSlice(this, start, end);\n\n case \"utf8\":\n case \"utf-8\":\n return utf8Slice(this, start, end);\n\n case \"ascii\":\n return asciiSlice(this, start, end);\n\n case \"latin1\":\n case \"binary\":\n return latin1Slice(this, start, end);\n\n case \"base64\":\n return base64Slice(this, start, end);\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return utf16leSlice(this, start, end);\n\n default:\n if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n encoding = (encoding + \"\").toLowerCase();\n loweredCase = true;\n }\n }\n } // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n // to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n // reliably in a browserify context because there could be multiple different\n // copies of the 'buffer' package in use. This method works even for Buffer\n // instances that were created from another copy of the `buffer` package.\n // See: https://github.com/feross/buffer/issues/154\n\n\n Buffer.prototype._isBuffer = true;\n\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n\n Buffer.prototype.swap16 = function swap16() {\n const len = this.length;\n\n if (len % 2 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 16-bits\");\n }\n\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n };\n\n Buffer.prototype.swap32 = function swap32() {\n const len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 32-bits\");\n }\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\n return this;\n };\n\n Buffer.prototype.swap64 = function swap64() {\n const len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 64-bits\");\n }\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\n return this;\n };\n\n Buffer.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0) return \"\";\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n\n Buffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n Buffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError(\"Argument must be a Buffer\");\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n };\n\n Buffer.prototype.inspect = function inspect() {\n let str = \"\";\n const max = exports$1.INSPECT_MAX_BYTES;\n str = this.toString(\"hex\", 0, max).replace(/(.{2})/g, \"$1 \").trim();\n if (this.length > max) str += \" ... \";\n return \"<Buffer \" + str + \">\";\n };\n\n if (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n }\n\n Buffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength);\n }\n\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\"The \\\"target\\\" argument must be one of type Buffer or Uint8Array. \" + \"Received type \" + typeof target);\n }\n\n if (start === undefined) {\n start = 0;\n }\n\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\n\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError(\"out of range index\");\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) 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\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\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n }; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n // OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n //\n // Arguments:\n // - buffer - a Buffer to search\n // - val - a string, Buffer, or number\n // - byteOffset - an index into `buffer`; will be clamped to an int32\n // - encoding - an optional encoding, relevant is val is a string\n // - dir - true for indexOf, false for lastIndexOf\n\n\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\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\n byteOffset = +byteOffset; // Coerce to Number.\n\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === \"string\") {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === \"number\") {\n val = val & 255; // Search for a byte value [0-255]\n\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\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n\n throw new TypeError(\"val must be string, number or Buffer\");\n }\n\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n\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\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n\n let i;\n\n if (dir) {\n let foundIndex = -1;\n\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n\n if (found) return i;\n }\n }\n\n return -1;\n }\n\n Buffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n\n Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n\n Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n\n function hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf.length - offset;\n\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n }\n\n const strLen = string.length;\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n\n let i;\n\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n\n return i;\n }\n\n function utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n }\n\n function asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n }\n\n function base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n }\n\n function ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n }\n\n Buffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = \"utf8\";\n length = this.length;\n offset = 0; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === \"string\") {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === undefined) encoding = \"utf8\";\n } else {\n encoding = length;\n length = undefined;\n }\n } else {\n throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");\n }\n\n const remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError(\"Attempt to write outside buffer bounds\");\n }\n\n if (!encoding) encoding = \"utf8\";\n let loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case \"hex\":\n return hexWrite(this, string, offset, length);\n\n case \"utf8\":\n case \"utf-8\":\n return utf8Write(this, string, offset, length);\n\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return asciiWrite(this, string, offset, length);\n\n case \"base64\":\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return ucs2Write(this, string, offset, length);\n\n default:\n if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n encoding = (\"\" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n\n Buffer.prototype.toJSON = function toJSON() {\n return {\n type: \"Buffer\",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n\n function base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n }\n\n function utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n const res = [];\n let i = start;\n\n while (i < end) {\n const firstByte = buf[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\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\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res);\n } // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n // the lowest limit is Chrome, with 0x10000 args.\n // We go 1 magnitude less, for safety\n\n\n const MAX_ARGUMENTS_LENGTH = 4096;\n\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n let res = \"\";\n let i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n\n return res;\n }\n\n function asciiSlice(buf, start, end) {\n let ret = \"\";\n end = Math.min(buf.length, end);\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 127);\n }\n\n return ret;\n }\n\n function latin1Slice(buf, start, end) {\n let ret = \"\";\n end = Math.min(buf.length, end);\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n\n return ret;\n }\n\n function hexSlice(buf, start, end) {\n const len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n let out = \"\";\n\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]];\n }\n\n return out;\n }\n\n function utf16leSlice(buf, start, end) {\n const bytes = buf.slice(start, end);\n let res = \"\"; // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n\n return res;\n }\n\n Buffer.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n const newBuf = this.subarray(start, end); // Return an augmented `Uint8Array` instance\n\n Object.setPrototypeOf(newBuf, Buffer.prototype);\n return newBuf;\n };\n /*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\n\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError(\"offset is not uint\");\n if (offset + ext > length) throw new RangeError(\"Trying to access beyond buffer length\");\n }\n\n Buffer.prototype.readUintLE = Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n\n while (++i < byteLength && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n\n return val;\n };\n\n Buffer.prototype.readUintBE = Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n let val = this[offset + --byteLength];\n let mul = 1;\n\n while (byteLength > 0 && (mul *= 256)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val;\n };\n\n Buffer.prototype.readUint8 = Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n };\n\n Buffer.prototype.readUint16LE = Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n\n Buffer.prototype.readUint16BE = Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n\n Buffer.prototype.readUint32LE = Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n\n Buffer.prototype.readUint32BE = Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n\n Buffer.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\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\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 Buffer.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\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\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\n Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n\n while (++i < byteLength && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 128;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n\n Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n let i = byteLength;\n let mul = 1;\n let val = this[offset + --i];\n\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 128;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n\n Buffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128)) return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n\n Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n\n Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n\n Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n\n Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n\n Buffer.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\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24); // Overflow\n\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer.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\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8);\n }\n\n const val = (first << 24) + // Overflow\n 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\n Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n };\n\n Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n };\n\n Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n };\n\n Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n };\n\n function checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError(\"\\\"buffer\\\" argument must be a Buffer instance\");\n if (value > max || value < min) throw new RangeError(\"\\\"value\\\" argument is out of bounds\");\n if (offset + ext > buf.length) throw new RangeError(\"Index out of range\");\n }\n\n Buffer.prototype.writeUintLE = Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n\n while (++i < byteLength && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeUintBE = Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n let i = byteLength - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeUint8 = Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n\n Buffer.prototype.writeUint16LE = Buffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n\n Buffer.prototype.writeUint16BE = Buffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n\n Buffer.prototype.writeUint32LE = Buffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) 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\n Buffer.prototype.writeUint32BE = Buffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) 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\n function wrtBigUInt64LE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n return offset;\n }\n\n function wrtBigUInt64BE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf[offset + 7] = lo;\n lo = lo >> 8;\n buf[offset + 6] = lo;\n lo = lo >> 8;\n buf[offset + 5] = lo;\n lo = lo >> 8;\n buf[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf[offset + 3] = hi;\n hi = hi >> 8;\n buf[offset + 2] = hi;\n hi = hi >> 8;\n buf[offset + 1] = hi;\n hi = hi >> 8;\n buf[offset] = hi;\n return offset + 8;\n }\n\n Buffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n });\n Buffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n });\n\n Buffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n\n while (++i < byteLength && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n let i = byteLength - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 127, -128);\n if (value < 0) value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n\n Buffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n\n Buffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n\n Buffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) 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\n Buffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0) 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\n Buffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n Buffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n\n function checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError(\"Index out of range\");\n if (offset < 0) throw new RangeError(\"Index out of range\");\n }\n\n function writeFloat(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n\n Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n\n Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n\n function writeDouble(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n\n Buffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n\n Buffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n }; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\n Buffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError(\"argument should be a Buffer\");\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError(\"targetStart out of bounds\");\n }\n\n if (start < 0 || start >= this.length) throw new RangeError(\"Index out of range\");\n if (end < 0) throw new RangeError(\"sourceEnd out of bounds\"); // Are we oob?\n\n if (end > this.length) end = this.length;\n\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n const len = end - start;\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === \"function\") {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n\n return len;\n }; // Usage:\n // buffer.fill(number[, offset[, end]])\n // buffer.fill(buffer[, offset[, end]])\n // buffer.fill(string[, offset[, end]][, encoding])\n\n\n Buffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === \"string\") {\n if (typeof start === \"string\") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === \"string\") {\n encoding = end;\n end = this.length;\n }\n\n if (encoding !== undefined && typeof encoding !== \"string\") {\n throw new TypeError(\"encoding must be a string\");\n }\n\n if (typeof encoding === \"string\" && !Buffer.isEncoding(encoding)) {\n throw new TypeError(\"Unknown encoding: \" + encoding);\n }\n\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n\n if (encoding === \"utf8\" && code < 128 || encoding === \"latin1\") {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code;\n }\n }\n } else if (typeof val === \"number\") {\n val = val & 255;\n } else if (typeof val === \"boolean\") {\n val = Number(val);\n } // Invalid ranges are not set to a default, so can range check early.\n\n\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError(\"Out of range index\");\n }\n\n if (end <= start) {\n return this;\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n let i;\n\n if (typeof val === \"number\") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer.isBuffer(val) ? val : Buffer.from(val, encoding);\n const len = bytes.length;\n\n if (len === 0) {\n throw new TypeError(\"The value \\\"\" + val + \"\\\" is invalid for argument \\\"value\\\"\");\n }\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n }; // CUSTOM ERRORS\n // =============\n // Simplified versions from Node, changed for Buffer-only usage\n\n\n const errors = {};\n\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 }); // Add the error code to the name to include it in the stack trace.\n\n this.name = `${this.name} [${sym}]`; // Access the stack to generate the error message including the error code\n // from the name.\n\n this.stack; // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n\n delete this.name;\n }\n\n get code() {\n return sym;\n }\n\n set code(value) {\n Object.defineProperty(this, \"code\", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n\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\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\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\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n\n received += \"n\";\n }\n\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n }, RangeError);\n\n function addNumericalSeparator(val) {\n let res = \"\";\n let i = val.length;\n const start = val[0] === \"-\" ? 1 : 0;\n\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n\n return `${val.slice(0, i)}${res}`;\n } // CHECK FUNCTIONS\n // ===============\n\n\n function checkBounds(buf, offset, byteLength) {\n validateNumber(offset, \"offset\");\n\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1));\n }\n }\n\n function checkIntBI(value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === \"bigint\" ? \"n\" : \"\";\n let range;\n\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` + `${(byteLength + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n\n throw new errors.ERR_OUT_OF_RANGE(\"value\", range, value);\n }\n\n checkBounds(buf, offset, byteLength);\n }\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\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\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || \"offset\", `>= ${type ? 1 : 0} and <= ${length}`, value);\n } // HELPER FUNCTIONS\n // ================\n\n\n const INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n function base64clean(str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split(\"=\")[0]; // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\n str = str.trim().replace(INVALID_BASE64_RE, \"\"); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return \"\"; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + \"=\";\n }\n\n return str;\n }\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\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i); // is surrogate component\n\n if (codePoint > 55295 && codePoint < 57344) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 56319) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n continue;\n } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 56320) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n }\n\n leadSurrogate = null; // encode utf8\n\n if (codePoint < 128) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0) 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\n return bytes;\n }\n\n function asciiToBytes(str) {\n const byteArray = [];\n\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 255);\n }\n\n return byteArray;\n }\n\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray;\n }\n\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n\n function blitBuffer(src, dst, offset, length) {\n let i;\n\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n\n return i;\n } // ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n // the `instanceof` check but they should be treated as of that type.\n // See: https://github.com/feross/buffer/issues/166\n\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\n function numberIsNaN(obj) {\n // For IE11 support\n return obj !== obj; // eslint-disable-line no-self-compare\n } // Create lookup table for `toString('hex')`\n // See: https://github.com/feross/buffer/issues/219\n\n\n const hexSliceLookupTable = function () {\n const alphabet = \"0123456789abcdef\";\n const table = new Array(256);\n\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n\n return table;\n }(); // Return not function with Error if BigInt not supported\n\n\n function defineBigIntMethod(fn) {\n return typeof BigInt === \"undefined\" ? BufferBigIntNotDefined : fn;\n }\n\n function BufferBigIntNotDefined() {\n throw new Error(\"BigInt not supported\");\n }\n\n return exports$1;\n}\n\nconst exports = dew();\nexports['Buffer']; exports['SlowBuffer']; exports['INSPECT_MAX_BYTES']; exports['kMaxLength'];\n\nvar Buffer = exports.Buffer;\r\nvar INSPECT_MAX_BYTES = exports.INSPECT_MAX_BYTES;\r\nvar kMaxLength = exports.kMaxLength;\n\nexport { Buffer, INSPECT_MAX_BYTES, exports as default, kMaxLength };\n","import * as BufferDecoder from './buffer-decoder.js'\n\n/**\n * @typedef {import('multiformats').CID} CID\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').CarBufferReader} ICarBufferReader\n * @typedef {import('./coding').CarHeader} CarHeader\n * @typedef {import('./coding').CarV2Header} CarV2Header\n */\n\n/**\n * Provides blockstore-like access to a CAR.\n *\n * Implements the `RootsBufferReader` interface:\n * {@link ICarBufferReader.getRoots `getRoots()`}. And the `BlockBufferReader` interface:\n * {@link ICarBufferReader.get `get()`}, {@link ICarBufferReader.has `has()`},\n * {@link ICarBufferReader.blocks `blocks()`} and\n * {@link ICarBufferReader.cids `cids()`}.\n *\n * Load this class with either `import { CarBufferReader } from '@ipld/car/buffer-reader'`\n * (`const { CarBufferReader } = require('@ipld/car/buffer-reader')`). Or\n * `import { CarBufferReader } from '@ipld/car'` (`const { CarBufferReader } = require('@ipld/car')`).\n * The former will likely result in smaller bundle sizes where this is\n * important.\n *\n * @name CarBufferReader\n * @class\n * @implements {ICarBufferReader}\n * @property {number} version The version number of the CAR referenced by this\n * reader (should be `1` or `2`).\n */\nexport class CarBufferReader {\n /**\n * @constructs CarBufferReader\n * @param {CarHeader|CarV2Header} header\n * @param {Block[]} blocks\n */\n constructor (header, blocks) {\n this._header = header\n this._blocks = blocks\n this._cids = undefined\n }\n\n /**\n * @property version\n * @memberof CarBufferReader\n * @instance\n */\n get version () {\n return this._header.version\n }\n\n /**\n * Get the list of roots defined by the CAR referenced by this reader. May be\n * zero or more `CID`s.\n *\n * @function\n * @memberof CarBufferReader\n * @instance\n * @returns {CID[]}\n */\n getRoots () {\n return this._header.roots\n }\n\n /**\n * Check whether a given `CID` exists within the CAR referenced by this\n * reader.\n *\n * @function\n * @memberof CarBufferReader\n * @instance\n * @param {CID} key\n * @returns {boolean}\n */\n has (key) {\n return this._blocks.some(b => b.cid.equals(key))\n }\n\n /**\n * Fetch a `Block` (a `{ cid:CID, bytes:Uint8Array }` pair) from the CAR\n * referenced by this reader matching the provided `CID`. In the case where\n * the provided `CID` doesn't exist within the CAR, `undefined` will be\n * returned.\n *\n * @function\n * @memberof CarBufferReader\n * @instance\n * @param {CID} key\n * @returns {Block | undefined}\n */\n get (key) {\n return this._blocks.find(b => b.cid.equals(key))\n }\n\n /**\n * Returns a `Block[]` of the `Block`s (`{ cid:CID, bytes:Uint8Array }` pairs) contained within\n * the CAR referenced by this reader.\n *\n * @function\n * @memberof CarBufferReader\n * @instance\n * @returns {Block[]}\n */\n blocks () {\n return this._blocks\n }\n\n /**\n * Returns a `CID[]` of the `CID`s contained within the CAR referenced by this reader.\n *\n * @function\n * @memberof CarBufferReader\n * @instance\n * @returns {CID[]}\n */\n cids () {\n if (!this._cids) {\n this._cids = this._blocks.map(b => b.cid)\n }\n return this._cids\n }\n\n /**\n * Instantiate a {@link CarBufferReader} from a `Uint8Array` blob. This performs a\n * decode fully in memory and maintains the decoded state in memory for full\n * access to the data via the `CarReader` API.\n *\n * @static\n * @memberof CarBufferReader\n * @param {Uint8Array} bytes\n * @returns {CarBufferReader}\n */\n static fromBytes (bytes) {\n if (!(bytes instanceof Uint8Array)) {\n throw new TypeError('fromBytes() requires a Uint8Array')\n }\n\n const { header, blocks } = BufferDecoder.fromBytes(bytes)\n return new CarBufferReader(header, blocks)\n }\n}\n\nexport const __browser = true\n","import { decode as decodeDagCbor } from '@ipld/dag-cbor'\nimport { CID } from 'multiformats/cid'\nimport * as Digest from 'multiformats/hashes/digest'\nimport { CIDV0_BYTES, decodeV2Header, decodeVarint, getMultihashLength, V2_HEADER_LENGTH } from './decoder-common.js'\nimport { CarV1HeaderOrV2Pragma } from './header-validator.js'\n\n/**\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').BlockHeader} BlockHeader\n * @typedef {import('./api').BlockIndex} BlockIndex\n * @typedef {import('./coding').BytesBufferReader} BytesBufferReader\n * @typedef {import('./coding').CarHeader} CarHeader\n * @typedef {import('./coding').CarV2Header} CarV2Header\n * @typedef {import('./coding').CarV2FixedHeader} CarV2FixedHeader\n */\n\n/**\n * Reads header data from a `BytesReader`. The header may either be in the form\n * of a `CarHeader` or `CarV2Header` depending on the CAR being read.\n *\n * @name decoder.readHeader(reader)\n * @param {BytesBufferReader} reader\n * @param {number} [strictVersion]\n * @returns {CarHeader | CarV2Header}\n */\nexport function readHeader (reader, strictVersion) {\n const length = decodeVarint(reader.upTo(8), reader)\n if (length === 0) {\n throw new Error('Invalid CAR header (zero length)')\n }\n const header = reader.exactly(length, true)\n const block = decodeDagCbor(header)\n if (CarV1HeaderOrV2Pragma.toTyped(block) === undefined) {\n throw new Error('Invalid CAR header format')\n }\n if ((block.version !== 1 && block.version !== 2) || (strictVersion !== undefined && block.version !== strictVersion)) {\n throw new Error(`Invalid CAR version: ${block.version}${strictVersion !== undefined ? ` (expected ${strictVersion})` : ''}`)\n }\n if (block.version === 1) {\n // CarV1HeaderOrV2Pragma makes roots optional, let's make it mandatory\n if (!Array.isArray(block.roots)) {\n throw new Error('Invalid CAR header format')\n }\n return block\n }\n // version 2\n if (block.roots !== undefined) {\n throw new Error('Invalid CAR header format')\n }\n const v2Header = decodeV2Header(reader.exactly(V2_HEADER_LENGTH, true))\n reader.seek(v2Header.dataOffset - reader.pos)\n const v1Header = readHeader(reader, 1)\n return Object.assign(v1Header, v2Header)\n}\n\n/**\n * Reads CID sync\n *\n * @param {BytesBufferReader} reader\n * @returns {CID}\n */\nfunction readCid (reader) {\n const first = reader.exactly(2, false)\n if (first[0] === CIDV0_BYTES.SHA2_256 && first[1] === CIDV0_BYTES.LENGTH) {\n // cidv0 32-byte sha2-256\n const bytes = reader.exactly(34, true)\n const multihash = Digest.decode(bytes)\n return CID.create(0, CIDV0_BYTES.DAG_PB, multihash)\n }\n\n const version = decodeVarint(reader.upTo(8), reader)\n if (version !== 1) {\n throw new Error(`Unexpected CID version (${version})`)\n }\n const codec = decodeVarint(reader.upTo(8), reader)\n const bytes = reader.exactly(getMultihashLength(reader.upTo(8)), true)\n const multihash = Digest.decode(bytes)\n return CID.create(version, codec, multihash)\n}\n\n/**\n * Reads the leading data of an individual block from CAR data from a\n * `BytesBufferReader`. Returns a `BlockHeader` object which contains\n * `{ cid, length, blockLength }` which can be used to either index the block\n * or read the block binary data.\n *\n * @name async decoder.readBlockHead(reader)\n * @param {BytesBufferReader} reader\n * @returns {BlockHeader}\n */\nexport function readBlockHead (reader) {\n // length includes a CID + Binary, where CID has a variable length\n // we have to deal with\n const start = reader.pos\n let length = decodeVarint(reader.upTo(8), reader)\n if (length === 0) {\n throw new Error('Invalid CAR section (zero length)')\n }\n length += (reader.pos - start)\n const cid = readCid(reader)\n const blockLength = length - Number(reader.pos - start) // subtract CID length\n\n return { cid, length, blockLength }\n}\n\n/**\n * Returns Car header and blocks from a Uint8Array\n *\n * @param {Uint8Array} bytes\n * @returns {{ header : CarHeader | CarV2Header , blocks: Block[]}}\n */\nexport function fromBytes (bytes) {\n let reader = bytesReader(bytes)\n const header = readHeader(reader)\n if (header.version === 2) {\n const v1length = reader.pos - header.dataOffset\n reader = limitReader(reader, header.dataSize - v1length)\n }\n\n const blocks = []\n while (reader.upTo(8).length > 0) {\n const { cid, blockLength } = readBlockHead(reader)\n\n blocks.push({ cid, bytes: reader.exactly(blockLength, true) })\n }\n\n return {\n header, blocks\n }\n}\n\n/**\n * Creates a `BytesBufferReader` from a `Uint8Array`.\n *\n * @name decoder.bytesReader(bytes)\n * @param {Uint8Array} bytes\n * @returns {BytesBufferReader}\n */\nexport function bytesReader (bytes) {\n let pos = 0\n\n /** @type {BytesBufferReader} */\n return {\n upTo (length) {\n return bytes.subarray(pos, pos + Math.min(length, bytes.length - pos))\n },\n\n exactly (length, seek = false) {\n if (length > bytes.length - pos) {\n throw new Error('Unexpected end of data')\n }\n\n const out = bytes.subarray(pos, pos + length)\n if (seek) {\n pos += length\n }\n return out\n },\n\n seek (length) {\n pos += length\n },\n\n get pos () {\n return pos\n }\n }\n}\n\n/**\n * Wraps a `BytesBufferReader` in a limiting `BytesBufferReader` which limits maximum read\n * to `byteLimit` bytes. It _does not_ update `pos` of the original\n * `BytesBufferReader`.\n *\n * @name decoder.limitReader(reader, byteLimit)\n * @param {BytesBufferReader} reader\n * @param {number} byteLimit\n * @returns {BytesBufferReader}\n */\nexport function limitReader (reader, byteLimit) {\n let bytesRead = 0\n\n /** @type {BytesBufferReader} */\n return {\n upTo (length) {\n let bytes = reader.upTo(length)\n if (bytes.length + bytesRead > byteLimit) {\n bytes = bytes.subarray(0, byteLimit - bytesRead)\n }\n return bytes\n },\n\n exactly (length, seek = false) {\n const bytes = reader.exactly(length, seek)\n if (bytes.length + bytesRead > byteLimit) {\n throw new Error('Unexpected end of data')\n }\n if (seek) {\n bytesRead += length\n }\n return bytes\n },\n\n seek (length) {\n bytesRead += length\n reader.seek(length)\n },\n\n get pos () {\n return reader.pos\n }\n }\n}\n","import * as cborg from 'cborg'\nimport { CID } from 'multiformats/cid'\n\n// https://github.com/ipfs/go-ipfs/issues/3570#issuecomment-273931692\nconst CID_CBOR_TAG = 42\n\n/**\n * @template T\n * @typedef {import('multiformats/codecs/interface').ByteView<T>} ByteView\n */\n\n/**\n * cidEncoder will receive all Objects during encode, it needs to filter out\n * anything that's not a CID and return `null` for that so it's encoded as\n * normal.\n *\n * @param {any} obj\n * @returns {cborg.Token[]|null}\n */\nfunction cidEncoder (obj) {\n if (obj.asCID !== obj && obj['/'] !== obj.bytes) {\n return null // any other kind of object\n }\n const cid = CID.asCID(obj)\n /* c8 ignore next 4 */\n // very unlikely case, and it'll probably throw a recursion error in cborg\n if (!cid) {\n return null\n }\n const bytes = new Uint8Array(cid.bytes.byteLength + 1)\n bytes.set(cid.bytes, 1) // prefix is 0x00, for historical reasons\n return [\n new cborg.Token(cborg.Type.tag, CID_CBOR_TAG),\n new cborg.Token(cborg.Type.bytes, bytes)\n ]\n}\n\n// eslint-disable-next-line jsdoc/require-returns-check\n/**\n * Intercept all `undefined` values from an object walk and reject the entire\n * object if we find one.\n *\n * @returns {null}\n */\nfunction undefinedEncoder () {\n throw new Error('`undefined` is not supported by the IPLD Data Model and cannot be encoded')\n}\n\n/**\n * Intercept all `number` values from an object walk and reject the entire\n * object if we find something that doesn't fit the IPLD data model (NaN &\n * Infinity).\n *\n * @param {number} num\n * @returns {null}\n */\nfunction numberEncoder (num) {\n if (Number.isNaN(num)) {\n throw new Error('`NaN` is not supported by the IPLD Data Model and cannot be encoded')\n }\n if (num === Infinity || num === -Infinity) {\n throw new Error('`Infinity` and `-Infinity` is not supported by the IPLD Data Model and cannot be encoded')\n }\n return null\n}\n\nconst encodeOptions = {\n float64: true,\n typeEncoders: {\n Object: cidEncoder,\n undefined: undefinedEncoder,\n number: numberEncoder\n }\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {CID}\n */\nfunction cidDecoder (bytes) {\n if (bytes[0] !== 0) {\n throw new Error('Invalid CID for CBOR tag 42; expected leading 0x00')\n }\n return CID.decode(bytes.subarray(1)) // ignore leading 0x00\n}\n\nconst decodeOptions = {\n allowIndefinite: false,\n coerceUndefinedToNull: true,\n allowNaN: false,\n allowInfinity: false,\n allowBigInt: true, // this will lead to BigInt for ints outside of\n // safe-integer range, which may surprise users\n strict: true,\n useMaps: false,\n rejectDuplicateMapKeys: true,\n /** @type {import('cborg').TagDecoder[]} */\n tags: []\n}\ndecodeOptions.tags[CID_CBOR_TAG] = cidDecoder\n\nexport const name = 'dag-cbor'\nexport const code = 0x71\n\n/**\n * @template T\n * @param {T} node\n * @returns {ByteView<T>}\n */\nexport const encode = (node) => cborg.encode(node, encodeOptions)\n\n/**\n * @template T\n * @param {ByteView<T>} data\n * @returns {T}\n */\nexport const decode = (data) => cborg.decode(data, decodeOptions)\n","import { encode } from './lib/encode.js'\nimport { decode, decodeFirst } from './lib/decode.js'\nimport { Token, Type } from './lib/token.js'\n\n/**\n * Export the types that were present in the original manual cborg.d.ts\n * @typedef {import('./interface').TagDecoder} TagDecoder\n * There was originally just `TypeEncoder` so don't break types by renaming or not exporting\n * @typedef {import('./interface').OptionalTypeEncoder} TypeEncoder\n * @typedef {import('./interface').DecodeOptions} DecodeOptions\n * @typedef {import('./interface').EncodeOptions} EncodeOptions\n */\n\nexport {\n decode,\n decodeFirst,\n encode,\n Token,\n Type\n}\n","import { is } from './is.js'\nimport { Token, Type } from './token.js'\nimport { Bl } from './bl.js'\nimport { encodeErrPrefix } from './common.js'\nimport { quickEncodeToken } from './jump.js'\nimport { asU8A } from './byte-utils.js'\n\nimport { encodeUint } from './0uint.js'\nimport { encodeNegint } from './1negint.js'\nimport { encodeBytes } from './2bytes.js'\nimport { encodeString } from './3string.js'\nimport { encodeArray } from './4array.js'\nimport { encodeMap } from './5map.js'\nimport { encodeTag } from './6tag.js'\nimport { encodeFloat } from './7float.js'\n\n/**\n * @typedef {import('../interface').EncodeOptions} EncodeOptions\n * @typedef {import('../interface').OptionalTypeEncoder} OptionalTypeEncoder\n * @typedef {import('../interface').Reference} Reference\n * @typedef {import('../interface').StrictTypeEncoder} StrictTypeEncoder\n * @typedef {import('../interface').TokenTypeEncoder} TokenTypeEncoder\n * @typedef {import('../interface').TokenOrNestedTokens} TokenOrNestedTokens\n */\n\n/** @type {EncodeOptions} */\nconst defaultEncodeOptions = {\n float64: false,\n mapSorter,\n quickEncodeToken\n}\n\n/** @returns {TokenTypeEncoder[]} */\nexport function makeCborEncoders () {\n const encoders = []\n encoders[Type.uint.major] = encodeUint\n encoders[Type.negint.major] = encodeNegint\n encoders[Type.bytes.major] = encodeBytes\n encoders[Type.string.major] = encodeString\n encoders[Type.array.major] = encodeArray\n encoders[Type.map.major] = encodeMap\n encoders[Type.tag.major] = encodeTag\n encoders[Type.float.major] = encodeFloat\n return encoders\n}\n\nconst cborEncoders = makeCborEncoders()\n\nconst buf = new Bl()\n\n/** @implements {Reference} */\nclass Ref {\n /**\n * @param {object|any[]} obj\n * @param {Reference|undefined} parent\n */\n constructor (obj, parent) {\n this.obj = obj\n this.parent = parent\n }\n\n /**\n * @param {object|any[]} obj\n * @returns {boolean}\n */\n includes (obj) {\n /** @type {Reference|undefined} */\n let p = this\n do {\n if (p.obj === obj) {\n return true\n }\n } while (p = p.parent) // eslint-disable-line\n return false\n }\n\n /**\n * @param {Reference|undefined} stack\n * @param {object|any[]} obj\n * @returns {Reference}\n */\n static createCheck (stack, obj) {\n if (stack && stack.includes(obj)) {\n throw new Error(`${encodeErrPrefix} object contains circular references`)\n }\n return new Ref(obj, stack)\n }\n}\n\nconst simpleTokens = {\n null: new Token(Type.null, null),\n undefined: new Token(Type.undefined, undefined),\n true: new Token(Type.true, true),\n false: new Token(Type.false, false),\n emptyArray: new Token(Type.array, 0),\n emptyMap: new Token(Type.map, 0)\n}\n\n/** @type {{[typeName: string]: StrictTypeEncoder}} */\nconst typeEncoders = {\n /**\n * @param {any} obj\n * @param {string} _typ\n * @param {EncodeOptions} _options\n * @param {Reference} [_refStack]\n * @returns {TokenOrNestedTokens}\n */\n number (obj, _typ, _options, _refStack) {\n if (!Number.isInteger(obj) || !Number.isSafeInteger(obj)) {\n return new Token(Type.float, obj)\n } else if (obj >= 0) {\n return new Token(Type.uint, obj)\n } else {\n return new Token(Type.negint, obj)\n }\n },\n\n /**\n * @param {any} obj\n * @param {string} _typ\n * @param {EncodeOptions} _options\n * @param {Reference} [_refStack]\n * @returns {TokenOrNestedTokens}\n */\n bigint (obj, _typ, _options, _refStack) {\n if (obj >= BigInt(0)) {\n return new Token(Type.uint, obj)\n } else {\n return new Token(Type.negint, obj)\n }\n },\n\n /**\n * @param {any} obj\n * @param {string} _typ\n * @param {EncodeOptions} _options\n * @param {Reference} [_refStack]\n * @returns {TokenOrNestedTokens}\n */\n Uint8Array (obj, _typ, _options, _refStack) {\n return new Token(Type.bytes, obj)\n },\n\n /**\n * @param {any} obj\n * @param {string} _typ\n * @param {EncodeOptions} _options\n * @param {Reference} [_refStack]\n * @returns {TokenOrNestedTokens}\n */\n string (obj, _typ, _options, _refStack) {\n return new Token(Type.string, obj)\n },\n\n /**\n * @param {any} obj\n * @param {string} _typ\n * @param {EncodeOptions} _options\n * @param {Reference} [_refStack]\n * @returns {TokenOrNestedTokens}\n */\n boolean (obj, _typ, _options, _refStack) {\n return obj ? simpleTokens.true : simpleTokens.false\n },\n\n /**\n * @param {any} _obj\n * @param {string} _typ\n * @param {EncodeOptions} _options\n * @param {Reference} [_refStack]\n * @returns {TokenOrNestedTokens}\n */\n null (_obj, _typ, _options, _refStack) {\n return simpleTokens.null\n },\n\n /**\n * @param {any} _obj\n * @param {string} _typ\n * @param {EncodeOptions} _options\n * @param {Reference} [_refStack]\n * @returns {TokenOrNestedTokens}\n */\n undefined (_obj, _typ, _options, _refStack) {\n return simpleTokens.undefined\n },\n\n /**\n * @param {any} obj\n * @param {string} _typ\n * @param {EncodeOptions} _options\n * @param {Reference} [_refStack]\n * @returns {TokenOrNestedTokens}\n */\n ArrayBuffer (obj, _typ, _options, _refStack) {\n return new Token(Type.bytes, new Uint8Array(obj))\n },\n\n /**\n * @param {any} obj\n * @param {string} _typ\n * @param {EncodeOptions} _options\n * @param {Reference} [_refStack]\n * @returns {TokenOrNestedTokens}\n */\n DataView (obj, _typ, _options, _refStack) {\n return new Token(Type.bytes, new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength))\n },\n\n /**\n * @param {any} obj\n * @param {string} _typ\n * @param {EncodeOptions} options\n * @param {Reference} [refStack]\n * @returns {TokenOrNestedTokens}\n */\n Array (obj, _typ, options, refStack) {\n if (!obj.length) {\n if (options.addBreakTokens === true) {\n return [simpleTokens.emptyArray, new Token(Type.break)]\n }\n return simpleTokens.emptyArray\n }\n refStack = Ref.createCheck(refStack, obj)\n const entries = []\n let i = 0\n for (const e of obj) {\n entries[i++] = objectToTokens(e, options, refStack)\n }\n if (options.addBreakTokens) {\n return [new Token(Type.array, obj.length), entries, new Token(Type.break)]\n }\n return [new Token(Type.array, obj.length), entries]\n },\n\n /**\n * @param {any} obj\n * @param {string} typ\n * @param {EncodeOptions} options\n * @param {Reference} [refStack]\n * @returns {TokenOrNestedTokens}\n */\n Object (obj, typ, options, refStack) {\n // could be an Object or a Map\n const isMap = typ !== 'Object'\n // it's slightly quicker to use Object.keys() than Object.entries()\n const keys = isMap ? obj.keys() : Object.keys(obj)\n const length = isMap ? obj.size : keys.length\n if (!length) {\n if (options.addBreakTokens === true) {\n return [simpleTokens.emptyMap, new Token(Type.break)]\n }\n return simpleTokens.emptyMap\n }\n refStack = Ref.createCheck(refStack, obj)\n /** @type {TokenOrNestedTokens[]} */\n const entries = []\n let i = 0\n for (const key of keys) {\n entries[i++] = [\n objectToTokens(key, options, refStack),\n objectToTokens(isMap ? obj.get(key) : obj[key], options, refStack)\n ]\n }\n sortMapEntries(entries, options)\n if (options.addBreakTokens) {\n return [new Token(Type.map, length), entries, new Token(Type.break)]\n }\n return [new Token(Type.map, length), entries]\n }\n}\n\ntypeEncoders.Map = typeEncoders.Object\ntypeEncoders.Buffer = typeEncoders.Uint8Array\nfor (const typ of 'Uint8Clamped Uint16 Uint32 Int8 Int16 Int32 BigUint64 BigInt64 Float32 Float64'.split(' ')) {\n typeEncoders[`${typ}Array`] = typeEncoders.DataView\n}\n\n/**\n * @param {any} obj\n * @param {EncodeOptions} [options]\n * @param {Reference} [refStack]\n * @returns {TokenOrNestedTokens}\n */\nfunction objectToTokens (obj, options = {}, refStack) {\n const typ = is(obj)\n const customTypeEncoder = (options && options.typeEncoders && /** @type {OptionalTypeEncoder} */ options.typeEncoders[typ]) || typeEncoders[typ]\n if (typeof customTypeEncoder === 'function') {\n const tokens = customTypeEncoder(obj, typ, options, refStack)\n if (tokens != null) {\n return tokens\n }\n }\n const typeEncoder = typeEncoders[typ]\n if (!typeEncoder) {\n throw new Error(`${encodeErrPrefix} unsupported type: ${typ}`)\n }\n return typeEncoder(obj, typ, options, refStack)\n}\n\n/*\nCBOR key sorting is a mess.\n\nThe canonicalisation recommendation from https://tools.ietf.org/html/rfc7049#section-3.9\nincludes the wording:\n\n> The keys in every map must be sorted lowest value to highest.\n> Sorting is performed on the bytes of the representation of the key\n> data items without paying attention to the 3/5 bit splitting for\n> major types.\n> ...\n> * If two keys have different lengths, the shorter one sorts\n earlier;\n> * If two keys have the same length, the one with the lower value\n in (byte-wise) lexical order sorts earlier.\n\n1. It is not clear what \"bytes of the representation of the key\" means: is it\n the CBOR representation, or the binary representation of the object itself?\n Consider the int and uint difference here.\n2. It is not clear what \"without paying attention to\" means: do we include it\n and compare on that? Or do we omit the special prefix byte, (mostly) treating\n the key in its plain binary representation form.\n\nThe FIDO 2.0: Client To Authenticator Protocol spec takes the original CBOR\nwording and clarifies it according to their understanding.\nhttps://fidoalliance.org/specs/fido-v2.0-rd-20170927/fido-client-to-authenticator-protocol-v2.0-rd-20170927.html#message-encoding\n\n> The keys in every map must be sorted lowest value to highest. Sorting is\n> performed on the bytes of the representation of the key data items without\n> paying attention to the 3/5 bit splitting for major types. The sorting rules\n> are:\n> * If the major types are different, the one with the lower value in numerical\n> order sorts earlier.\n> * If two keys have different lengths, the shorter one sorts earlier;\n> * If two keys have the same length, the one with the lower value in\n> (byte-wise) lexical order sorts earlier.\n\nSome other implementations, such as borc, do a full encode then do a\nlength-first, byte-wise-second comparison:\nhttps://github.com/dignifiedquire/borc/blob/b6bae8b0bcde7c3976b0f0f0957208095c392a36/src/encoder.js#L358\nhttps://github.com/dignifiedquire/borc/blob/b6bae8b0bcde7c3976b0f0f0957208095c392a36/src/utils.js#L143-L151\n\nThis has the benefit of being able to easily handle arbitrary keys, including\ncomplex types (maps and arrays).\n\nWe'll opt for the FIDO approach, since it affords some efficies since we don't\nneed a full encode of each key to determine order and can defer to the types\nto determine how to most efficiently order their values (i.e. int and uint\nordering can be done on the numbers, no need for byte-wise, for example).\n\nRecommendation: stick to single key types or you'll get into trouble, and prefer\nstring keys because it's much simpler that way.\n*/\n\n/*\n(UPDATE, Dec 2020)\nhttps://tools.ietf.org/html/rfc8949 is the updated CBOR spec and clarifies some\nof the questions above with a new recommendation for sorting order being much\ncloser to what would be expected in other environments (i.e. no length-first\nweirdness).\nThis new sorting order is not yet implemented here but could be added as an\noption. \"Determinism\" (canonicity) is system dependent and it's difficult to\nchange existing systems that are built with existing expectations. So if a new\nordering is introduced here, the old needs to be kept as well with the user\nhaving the option.\n*/\n\n/**\n * @param {TokenOrNestedTokens[]} entries\n * @param {EncodeOptions} options\n */\nfunction sortMapEntries (entries, options) {\n if (options.mapSorter) {\n entries.sort(options.mapSorter)\n }\n}\n\n/**\n * @param {(Token|Token[])[]} e1\n * @param {(Token|Token[])[]} e2\n * @returns {number}\n */\nfunction mapSorter (e1, e2) {\n // the key position ([0]) could have a single token or an array\n // almost always it'll be a single token but complex key might get involved\n /* c8 ignore next 2 */\n const keyToken1 = Array.isArray(e1[0]) ? e1[0][0] : e1[0]\n const keyToken2 = Array.isArray(e2[0]) ? e2[0][0] : e2[0]\n\n // different key types\n if (keyToken1.type !== keyToken2.type) {\n return keyToken1.type.compare(keyToken2.type)\n }\n\n const major = keyToken1.type.major\n // TODO: handle case where cmp === 0 but there are more keyToken e. complex type)\n const tcmp = cborEncoders[major].compareTokens(keyToken1, keyToken2)\n /* c8 ignore next 5 */\n if (tcmp === 0) {\n // duplicate key or complex type where the first token matched,\n // i.e. a map or array and we're only comparing the opening token\n console.warn('WARNING: complex key types used, CBOR key sorting guarantees are gone')\n }\n return tcmp\n}\n\n/**\n * @param {Bl} buf\n * @param {TokenOrNestedTokens} tokens\n * @param {TokenTypeEncoder[]} encoders\n * @param {EncodeOptions} options\n */\nfunction tokensToEncoded (buf, tokens, encoders, options) {\n if (Array.isArray(tokens)) {\n for (const token of tokens) {\n tokensToEncoded(buf, token, encoders, options)\n }\n } else {\n encoders[tokens.type.major](buf, tokens, options)\n }\n}\n\n/**\n * @param {any} data\n * @param {TokenTypeEncoder[]} encoders\n * @param {EncodeOptions} options\n * @returns {Uint8Array}\n */\nfunction encodeCustom (data, encoders, options) {\n const tokens = objectToTokens(data, options)\n if (!Array.isArray(tokens) && options.quickEncodeToken) {\n const quickBytes = options.quickEncodeToken(tokens)\n if (quickBytes) {\n return quickBytes\n }\n const encoder = encoders[tokens.type.major]\n if (encoder.encodedSize) {\n const size = encoder.encodedSize(tokens, options)\n const buf = new Bl(size)\n encoder(buf, tokens, options)\n /* c8 ignore next 4 */\n // this would be a problem with encodedSize() functions\n if (buf.chunks.length !== 1) {\n throw new Error(`Unexpected error: pre-calculated length for ${tokens} was wrong`)\n }\n return asU8A(buf.chunks[0])\n }\n }\n buf.reset()\n tokensToEncoded(buf, tokens, encoders, options)\n return buf.toBytes(true)\n}\n\n/**\n * @param {any} data\n * @param {EncodeOptions} [options]\n * @returns {Uint8Array}\n */\nfunction encode (data, options) {\n options = Object.assign({}, defaultEncodeOptions, options)\n return encodeCustom(data, cborEncoders, options)\n}\n\nexport { objectToTokens, encode, encodeCustom, Ref }\n","// This is an unfortunate replacement for @sindresorhus/is that we need to\n// re-implement for performance purposes. In particular the is.observable()\n// check is expensive, and unnecessary for our purposes. The values returned\n// are compatible with @sindresorhus/is, however.\n\nconst typeofs = [\n 'string',\n 'number',\n 'bigint',\n 'symbol'\n]\n\nconst objectTypeNames = [\n 'Function',\n 'Generator',\n 'AsyncGenerator',\n 'GeneratorFunction',\n 'AsyncGeneratorFunction',\n 'AsyncFunction',\n 'Observable',\n 'Array',\n 'Buffer',\n 'Object',\n 'RegExp',\n 'Date',\n 'Error',\n 'Map',\n 'Set',\n 'WeakMap',\n 'WeakSet',\n 'ArrayBuffer',\n 'SharedArrayBuffer',\n 'DataView',\n 'Promise',\n 'URL',\n 'HTMLElement',\n 'Int8Array',\n 'Uint8Array',\n 'Uint8ClampedArray',\n 'Int16Array',\n 'Uint16Array',\n 'Int32Array',\n 'Uint32Array',\n 'Float32Array',\n 'Float64Array',\n 'BigInt64Array',\n 'BigUint64Array'\n]\n\n/**\n * @param {any} value\n * @returns {string}\n */\nexport function is (value) {\n if (value === null) {\n return 'null'\n }\n if (value === undefined) {\n return 'undefined'\n }\n if (value === true || value === false) {\n return 'boolean'\n }\n const typeOf = typeof value\n if (typeofs.includes(typeOf)) {\n return typeOf\n }\n /* c8 ignore next 4 */\n // not going to bother testing this, it's not going to be valid anyway\n if (typeOf === 'function') {\n return 'Function'\n }\n if (Array.isArray(value)) {\n return 'Array'\n }\n if (isBuffer(value)) {\n return 'Buffer'\n }\n const objectType = getObjectType(value)\n if (objectType) {\n return objectType\n }\n /* c8 ignore next */\n return 'Object'\n}\n\n/**\n * @param {any} value\n * @returns {boolean}\n */\nfunction isBuffer (value) {\n return value && value.constructor && value.constructor.isBuffer && value.constructor.isBuffer.call(null, value)\n}\n\n/**\n * @param {any} value\n * @returns {string|undefined}\n */\nfunction getObjectType (value) {\n const objectTypeName = Object.prototype.toString.call(value).slice(8, -1)\n if (objectTypeNames.includes(objectTypeName)) {\n return objectTypeName\n }\n /* c8 ignore next */\n return undefined\n}\n","class Type {\n /**\n * @param {number} major\n * @param {string} name\n * @param {boolean} terminal\n */\n constructor (major, name, terminal) {\n this.major = major\n this.majorEncoded = major << 5\n this.name = name\n this.terminal = terminal\n }\n\n /* c8 ignore next 3 */\n toString () {\n return `Type[${this.major}].${this.name}`\n }\n\n /**\n * @param {Type} typ\n * @returns {number}\n */\n compare (typ) {\n /* c8 ignore next 1 */\n return this.major < typ.major ? -1 : this.major > typ.major ? 1 : 0\n }\n}\n\n// convert to static fields when better supported\nType.uint = new Type(0, 'uint', true)\nType.negint = new Type(1, 'negint', true)\nType.bytes = new Type(2, 'bytes', true)\nType.string = new Type(3, 'string', true)\nType.array = new Type(4, 'array', false)\nType.map = new Type(5, 'map', false)\nType.tag = new Type(6, 'tag', false) // terminal?\nType.float = new Type(7, 'float', true)\nType.false = new Type(7, 'false', true)\nType.true = new Type(7, 'true', true)\nType.null = new Type(7, 'null', true)\nType.undefined = new Type(7, 'undefined', true)\nType.break = new Type(7, 'break', true)\n// Type.indefiniteLength = new Type(0, 'indefiniteLength', true)\n\nclass Token {\n /**\n * @param {Type} type\n * @param {any} [value]\n * @param {number} [encodedLength]\n */\n constructor (type, value, encodedLength) {\n this.type = type\n this.value = value\n this.encodedLength = encodedLength\n /** @type {Uint8Array|undefined} */\n this.encodedBytes = undefined\n /** @type {Uint8Array|undefined} */\n this.byteValue = undefined\n }\n\n /* c8 ignore next 3 */\n toString () {\n return `Token[${this.type}].${this.value}`\n }\n}\n\nexport { Type, Token }\n","/**\n * Bl is a list of byte chunks, similar to https://github.com/rvagg/bl but for\n * writing rather than reading.\n * A Bl object accepts set() operations for individual bytes and copyTo() for\n * inserting byte arrays. These write operations don't automatically increment\n * the internal cursor so its \"length\" won't be changed. Instead, increment()\n * must be called to extend its length to cover the inserted data.\n * The toBytes() call will convert all internal memory to a single Uint8Array of\n * the correct length, truncating any data that is stored but hasn't been\n * included by an increment().\n * get() can retrieve a single byte.\n * All operations (except toBytes()) take an \"offset\" argument that will perform\n * the write at the offset _from the current cursor_. For most operations this\n * will be `0` to write at the current cursor position but it can be ahead of\n * the current cursor. Negative offsets probably work but are untested.\n */\n\n// TODO: ipjs doesn't support this, only for test files: https://github.com/mikeal/ipjs/blob/master/src/package/testFile.js#L39\nimport { alloc, concat, slice } from './byte-utils.js'\n\n// the ts-ignores in this file are almost all for the `Uint8Array|number[]` duality that exists\n// for perf reasons. Consider better approaches to this or removing it entirely, it is quite\n// risky because of some assumptions about small chunks === number[] and everything else === Uint8Array.\n\nconst defaultChunkSize = 256\n\nexport class Bl {\n /**\n * @param {number} [chunkSize]\n */\n constructor (chunkSize = defaultChunkSize) {\n this.chunkSize = chunkSize\n /** @type {number} */\n this.cursor = 0\n /** @type {number} */\n this.maxCursor = -1\n /** @type {(Uint8Array|number[])[]} */\n this.chunks = []\n // keep the first chunk around if we can to save allocations for future encodes\n /** @type {Uint8Array|number[]|null} */\n this._initReuseChunk = null\n }\n\n reset () {\n this.cursor = 0\n this.maxCursor = -1\n if (this.chunks.length) {\n this.chunks = []\n }\n if (this._initReuseChunk !== null) {\n this.chunks.push(this._initReuseChunk)\n this.maxCursor = this._initReuseChunk.length - 1\n }\n }\n\n /**\n * @param {Uint8Array|number[]} bytes\n */\n push (bytes) {\n let topChunk = this.chunks[this.chunks.length - 1]\n const newMax = this.cursor + bytes.length\n if (newMax <= this.maxCursor + 1) {\n // we have at least one chunk and we can fit these bytes into that chunk\n const chunkPos = topChunk.length - (this.maxCursor - this.cursor) - 1\n // @ts-ignore\n topChunk.set(bytes, chunkPos)\n } else {\n // can't fit it in\n if (topChunk) {\n // trip the last chunk to `cursor` if we need to\n const chunkPos = topChunk.length - (this.maxCursor - this.cursor) - 1\n if (chunkPos < topChunk.length) {\n // @ts-ignore\n this.chunks[this.chunks.length - 1] = topChunk.subarray(0, chunkPos)\n this.maxCursor = this.cursor - 1\n }\n }\n if (bytes.length < 64 && bytes.length < this.chunkSize) {\n // make a new chunk and copy the new one into it\n topChunk = alloc(this.chunkSize)\n this.chunks.push(topChunk)\n this.maxCursor += topChunk.length\n if (this._initReuseChunk === null) {\n this._initReuseChunk = topChunk\n }\n // @ts-ignore\n topChunk.set(bytes, 0)\n } else {\n // push the new bytes in as its own chunk\n this.chunks.push(bytes)\n this.maxCursor += bytes.length\n }\n }\n this.cursor += bytes.length\n }\n\n /**\n * @param {boolean} [reset]\n * @returns {Uint8Array}\n */\n toBytes (reset = false) {\n let byts\n if (this.chunks.length === 1) {\n const chunk = this.chunks[0]\n if (reset && this.cursor > chunk.length / 2) {\n /* c8 ignore next 2 */\n // @ts-ignore\n byts = this.cursor === chunk.length ? chunk : chunk.subarray(0, this.cursor)\n this._initReuseChunk = null\n this.chunks = []\n } else {\n // @ts-ignore\n byts = slice(chunk, 0, this.cursor)\n }\n } else {\n // @ts-ignore\n byts = concat(this.chunks, this.cursor)\n }\n if (reset) {\n this.reset()\n }\n return byts\n }\n}\n","// Use Uint8Array directly in the browser, use Buffer in Node.js but don't\n// speak its name directly to avoid bundlers pulling in the `Buffer` polyfill\n\n// @ts-ignore\nexport const useBuffer = globalThis.process &&\n // @ts-ignore\n !globalThis.process.browser &&\n // @ts-ignore\n globalThis.Buffer &&\n // @ts-ignore\n typeof globalThis.Buffer.isBuffer === 'function'\n\nconst textDecoder = new TextDecoder()\nconst textEncoder = new TextEncoder()\n\n/**\n * @param {Uint8Array} buf\n * @returns {boolean}\n */\nfunction isBuffer (buf) {\n // @ts-ignore\n return useBuffer && globalThis.Buffer.isBuffer(buf)\n}\n\n/**\n * @param {Uint8Array|number[]} buf\n * @returns {Uint8Array}\n */\nexport function asU8A (buf) {\n /* c8 ignore next */\n if (!(buf instanceof Uint8Array)) {\n return Uint8Array.from(buf)\n }\n return isBuffer(buf) ? new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength) : buf\n}\n\nexport const toString = useBuffer\n ? // eslint-disable-line operator-linebreak\n /**\n * @param {Uint8Array} bytes\n * @param {number} start\n * @param {number} end\n */\n (bytes, start, end) => {\n return end - start > 64\n ? // eslint-disable-line operator-linebreak\n // @ts-ignore\n globalThis.Buffer.from(bytes.subarray(start, end)).toString('utf8')\n : utf8Slice(bytes, start, end)\n }\n /* c8 ignore next 11 */\n : // eslint-disable-line operator-linebreak\n /**\n * @param {Uint8Array} bytes\n * @param {number} start\n * @param {number} end\n */\n (bytes, start, end) => {\n return end - start > 64\n ? textDecoder.decode(bytes.subarray(start, end))\n : utf8Slice(bytes, start, end)\n }\n\nexport const fromString = useBuffer\n ? // eslint-disable-line operator-linebreak\n /**\n * @param {string} string\n */\n (string) => {\n return string.length > 64\n ? // eslint-disable-line operator-linebreak\n // @ts-ignore\n globalThis.Buffer.from(string)\n : utf8ToBytes(string)\n }\n /* c8 ignore next 7 */\n : // eslint-disable-line operator-linebreak\n /**\n * @param {string} string\n */\n (string) => {\n return string.length > 64 ? textEncoder.encode(string) : utf8ToBytes(string)\n }\n\n/**\n * Buffer variant not fast enough for what we need\n * @param {number[]} arr\n * @returns {Uint8Array}\n */\nexport const fromArray = (arr) => {\n return Uint8Array.from(arr)\n}\n\nexport const slice = useBuffer\n ? // eslint-disable-line operator-linebreak\n /**\n * @param {Uint8Array} bytes\n * @param {number} start\n * @param {number} end\n */\n (bytes, start, end) => {\n if (isBuffer(bytes)) {\n return new Uint8Array(bytes.subarray(start, end))\n }\n return bytes.slice(start, end)\n }\n /* c8 ignore next 9 */\n : // eslint-disable-line operator-linebreak\n /**\n * @param {Uint8Array} bytes\n * @param {number} start\n * @param {number} end\n */\n (bytes, start, end) => {\n return bytes.slice(start, end)\n }\n\nexport const concat = useBuffer\n ? // eslint-disable-line operator-linebreak\n /**\n * @param {Uint8Array[]} chunks\n * @param {number} length\n * @returns {Uint8Array}\n */\n (chunks, length) => {\n // might get a stray plain Array here\n /* c8 ignore next 1 */\n chunks = chunks.map((c) => c instanceof Uint8Array\n ? c\n // this case is occasionally missed during test runs so becomes coverage-flaky\n /* c8 ignore next 4 */\n : // eslint-disable-line operator-linebreak\n // @ts-ignore\n globalThis.Buffer.from(c))\n // @ts-ignore\n return asU8A(globalThis.Buffer.concat(chunks, length))\n }\n /* c8 ignore next 19 */\n : // eslint-disable-line operator-linebreak\n /**\n * @param {Uint8Array[]} chunks\n * @param {number} length\n * @returns {Uint8Array}\n */\n (chunks, length) => {\n const out = new Uint8Array(length)\n let off = 0\n for (let b of chunks) {\n if (off + b.length > out.length) {\n // final chunk that's bigger than we need\n b = b.subarray(0, out.length - off)\n }\n out.set(b, off)\n off += b.length\n }\n return out\n }\n\nexport const alloc = useBuffer\n ? // eslint-disable-line operator-linebreak\n /**\n * @param {number} size\n * @returns {Uint8Array}\n */\n (size) => {\n // we always write over the contents we expose so this should be safe\n // @ts-ignore\n return globalThis.Buffer.allocUnsafe(size)\n }\n /* c8 ignore next 8 */\n : // eslint-disable-line operator-linebreak\n /**\n * @param {number} size\n * @returns {Uint8Array}\n */\n (size) => {\n return new Uint8Array(size)\n }\n\nexport const toHex = useBuffer\n ? // eslint-disable-line operator-linebreak\n /**\n * @param {Uint8Array} d\n * @returns {string}\n */\n (d) => {\n if (typeof d === 'string') {\n return d\n }\n // @ts-ignore\n return globalThis.Buffer.from(toBytes(d)).toString('hex')\n }\n /* c8 ignore next 12 */\n : // eslint-disable-line operator-linebreak\n /**\n * @param {Uint8Array} d\n * @returns {string}\n */\n (d) => {\n if (typeof d === 'string') {\n return d\n }\n // @ts-ignore not smart enough to figure this out\n return Array.prototype.reduce.call(toBytes(d), (p, c) => `${p}${c.toString(16).padStart(2, '0')}`, '')\n }\n\nexport const fromHex = useBuffer\n ? // eslint-disable-line operator-linebreak\n /**\n * @param {string|Uint8Array} hex\n * @returns {Uint8Array}\n */\n (hex) => {\n if (hex instanceof Uint8Array) {\n return hex\n }\n // @ts-ignore\n return globalThis.Buffer.from(hex, 'hex')\n }\n /* c8 ignore next 17 */\n : // eslint-disable-line operator-linebreak\n /**\n * @param {string|Uint8Array} hex\n * @returns {Uint8Array}\n */\n (hex) => {\n if (hex instanceof Uint8Array) {\n return hex\n }\n if (!hex.length) {\n return new Uint8Array(0)\n }\n return new Uint8Array(hex.split('')\n .map((/** @type {string} */ c, /** @type {number} */ i, /** @type {string[]} */ d) => i % 2 === 0 ? `0x${c}${d[i + 1]}` : '')\n .filter(Boolean)\n .map((/** @type {string} */ e) => parseInt(e, 16)))\n }\n\n/**\n * @param {Uint8Array|ArrayBuffer|ArrayBufferView} obj\n * @returns {Uint8Array}\n */\nfunction toBytes (obj) {\n if (obj instanceof Uint8Array && obj.constructor.name === 'Uint8Array') {\n return obj\n }\n if (obj instanceof ArrayBuffer) {\n return new Uint8Array(obj)\n }\n if (ArrayBuffer.isView(obj)) {\n return new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength)\n }\n /* c8 ignore next */\n throw new Error('Unknown type, must be binary type')\n}\n\n/**\n * @param {Uint8Array} b1\n * @param {Uint8Array} b2\n * @returns {number}\n */\nexport function compare (b1, b2) {\n /* c8 ignore next 5 */\n if (isBuffer(b1) && isBuffer(b2)) {\n // probably not possible to get here in the current API\n // @ts-ignore Buffer\n return b1.compare(b2)\n }\n for (let i = 0; i < b1.length; i++) {\n if (b1[i] === b2[i]) {\n continue\n }\n return b1[i] < b2[i] ? -1 : 1\n } /* c8 ignore next 3 */\n return 0\n}\n\n// The below code is taken from https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n// Licensed Apache-2.0.\n\n/**\n * @param {string} str\n * @returns {number[]}\n */\nfunction utf8ToBytes (str) {\n const out = []\n let p = 0\n for (let i = 0; i < str.length; i++) {\n let c = str.charCodeAt(i)\n if (c < 128) {\n out[p++] = c\n } else if (c < 2048) {\n out[p++] = (c >> 6) | 192\n out[p++] = (c & 63) | 128\n } else if (\n ((c & 0xFC00) === 0xD800) && (i + 1) < str.length &&\n ((str.charCodeAt(i + 1) & 0xFC00) === 0xDC00)) {\n // Surrogate Pair\n c = 0x10000 + ((c & 0x03FF) << 10) + (str.charCodeAt(++i) & 0x03FF)\n out[p++] = (c >> 18) | 240\n out[p++] = ((c >> 12) & 63) | 128\n out[p++] = ((c >> 6) & 63) | 128\n out[p++] = (c & 63) | 128\n } else {\n out[p++] = (c >> 12) | 224\n out[p++] = ((c >> 6) & 63) | 128\n out[p++] = (c & 63) | 128\n }\n }\n return out\n}\n\n// The below code is mostly taken from https://github.com/feross/buffer\n// Licensed MIT. Copyright (c) Feross Aboukhadijeh\n\n/**\n * @param {Uint8Array} buf\n * @param {number} offset\n * @param {number} end\n * @returns {string}\n */\nfunction utf8Slice (buf, offset, end) {\n const res = []\n\n while (offset < end) {\n const firstByte = buf[offset]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xef) ? 4 : (firstByte > 0xdf) ? 3 : (firstByte > 0xbf) ? 2 : 1\n\n if (offset + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[offset + 1]\n if ((secondByte & 0xc0) === 0x80) {\n tempCodePoint = (firstByte & 0x1f) << 0x6 | (secondByte & 0x3f)\n if (tempCodePoint > 0x7f) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[offset + 1]\n thirdByte = buf[offset + 2]\n if ((secondByte & 0xc0) === 0x80 && (thirdByte & 0xc0) === 0x80) {\n tempCodePoint = (firstByte & 0xf) << 0xc | (secondByte & 0x3f) << 0x6 | (thirdByte & 0x3f)\n /* c8 ignore next 3 */\n if (tempCodePoint > 0x7ff && (tempCodePoint < 0xd800 || tempCodePoint > 0xdfff)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[offset + 1]\n thirdByte = buf[offset + 2]\n fourthByte = buf[offset + 3]\n if ((secondByte & 0xc0) === 0x80 && (thirdByte & 0xc0) === 0x80 && (fourthByte & 0xc0) === 0x80) {\n tempCodePoint = (firstByte & 0xf) << 0x12 | (secondByte & 0x3f) << 0xc | (thirdByte & 0x3f) << 0x6 | (fourthByte & 0x3f)\n if (tempCodePoint > 0xffff && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n /* c8 ignore next 5 */\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xfffd\n bytesPerSequence = 1\n } else if (codePoint > 0xffff) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3ff | 0xd800)\n codePoint = 0xdc00 | codePoint & 0x3ff\n }\n\n res.push(codePoint)\n offset += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\n/**\n * @param {number[]} codePoints\n * @returns {string}\n */\nexport function decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n /* c8 ignore next 10 */\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n","const decodeErrPrefix = 'CBOR decode error:'\nconst encodeErrPrefix = 'CBOR encode error:'\n\nconst uintMinorPrefixBytes = []\nuintMinorPrefixBytes[23] = 1\nuintMinorPrefixBytes[24] = 2\nuintMinorPrefixBytes[25] = 3\nuintMinorPrefixBytes[26] = 5\nuintMinorPrefixBytes[27] = 9\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} need\n */\nfunction assertEnoughData (data, pos, need) {\n if (data.length - pos < need) {\n throw new Error(`${decodeErrPrefix} not enough data for type`)\n }\n}\n\nexport {\n decodeErrPrefix,\n encodeErrPrefix,\n uintMinorPrefixBytes,\n assertEnoughData\n}\n","import { Token, Type } from './token.js'\nimport * as uint from './0uint.js'\nimport * as negint from './1negint.js'\nimport * as bytes from './2bytes.js'\nimport * as string from './3string.js'\nimport * as array from './4array.js'\nimport * as map from './5map.js'\nimport * as tag from './6tag.js'\nimport * as float from './7float.js'\nimport { decodeErrPrefix } from './common.js'\nimport { fromArray } from './byte-utils.js'\n\n/**\n * @typedef {import('../interface').DecodeOptions} DecodeOptions\n */\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} minor\n */\nfunction invalidMinor (data, pos, minor) {\n throw new Error(`${decodeErrPrefix} encountered invalid minor (${minor}) for major ${data[pos] >>> 5}`)\n}\n\n/**\n * @param {string} msg\n * @returns {()=>any}\n */\nfunction errorer (msg) {\n return () => { throw new Error(`${decodeErrPrefix} ${msg}`) }\n}\n\n/** @type {((data:Uint8Array, pos:number, minor:number, options?:DecodeOptions) => any)[]} */\nexport const jump = []\n\n// unsigned integer, 0x00..0x17 (0..23)\nfor (let i = 0; i <= 0x17; i++) {\n jump[i] = invalidMinor // uint.decodeUintCompact, handled by quick[]\n}\njump[0x18] = uint.decodeUint8 // unsigned integer, one-byte uint8_t follows\njump[0x19] = uint.decodeUint16 // unsigned integer, two-byte uint16_t follows\njump[0x1a] = uint.decodeUint32 // unsigned integer, four-byte uint32_t follows\njump[0x1b] = uint.decodeUint64 // unsigned integer, eight-byte uint64_t follows\njump[0x1c] = invalidMinor\njump[0x1d] = invalidMinor\njump[0x1e] = invalidMinor\njump[0x1f] = invalidMinor\n// negative integer, -1-0x00..-1-0x17 (-1..-24)\nfor (let i = 0x20; i <= 0x37; i++) {\n jump[i] = invalidMinor // negintDecode, handled by quick[]\n}\njump[0x38] = negint.decodeNegint8 // negative integer, -1-n one-byte uint8_t for n follows\njump[0x39] = negint.decodeNegint16 // negative integer, -1-n two-byte uint16_t for n follows\njump[0x3a] = negint.decodeNegint32 // negative integer, -1-n four-byte uint32_t for follows\njump[0x3b] = negint.decodeNegint64 // negative integer, -1-n eight-byte uint64_t for follows\njump[0x3c] = invalidMinor\njump[0x3d] = invalidMinor\njump[0x3e] = invalidMinor\njump[0x3f] = invalidMinor\n// byte string, 0x00..0x17 bytes follow\nfor (let i = 0x40; i <= 0x57; i++) {\n jump[i] = bytes.decodeBytesCompact\n}\njump[0x58] = bytes.decodeBytes8 // byte string, one-byte uint8_t for n, and then n bytes follow\njump[0x59] = bytes.decodeBytes16 // byte string, two-byte uint16_t for n, and then n bytes follow\njump[0x5a] = bytes.decodeBytes32 // byte string, four-byte uint32_t for n, and then n bytes follow\njump[0x5b] = bytes.decodeBytes64 // byte string, eight-byte uint64_t for n, and then n bytes follow\njump[0x5c] = invalidMinor\njump[0x5d] = invalidMinor\njump[0x5e] = invalidMinor\njump[0x5f] = errorer('indefinite length bytes/strings are not supported') // byte string, byte strings follow, terminated by \"break\"\n// UTF-8 string 0x00..0x17 bytes follow\nfor (let i = 0x60; i <= 0x77; i++) {\n jump[i] = string.decodeStringCompact\n}\njump[0x78] = string.decodeString8 // UTF-8 string, one-byte uint8_t for n, and then n bytes follow\njump[0x79] = string.decodeString16 // UTF-8 string, two-byte uint16_t for n, and then n bytes follow\njump[0x7a] = string.decodeString32 // UTF-8 string, four-byte uint32_t for n, and then n bytes follow\njump[0x7b] = string.decodeString64 // UTF-8 string, eight-byte uint64_t for n, and then n bytes follow\njump[0x7c] = invalidMinor\njump[0x7d] = invalidMinor\njump[0x7e] = invalidMinor\njump[0x7f] = errorer('indefinite length bytes/strings are not supported') // UTF-8 strings follow, terminated by \"break\"\n// array, 0x00..0x17 data items follow\nfor (let i = 0x80; i <= 0x97; i++) {\n jump[i] = array.decodeArrayCompact\n}\njump[0x98] = array.decodeArray8 // array, one-byte uint8_t for n, and then n data items follow\njump[0x99] = array.decodeArray16 // array, two-byte uint16_t for n, and then n data items follow\njump[0x9a] = array.decodeArray32 // array, four-byte uint32_t for n, and then n data items follow\njump[0x9b] = array.decodeArray64 // array, eight-byte uint64_t for n, and then n data items follow\njump[0x9c] = invalidMinor\njump[0x9d] = invalidMinor\njump[0x9e] = invalidMinor\njump[0x9f] = array.decodeArrayIndefinite // array, data items follow, terminated by \"break\"\n// map, 0x00..0x17 pairs of data items follow\nfor (let i = 0xa0; i <= 0xb7; i++) {\n jump[i] = map.decodeMapCompact\n}\njump[0xb8] = map.decodeMap8 // map, one-byte uint8_t for n, and then n pairs of data items follow\njump[0xb9] = map.decodeMap16 // map, two-byte uint16_t for n, and then n pairs of data items follow\njump[0xba] = map.decodeMap32 // map, four-byte uint32_t for n, and then n pairs of data items follow\njump[0xbb] = map.decodeMap64 // map, eight-byte uint64_t for n, and then n pairs of data items follow\njump[0xbc] = invalidMinor\njump[0xbd] = invalidMinor\njump[0xbe] = invalidMinor\njump[0xbf] = map.decodeMapIndefinite // map, pairs of data items follow, terminated by \"break\"\n// tags\nfor (let i = 0xc0; i <= 0xd7; i++) {\n jump[i] = tag.decodeTagCompact\n}\njump[0xd8] = tag.decodeTag8\njump[0xd9] = tag.decodeTag16\njump[0xda] = tag.decodeTag32\njump[0xdb] = tag.decodeTag64\njump[0xdc] = invalidMinor\njump[0xdd] = invalidMinor\njump[0xde] = invalidMinor\njump[0xdf] = invalidMinor\n// 0xe0..0xf3 simple values, unsupported\nfor (let i = 0xe0; i <= 0xf3; i++) {\n jump[i] = errorer('simple values are not supported')\n}\njump[0xf4] = invalidMinor // false, handled by quick[]\njump[0xf5] = invalidMinor // true, handled by quick[]\njump[0xf6] = invalidMinor // null, handled by quick[]\njump[0xf7] = float.decodeUndefined // undefined\njump[0xf8] = errorer('simple values are not supported') // simple value, one byte follows, unsupported\njump[0xf9] = float.decodeFloat16 // half-precision float (two-byte IEEE 754)\njump[0xfa] = float.decodeFloat32 // single-precision float (four-byte IEEE 754)\njump[0xfb] = float.decodeFloat64 // double-precision float (eight-byte IEEE 754)\njump[0xfc] = invalidMinor\njump[0xfd] = invalidMinor\njump[0xfe] = invalidMinor\njump[0xff] = float.decodeBreak // \"break\" stop code\n\n/** @type {Token[]} */\nexport const quick = []\n// ints <24\nfor (let i = 0; i < 24; i++) {\n quick[i] = new Token(Type.uint, i, 1)\n}\n// negints >= -24\nfor (let i = -1; i >= -24; i--) {\n quick[31 - i] = new Token(Type.negint, i, 1)\n}\n// empty bytes\nquick[0x40] = new Token(Type.bytes, new Uint8Array(0), 1)\n// empty string\nquick[0x60] = new Token(Type.string, '', 1)\n// empty list\nquick[0x80] = new Token(Type.array, 0, 1)\n// empty map\nquick[0xa0] = new Token(Type.map, 0, 1)\n// false\nquick[0xf4] = new Token(Type.false, false, 1)\n// true\nquick[0xf5] = new Token(Type.true, true, 1)\n// null\nquick[0xf6] = new Token(Type.null, null, 1)\n\n/**\n * @param {Token} token\n * @returns {Uint8Array|undefined}\n */\nexport function quickEncodeToken (token) {\n switch (token.type) {\n case Type.false:\n return fromArray([0xf4])\n case Type.true:\n return fromArray([0xf5])\n case Type.null:\n return fromArray([0xf6])\n case Type.bytes:\n if (!token.value.length) {\n return fromArray([0x40])\n }\n return\n case Type.string:\n if (token.value === '') {\n return fromArray([0x60])\n }\n return\n case Type.array:\n if (token.value === 0) {\n return fromArray([0x80])\n }\n /* c8 ignore next 2 */\n // shouldn't be possible if this were called when there was only one token\n return\n case Type.map:\n if (token.value === 0) {\n return fromArray([0xa0])\n }\n /* c8 ignore next 2 */\n // shouldn't be possible if this were called when there was only one token\n return\n case Type.uint:\n if (token.value < 24) {\n return fromArray([Number(token.value)])\n }\n return\n case Type.negint:\n if (token.value >= -24) {\n return fromArray([31 - Number(token.value)])\n }\n }\n}\n","/* globals BigInt */\n\nimport { Token, Type } from './token.js'\nimport { decodeErrPrefix, assertEnoughData } from './common.js'\n\nexport const uintBoundaries = [24, 256, 65536, 4294967296, BigInt('18446744073709551616')]\n\n/**\n * @typedef {import('./bl.js').Bl} Bl\n * @typedef {import('../interface').DecodeOptions} DecodeOptions\n */\n\n/**\n * @param {Uint8Array} data\n * @param {number} offset\n * @param {DecodeOptions} options\n * @returns {number}\n */\nexport function readUint8 (data, offset, options) {\n assertEnoughData(data, offset, 1)\n const value = data[offset]\n if (options.strict === true && value < uintBoundaries[0]) {\n throw new Error(`${decodeErrPrefix} integer encoded in more bytes than necessary (strict decode)`)\n }\n return value\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} offset\n * @param {DecodeOptions} options\n * @returns {number}\n */\nexport function readUint16 (data, offset, options) {\n assertEnoughData(data, offset, 2)\n const value = (data[offset] << 8) | data[offset + 1]\n if (options.strict === true && value < uintBoundaries[1]) {\n throw new Error(`${decodeErrPrefix} integer encoded in more bytes than necessary (strict decode)`)\n }\n return value\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} offset\n * @param {DecodeOptions} options\n * @returns {number}\n */\nexport function readUint32 (data, offset, options) {\n assertEnoughData(data, offset, 4)\n const value = (data[offset] * 16777216 /* 2 ** 24 */) + (data[offset + 1] << 16) + (data[offset + 2] << 8) + data[offset + 3]\n if (options.strict === true && value < uintBoundaries[2]) {\n throw new Error(`${decodeErrPrefix} integer encoded in more bytes than necessary (strict decode)`)\n }\n return value\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} offset\n * @param {DecodeOptions} options\n * @returns {number|bigint}\n */\nexport function readUint64 (data, offset, options) {\n // assume BigInt, convert back to Number if within safe range\n assertEnoughData(data, offset, 8)\n const hi = (data[offset] * 16777216 /* 2 ** 24 */) + (data[offset + 1] << 16) + (data[offset + 2] << 8) + data[offset + 3]\n const lo = (data[offset + 4] * 16777216 /* 2 ** 24 */) + (data[offset + 5] << 16) + (data[offset + 6] << 8) + data[offset + 7]\n const value = (BigInt(hi) << BigInt(32)) + BigInt(lo)\n if (options.strict === true && value < uintBoundaries[3]) {\n throw new Error(`${decodeErrPrefix} integer encoded in more bytes than necessary (strict decode)`)\n }\n if (value <= Number.MAX_SAFE_INTEGER) {\n return Number(value)\n }\n if (options.allowBigInt === true) {\n return value\n }\n throw new Error(`${decodeErrPrefix} integers outside of the safe integer range are not supported`)\n}\n\n/* not required thanks to quick[] list\nconst oneByteTokens = new Array(24).fill(0).map((v, i) => new Token(Type.uint, i, 1))\nexport function decodeUintCompact (data, pos, minor, options) {\n return oneByteTokens[minor]\n}\n*/\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeUint8 (data, pos, _minor, options) {\n return new Token(Type.uint, readUint8(data, pos + 1, options), 2)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeUint16 (data, pos, _minor, options) {\n return new Token(Type.uint, readUint16(data, pos + 1, options), 3)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeUint32 (data, pos, _minor, options) {\n return new Token(Type.uint, readUint32(data, pos + 1, options), 5)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeUint64 (data, pos, _minor, options) {\n return new Token(Type.uint, readUint64(data, pos + 1, options), 9)\n}\n\n/**\n * @param {Bl} buf\n * @param {Token} token\n */\nexport function encodeUint (buf, token) {\n return encodeUintValue(buf, 0, token.value)\n}\n\n/**\n * @param {Bl} buf\n * @param {number} major\n * @param {number|bigint} uint\n */\nexport function encodeUintValue (buf, major, uint) {\n if (uint < uintBoundaries[0]) {\n const nuint = Number(uint)\n // pack into one byte, minor=0, additional=value\n buf.push([major | nuint])\n } else if (uint < uintBoundaries[1]) {\n const nuint = Number(uint)\n // pack into two byte, minor=0, additional=24\n buf.push([major | 24, nuint])\n } else if (uint < uintBoundaries[2]) {\n const nuint = Number(uint)\n // pack into three byte, minor=0, additional=25\n buf.push([major | 25, nuint >>> 8, nuint & 0xff])\n } else if (uint < uintBoundaries[3]) {\n const nuint = Number(uint)\n // pack into five byte, minor=0, additional=26\n buf.push([major | 26, (nuint >>> 24) & 0xff, (nuint >>> 16) & 0xff, (nuint >>> 8) & 0xff, nuint & 0xff])\n } else {\n const buint = BigInt(uint)\n if (buint < uintBoundaries[4]) {\n // pack into nine byte, minor=0, additional=27\n const set = [major | 27, 0, 0, 0, 0, 0, 0, 0]\n // simulate bitwise above 32 bits\n let lo = Number(buint & BigInt(0xffffffff))\n let hi = Number(buint >> BigInt(32) & BigInt(0xffffffff))\n set[8] = lo & 0xff\n lo = lo >> 8\n set[7] = lo & 0xff\n lo = lo >> 8\n set[6] = lo & 0xff\n lo = lo >> 8\n set[5] = lo & 0xff\n set[4] = hi & 0xff\n hi = hi >> 8\n set[3] = hi & 0xff\n hi = hi >> 8\n set[2] = hi & 0xff\n hi = hi >> 8\n set[1] = hi & 0xff\n buf.push(set)\n } else {\n throw new Error(`${decodeErrPrefix} encountered BigInt larger than allowable range`)\n }\n }\n}\n\n/**\n * @param {Token} token\n * @returns {number}\n */\nencodeUint.encodedSize = function encodedSize (token) {\n return encodeUintValue.encodedSize(token.value)\n}\n\n/**\n * @param {number} uint\n * @returns {number}\n */\nencodeUintValue.encodedSize = function encodedSize (uint) {\n if (uint < uintBoundaries[0]) {\n return 1\n }\n if (uint < uintBoundaries[1]) {\n return 2\n }\n if (uint < uintBoundaries[2]) {\n return 3\n }\n if (uint < uintBoundaries[3]) {\n return 5\n }\n return 9\n}\n\n/**\n * @param {Token} tok1\n * @param {Token} tok2\n * @returns {number}\n */\nencodeUint.compareTokens = function compareTokens (tok1, tok2) {\n return tok1.value < tok2.value ? -1 : tok1.value > tok2.value ? 1 : /* c8 ignore next */ 0\n}\n","/* eslint-env es2020 */\n\nimport { Token, Type } from './token.js'\nimport * as uint from './0uint.js'\nimport { decodeErrPrefix } from './common.js'\n\n/**\n * @typedef {import('./bl.js').Bl} Bl\n * @typedef {import('../interface').DecodeOptions} DecodeOptions\n */\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeNegint8 (data, pos, _minor, options) {\n return new Token(Type.negint, -1 - uint.readUint8(data, pos + 1, options), 2)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeNegint16 (data, pos, _minor, options) {\n return new Token(Type.negint, -1 - uint.readUint16(data, pos + 1, options), 3)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeNegint32 (data, pos, _minor, options) {\n return new Token(Type.negint, -1 - uint.readUint32(data, pos + 1, options), 5)\n}\n\nconst neg1b = BigInt(-1)\nconst pos1b = BigInt(1)\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeNegint64 (data, pos, _minor, options) {\n const int = uint.readUint64(data, pos + 1, options)\n if (typeof int !== 'bigint') {\n const value = -1 - int\n if (value >= Number.MIN_SAFE_INTEGER) {\n return new Token(Type.negint, value, 9)\n }\n }\n if (options.allowBigInt !== true) {\n throw new Error(`${decodeErrPrefix} integers outside of the safe integer range are not supported`)\n }\n return new Token(Type.negint, neg1b - BigInt(int), 9)\n}\n\n/**\n * @param {Bl} buf\n * @param {Token} token\n */\nexport function encodeNegint (buf, token) {\n const negint = token.value\n const unsigned = (typeof negint === 'bigint' ? (negint * neg1b - pos1b) : (negint * -1 - 1))\n uint.encodeUintValue(buf, token.type.majorEncoded, unsigned)\n}\n\n/**\n * @param {Token} token\n * @returns {number}\n */\nencodeNegint.encodedSize = function encodedSize (token) {\n const negint = token.value\n const unsigned = (typeof negint === 'bigint' ? (negint * neg1b - pos1b) : (negint * -1 - 1))\n /* c8 ignore next 4 */\n // handled by quickEncode, we shouldn't get here but it's included for completeness\n if (unsigned < uint.uintBoundaries[0]) {\n return 1\n }\n if (unsigned < uint.uintBoundaries[1]) {\n return 2\n }\n if (unsigned < uint.uintBoundaries[2]) {\n return 3\n }\n if (unsigned < uint.uintBoundaries[3]) {\n return 5\n }\n return 9\n}\n\n/**\n * @param {Token} tok1\n * @param {Token} tok2\n * @returns {number}\n */\nencodeNegint.compareTokens = function compareTokens (tok1, tok2) {\n // opposite of the uint comparison since we store the uint version in bytes\n return tok1.value < tok2.value ? 1 : tok1.value > tok2.value ? -1 : /* c8 ignore next */ 0\n}\n","import { Token, Type } from './token.js'\nimport { assertEnoughData, decodeErrPrefix } from './common.js'\nimport * as uint from './0uint.js'\nimport { compare, fromString, slice } from './byte-utils.js'\n\n/**\n * @typedef {import('./bl.js').Bl} Bl\n * @typedef {import('../interface').DecodeOptions} DecodeOptions\n */\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} prefix\n * @param {number} length\n * @returns {Token}\n */\nfunction toToken (data, pos, prefix, length) {\n assertEnoughData(data, pos, prefix + length)\n const buf = slice(data, pos + prefix, pos + prefix + length)\n return new Token(Type.bytes, buf, prefix + length)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} minor\n * @param {DecodeOptions} _options\n * @returns {Token}\n */\nexport function decodeBytesCompact (data, pos, minor, _options) {\n return toToken(data, pos, 1, minor)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeBytes8 (data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options))\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeBytes16 (data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options))\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeBytes32 (data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options))\n}\n\n// TODO: maybe we shouldn't support this ..\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeBytes64 (data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options)\n if (typeof l === 'bigint') {\n throw new Error(`${decodeErrPrefix} 64-bit integer bytes lengths not supported`)\n }\n return toToken(data, pos, 9, l)\n}\n\n/**\n * `encodedBytes` allows for caching when we do a byte version of a string\n * for key sorting purposes\n * @param {Token} token\n * @returns {Uint8Array}\n */\nfunction tokenBytes (token) {\n if (token.encodedBytes === undefined) {\n token.encodedBytes = token.type === Type.string ? fromString(token.value) : token.value\n }\n // @ts-ignore c'mon\n return token.encodedBytes\n}\n\n/**\n * @param {Bl} buf\n * @param {Token} token\n */\nexport function encodeBytes (buf, token) {\n const bytes = tokenBytes(token)\n uint.encodeUintValue(buf, token.type.majorEncoded, bytes.length)\n buf.push(bytes)\n}\n\n/**\n * @param {Token} token\n * @returns {number}\n */\nencodeBytes.encodedSize = function encodedSize (token) {\n const bytes = tokenBytes(token)\n return uint.encodeUintValue.encodedSize(bytes.length) + bytes.length\n}\n\n/**\n * @param {Token} tok1\n * @param {Token} tok2\n * @returns {number}\n */\nencodeBytes.compareTokens = function compareTokens (tok1, tok2) {\n return compareBytes(tokenBytes(tok1), tokenBytes(tok2))\n}\n\n/**\n * @param {Uint8Array} b1\n * @param {Uint8Array} b2\n * @returns {number}\n */\nexport function compareBytes (b1, b2) {\n return b1.length < b2.length ? -1 : b1.length > b2.length ? 1 : compare(b1, b2)\n}\n","import { Token, Type } from './token.js'\nimport { assertEnoughData, decodeErrPrefix } from './common.js'\nimport * as uint from './0uint.js'\nimport { encodeBytes } from './2bytes.js'\nimport { toString, slice } from './byte-utils.js'\n\n/**\n * @typedef {import('./bl.js').Bl} Bl\n * @typedef {import('../interface').DecodeOptions} DecodeOptions\n */\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} prefix\n * @param {number} length\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nfunction toToken (data, pos, prefix, length, options) {\n const totLength = prefix + length\n assertEnoughData(data, pos, totLength)\n const tok = new Token(Type.string, toString(data, pos + prefix, pos + totLength), totLength)\n if (options.retainStringBytes === true) {\n tok.byteValue = slice(data, pos + prefix, pos + totLength)\n }\n return tok\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeStringCompact (data, pos, minor, options) {\n return toToken(data, pos, 1, minor, options)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeString8 (data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options), options)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeString16 (data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options), options)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeString32 (data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options), options)\n}\n\n// TODO: maybe we shouldn't support this ..\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeString64 (data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options)\n if (typeof l === 'bigint') {\n throw new Error(`${decodeErrPrefix} 64-bit integer string lengths not supported`)\n }\n return toToken(data, pos, 9, l, options)\n}\n\nexport const encodeString = encodeBytes\n","import { Token, Type } from './token.js'\nimport * as uint from './0uint.js'\nimport { decodeErrPrefix } from './common.js'\n\n/**\n * @typedef {import('./bl.js').Bl} Bl\n * @typedef {import('../interface').DecodeOptions} DecodeOptions\n */\n\n/**\n * @param {Uint8Array} _data\n * @param {number} _pos\n * @param {number} prefix\n * @param {number} length\n * @returns {Token}\n */\nfunction toToken (_data, _pos, prefix, length) {\n return new Token(Type.array, length, prefix)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} minor\n * @param {DecodeOptions} _options\n * @returns {Token}\n */\nexport function decodeArrayCompact (data, pos, minor, _options) {\n return toToken(data, pos, 1, minor)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeArray8 (data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options))\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeArray16 (data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options))\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeArray32 (data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options))\n}\n\n// TODO: maybe we shouldn't support this ..\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeArray64 (data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options)\n if (typeof l === 'bigint') {\n throw new Error(`${decodeErrPrefix} 64-bit integer array lengths not supported`)\n }\n return toToken(data, pos, 9, l)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeArrayIndefinite (data, pos, _minor, options) {\n if (options.allowIndefinite === false) {\n throw new Error(`${decodeErrPrefix} indefinite length items not allowed`)\n }\n return toToken(data, pos, 1, Infinity)\n}\n\n/**\n * @param {Bl} buf\n * @param {Token} token\n */\nexport function encodeArray (buf, token) {\n uint.encodeUintValue(buf, Type.array.majorEncoded, token.value)\n}\n\n// using an array as a map key, are you sure about this? we can only sort\n// by map length here, it's up to the encoder to decide to look deeper\nencodeArray.compareTokens = uint.encodeUint.compareTokens\n\n/**\n * @param {Token} token\n * @returns {number}\n */\nencodeArray.encodedSize = function encodedSize (token) {\n return uint.encodeUintValue.encodedSize(token.value)\n}\n","import { Token, Type } from './token.js'\nimport * as uint from './0uint.js'\nimport { decodeErrPrefix } from './common.js'\n\n/**\n * @typedef {import('./bl.js').Bl} Bl\n * @typedef {import('../interface').DecodeOptions} DecodeOptions\n */\n\n/**\n * @param {Uint8Array} _data\n * @param {number} _pos\n * @param {number} prefix\n * @param {number} length\n * @returns {Token}\n */\nfunction toToken (_data, _pos, prefix, length) {\n return new Token(Type.map, length, prefix)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} minor\n * @param {DecodeOptions} _options\n * @returns {Token}\n */\nexport function decodeMapCompact (data, pos, minor, _options) {\n return toToken(data, pos, 1, minor)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeMap8 (data, pos, _minor, options) {\n return toToken(data, pos, 2, uint.readUint8(data, pos + 1, options))\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeMap16 (data, pos, _minor, options) {\n return toToken(data, pos, 3, uint.readUint16(data, pos + 1, options))\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeMap32 (data, pos, _minor, options) {\n return toToken(data, pos, 5, uint.readUint32(data, pos + 1, options))\n}\n\n// TODO: maybe we shouldn't support this ..\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeMap64 (data, pos, _minor, options) {\n const l = uint.readUint64(data, pos + 1, options)\n if (typeof l === 'bigint') {\n throw new Error(`${decodeErrPrefix} 64-bit integer map lengths not supported`)\n }\n return toToken(data, pos, 9, l)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeMapIndefinite (data, pos, _minor, options) {\n if (options.allowIndefinite === false) {\n throw new Error(`${decodeErrPrefix} indefinite length items not allowed`)\n }\n return toToken(data, pos, 1, Infinity)\n}\n\n/**\n * @param {Bl} buf\n * @param {Token} token\n */\nexport function encodeMap (buf, token) {\n uint.encodeUintValue(buf, Type.map.majorEncoded, token.value)\n}\n\n// using a map as a map key, are you sure about this? we can only sort\n// by map length here, it's up to the encoder to decide to look deeper\nencodeMap.compareTokens = uint.encodeUint.compareTokens\n\n/**\n * @param {Token} token\n * @returns {number}\n */\nencodeMap.encodedSize = function encodedSize (token) {\n return uint.encodeUintValue.encodedSize(token.value)\n}\n","import { Token, Type } from './token.js'\nimport * as uint from './0uint.js'\n\n/**\n * @typedef {import('./bl.js').Bl} Bl\n * @typedef {import('../interface').DecodeOptions} DecodeOptions\n */\n\n/**\n * @param {Uint8Array} _data\n * @param {number} _pos\n * @param {number} minor\n * @param {DecodeOptions} _options\n * @returns {Token}\n */\nexport function decodeTagCompact (_data, _pos, minor, _options) {\n return new Token(Type.tag, minor, 1)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeTag8 (data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint8(data, pos + 1, options), 2)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeTag16 (data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint16(data, pos + 1, options), 3)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeTag32 (data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint32(data, pos + 1, options), 5)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeTag64 (data, pos, _minor, options) {\n return new Token(Type.tag, uint.readUint64(data, pos + 1, options), 9)\n}\n\n/**\n * @param {Bl} buf\n * @param {Token} token\n */\nexport function encodeTag (buf, token) {\n uint.encodeUintValue(buf, Type.tag.majorEncoded, token.value)\n}\n\nencodeTag.compareTokens = uint.encodeUint.compareTokens\n\n/**\n * @param {Token} token\n * @returns {number}\n */\nencodeTag.encodedSize = function encodedSize (token) {\n return uint.encodeUintValue.encodedSize(token.value)\n}\n","// TODO: shift some of the bytes logic to bytes-utils so we can use Buffer\n// where possible\n\nimport { Token, Type } from './token.js'\nimport { decodeErrPrefix } from './common.js'\nimport { encodeUint } from './0uint.js'\n\n/**\n * @typedef {import('./bl.js').Bl} Bl\n * @typedef {import('../interface').DecodeOptions} DecodeOptions\n * @typedef {import('../interface').EncodeOptions} EncodeOptions\n */\n\nconst MINOR_FALSE = 20\nconst MINOR_TRUE = 21\nconst MINOR_NULL = 22\nconst MINOR_UNDEFINED = 23\n\n/**\n * @param {Uint8Array} _data\n * @param {number} _pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeUndefined (_data, _pos, _minor, options) {\n if (options.allowUndefined === false) {\n throw new Error(`${decodeErrPrefix} undefined values are not supported`)\n } else if (options.coerceUndefinedToNull === true) {\n return new Token(Type.null, null, 1)\n }\n return new Token(Type.undefined, undefined, 1)\n}\n\n/**\n * @param {Uint8Array} _data\n * @param {number} _pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeBreak (_data, _pos, _minor, options) {\n if (options.allowIndefinite === false) {\n throw new Error(`${decodeErrPrefix} indefinite length items not allowed`)\n }\n return new Token(Type.break, undefined, 1)\n}\n\n/**\n * @param {number} value\n * @param {number} bytes\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nfunction createToken (value, bytes, options) {\n if (options) {\n if (options.allowNaN === false && Number.isNaN(value)) {\n throw new Error(`${decodeErrPrefix} NaN values are not supported`)\n }\n if (options.allowInfinity === false && (value === Infinity || value === -Infinity)) {\n throw new Error(`${decodeErrPrefix} Infinity values are not supported`)\n }\n }\n return new Token(Type.float, value, bytes)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeFloat16 (data, pos, _minor, options) {\n return createToken(readFloat16(data, pos + 1), 3, options)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeFloat32 (data, pos, _minor, options) {\n return createToken(readFloat32(data, pos + 1), 5, options)\n}\n\n/**\n * @param {Uint8Array} data\n * @param {number} pos\n * @param {number} _minor\n * @param {DecodeOptions} options\n * @returns {Token}\n */\nexport function decodeFloat64 (data, pos, _minor, options) {\n return createToken(readFloat64(data, pos + 1), 9, options)\n}\n\n/**\n * @param {Bl} buf\n * @param {Token} token\n * @param {EncodeOptions} options\n */\nexport function encodeFloat (buf, token, options) {\n const float = token.value\n\n if (float === false) {\n buf.push([Type.float.majorEncoded | MINOR_FALSE])\n } else if (float === true) {\n buf.push([Type.float.majorEncoded | MINOR_TRUE])\n } else if (float === null) {\n buf.push([Type.float.majorEncoded | MINOR_NULL])\n } else if (float === undefined) {\n buf.push([Type.float.majorEncoded | MINOR_UNDEFINED])\n } else {\n let decoded\n let success = false\n if (!options || options.float64 !== true) {\n encodeFloat16(float)\n decoded = readFloat16(ui8a, 1)\n if (float === decoded || Number.isNaN(float)) {\n ui8a[0] = 0xf9\n buf.push(ui8a.slice(0, 3))\n success = true\n } else {\n encodeFloat32(float)\n decoded = readFloat32(ui8a, 1)\n if (float === decoded) {\n ui8a[0] = 0xfa\n buf.push(ui8a.slice(0, 5))\n success = true\n }\n }\n }\n if (!success) {\n encodeFloat64(float)\n decoded = readFloat64(ui8a, 1)\n ui8a[0] = 0xfb\n buf.push(ui8a.slice(0, 9))\n }\n }\n}\n\n/**\n * @param {Token} token\n * @param {EncodeOptions} options\n * @returns {number}\n */\nencodeFloat.encodedSize = function encodedSize (token, options) {\n const float = token.value\n\n if (float === false || float === true || float === null || float === undefined) {\n return 1\n }\n\n if (!options || options.float64 !== true) {\n encodeFloat16(float)\n let decoded = readFloat16(ui8a, 1)\n if (float === decoded || Number.isNaN(float)) {\n return 3\n }\n encodeFloat32(float)\n decoded = readFloat32(ui8a, 1)\n if (float === decoded) {\n return 5\n }\n }\n return 9\n}\n\nconst buffer = new ArrayBuffer(9)\nconst dataView = new DataView(buffer, 1)\nconst ui8a = new Uint8Array(buffer, 0)\n\n/**\n * @param {number} inp\n */\nfunction encodeFloat16 (inp) {\n if (inp === Infinity) {\n dataView.setUint16(0, 0x7c00, false)\n } else if (inp === -Infinity) {\n dataView.setUint16(0, 0xfc00, false)\n } else if (Number.isNaN(inp)) {\n dataView.setUint16(0, 0x7e00, false)\n } else {\n dataView.setFloat32(0, inp)\n const valu32 = dataView.getUint32(0)\n const exponent = (valu32 & 0x7f800000) >> 23\n const mantissa = valu32 & 0x7fffff\n\n /* c8 ignore next 6 */\n if (exponent === 0xff) {\n // too big, Infinity, but this should be hard (impossible?) to trigger\n dataView.setUint16(0, 0x7c00, false)\n } else if (exponent === 0x00) {\n // 0.0, -0.0 and subnormals, shouldn't be possible to get here because 0.0 should be counted as an int\n dataView.setUint16(0, ((inp & 0x80000000) >> 16) | (mantissa >> 13), false)\n } else { // standard numbers\n // chunks of logic here borrowed from https://github.com/PJK/libcbor/blob/c78f437182533e3efa8d963ff4b945bb635c2284/src/cbor/encoding.c#L127\n const logicalExponent = exponent - 127\n // Now we know that 2^exponent <= 0 logically\n /* c8 ignore next 6 */\n if (logicalExponent < -24) {\n /* No unambiguous representation exists, this float is not a half float\n and is too small to be represented using a half, round off to zero.\n Consistent with the reference implementation. */\n // should be difficult (impossible?) to get here in JS\n dataView.setUint16(0, 0)\n } else if (logicalExponent < -14) {\n /* Offset the remaining decimal places by shifting the significand, the\n value is lost. This is an implementation decision that works around the\n absence of standard half-float in the language. */\n dataView.setUint16(0, ((valu32 & 0x80000000) >> 16) | /* sign bit */ (1 << (24 + logicalExponent)), false)\n } else {\n dataView.setUint16(0, ((valu32 & 0x80000000) >> 16) | ((logicalExponent + 15) << 10) | (mantissa >> 13), false)\n }\n }\n }\n}\n\n/**\n * @param {Uint8Array} ui8a\n * @param {number} pos\n * @returns {number}\n */\nfunction readFloat16 (ui8a, pos) {\n if (ui8a.length - pos < 2) {\n throw new Error(`${decodeErrPrefix} not enough data for float16`)\n }\n\n const half = (ui8a[pos] << 8) + ui8a[pos + 1]\n if (half === 0x7c00) {\n return Infinity\n }\n if (half === 0xfc00) {\n return -Infinity\n }\n if (half === 0x7e00) {\n return NaN\n }\n const exp = (half >> 10) & 0x1f\n const mant = half & 0x3ff\n let val\n if (exp === 0) {\n val = mant * (2 ** -24)\n } else if (exp !== 31) {\n val = (mant + 1024) * (2 ** (exp - 25))\n /* c8 ignore next 4 */\n } else {\n // may not be possible to get here\n val = mant === 0 ? Infinity : NaN\n }\n return (half & 0x8000) ? -val : val\n}\n\n/**\n * @param {number} inp\n */\nfunction encodeFloat32 (inp) {\n dataView.setFloat32(0, inp, false)\n}\n\n/**\n * @param {Uint8Array} ui8a\n * @param {number} pos\n * @returns {number}\n */\nfunction readFloat32 (ui8a, pos) {\n if (ui8a.length - pos < 4) {\n throw new Error(`${decodeErrPrefix} not enough data for float32`)\n }\n const offset = (ui8a.byteOffset || 0) + pos\n return new DataView(ui8a.buffer, offset, 4).getFloat32(0, false)\n}\n\n/**\n * @param {number} inp\n */\nfunction encodeFloat64 (inp) {\n dataView.setFloat64(0, inp, false)\n}\n\n/**\n * @param {Uint8Array} ui8a\n * @param {number} pos\n * @returns {number}\n */\nfunction readFloat64 (ui8a, pos) {\n if (ui8a.length - pos < 8) {\n throw new Error(`${decodeErrPrefix} not enough data for float64`)\n }\n const offset = (ui8a.byteOffset || 0) + pos\n return new DataView(ui8a.buffer, offset, 8).getFloat64(0, false)\n}\n\n/**\n * @param {Token} _tok1\n * @param {Token} _tok2\n * @returns {number}\n */\nencodeFloat.compareTokens = encodeUint.compareTokens\n/*\nencodeFloat.compareTokens = function compareTokens (_tok1, _tok2) {\n return _tok1\n throw new Error(`${encodeErrPrefix} cannot use floats as map keys`)\n}\n*/\n","import { decodeErrPrefix } from './common.js'\nimport { Type } from './token.js'\nimport { jump, quick } from './jump.js'\n\n/**\n * @typedef {import('./token.js').Token} Token\n * @typedef {import('../interface').DecodeOptions} DecodeOptions\n * @typedef {import('../interface').DecodeTokenizer} DecodeTokenizer\n */\n\nconst defaultDecodeOptions = {\n strict: false,\n allowIndefinite: true,\n allowUndefined: true,\n allowBigInt: true\n}\n\n/**\n * @implements {DecodeTokenizer}\n */\nclass Tokeniser {\n /**\n * @param {Uint8Array} data\n * @param {DecodeOptions} options\n */\n constructor (data, options = {}) {\n this._pos = 0\n this.data = data\n this.options = options\n }\n\n pos () {\n return this._pos\n }\n\n done () {\n return this._pos >= this.data.length\n }\n\n next () {\n const byt = this.data[this._pos]\n let token = quick[byt]\n if (token === undefined) {\n const decoder = jump[byt]\n /* c8 ignore next 4 */\n // if we're here then there's something wrong with our jump or quick lists!\n if (!decoder) {\n throw new Error(`${decodeErrPrefix} no decoder for major type ${byt >>> 5} (byte 0x${byt.toString(16).padStart(2, '0')})`)\n }\n const minor = byt & 31\n token = decoder(this.data, this._pos, minor, this.options)\n }\n // @ts-ignore we get to assume encodedLength is set (crossing fingers slightly)\n this._pos += token.encodedLength\n return token\n }\n}\n\nconst DONE = Symbol.for('DONE')\nconst BREAK = Symbol.for('BREAK')\n\n/**\n * @param {Token} token\n * @param {DecodeTokenizer} tokeniser\n * @param {DecodeOptions} options\n * @returns {any|BREAK|DONE}\n */\nfunction tokenToArray (token, tokeniser, options) {\n const arr = []\n for (let i = 0; i < token.value; i++) {\n const value = tokensToObject(tokeniser, options)\n if (value === BREAK) {\n if (token.value === Infinity) {\n // normal end to indefinite length array\n break\n }\n throw new Error(`${decodeErrPrefix} got unexpected break to lengthed array`)\n }\n if (value === DONE) {\n throw new Error(`${decodeErrPrefix} found array but not enough entries (got ${i}, expected ${token.value})`)\n }\n arr[i] = value\n }\n return arr\n}\n\n/**\n * @param {Token} token\n * @param {DecodeTokenizer} tokeniser\n * @param {DecodeOptions} options\n * @returns {any|BREAK|DONE}\n */\nfunction tokenToMap (token, tokeniser, options) {\n const useMaps = options.useMaps === true\n const obj = useMaps ? undefined : {}\n const m = useMaps ? new Map() : undefined\n for (let i = 0; i < token.value; i++) {\n const key = tokensToObject(tokeniser, options)\n if (key === BREAK) {\n if (token.value === Infinity) {\n // normal end to indefinite length map\n break\n }\n throw new Error(`${decodeErrPrefix} got unexpected break to lengthed map`)\n }\n if (key === DONE) {\n throw new Error(`${decodeErrPrefix} found map but not enough entries (got ${i} [no key], expected ${token.value})`)\n }\n if (useMaps !== true && typeof key !== 'string') {\n throw new Error(`${decodeErrPrefix} non-string keys not supported (got ${typeof key})`)\n }\n if (options.rejectDuplicateMapKeys === true) {\n // @ts-ignore\n if ((useMaps && m.has(key)) || (!useMaps && (key in obj))) {\n throw new Error(`${decodeErrPrefix} found repeat map key \"${key}\"`)\n }\n }\n const value = tokensToObject(tokeniser, options)\n if (value === DONE) {\n throw new Error(`${decodeErrPrefix} found map but not enough entries (got ${i} [no value], expected ${token.value})`)\n }\n if (useMaps) {\n // @ts-ignore TODO reconsider this .. maybe needs to be strict about key types\n m.set(key, value)\n } else {\n // @ts-ignore TODO reconsider this .. maybe needs to be strict about key types\n obj[key] = value\n }\n }\n // @ts-ignore c'mon man\n return useMaps ? m : obj\n}\n\n/**\n * @param {DecodeTokenizer} tokeniser\n * @param {DecodeOptions} options\n * @returns {any|BREAK|DONE}\n */\nfunction tokensToObject (tokeniser, options) {\n // should we support array as an argument?\n // check for tokenIter[Symbol.iterator] and replace tokenIter with what that returns?\n if (tokeniser.done()) {\n return DONE\n }\n\n const token = tokeniser.next()\n\n if (token.type === Type.break) {\n return BREAK\n }\n\n if (token.type.terminal) {\n return token.value\n }\n\n if (token.type === Type.array) {\n return tokenToArray(token, tokeniser, options)\n }\n\n if (token.type === Type.map) {\n return tokenToMap(token, tokeniser, options)\n }\n\n if (token.type === Type.tag) {\n if (options.tags && typeof options.tags[token.value] === 'function') {\n const tagged = tokensToObject(tokeniser, options)\n return options.tags[token.value](tagged)\n }\n throw new Error(`${decodeErrPrefix} tag not supported (${token.value})`)\n }\n /* c8 ignore next */\n throw new Error('unsupported')\n}\n\n/**\n * @param {Uint8Array} data\n * @param {DecodeOptions} [options]\n * @returns {[any, Uint8Array]}\n */\nfunction decodeFirst (data, options) {\n if (!(data instanceof Uint8Array)) {\n throw new Error(`${decodeErrPrefix} data to decode must be a Uint8Array`)\n }\n options = Object.assign({}, defaultDecodeOptions, options)\n const tokeniser = options.tokenizer || new Tokeniser(data, options)\n const decoded = tokensToObject(tokeniser, options)\n if (decoded === DONE) {\n throw new Error(`${decodeErrPrefix} did not find any content to decode`)\n }\n if (decoded === BREAK) {\n throw new Error(`${decodeErrPrefix} got unexpected break`)\n }\n return [decoded, data.subarray(tokeniser.pos())]\n}\n\n/**\n * @param {Uint8Array} data\n * @param {DecodeOptions} [options]\n * @returns {any}\n */\nfunction decode (data, options) {\n const [decoded, remainder] = decodeFirst(data, options)\n if (remainder.length > 0) {\n throw new Error(`${decodeErrPrefix} too many terminals, data makes no sense`)\n }\n return decoded\n}\n\nexport { Tokeniser, tokensToObject, decode, decodeFirst }\n","import { base32 } from './bases/base32.js'\nimport { base58btc } from './bases/base58.js'\nimport { coerce } from './bytes.js'\nimport * as Digest from './hashes/digest.js'\n// Linter can see that API is used in types.\n// eslint-disable-next-line\nimport * as API from \"./link/interface.js\"\nimport * as varint from './varint.js'\n\n// This way TS will also expose all the types from module\nexport * from './link/interface.js'\n\n/**\n * @template {API.Link<unknown, number, number, API.Version>} T\n * @template {string} Prefix\n * @param {T} link\n * @param {API.MultibaseEncoder<Prefix>} [base]\n * @returns {API.ToString<T, Prefix>}\n */\nexport const format = (link, base) => {\n const { bytes, version } = link\n switch (version) {\n case 0:\n return toStringV0(\n bytes,\n baseCache(link),\n /** @type {API.MultibaseEncoder<\"z\">} */ (base) || base58btc.encoder\n )\n default:\n return toStringV1(\n bytes,\n baseCache(link),\n /** @type {API.MultibaseEncoder<Prefix>} */ (base || base32.encoder)\n )\n }\n}\n\n/**\n * @template {API.UnknownLink} Link\n * @param {Link} link\n * @returns {API.LinkJSON<Link>}\n */\nexport const toJSON = (link) => ({\n '/': format(link)\n})\n\n/**\n * @template {API.UnknownLink} Link\n * @param {API.LinkJSON<Link>} json\n */\nexport const fromJSON = (json) =>\n CID.parse(json['/'])\n\n/** @type {WeakMap<API.UnknownLink, Map<string, string>>} */\nconst cache = new WeakMap()\n\n/**\n * @param {API.UnknownLink} cid\n * @returns {Map<string, string>}\n */\nconst baseCache = cid => {\n const baseCache = cache.get(cid)\n if (baseCache == null) {\n const baseCache = new Map()\n cache.set(cid, baseCache)\n return baseCache\n }\n return baseCache\n}\n\n/**\n * @template {unknown} [Data=unknown]\n * @template {number} [Format=number]\n * @template {number} [Alg=number]\n * @template {API.Version} [Version=API.Version]\n * @implements {API.Link<Data, Format, Alg, Version>}\n */\n\nexport class CID {\n /**\n * @param {Version} version - Version of the CID\n * @param {Format} code - Code of the codec content is encoded in, see https://github.com/multiformats/multicodec/blob/master/table.csv\n * @param {API.MultihashDigest<Alg>} multihash - (Multi)hash of the of the content.\n * @param {Uint8Array} bytes\n */\n constructor (version, code, multihash, bytes) {\n /** @readonly */\n this.code = code\n /** @readonly */\n this.version = version\n /** @readonly */\n this.multihash = multihash\n /** @readonly */\n this.bytes = bytes\n\n // flag to serializers that this is a CID and\n // should be treated specially\n /** @readonly */\n this['/'] = bytes\n }\n\n /**\n * Signalling `cid.asCID === cid` has been replaced with `cid['/'] === cid.bytes`\n * please either use `CID.asCID(cid)` or switch to new signalling mechanism\n *\n * @deprecated\n */\n get asCID () {\n return this\n }\n\n // ArrayBufferView\n get byteOffset () {\n return this.bytes.byteOffset\n }\n\n // ArrayBufferView\n get byteLength () {\n return this.bytes.byteLength\n }\n\n /**\n * @returns {CID<Data, API.DAG_PB, API.SHA_256, 0>}\n */\n toV0 () {\n switch (this.version) {\n case 0: {\n return /** @type {CID<Data, API.DAG_PB, API.SHA_256, 0>} */ (this)\n }\n case 1: {\n const { code, multihash } = this\n\n if (code !== DAG_PB_CODE) {\n throw new Error('Cannot convert a non dag-pb CID to CIDv0')\n }\n\n // sha2-256\n if (multihash.code !== SHA_256_CODE) {\n throw new Error('Cannot convert non sha2-256 multihash CID to CIDv0')\n }\n\n return /** @type {CID<Data, API.DAG_PB, API.SHA_256, 0>} */ (\n CID.createV0(\n /** @type {API.MultihashDigest<API.SHA_256>} */ (multihash)\n )\n )\n }\n default: {\n throw Error(\n `Can not convert CID version ${this.version} to version 0. This is a bug please report`\n )\n }\n }\n }\n\n /**\n * @returns {CID<Data, Format, Alg, 1>}\n */\n toV1 () {\n switch (this.version) {\n case 0: {\n const { code, digest } = this.multihash\n const multihash = Digest.create(code, digest)\n return /** @type {CID<Data, Format, Alg, 1>} */ (\n CID.createV1(this.code, multihash)\n )\n }\n case 1: {\n return /** @type {CID<Data, Format, Alg, 1>} */ (this)\n }\n default: {\n throw Error(\n `Can not convert CID version ${this.version} to version 1. This is a bug please report`\n )\n }\n }\n }\n\n /**\n * @param {unknown} other\n * @returns {other is CID<Data, Format, Alg, Version>}\n */\n equals (other) {\n return CID.equals(this, other)\n }\n\n /**\n * @template {unknown} Data\n * @template {number} Format\n * @template {number} Alg\n * @template {API.Version} Version\n * @param {API.Link<Data, Format, Alg, Version>} self\n * @param {unknown} other\n * @returns {other is CID}\n */\n static equals (self, other) {\n const unknown =\n /** @type {{code?:unknown, version?:unknown, multihash?:unknown}} */ (\n other\n )\n return (\n unknown &&\n self.code === unknown.code &&\n self.version === unknown.version &&\n Digest.equals(self.multihash, unknown.multihash)\n )\n }\n\n /**\n * @param {API.MultibaseEncoder<string>} [base]\n * @returns {string}\n */\n toString (base) {\n return format(this, base)\n }\n\n /**\n * @returns {API.LinkJSON<this>}\n */\n toJSON () {\n return { '/': format(this) }\n }\n\n link () {\n return this\n }\n\n get [Symbol.toStringTag] () {\n return 'CID'\n }\n\n // Legacy\n\n [Symbol.for('nodejs.util.inspect.custom')] () {\n return `CID(${this.toString()})`\n }\n\n /**\n * Takes any input `value` and returns a `CID` instance if it was\n * a `CID` otherwise returns `null`. If `value` is instanceof `CID`\n * it will return value back. If `value` is not instance of this CID\n * class, but is compatible CID it will return new instance of this\n * `CID` class. Otherwise returns null.\n *\n * This allows two different incompatible versions of CID library to\n * co-exist and interop as long as binary interface is compatible.\n *\n * @template {unknown} Data\n * @template {number} Format\n * @template {number} Alg\n * @template {API.Version} Version\n * @template {unknown} U\n * @param {API.Link<Data, Format, Alg, Version>|U} input\n * @returns {CID<Data, Format, Alg, Version>|null}\n */\n static asCID (input) {\n if (input == null) {\n return null\n }\n\n const value = /** @type {any} */ (input)\n if (value instanceof CID) {\n // If value is instance of CID then we're all set.\n return value\n } else if ((value['/'] != null && value['/'] === value.bytes) || value.asCID === value) {\n // If value isn't instance of this CID class but `this.asCID === this` or\n // `value['/'] === value.bytes` is true it is CID instance coming from a\n // different implementation (diff version or duplicate). In that case we\n // rebase it to this `CID` implementation so caller is guaranteed to get\n // instance with expected API.\n const { version, code, multihash, bytes } = value\n return new CID(\n version,\n code,\n /** @type {API.MultihashDigest<Alg>} */ (multihash),\n bytes || encodeCID(version, code, multihash.bytes)\n )\n } else if (value[cidSymbol] === true) {\n // If value is a CID from older implementation that used to be tagged via\n // symbol we still rebase it to the this `CID` implementation by\n // delegating that to a constructor.\n const { version, multihash, code } = value\n const digest =\n /** @type {API.MultihashDigest<Alg>} */\n (Digest.decode(multihash))\n return CID.create(version, code, digest)\n } else {\n // Otherwise value is not a CID (or an incompatible version of it) in\n // which case we return `null`.\n return null\n }\n }\n\n /**\n *\n * @template {unknown} Data\n * @template {number} Format\n * @template {number} Alg\n * @template {API.Version} Version\n * @param {Version} version - Version of the CID\n * @param {Format} code - Code of the codec content is encoded in, see https://github.com/multiformats/multicodec/blob/master/table.csv\n * @param {API.MultihashDigest<Alg>} digest - (Multi)hash of the of the content.\n * @returns {CID<Data, Format, Alg, Version>}\n */\n static create (version, code, digest) {\n if (typeof code !== 'number') {\n throw new Error('String codecs are no longer supported')\n }\n\n if (!(digest.bytes instanceof Uint8Array)) {\n throw new Error('Invalid digest')\n }\n\n switch (version) {\n case 0: {\n if (code !== DAG_PB_CODE) {\n throw new Error(\n `Version 0 CID must use dag-pb (code: ${DAG_PB_CODE}) block encoding`\n )\n } else {\n return new CID(version, code, digest, digest.bytes)\n }\n }\n case 1: {\n const bytes = encodeCID(version, code, digest.bytes)\n return new CID(version, code, digest, bytes)\n }\n default: {\n throw new Error('Invalid version')\n }\n }\n }\n\n /**\n * Simplified version of `create` for CIDv0.\n *\n * @template {unknown} [T=unknown]\n * @param {API.MultihashDigest<typeof SHA_256_CODE>} digest - Multihash.\n * @returns {CID<T, typeof DAG_PB_CODE, typeof SHA_256_CODE, 0>}\n */\n static createV0 (digest) {\n return CID.create(0, DAG_PB_CODE, digest)\n }\n\n /**\n * Simplified version of `create` for CIDv1.\n *\n * @template {unknown} Data\n * @template {number} Code\n * @template {number} Alg\n * @param {Code} code - Content encoding format code.\n * @param {API.MultihashDigest<Alg>} digest - Miltihash of the content.\n * @returns {CID<Data, Code, Alg, 1>}\n */\n static createV1 (code, digest) {\n return CID.create(1, code, digest)\n }\n\n /**\n * Decoded a CID from its binary representation. The byte array must contain\n * only the CID with no additional bytes.\n *\n * An error will be thrown if the bytes provided do not contain a valid\n * binary representation of a CID.\n *\n * @template {unknown} Data\n * @template {number} Code\n * @template {number} Alg\n * @template {API.Version} Ver\n * @param {API.ByteView<API.Link<Data, Code, Alg, Ver>>} bytes\n * @returns {CID<Data, Code, Alg, Ver>}\n */\n static decode (bytes) {\n const [cid, remainder] = CID.decodeFirst(bytes)\n if (remainder.length) {\n throw new Error('Incorrect length')\n }\n return cid\n }\n\n /**\n * Decoded a CID from its binary representation at the beginning of a byte\n * array.\n *\n * Returns an array with the first element containing the CID and the second\n * element containing the remainder of the original byte array. The remainder\n * will be a zero-length byte array if the provided bytes only contained a\n * binary CID representation.\n *\n * @template {unknown} T\n * @template {number} C\n * @template {number} A\n * @template {API.Version} V\n * @param {API.ByteView<API.Link<T, C, A, V>>} bytes\n * @returns {[CID<T, C, A, V>, Uint8Array]}\n */\n static decodeFirst (bytes) {\n const specs = CID.inspectBytes(bytes)\n const prefixSize = specs.size - specs.multihashSize\n const multihashBytes = coerce(\n bytes.subarray(prefixSize, prefixSize + specs.multihashSize)\n )\n if (multihashBytes.byteLength !== specs.multihashSize) {\n throw new Error('Incorrect length')\n }\n const digestBytes = multihashBytes.subarray(\n specs.multihashSize - specs.digestSize\n )\n const digest = new Digest.Digest(\n specs.multihashCode,\n specs.digestSize,\n digestBytes,\n multihashBytes\n )\n const cid =\n specs.version === 0\n ? CID.createV0(/** @type {API.MultihashDigest<API.SHA_256>} */ (digest))\n : CID.createV1(specs.codec, digest)\n return [/** @type {CID<T, C, A, V>} */(cid), bytes.subarray(specs.size)]\n }\n\n /**\n * Inspect the initial bytes of a CID to determine its properties.\n *\n * Involves decoding up to 4 varints. Typically this will require only 4 to 6\n * bytes but for larger multicodec code values and larger multihash digest\n * lengths these varints can be quite large. It is recommended that at least\n * 10 bytes be made available in the `initialBytes` argument for a complete\n * inspection.\n *\n * @template {unknown} T\n * @template {number} C\n * @template {number} A\n * @template {API.Version} V\n * @param {API.ByteView<API.Link<T, C, A, V>>} initialBytes\n * @returns {{ version:V, codec:C, multihashCode:A, digestSize:number, multihashSize:number, size:number }}\n */\n static inspectBytes (initialBytes) {\n let offset = 0\n const next = () => {\n const [i, length] = varint.decode(initialBytes.subarray(offset))\n offset += length\n return i\n }\n\n let version = /** @type {V} */ (next())\n let codec = /** @type {C} */ (DAG_PB_CODE)\n if (/** @type {number} */(version) === 18) {\n // CIDv0\n version = /** @type {V} */ (0)\n offset = 0\n } else {\n codec = /** @type {C} */ (next())\n }\n\n if (version !== 0 && version !== 1) {\n throw new RangeError(`Invalid CID version ${version}`)\n }\n\n const prefixSize = offset\n const multihashCode = /** @type {A} */ (next()) // multihash code\n const digestSize = next() // multihash length\n const size = offset + digestSize\n const multihashSize = size - prefixSize\n\n return { version, codec, multihashCode, digestSize, multihashSize, size }\n }\n\n /**\n * Takes cid in a string representation and creates an instance. If `base`\n * decoder is not provided will use a default from the configuration. It will\n * throw an error if encoding of the CID is not compatible with supplied (or\n * a default decoder).\n *\n * @template {string} Prefix\n * @template {unknown} Data\n * @template {number} Code\n * @template {number} Alg\n * @template {API.Version} Ver\n * @param {API.ToString<API.Link<Data, Code, Alg, Ver>, Prefix>} source\n * @param {API.MultibaseDecoder<Prefix>} [base]\n * @returns {CID<Data, Code, Alg, Ver>}\n */\n static parse (source, base) {\n const [prefix, bytes] = parseCIDtoBytes(source, base)\n\n const cid = CID.decode(bytes)\n\n if (cid.version === 0 && source[0] !== 'Q') {\n throw Error('Version 0 CID string must not include multibase prefix')\n }\n\n // Cache string representation to avoid computing it on `this.toString()`\n baseCache(cid).set(prefix, source)\n\n return cid\n }\n}\n\n/**\n * @template {string} Prefix\n * @template {unknown} Data\n * @template {number} Code\n * @template {number} Alg\n * @template {API.Version} Ver\n * @param {API.ToString<API.Link<Data, Code, Alg, Ver>, Prefix>} source\n * @param {API.MultibaseDecoder<Prefix>} [base]\n * @returns {[Prefix, API.ByteView<API.Link<Data, Code, Alg, Ver>>]}\n */\nconst parseCIDtoBytes = (source, base) => {\n switch (source[0]) {\n // CIDv0 is parsed differently\n case 'Q': {\n const decoder = base || base58btc\n return [\n /** @type {Prefix} */ (base58btc.prefix),\n decoder.decode(`${base58btc.prefix}${source}`)\n ]\n }\n case base58btc.prefix: {\n const decoder = base || base58btc\n return [/** @type {Prefix} */(base58btc.prefix), decoder.decode(source)]\n }\n case base32.prefix: {\n const decoder = base || base32\n return [/** @type {Prefix} */(base32.prefix), decoder.decode(source)]\n }\n default: {\n if (base == null) {\n throw Error(\n 'To parse non base32 or base58btc encoded CID multibase decoder must be provided'\n )\n }\n return [/** @type {Prefix} */(source[0]), base.decode(source)]\n }\n }\n}\n\n/**\n *\n * @param {Uint8Array} bytes\n * @param {Map<string, string>} cache\n * @param {API.MultibaseEncoder<'z'>} base\n */\nconst toStringV0 = (bytes, cache, base) => {\n const { prefix } = base\n if (prefix !== base58btc.prefix) {\n throw Error(`Cannot string encode V0 in ${base.name} encoding`)\n }\n\n const cid = cache.get(prefix)\n if (cid == null) {\n const cid = base.encode(bytes).slice(1)\n cache.set(prefix, cid)\n return cid\n } else {\n return cid\n }\n}\n\n/**\n * @template {string} Prefix\n * @param {Uint8Array} bytes\n * @param {Map<string, string>} cache\n * @param {API.MultibaseEncoder<Prefix>} base\n */\nconst toStringV1 = (bytes, cache, base) => {\n const { prefix } = base\n const cid = cache.get(prefix)\n if (cid == null) {\n const cid = base.encode(bytes)\n cache.set(prefix, cid)\n return cid\n } else {\n return cid\n }\n}\n\nconst DAG_PB_CODE = 0x70\nconst SHA_256_CODE = 0x12\n\n/**\n * @param {API.Version} version\n * @param {number} code\n * @param {Uint8Array} multihash\n * @returns {Uint8Array}\n */\nconst encodeCID = (version, code, multihash) => {\n const codeOffset = varint.encodingLength(version)\n const hashOffset = codeOffset + varint.encodingLength(code)\n const bytes = new Uint8Array(hashOffset + multihash.byteLength)\n varint.encodeTo(version, bytes, 0)\n varint.encodeTo(code, bytes, codeOffset)\n bytes.set(multihash, hashOffset)\n return bytes\n}\n\nconst cidSymbol = Symbol.for('@ipld/js-cid/CID')\n","import { rfc4648 } from './base.js'\n\nexport const base32 = rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n})\n\nexport const base32upper = rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n})\n\nexport const base32pad = rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n})\n\nexport const base32padupper = rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n})\n\nexport const base32hex = rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n})\n\nexport const base32hexupper = rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n})\n\nexport const base32hexpad = rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n})\n\nexport const base32hexpadupper = rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n})\n\nexport const base32z = rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n})\n","import basex from '../../vendor/base-x.js'\nimport { coerce } from '../bytes.js'\n// Linter can't see that API is used in types.\n// eslint-disable-next-line\nimport * as API from './interface.js'\n\n/**\n * Class represents both BaseEncoder and MultibaseEncoder meaning it\n * can be used to encode to multibase or base encode without multibase\n * prefix.\n *\n * @class\n * @template {string} Base\n * @template {string} Prefix\n * @implements {API.MultibaseEncoder<Prefix>}\n * @implements {API.BaseEncoder}\n */\nclass Encoder {\n /**\n * @param {Base} name\n * @param {Prefix} prefix\n * @param {(bytes:Uint8Array) => string} baseEncode\n */\n constructor (name, prefix, baseEncode) {\n this.name = name\n this.prefix = prefix\n this.baseEncode = baseEncode\n }\n\n /**\n * @param {Uint8Array} bytes\n * @returns {API.Multibase<Prefix>}\n */\n encode (bytes) {\n if (bytes instanceof Uint8Array) {\n return `${this.prefix}${this.baseEncode(bytes)}`\n } else {\n throw Error('Unknown type, must be binary type')\n }\n }\n}\n\n/**\n * @template {string} Prefix\n */\n/**\n * Class represents both BaseDecoder and MultibaseDecoder so it could be used\n * to decode multibases (with matching prefix) or just base decode strings\n * with corresponding base encoding.\n *\n * @class\n * @template {string} Base\n * @template {string} Prefix\n * @implements {API.MultibaseDecoder<Prefix>}\n * @implements {API.UnibaseDecoder<Prefix>}\n * @implements {API.BaseDecoder}\n */\nclass Decoder {\n /**\n * @param {Base} name\n * @param {Prefix} prefix\n * @param {(text:string) => Uint8Array} baseDecode\n */\n constructor (name, prefix, baseDecode) {\n this.name = name\n this.prefix = prefix\n /* c8 ignore next 3 */\n if (prefix.codePointAt(0) === undefined) {\n throw new Error('Invalid prefix character')\n }\n /** @private */\n this.prefixCodePoint = /** @type {number} */ (prefix.codePointAt(0))\n this.baseDecode = baseDecode\n }\n\n /**\n * @param {string} text\n */\n decode (text) {\n if (typeof text === 'string') {\n if (text.codePointAt(0) !== this.prefixCodePoint) {\n throw Error(`Unable to decode multibase string ${JSON.stringify(text)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`)\n }\n return this.baseDecode(text.slice(this.prefix.length))\n } else {\n throw Error('Can only multibase decode strings')\n }\n }\n\n /**\n * @template {string} OtherPrefix\n * @param {API.UnibaseDecoder<OtherPrefix>|ComposedDecoder<OtherPrefix>} decoder\n * @returns {ComposedDecoder<Prefix|OtherPrefix>}\n */\n or (decoder) {\n return or(this, decoder)\n }\n}\n\n/**\n * @template {string} Prefix\n * @typedef {Record<Prefix, API.UnibaseDecoder<Prefix>>} Decoders\n */\n\n/**\n * @template {string} Prefix\n * @implements {API.MultibaseDecoder<Prefix>}\n * @implements {API.CombobaseDecoder<Prefix>}\n */\nclass ComposedDecoder {\n /**\n * @param {Decoders<Prefix>} decoders\n */\n constructor (decoders) {\n this.decoders = decoders\n }\n\n /**\n * @template {string} OtherPrefix\n * @param {API.UnibaseDecoder<OtherPrefix>|ComposedDecoder<OtherPrefix>} decoder\n * @returns {ComposedDecoder<Prefix|OtherPrefix>}\n */\n or (decoder) {\n return or(this, decoder)\n }\n\n /**\n * @param {string} input\n * @returns {Uint8Array}\n */\n decode (input) {\n const prefix = /** @type {Prefix} */ (input[0])\n const decoder = this.decoders[prefix]\n if (decoder) {\n return decoder.decode(input)\n } else {\n throw RangeError(`Unable to decode multibase string ${JSON.stringify(input)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)\n }\n }\n}\n\n/**\n * @template {string} L\n * @template {string} R\n * @param {API.UnibaseDecoder<L>|API.CombobaseDecoder<L>} left\n * @param {API.UnibaseDecoder<R>|API.CombobaseDecoder<R>} right\n * @returns {ComposedDecoder<L|R>}\n */\nexport const or = (left, right) => new ComposedDecoder(/** @type {Decoders<L|R>} */({\n ...(left.decoders || { [/** @type API.UnibaseDecoder<L> */(left).prefix]: left }),\n ...(right.decoders || { [/** @type API.UnibaseDecoder<R> */(right).prefix]: right })\n}))\n\n/**\n * @class\n * @template {string} Base\n * @template {string} Prefix\n * @implements {API.MultibaseCodec<Prefix>}\n * @implements {API.MultibaseEncoder<Prefix>}\n * @implements {API.MultibaseDecoder<Prefix>}\n * @implements {API.BaseCodec}\n * @implements {API.BaseEncoder}\n * @implements {API.BaseDecoder}\n */\nexport class Codec {\n /**\n * @param {Base} name\n * @param {Prefix} prefix\n * @param {(bytes:Uint8Array) => string} baseEncode\n * @param {(text:string) => Uint8Array} baseDecode\n */\n constructor (name, prefix, baseEncode, baseDecode) {\n this.name = name\n this.prefix = prefix\n this.baseEncode = baseEncode\n this.baseDecode = baseDecode\n this.encoder = new Encoder(name, prefix, baseEncode)\n this.decoder = new Decoder(name, prefix, baseDecode)\n }\n\n /**\n * @param {Uint8Array} input\n */\n encode (input) {\n return this.encoder.encode(input)\n }\n\n /**\n * @param {string} input\n */\n decode (input) {\n return this.decoder.decode(input)\n }\n}\n\n/**\n * @template {string} Base\n * @template {string} Prefix\n * @param {object} options\n * @param {Base} options.name\n * @param {Prefix} options.prefix\n * @param {(bytes:Uint8Array) => string} options.encode\n * @param {(input:string) => Uint8Array} options.decode\n * @returns {Codec<Base, Prefix>}\n */\nexport const from = ({ name, prefix, encode, decode }) =>\n new Codec(name, prefix, encode, decode)\n\n/**\n * @template {string} Base\n * @template {string} Prefix\n * @param {object} options\n * @param {Base} options.name\n * @param {Prefix} options.prefix\n * @param {string} options.alphabet\n * @returns {Codec<Base, Prefix>}\n */\nexport const baseX = ({ prefix, name, alphabet }) => {\n const { encode, decode } = basex(alphabet, name)\n return from({\n prefix,\n name,\n encode,\n /**\n * @param {string} text\n */\n decode: text => coerce(decode(text))\n })\n}\n\n/**\n * @param {string} string\n * @param {string} alphabet\n * @param {number} bitsPerChar\n * @param {string} name\n * @returns {Uint8Array}\n */\nconst decode = (string, alphabet, bitsPerChar, name) => {\n // Build the character lookup table:\n /** @type {Record<string, number>} */\n const codes = {}\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i\n }\n\n // Count the padding bytes:\n let end = string.length\n while (string[end - 1] === '=') {\n --end\n }\n\n // Allocate the output:\n const out = new Uint8Array((end * bitsPerChar / 8) | 0)\n\n // Parse the data:\n let bits = 0 // Number of bits currently in the buffer\n let buffer = 0 // Bits waiting to be written out, MSB first\n let written = 0 // Next byte to write\n for (let i = 0; i < end; ++i) {\n // Read one character from the string:\n const value = codes[string[i]]\n if (value === undefined) {\n throw new SyntaxError(`Non-${name} character`)\n }\n\n // Append the bits to the buffer:\n buffer = (buffer << bitsPerChar) | value\n bits += bitsPerChar\n\n // Write out some bits if the buffer has a byte's worth:\n if (bits >= 8) {\n bits -= 8\n out[written++] = 0xff & (buffer >> bits)\n }\n }\n\n // Verify that we have received just enough bits:\n if (bits >= bitsPerChar || 0xff & (buffer << (8 - bits))) {\n throw new SyntaxError('Unexpected end of data')\n }\n\n return out\n}\n\n/**\n * @param {Uint8Array} data\n * @param {string} alphabet\n * @param {number} bitsPerChar\n * @returns {string}\n */\nconst encode = (data, alphabet, bitsPerChar) => {\n const pad = alphabet[alphabet.length - 1] === '='\n const mask = (1 << bitsPerChar) - 1\n let out = ''\n\n let bits = 0 // Number of bits currently in the buffer\n let buffer = 0 // Bits waiting to be written out, MSB first\n for (let i = 0; i < data.length; ++i) {\n // Slurp data into the buffer:\n buffer = (buffer << 8) | data[i]\n bits += 8\n\n // Write out as much as we can:\n while (bits > bitsPerChar) {\n bits -= bitsPerChar\n out += alphabet[mask & (buffer >> bits)]\n }\n }\n\n // Partial character:\n if (bits) {\n out += alphabet[mask & (buffer << (bitsPerChar - bits))]\n }\n\n // Add padding characters until we hit a byte boundary:\n if (pad) {\n while ((out.length * bitsPerChar) & 7) {\n out += '='\n }\n }\n\n return out\n}\n\n/**\n * RFC4648 Factory\n *\n * @template {string} Base\n * @template {string} Prefix\n * @param {object} options\n * @param {Base} options.name\n * @param {Prefix} options.prefix\n * @param {string} options.alphabet\n * @param {number} options.bitsPerChar\n */\nexport const rfc4648 = ({ name, prefix, bitsPerChar, alphabet }) => {\n return from({\n prefix,\n name,\n encode (input) {\n return encode(input, alphabet, bitsPerChar)\n },\n decode (input) {\n return decode(input, alphabet, bitsPerChar, name)\n }\n })\n}\n","// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\nfunction base (ALPHABET, name) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\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) { throw new TypeError(x + ' is ambiguous') }\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); // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE); // log(256) / log(BASE), rounded up\n function encode (source) {\n if (source instanceof Uint8Array) ; 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)) { throw new TypeError('Expected Uint8Array') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\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 // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0;\n var b58 = new Uint8Array(size);\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin];\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0;\n b58[it1] = (carry % BASE) >>> 0;\n carry = (carry / BASE) >>> 0;\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i;\n pbegin++;\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]); }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return new Uint8Array() }\n var psz = 0;\n // Skip leading spaces.\n if (source[psz] === ' ') { return }\n // Skip and count leading '1's.\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0; // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size);\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)];\n // Invalid character\n if (carry === 255) { return }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0;\n b256[it3] = (carry % 256) >>> 0;\n carry = (carry / 256) >>> 0;\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i;\n psz++;\n }\n // Skip trailing spaces.\n if (source[psz] === ' ') { return }\n // Skip leading zeroes in b256.\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 j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string);\n if (buffer) { return buffer }\n throw new Error(`Non-${name} character`)\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nvar src = base;\n\nvar _brrp__multiformats_scope_baseX = src;\n\nexport default _brrp__multiformats_scope_baseX;\n","const empty = new Uint8Array(0)\n\n/**\n * @param {Uint8Array} d\n */\nconst toHex = d => d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '')\n\n/**\n * @param {string} hex\n */\nconst fromHex = hex => {\n const hexes = hex.match(/../g)\n return hexes ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty\n}\n\n/**\n * @param {Uint8Array} aa\n * @param {Uint8Array} bb\n */\nconst equals = (aa, bb) => {\n if (aa === bb) return true\n if (aa.byteLength !== bb.byteLength) {\n return false\n }\n\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @param {ArrayBufferView|ArrayBuffer|Uint8Array} o\n * @returns {Uint8Array}\n */\nconst coerce = o => {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array') return o\n if (o instanceof ArrayBuffer) return new Uint8Array(o)\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength)\n }\n throw new Error('Unknown type, must be binary type')\n}\n\n/**\n * @param {any} o\n * @returns {o is ArrayBuffer|ArrayBufferView}\n */\nconst isBinary = o =>\n o instanceof ArrayBuffer || ArrayBuffer.isView(o)\n\n/**\n * @param {string} str\n * @returns {Uint8Array}\n */\nconst fromString = str => (new TextEncoder()).encode(str)\n\n/**\n * @param {Uint8Array} b\n * @returns {string}\n */\nconst toString = b => (new TextDecoder()).decode(b)\n\nexport { equals, coerce, isBinary, fromHex, toHex, fromString, toString, empty }\n","// this is dummy module overlayed by interface.ts\n","import { baseX } from './base.js'\n\nexport const base58btc = baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n})\n\nexport const base58flickr = baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n})\n","import { coerce, equals as equalBytes } from '../bytes.js'\nimport * as varint from '../varint.js'\n\n/**\n * Creates a multihash digest.\n *\n * @template {number} Code\n * @param {Code} code\n * @param {Uint8Array} digest\n */\nexport const create = (code, digest) => {\n const size = digest.byteLength\n const sizeOffset = varint.encodingLength(code)\n const digestOffset = sizeOffset + varint.encodingLength(size)\n\n const bytes = new Uint8Array(digestOffset + size)\n varint.encodeTo(code, bytes, 0)\n varint.encodeTo(size, bytes, sizeOffset)\n bytes.set(digest, digestOffset)\n\n return new Digest(code, size, digest, bytes)\n}\n\n/**\n * Turns bytes representation of multihash digest into an instance.\n *\n * @param {Uint8Array} multihash\n * @returns {MultihashDigest}\n */\nexport const decode = (multihash) => {\n const bytes = coerce(multihash)\n const [code, sizeOffset] = varint.decode(bytes)\n const [size, digestOffset] = varint.decode(bytes.subarray(sizeOffset))\n const digest = bytes.subarray(sizeOffset + digestOffset)\n\n if (digest.byteLength !== size) {\n throw new Error('Incorrect length')\n }\n\n return new Digest(code, size, digest, bytes)\n}\n\n/**\n * @param {MultihashDigest} a\n * @param {unknown} b\n * @returns {b is MultihashDigest}\n */\nexport const equals = (a, b) => {\n if (a === b) {\n return true\n } else {\n const data = /** @type {{code?:unknown, size?:unknown, bytes?:unknown}} */(b)\n\n return (\n a.code === data.code &&\n a.size === data.size &&\n data.bytes instanceof Uint8Array &&\n equalBytes(a.bytes, data.bytes)\n )\n }\n}\n\n/**\n * @typedef {import('./interface.js').MultihashDigest} MultihashDigest\n */\n\n/**\n * Represents a multihash digest which carries information about the\n * hashing algorithm and an actual hash digest.\n *\n * @template {number} Code\n * @template {number} Size\n * @class\n * @implements {MultihashDigest}\n */\nexport class Digest {\n /**\n * Creates a multihash digest.\n *\n * @param {Code} code\n * @param {Size} size\n * @param {Uint8Array} digest\n * @param {Uint8Array} bytes\n */\n constructor (code, size, digest, bytes) {\n this.code = code\n this.size = size\n this.digest = digest\n this.bytes = bytes\n }\n}\n","import varint from '../vendor/varint.js'\n\n/**\n * @param {Uint8Array} data\n * @param {number} [offset=0]\n * @returns {[number, number]}\n */\nexport const decode = (data, offset = 0) => {\n const code = varint.decode(data, offset)\n return [code, varint.decode.bytes]\n}\n\n/**\n * @param {number} int\n * @param {Uint8Array} target\n * @param {number} [offset=0]\n */\nexport const encodeTo = (int, target, offset = 0) => {\n varint.encode(int, target, offset)\n return target\n}\n\n/**\n * @param {number} int\n * @returns {number}\n */\nexport const encodingLength = (int) => {\n return varint.encodingLength(int)\n}\n","var encode_1 = encode;\n\nvar MSB = 0x80\n , REST = 0x7F\n , MSBALL = ~REST\n , INT = Math.pow(2, 31);\n\nfunction encode(num, out, offset) {\n out = out || [];\n offset = offset || 0;\n var oldOffset = offset;\n\n while(num >= INT) {\n out[offset++] = (num & 0xFF) | MSB;\n num /= 128;\n }\n while(num & MSBALL) {\n out[offset++] = (num & 0xFF) | MSB;\n num >>>= 7;\n }\n out[offset] = num | 0;\n \n encode.bytes = offset - oldOffset + 1;\n \n return out\n}\n\nvar decode = read;\n\nvar MSB$1 = 0x80\n , REST$1 = 0x7F;\n\nfunction read(buf, offset) {\n var res = 0\n , offset = offset || 0\n , shift = 0\n , counter = offset\n , b\n , l = buf.length;\n\n do {\n if (counter >= l) {\n read.bytes = 0;\n throw new RangeError('Could not decode varint')\n }\n b = buf[counter++];\n res += shift < 28\n ? (b & REST$1) << shift\n : (b & REST$1) * Math.pow(2, shift);\n shift += 7;\n } while (b >= MSB$1)\n\n read.bytes = counter - offset;\n\n return res\n}\n\nvar N1 = Math.pow(2, 7);\nvar N2 = Math.pow(2, 14);\nvar N3 = Math.pow(2, 21);\nvar N4 = Math.pow(2, 28);\nvar N5 = Math.pow(2, 35);\nvar N6 = Math.pow(2, 42);\nvar N7 = Math.pow(2, 49);\nvar N8 = Math.pow(2, 56);\nvar N9 = Math.pow(2, 63);\n\nvar length = function (value) {\n return (\n value < N1 ? 1\n : value < N2 ? 2\n : value < N3 ? 3\n : value < N4 ? 4\n : value < N5 ? 5\n : value < N6 ? 6\n : value < N7 ? 7\n : value < N8 ? 8\n : value < N9 ? 9\n : 10\n )\n};\n\nvar varint = {\n encode: encode_1\n , decode: decode\n , encodingLength: length\n};\n\nvar _brrp_varint = varint;\n\nexport default _brrp_varint;\n","// this is dummy module overlayed by interface.ts\n","import varint from 'varint'\n\nexport const CIDV0_BYTES = {\n SHA2_256: 0x12,\n LENGTH: 0x20,\n DAG_PB: 0x70\n}\n\nexport const V2_HEADER_LENGTH = /* characteristics */ 16 /* v1 offset */ + 8 /* v1 size */ + 8 /* index offset */ + 8\n\n/**\n * Decodes varint and seeks the buffer\n *\n * ```js\n * // needs bytes to be read first\n * const bytes = reader.upTo(8) // maybe async\n * ```\n *\n * @param {Uint8Array} bytes\n * @param {import('./coding').Seekable} seeker\n * @returns {number}\n */\nexport function decodeVarint (bytes, seeker) {\n if (!bytes.length) {\n throw new Error('Unexpected end of data')\n }\n const i = varint.decode(bytes)\n seeker.seek(/** @type {number} */(varint.decode.bytes))\n return i\n}\n\n/**\n * Decode v2 header\n *\n * ```js\n * // needs bytes to be read first\n * const bytes = reader.exactly(V2_HEADER_LENGTH, true) // maybe async\n * ```\n *\n * @param {Uint8Array} bytes\n * @returns {import('./coding').CarV2FixedHeader}\n */\nexport function decodeV2Header (bytes) {\n const dv = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength)\n let offset = 0\n const header = {\n version: 2,\n /** @type {[bigint, bigint]} */\n characteristics: [\n dv.getBigUint64(offset, true),\n dv.getBigUint64(offset += 8, true)\n ],\n dataOffset: Number(dv.getBigUint64(offset += 8, true)),\n dataSize: Number(dv.getBigUint64(offset += 8, true)),\n indexOffset: Number(dv.getBigUint64(offset += 8, true))\n }\n return header\n}\n\n/**\n * Checks the length of the multihash to be read afterwards\n *\n * ```js\n * // needs bytes to be read first\n * const bytes = reader.upTo(8) // maybe async\n * ```\n *\n * @param {Uint8Array} bytes\n */\nexport function getMultihashLength (bytes) {\n // | code | length | .... |\n // where both code and length are varints, so we have to decode\n // them first before we can know total length\n\n varint.decode(bytes) // code\n const codeLength = /** @type {number} */(varint.decode.bytes)\n const length = varint.decode(bytes.subarray(varint.decode.bytes))\n const lengthLength = /** @type {number} */(varint.decode.bytes)\n const mhLength = codeLength + lengthLength + length\n\n return mhLength\n}\n","/** Auto-generated with @ipld/schema@v4.2.0 at Thu Sep 14 2023 from IPLD Schema:\n *\n * # CarV1HeaderOrV2Pragma is a more relaxed form, and can parse {version:x} where\n * # roots are optional. This is typically useful for the {verison:2} CARv2\n * # pragma.\n *\n * type CarV1HeaderOrV2Pragma struct {\n * \troots optional [&Any]\n * \t# roots is _not_ optional for CarV1 but we defer that check within code to\n * \t# gracefully handle the V2 case where it's just {version:X}\n * \tversion Int\n * }\n *\n * # CarV1Header is the strict form of the header, and requires roots to be\n * # present. This is compatible with the CARv1 specification.\n *\n * # type CarV1Header struct {\n * # \troots [&Any]\n * # \tversion Int\n * # }\n *\n */\n\nconst Kinds = {\n Null: /** @returns {undefined|null} */ (/** @type {any} */ obj) => obj === null ? obj : undefined,\n Int: /** @returns {undefined|number} */ (/** @type {any} */ obj) => Number.isInteger(obj) ? obj : undefined,\n Float: /** @returns {undefined|number} */ (/** @type {any} */ obj) => typeof obj === 'number' && Number.isFinite(obj) ? obj : undefined,\n String: /** @returns {undefined|string} */ (/** @type {any} */ obj) => typeof obj === 'string' ? obj : undefined,\n Bool: /** @returns {undefined|boolean} */ (/** @type {any} */ obj) => typeof obj === 'boolean' ? obj : undefined,\n Bytes: /** @returns {undefined|Uint8Array} */ (/** @type {any} */ obj) => obj instanceof Uint8Array ? obj : undefined,\n Link: /** @returns {undefined|object} */ (/** @type {any} */ obj) => obj !== null && typeof obj === 'object' && obj.asCID === obj ? obj : undefined,\n List: /** @returns {undefined|Array<any>} */ (/** @type {any} */ obj) => Array.isArray(obj) ? obj : undefined,\n Map: /** @returns {undefined|object} */ (/** @type {any} */ obj) => obj !== null && typeof obj === 'object' && obj.asCID !== obj && !Array.isArray(obj) && !(obj instanceof Uint8Array) ? obj : undefined\n}\n/** @type {{ [k in string]: (obj:any)=>undefined|any}} */\nconst Types = {\n 'CarV1HeaderOrV2Pragma > roots (anon) > valueType (anon)': Kinds.Link,\n 'CarV1HeaderOrV2Pragma > roots (anon)': /** @returns {undefined|any} */ (/** @type {any} */ obj) => {\n if (Kinds.List(obj) === undefined) {\n return undefined\n }\n for (let i = 0; i < obj.length; i++) {\n let v = obj[i]\n v = Types['CarV1HeaderOrV2Pragma > roots (anon) > valueType (anon)'](v)\n if (v === undefined) {\n return undefined\n }\n if (v !== obj[i]) {\n const ret = obj.slice(0, i)\n for (let j = i; j < obj.length; j++) {\n let v = obj[j]\n v = Types['CarV1HeaderOrV2Pragma > roots (anon) > valueType (anon)'](v)\n if (v === undefined) {\n return undefined\n }\n ret.push(v)\n }\n return ret\n }\n }\n return obj\n },\n Int: Kinds.Int,\n CarV1HeaderOrV2Pragma: /** @returns {undefined|any} */ (/** @type {any} */ obj) => {\n if (Kinds.Map(obj) === undefined) {\n return undefined\n }\n const entries = Object.entries(obj)\n /** @type {{[k in string]: any}} */\n let ret = obj\n let requiredCount = 1\n for (let i = 0; i < entries.length; i++) {\n const [key, value] = entries[i]\n switch (key) {\n case 'roots':\n {\n const v = Types['CarV1HeaderOrV2Pragma > roots (anon)'](obj[key])\n if (v === undefined) {\n return undefined\n }\n if (v !== value || ret !== obj) {\n if (ret === obj) {\n /** @type {{[k in string]: any}} */\n ret = {}\n for (let j = 0; j < i; j++) {\n ret[entries[j][0]] = entries[j][1]\n }\n }\n ret.roots = v\n }\n }\n break\n case 'version':\n {\n requiredCount--\n const v = Types.Int(obj[key])\n if (v === undefined) {\n return undefined\n }\n if (v !== value || ret !== obj) {\n if (ret === obj) {\n /** @type {{[k in string]: any}} */\n ret = {}\n for (let j = 0; j < i; j++) {\n ret[entries[j][0]] = entries[j][1]\n }\n }\n ret.version = v\n }\n }\n break\n default:\n return undefined\n }\n }\n\n if (requiredCount > 0) {\n return undefined\n }\n return ret\n }\n}\n/** @type {{ [k in string]: (obj:any)=>undefined|any}} */\nconst Reprs = {\n 'CarV1HeaderOrV2Pragma > roots (anon) > valueType (anon)': Kinds.Link,\n 'CarV1HeaderOrV2Pragma > roots (anon)': /** @returns {undefined|any} */ (/** @type {any} */ obj) => {\n if (Kinds.List(obj) === undefined) {\n return undefined\n }\n for (let i = 0; i < obj.length; i++) {\n let v = obj[i]\n v = Reprs['CarV1HeaderOrV2Pragma > roots (anon) > valueType (anon)'](v)\n if (v === undefined) {\n return undefined\n }\n if (v !== obj[i]) {\n const ret = obj.slice(0, i)\n for (let j = i; j < obj.length; j++) {\n let v = obj[j]\n v = Reprs['CarV1HeaderOrV2Pragma > roots (anon) > valueType (anon)'](v)\n if (v === undefined) {\n return undefined\n }\n ret.push(v)\n }\n return ret\n }\n }\n return obj\n },\n Int: Kinds.Int,\n CarV1HeaderOrV2Pragma: /** @returns {undefined|any} */ (/** @type {any} */ obj) => {\n if (Kinds.Map(obj) === undefined) {\n return undefined\n }\n const entries = Object.entries(obj)\n /** @type {{[k in string]: any}} */\n let ret = obj\n let requiredCount = 1\n for (let i = 0; i < entries.length; i++) {\n const [key, value] = entries[i]\n switch (key) {\n case 'roots':\n {\n const v = Reprs['CarV1HeaderOrV2Pragma > roots (anon)'](value)\n if (v === undefined) {\n return undefined\n }\n if (v !== value || ret !== obj) {\n if (ret === obj) {\n /** @type {{[k in string]: any}} */\n ret = {}\n for (let j = 0; j < i; j++) {\n ret[entries[j][0]] = entries[j][1]\n }\n }\n ret.roots = v\n }\n }\n break\n case 'version':\n {\n requiredCount--\n const v = Reprs.Int(value)\n if (v === undefined) {\n return undefined\n }\n if (v !== value || ret !== obj) {\n if (ret === obj) {\n /** @type {{[k in string]: any}} */\n ret = {}\n for (let j = 0; j < i; j++) {\n ret[entries[j][0]] = entries[j][1]\n }\n }\n ret.version = v\n }\n }\n break\n default:\n return undefined\n }\n }\n if (requiredCount > 0) {\n return undefined\n }\n return ret\n }\n}\n\nexport const CarV1HeaderOrV2Pragma = {\n toTyped: Types.CarV1HeaderOrV2Pragma,\n toRepresentation: Reprs.CarV1HeaderOrV2Pragma\n}\n","import * as CBOR from '@ipld/dag-cbor'\nimport { Token, Type } from 'cborg'\nimport { tokensToLength } from 'cborg/length'\nimport varint from 'varint'\n\n/**\n * @typedef {import('./api').CID} CID\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').CarBufferWriter} Writer\n * @typedef {import('./api').CarBufferWriterOptions} Options\n * @typedef {import('./coding').CarEncoder} CarEncoder\n */\n\n/**\n * A simple CAR writer that writes to a pre-allocated buffer.\n *\n * @class\n * @name CarBufferWriter\n * @implements {Writer}\n */\nclass CarBufferWriter {\n /**\n * @param {Uint8Array} bytes\n * @param {number} headerSize\n */\n constructor (bytes, headerSize) {\n /** @readonly */\n this.bytes = bytes\n this.byteOffset = headerSize\n\n /**\n * @readonly\n * @type {CID[]}\n */\n this.roots = []\n this.headerSize = headerSize\n }\n\n /**\n * Add a root to this writer, to be used to create a header when the CAR is\n * finalized with {@link CarBufferWriter.close `close()`}\n *\n * @param {CID} root\n * @param {{resize?:boolean}} [options]\n * @returns {CarBufferWriter}\n */\n addRoot (root, options) {\n addRoot(this, root, options)\n return this\n }\n\n /**\n * Write a `Block` (a `{ cid:CID, bytes:Uint8Array }` pair) to the archive.\n * Throws if there is not enough capacity.\n *\n * @param {Block} block - A `{ cid:CID, bytes:Uint8Array }` pair.\n * @returns {CarBufferWriter}\n */\n write (block) {\n addBlock(this, block)\n return this\n }\n\n /**\n * Finalize the CAR and return it as a `Uint8Array`.\n *\n * @param {object} [options]\n * @param {boolean} [options.resize]\n * @returns {Uint8Array}\n */\n close (options) {\n return close(this, options)\n }\n}\n\n/**\n * @param {CarBufferWriter} writer\n * @param {CID} root\n * @param {{resize?:boolean}} [options]\n */\nexport const addRoot = (writer, root, options = {}) => {\n const { resize = false } = options\n const { bytes, headerSize, byteOffset, roots } = writer\n writer.roots.push(root)\n const size = headerLength(writer)\n // If there is not enough space for the new root\n if (size > headerSize) {\n // Check if we root would fit if we were to resize the head.\n if (size - headerSize + byteOffset < bytes.byteLength) {\n // If resize is enabled resize head\n if (resize) {\n resizeHeader(writer, size)\n // otherwise remove head and throw an error suggesting to resize\n } else {\n roots.pop()\n throw new RangeError(`Header of size ${headerSize} has no capacity for new root ${root}.\n However there is a space in the buffer and you could call addRoot(root, { resize: root }) to resize header to make a space for this root.`)\n }\n // If head would not fit even with resize pop new root and throw error\n } else {\n roots.pop()\n throw new RangeError(`Buffer has no capacity for a new root ${root}`)\n }\n }\n}\n\n/**\n * Calculates number of bytes required for storing given block in CAR. Useful in\n * estimating size of an `ArrayBuffer` for the `CarBufferWriter`.\n *\n * @name CarBufferWriter.blockLength(Block)\n * @param {Block} block\n * @returns {number}\n */\nexport const blockLength = ({ cid, bytes }) => {\n const size = cid.bytes.byteLength + bytes.byteLength\n return varint.encodingLength(size) + size\n}\n\n/**\n * @param {CarBufferWriter} writer\n * @param {Block} block\n */\nexport const addBlock = (writer, { cid, bytes }) => {\n const byteLength = cid.bytes.byteLength + bytes.byteLength\n const size = varint.encode(byteLength)\n if (writer.byteOffset + size.length + byteLength > writer.bytes.byteLength) {\n throw new RangeError('Buffer has no capacity for this block')\n } else {\n writeBytes(writer, size)\n writeBytes(writer, cid.bytes)\n writeBytes(writer, bytes)\n }\n}\n\n/**\n * @param {CarBufferWriter} writer\n * @param {object} [options]\n * @param {boolean} [options.resize]\n */\nexport const close = (writer, options = {}) => {\n const { resize = false } = options\n const { roots, bytes, byteOffset, headerSize } = writer\n\n const headerBytes = CBOR.encode({ version: 1, roots })\n const varintBytes = varint.encode(headerBytes.length)\n\n const size = varintBytes.length + headerBytes.byteLength\n const offset = headerSize - size\n\n // If header size estimate was accurate we just write header and return\n // view into buffer.\n if (offset === 0) {\n writeHeader(writer, varintBytes, headerBytes)\n return bytes.subarray(0, byteOffset)\n // If header was overestimated and `{resize: true}` is passed resize header\n } else if (resize) {\n resizeHeader(writer, size)\n writeHeader(writer, varintBytes, headerBytes)\n return bytes.subarray(0, writer.byteOffset)\n } else {\n throw new RangeError(`Header size was overestimated.\nYou can use close({ resize: true }) to resize header`)\n }\n}\n\n/**\n * @param {CarBufferWriter} writer\n * @param {number} byteLength\n */\nexport const resizeHeader = (writer, byteLength) => {\n const { bytes, headerSize } = writer\n // Move data section to a new offset\n bytes.set(bytes.subarray(headerSize, writer.byteOffset), byteLength)\n // Update header size & byteOffset\n writer.byteOffset += byteLength - headerSize\n writer.headerSize = byteLength\n}\n\n/**\n * @param {CarBufferWriter} writer\n * @param {number[]|Uint8Array} bytes\n */\n\nconst writeBytes = (writer, bytes) => {\n writer.bytes.set(bytes, writer.byteOffset)\n writer.byteOffset += bytes.length\n}\n/**\n * @param {{bytes:Uint8Array}} writer\n * @param {number[]} varint\n * @param {Uint8Array} header\n */\nconst writeHeader = ({ bytes }, varint, header) => {\n bytes.set(varint)\n bytes.set(header, varint.length)\n}\n\nconst headerPreludeTokens = [\n new Token(Type.map, 2),\n new Token(Type.string, 'version'),\n new Token(Type.uint, 1),\n new Token(Type.string, 'roots')\n]\n\nconst CID_TAG = new Token(Type.tag, 42)\n\n/**\n * Calculates header size given the array of byteLength for roots.\n *\n * @name CarBufferWriter.calculateHeaderLength(rootLengths)\n * @param {number[]} rootLengths\n * @returns {number}\n */\nexport const calculateHeaderLength = (rootLengths) => {\n const tokens = [...headerPreludeTokens]\n tokens.push(new Token(Type.array, rootLengths.length))\n for (const rootLength of rootLengths) {\n tokens.push(CID_TAG)\n tokens.push(new Token(Type.bytes, { length: rootLength + 1 }))\n }\n const length = tokensToLength(tokens) // no options needed here because we have simple tokens\n return varint.encodingLength(length) + length\n}\n\n/**\n * Calculates header size given the array of roots.\n *\n * @name CarBufferWriter.headerLength({ roots })\n * @param {object} options\n * @param {CID[]} options.roots\n * @returns {number}\n */\nexport const headerLength = ({ roots }) =>\n calculateHeaderLength(roots.map(cid => cid.bytes.byteLength))\n\n/**\n * Estimates header size given a count of the roots and the expected byte length\n * of the root CIDs. The default length works for a standard CIDv1 with a\n * single-byte multihash code, such as SHA2-256 (i.e. the most common CIDv1).\n *\n * @name CarBufferWriter.estimateHeaderLength(rootCount[, rootByteLength])\n * @param {number} rootCount\n * @param {number} [rootByteLength]\n * @returns {number}\n */\nexport const estimateHeaderLength = (rootCount, rootByteLength = 36) =>\n calculateHeaderLength(new Array(rootCount).fill(rootByteLength))\n\n/**\n * Creates synchronous CAR writer that can be used to encode blocks into a given\n * buffer. Optionally you could pass `byteOffset` and `byteLength` to specify a\n * range inside buffer to write into. If car file is going to have `roots` you\n * need to either pass them under `options.roots` (from which header size will\n * be calculated) or provide `options.headerSize` to allocate required space\n * in the buffer. You may also provide known `roots` and `headerSize` to\n * allocate space for the roots that may not be known ahead of time.\n *\n * Note: Incorrect `headerSize` may lead to copying bytes inside a buffer\n * which will have a negative impact on performance.\n *\n * @name CarBufferWriter.createWriter(buffer[, options])\n * @param {ArrayBuffer} buffer\n * @param {object} [options]\n * @param {CID[]} [options.roots]\n * @param {number} [options.byteOffset]\n * @param {number} [options.byteLength]\n * @param {number} [options.headerSize]\n * @returns {CarBufferWriter}\n */\nexport const createWriter = (buffer, options = {}) => {\n const {\n roots = [],\n byteOffset = 0,\n byteLength = buffer.byteLength,\n headerSize = headerLength({ roots })\n } = options\n const bytes = new Uint8Array(buffer, byteOffset, byteLength)\n\n const writer = new CarBufferWriter(bytes, headerSize)\n for (const root of roots) {\n writer.addRoot(root)\n }\n\n return writer\n}\n","import { makeCborEncoders, objectToTokens } from './encode.js'\nimport { quickEncodeToken } from './jump.js'\n\n/**\n * @typedef {import('../interface').EncodeOptions} EncodeOptions\n * @typedef {import('../interface').TokenTypeEncoder} TokenTypeEncoder\n * @typedef {import('../interface').TokenOrNestedTokens} TokenOrNestedTokens\n */\n\nconst cborEncoders = makeCborEncoders()\n\n/** @type {EncodeOptions} */\nconst defaultEncodeOptions = {\n float64: false,\n quickEncodeToken\n}\n\n/**\n * Calculate the byte length of the given data when encoded as CBOR with the\n * options provided.\n * This calculation will be accurate if the same options are used as when\n * performing a normal encode. Some encode options can change the encoding\n * output length.\n *\n * @param {any} data\n * @param {EncodeOptions} [options]\n * @returns {number}\n */\nexport function encodedLength (data, options) {\n options = Object.assign({}, defaultEncodeOptions, options)\n options.mapSorter = undefined // won't change the length\n const tokens = objectToTokens(data, options)\n return tokensToLength(tokens, cborEncoders, options)\n}\n\n/**\n * Calculate the byte length of the data as represented by the given tokens when\n * encoded as CBOR with the options provided.\n * This function is for advanced users and would not normally be called\n * directly. See `encodedLength()` for appropriate use.\n *\n * @param {TokenOrNestedTokens} tokens\n * @param {TokenTypeEncoder[]} [encoders]\n * @param {EncodeOptions} [options]\n */\nexport function tokensToLength (tokens, encoders = cborEncoders, options = defaultEncodeOptions) {\n if (Array.isArray(tokens)) {\n let len = 0\n for (const token of tokens) {\n len += tokensToLength(token, encoders, options)\n }\n return len\n } else {\n const encoder = encoders[tokens.type.major]\n /* c8 ignore next 3 */\n if (encoder.encodedSize === undefined || typeof encoder.encodedSize !== 'function') {\n throw new Error(`Encoder for ${tokens.type.name} does not have an encodedSize()`)\n }\n return encoder.encodedSize(tokens, options)\n }\n}\n","import fs from 'fs'\nimport { Readable } from 'stream'\nimport { CID } from 'multiformats/cid'\nimport { CarIndexer } from './indexer.js'\nimport { CarReader as NodeCarReader } from './reader.js'\n\n/**\n * @typedef {import('fs').promises.FileHandle} FileHandle\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').BlockIndex} BlockIndex\n * @typedef {import('./api').CarReader} CarReaderIface\n * @typedef {import('./reader-browser').CarReader} CarReader\n * @typedef {{ blockLength:number, blockOffset:number }} RawLocation\n */\n\n/**\n * A form of {@link CarReader} that pre-indexes a CAR archive from a file and\n * provides random access to blocks within the file using the index data. This\n * function is **only available in Node.js** and not a browser environment.\n *\n * For large CAR files, using this form of `CarReader` can be singificantly more\n * efficient in terms of memory. The index consists of a list of `CID`s and\n * their location within the archive (see {@link CarIndexer}). For large numbers\n * of blocks, this index can also occupy a significant amount of memory. In some\n * cases it may be necessary to expand the memory capacity of a Node.js instance\n * to allow this index to fit. (e.g. by running with\n * `NODE_OPTIONS=\"--max-old-space-size=16384\"`).\n *\n * As an `CarIndexedReader` instance maintains an open file descriptor for its\n * CAR file, an additional {@link CarReader#close} method is attached. This\n * _must_ be called to have full clean-up of resources after use.\n *\n * Load this class with either\n * `import { CarIndexedReader } from '@ipld/car/indexed-reader'`\n * (`const { CarIndexedReader } = require('@ipld/car/indexed-reader')`). Or\n * `import { CarIndexedReader } from '@ipld/car'`\n * (`const { CarIndexedReader } = require('@ipld/car')`). The former will likely\n * result in smaller bundle sizes where this is important.\n *\n * @name CarIndexedReader\n * @class\n * @implements {CarReaderIface}\n * @extends {CarReader}\n * @property {number} version The version number of the CAR referenced by this\n * reader (should be `1`).\n */\nexport class CarIndexedReader {\n /**\n * @param {number} version\n * @param {string} path\n * @param {CID[]} roots\n * @param {Map<string, RawLocation>} index\n * @param {string[]} order\n */\n constructor (version, path, roots, index, order) {\n this._version = version\n this._path = path\n this._roots = roots\n this._index = index\n this._order = order\n this._fd = null\n }\n\n get version () {\n return this._version\n }\n\n /**\n * See {@link CarReader#getRoots}\n *\n * @function\n * @memberof CarIndexedReader\n * @instance\n * @async\n * @returns {Promise<CID[]>}\n */\n async getRoots () {\n return this._roots\n }\n\n /**\n * See {@link CarReader#has}\n *\n * @function\n * @memberof CarIndexedReader\n * @instance\n * @async\n * @param {CID} key\n * @returns {Promise<boolean>}\n */\n async has (key) {\n return this._index.has(key.toString())\n }\n\n /**\n * See {@link CarReader#get}\n *\n * @function\n * @memberof CarIndexedReader\n * @instance\n * @async\n * @param {CID} key\n * @returns {Promise<Block | undefined>}\n */\n async get (key) {\n const blockIndex = this._index.get(key.toString())\n if (!blockIndex) {\n return undefined\n }\n if (!this._fd) {\n this._fd = await fs.promises.open(this._path, 'r')\n }\n const readIndex = {\n cid: key,\n length: 0,\n offset: 0,\n blockLength: blockIndex.blockLength,\n blockOffset: blockIndex.blockOffset\n }\n return NodeCarReader.readRaw(this._fd, readIndex)\n }\n\n /**\n * See {@link CarReader#blocks}\n *\n * @function\n * @memberof CarIndexedReader\n * @instance\n * @async\n * @generator\n * @returns {AsyncGenerator<Block>}\n */\n async * blocks () {\n for (const cidStr of this._order) {\n const block = await this.get(CID.parse(cidStr))\n /* c8 ignore next 3 */\n if (!block) {\n throw new Error('Unexpected internal error')\n }\n yield block\n }\n }\n\n /**\n * See {@link CarReader#cids}\n *\n * @function\n * @memberof CarIndexedReader\n * @instance\n * @async\n * @generator\n * @returns {AsyncGenerator<CID>}\n */\n async * cids () {\n for (const cidStr of this._order) {\n yield CID.parse(cidStr)\n }\n }\n\n /**\n * Close the underlying file descriptor maintained by this `CarIndexedReader`.\n * This must be called for proper resource clean-up to occur.\n *\n * @function\n * @memberof CarIndexedReader\n * @instance\n * @async\n * @returns {Promise<void>}\n */\n async close () {\n if (this._fd) {\n return this._fd.close()\n }\n }\n\n /**\n * Instantiate an {@link CarIndexedReader} from a file with the provided\n * `path`. The CAR file is first indexed with a full path that collects `CID`s\n * and block locations. This index is maintained in memory. Subsequent reads\n * operate on a read-only file descriptor, fetching the block from its in-file\n * location.\n *\n * For large archives, the initial indexing may take some time. The returned\n * `Promise` will resolve only after this is complete.\n *\n * @async\n * @static\n * @memberof CarIndexedReader\n * @param {string} path\n * @returns {Promise<CarIndexedReader>}\n */\n static async fromFile (path) {\n if (typeof path !== 'string') {\n throw new TypeError('fromFile() requires a file path string')\n }\n\n const iterable = await CarIndexer.fromIterable(Readable.from(fs.createReadStream(path)))\n /** @type {Map<string, RawLocation>} */\n const index = new Map()\n /** @type {string[]} */\n const order = []\n for await (const { cid, blockLength, blockOffset } of iterable) {\n const cidStr = cid.toString()\n index.set(cidStr, { blockLength, blockOffset })\n order.push(cidStr)\n }\n return new CarIndexedReader(iterable.version, path, await iterable.getRoots(), index, order)\n }\n}\n\nexport const __browser = false\n","import {\n asyncIterableReader,\n bytesReader,\n createDecoder\n} from './decoder.js'\n\n/**\n * @typedef {import('multiformats').CID} CID\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').RootsReader} RootsReader\n * @typedef {import('./api').BlockIndex} BlockIndex\n * @typedef {import('./coding').BytesReader} BytesReader\n */\n\n/**\n * Provides an iterator over all of the `Block`s in a CAR, returning their CIDs\n * and byte-location information. Implements an `AsyncIterable<BlockIndex>`.\n * Where a `BlockIndex` is a\n * `{ cid:CID, length:number, offset:number, blockLength:number, blockOffset:number }`.\n *\n * As an implementer of `AsyncIterable`, this class can be used directly in a\n * `for await (const blockIndex of iterator) {}` loop. Where the `iterator` is\n * constructed using {@link CarIndexer.fromBytes} or\n * {@link CarIndexer.fromIterable}.\n *\n * An iteration can only be performce _once_ per instantiation.\n *\n * `CarIndexer` also implements the `RootsReader` interface and provides\n * the {@link CarIndexer.getRoots `getRoots()`} method.\n *\n * Load this class with either\n * `import { CarIndexer } from '@ipld/car/indexer'`\n * (`const { CarIndexer } = require('@ipld/car/indexer')`). Or\n * `import { CarIndexer } from '@ipld/car'`\n * (`const { CarIndexer } = require('@ipld/car')`). The former will likely\n * result in smaller bundle sizes where this is important.\n *\n * @name CarIndexer\n * @class\n * @implements {RootsReader}\n * @implements {AsyncIterable<BlockIndex>}\n * @property {number} version The version number of the CAR referenced by this\n * reader (should be `1`).\n */\nexport class CarIndexer {\n /**\n * @param {number} version\n * @param {CID[]} roots\n * @param {AsyncGenerator<BlockIndex>} iterator\n */\n constructor (version, roots, iterator) {\n this._version = version\n this._roots = roots\n this._iterator = iterator\n }\n\n get version () {\n return this._version\n }\n\n /**\n * Get the list of roots defined by the CAR referenced by this indexer. May be\n * zero or more `CID`s.\n *\n * @function\n * @memberof CarIndexer\n * @instance\n * @async\n * @returns {Promise<CID[]>}\n */\n async getRoots () {\n return this._roots\n }\n\n /**\n * @returns {AsyncIterator<BlockIndex>}\n */\n [Symbol.asyncIterator] () {\n return this._iterator\n }\n\n /**\n * Instantiate a {@link CarIndexer} from a `Uint8Array` blob. Only the header\n * is decoded initially, the remainder is processed and emitted via the\n * iterator as it is consumed.\n *\n * @async\n * @static\n * @memberof CarIndexer\n * @param {Uint8Array} bytes\n * @returns {Promise<CarIndexer>}\n */\n static async fromBytes (bytes) {\n if (!(bytes instanceof Uint8Array)) {\n throw new TypeError('fromBytes() requires a Uint8Array')\n }\n return decodeIndexerComplete(bytesReader(bytes))\n }\n\n /**\n * Instantiate a {@link CarIndexer} from a `AsyncIterable<Uint8Array>`,\n * such as a [modern Node.js stream](https://nodejs.org/api/stream.html#stream_streams_compatibility_with_async_generators_and_async_iterators).\n * is decoded initially, the remainder is processed and emitted via the\n * iterator as it is consumed.\n *\n * @async\n * @static\n * @memberof CarIndexer\n * @param {AsyncIterable<Uint8Array>} asyncIterable\n * @returns {Promise<CarIndexer>}\n */\n static async fromIterable (asyncIterable) {\n if (!asyncIterable || !(typeof asyncIterable[Symbol.asyncIterator] === 'function')) {\n throw new TypeError('fromIterable() requires an async iterable')\n }\n return decodeIndexerComplete(asyncIterableReader(asyncIterable))\n }\n}\n\n/**\n * @private\n * @param {BytesReader} reader\n * @returns {Promise<CarIndexer>}\n */\nasync function decodeIndexerComplete (reader) {\n const decoder = createDecoder(reader)\n const { version, roots } = await decoder.header()\n\n return new CarIndexer(version, roots, decoder.blocksIndex())\n}\n","import { decode as decodeDagCbor } from '@ipld/dag-cbor'\nimport { CID } from 'multiformats/cid'\nimport * as Digest from 'multiformats/hashes/digest'\nimport { CIDV0_BYTES, decodeV2Header, decodeVarint, getMultihashLength, V2_HEADER_LENGTH } from './decoder-common.js'\nimport { CarV1HeaderOrV2Pragma } from './header-validator.js'\n\n/**\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').BlockHeader} BlockHeader\n * @typedef {import('./api').BlockIndex} BlockIndex\n * @typedef {import('./coding').BytesReader} BytesReader\n * @typedef {import('./coding').CarHeader} CarHeader\n * @typedef {import('./coding').CarV2Header} CarV2Header\n * @typedef {import('./coding').CarV2FixedHeader} CarV2FixedHeader\n * @typedef {import('./coding').CarDecoder} CarDecoder\n */\n\n/**\n * Reads header data from a `BytesReader`. The header may either be in the form\n * of a `CarHeader` or `CarV2Header` depending on the CAR being read.\n *\n * @name async decoder.readHeader(reader)\n * @param {BytesReader} reader\n * @param {number} [strictVersion]\n * @returns {Promise<CarHeader|CarV2Header>}\n */\nexport async function readHeader (reader, strictVersion) {\n const length = decodeVarint(await reader.upTo(8), reader)\n if (length === 0) {\n throw new Error('Invalid CAR header (zero length)')\n }\n const header = await reader.exactly(length, true)\n const block = decodeDagCbor(header)\n if (CarV1HeaderOrV2Pragma.toTyped(block) === undefined) {\n throw new Error('Invalid CAR header format')\n }\n if ((block.version !== 1 && block.version !== 2) || (strictVersion !== undefined && block.version !== strictVersion)) {\n throw new Error(`Invalid CAR version: ${block.version}${strictVersion !== undefined ? ` (expected ${strictVersion})` : ''}`)\n }\n if (block.version === 1) {\n // CarV1HeaderOrV2Pragma makes roots optional, let's make it mandatory\n if (!Array.isArray(block.roots)) {\n throw new Error('Invalid CAR header format')\n }\n return block\n }\n // version 2\n if (block.roots !== undefined) {\n throw new Error('Invalid CAR header format')\n }\n const v2Header = decodeV2Header(await reader.exactly(V2_HEADER_LENGTH, true))\n reader.seek(v2Header.dataOffset - reader.pos)\n const v1Header = await readHeader(reader, 1)\n return Object.assign(v1Header, v2Header)\n}\n\n/**\n * @param {BytesReader} reader\n * @returns {Promise<CID>}\n */\nasync function readCid (reader) {\n const first = await reader.exactly(2, false)\n if (first[0] === CIDV0_BYTES.SHA2_256 && first[1] === CIDV0_BYTES.LENGTH) {\n // cidv0 32-byte sha2-256\n const bytes = await reader.exactly(34, true)\n const multihash = Digest.decode(bytes)\n return CID.create(0, CIDV0_BYTES.DAG_PB, multihash)\n }\n\n const version = decodeVarint(await reader.upTo(8), reader)\n if (version !== 1) {\n throw new Error(`Unexpected CID version (${version})`)\n }\n const codec = decodeVarint(await reader.upTo(8), reader)\n const bytes = await reader.exactly(getMultihashLength(await reader.upTo(8)), true)\n const multihash = Digest.decode(bytes)\n return CID.create(version, codec, multihash)\n}\n\n/**\n * Reads the leading data of an individual block from CAR data from a\n * `BytesReader`. Returns a `BlockHeader` object which contains\n * `{ cid, length, blockLength }` which can be used to either index the block\n * or read the block binary data.\n *\n * @name async decoder.readBlockHead(reader)\n * @param {BytesReader} reader\n * @returns {Promise<BlockHeader>}\n */\nexport async function readBlockHead (reader) {\n // length includes a CID + Binary, where CID has a variable length\n // we have to deal with\n const start = reader.pos\n let length = decodeVarint(await reader.upTo(8), reader)\n if (length === 0) {\n throw new Error('Invalid CAR section (zero length)')\n }\n length += (reader.pos - start)\n const cid = await readCid(reader)\n const blockLength = length - Number(reader.pos - start) // subtract CID length\n\n return { cid, length, blockLength }\n}\n\n/**\n * @param {BytesReader} reader\n * @returns {Promise<Block>}\n */\nasync function readBlock (reader) {\n const { cid, blockLength } = await readBlockHead(reader)\n const bytes = await reader.exactly(blockLength, true)\n return { bytes, cid }\n}\n\n/**\n * @param {BytesReader} reader\n * @returns {Promise<BlockIndex>}\n */\nasync function readBlockIndex (reader) {\n const offset = reader.pos\n const { cid, length, blockLength } = await readBlockHead(reader)\n const index = { cid, length, blockLength, offset, blockOffset: reader.pos }\n reader.seek(index.blockLength)\n return index\n}\n\n/**\n * Creates a `CarDecoder` from a `BytesReader`. The `CarDecoder` is as async\n * interface that will consume the bytes from the `BytesReader` to yield a\n * `header()` and either `blocks()` or `blocksIndex()` data.\n *\n * @name decoder.createDecoder(reader)\n * @param {BytesReader} reader\n * @returns {CarDecoder}\n */\nexport function createDecoder (reader) {\n const headerPromise = (async () => {\n const header = await readHeader(reader)\n if (header.version === 2) {\n const v1length = reader.pos - header.dataOffset\n reader = limitReader(reader, header.dataSize - v1length)\n }\n return header\n })()\n\n return {\n header: () => headerPromise,\n\n async * blocks () {\n await headerPromise\n while ((await reader.upTo(8)).length > 0) {\n yield await readBlock(reader)\n }\n },\n\n async * blocksIndex () {\n await headerPromise\n while ((await reader.upTo(8)).length > 0) {\n yield await readBlockIndex(reader)\n }\n }\n }\n}\n\n/**\n * Creates a `BytesReader` from a `Uint8Array`.\n *\n * @name decoder.bytesReader(bytes)\n * @param {Uint8Array} bytes\n * @returns {BytesReader}\n */\nexport function bytesReader (bytes) {\n let pos = 0\n\n /** @type {BytesReader} */\n return {\n async upTo (length) {\n const out = bytes.subarray(pos, pos + Math.min(length, bytes.length - pos))\n return out\n },\n\n async exactly (length, seek = false) {\n if (length > bytes.length - pos) {\n throw new Error('Unexpected end of data')\n }\n const out = bytes.subarray(pos, pos + length)\n if (seek) {\n pos += length\n }\n return out\n },\n\n seek (length) {\n pos += length\n },\n\n get pos () {\n return pos\n }\n }\n}\n\n/**\n * @ignore\n * reusable reader for streams and files, we just need a way to read an\n * additional chunk (of some undetermined size) and a way to close the\n * reader when finished\n * @param {() => Promise<Uint8Array|null>} readChunk\n * @returns {BytesReader}\n */\nexport function chunkReader (readChunk /*, closer */) {\n let pos = 0\n let have = 0\n let offset = 0\n let currentChunk = new Uint8Array(0)\n\n const read = async (/** @type {number} */ length) => {\n have = currentChunk.length - offset\n const bufa = [currentChunk.subarray(offset)]\n while (have < length) {\n const chunk = await readChunk()\n if (chunk == null) {\n break\n }\n /* c8 ignore next 8 */\n // undo this ignore ^ when we have a fd implementation that can seek()\n if (have < 0) { // because of a seek()\n /* c8 ignore next 4 */\n // toohard to test the else\n if (chunk.length > have) {\n bufa.push(chunk.subarray(-have))\n } // else discard\n } else {\n bufa.push(chunk)\n }\n have += chunk.length\n }\n currentChunk = new Uint8Array(bufa.reduce((p, c) => p + c.length, 0))\n let off = 0\n for (const b of bufa) {\n currentChunk.set(b, off)\n off += b.length\n }\n offset = 0\n }\n\n /** @type {BytesReader} */\n return {\n async upTo (length) {\n if (currentChunk.length - offset < length) {\n await read(length)\n }\n return currentChunk.subarray(offset, offset + Math.min(currentChunk.length - offset, length))\n },\n\n async exactly (length, seek = false) {\n if (currentChunk.length - offset < length) {\n await read(length)\n }\n if (currentChunk.length - offset < length) {\n throw new Error('Unexpected end of data')\n }\n const out = currentChunk.subarray(offset, offset + length)\n if (seek) {\n pos += length\n offset += length\n }\n return out\n },\n\n seek (length) {\n pos += length\n offset += length\n },\n\n get pos () {\n return pos\n }\n }\n}\n\n/**\n * Creates a `BytesReader` from an `AsyncIterable<Uint8Array>`, which allows for\n * consumption of CAR data from a streaming source.\n *\n * @name decoder.asyncIterableReader(asyncIterable)\n * @param {AsyncIterable<Uint8Array>} asyncIterable\n * @returns {BytesReader}\n */\nexport function asyncIterableReader (asyncIterable) {\n const iterator = asyncIterable[Symbol.asyncIterator]()\n\n async function readChunk () {\n const next = await iterator.next()\n if (next.done) {\n return null\n }\n return next.value\n }\n\n return chunkReader(readChunk)\n}\n\n/**\n * Wraps a `BytesReader` in a limiting `BytesReader` which limits maximum read\n * to `byteLimit` bytes. It _does not_ update `pos` of the original\n * `BytesReader`.\n *\n * @name decoder.limitReader(reader, byteLimit)\n * @param {BytesReader} reader\n * @param {number} byteLimit\n * @returns {BytesReader}\n */\nexport function limitReader (reader, byteLimit) {\n let bytesRead = 0\n\n /** @type {BytesReader} */\n return {\n async upTo (length) {\n let bytes = await reader.upTo(length)\n if (bytes.length + bytesRead > byteLimit) {\n bytes = bytes.subarray(0, byteLimit - bytesRead)\n }\n return bytes\n },\n\n async exactly (length, seek = false) {\n const bytes = await reader.exactly(length, seek)\n if (bytes.length + bytesRead > byteLimit) {\n throw new Error('Unexpected end of data')\n }\n if (seek) {\n bytesRead += length\n }\n return bytes\n },\n\n seek (length) {\n bytesRead += length\n reader.seek(length)\n },\n\n get pos () {\n return reader.pos\n }\n }\n}\n","import fs from 'fs'\nimport { promisify } from 'util'\nimport { CarReader as BrowserCarReader } from './reader-browser.js'\n\n/**\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').BlockIndex} BlockIndex\n * @typedef {import('./api').CarReader} CarReaderIface\n */\n\nconst fsread = promisify(fs.read)\n\n/**\n * @class\n * @implements {CarReaderIface}\n */\nexport class CarReader extends BrowserCarReader {\n /**\n * Reads a block directly from a file descriptor for an open CAR file. This\n * function is **only available in Node.js** and not a browser environment.\n *\n * This function can be used in connection with {@link CarIndexer} which emits\n * the `BlockIndex` objects that are required by this function.\n *\n * The user is responsible for opening and closing the file used in this call.\n *\n * @async\n * @static\n * @memberof CarReader\n * @param {fs.promises.FileHandle | number} fd - A file descriptor from the\n * Node.js `fs` module. Either an integer, from `fs.open()` or a `FileHandle`\n * from `fs.promises.open()`.\n * @param {BlockIndex} blockIndex - An index pointing to the location of the\n * Block required. This `BlockIndex` should take the form:\n * `{cid:CID, blockLength:number, blockOffset:number}`.\n * @returns {Promise<Block>} A `{ cid:CID, bytes:Uint8Array }` pair.\n */\n static async readRaw (fd, blockIndex) {\n const { cid, blockLength, blockOffset } = blockIndex\n const bytes = new Uint8Array(blockLength)\n let read\n if (typeof fd === 'number') {\n read = (await fsread(fd, bytes, 0, blockLength, blockOffset)).bytesRead\n } else if (typeof fd === 'object' && typeof fd.read === 'function') { // FileDescriptor\n read = (await fd.read(bytes, 0, blockLength, blockOffset)).bytesRead\n } else {\n throw new TypeError('Bad fd')\n }\n if (read !== blockLength) {\n throw new Error(`Failed to read entire block (${read} instead of ${blockLength})`)\n }\n return { cid, bytes }\n }\n}\n\nexport const __browser = false\n","import { asyncIterableReader, bytesReader, createDecoder } from './decoder.js'\n\n/**\n * @typedef {import('multiformats').CID} CID\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').CarReader} CarReaderIface\n * @typedef {import('./coding').BytesReader} BytesReader\n * @typedef {import('./coding').CarHeader} CarHeader\n * @typedef {import('./coding').CarV2Header} CarV2Header\n */\n\n/**\n * Provides blockstore-like access to a CAR.\n *\n * Implements the `RootsReader` interface:\n * {@link CarReader.getRoots `getRoots()`}. And the `BlockReader` interface:\n * {@link CarReader.get `get()`}, {@link CarReader.has `has()`},\n * {@link CarReader.blocks `blocks()`} (defined as a `BlockIterator`) and\n * {@link CarReader.cids `cids()`} (defined as a `CIDIterator`).\n *\n * Load this class with either `import { CarReader } from '@ipld/car/reader'`\n * (`const { CarReader } = require('@ipld/car/reader')`). Or\n * `import { CarReader } from '@ipld/car'` (`const { CarReader } = require('@ipld/car')`).\n * The former will likely result in smaller bundle sizes where this is\n * important.\n *\n * @name CarReader\n * @class\n * @implements {CarReaderIface}\n * @property {number} version The version number of the CAR referenced by this\n * reader (should be `1` or `2`).\n */\nexport class CarReader {\n /**\n * @constructs CarReader\n * @param {CarHeader|CarV2Header} header\n * @param {Block[]} blocks\n */\n constructor (header, blocks) {\n this._header = header\n this._blocks = blocks\n this._keys = blocks.map((b) => b.cid.toString())\n }\n\n /**\n * @property\n * @memberof CarReader\n * @instance\n */\n get version () {\n return this._header.version\n }\n\n /**\n * Get the list of roots defined by the CAR referenced by this reader. May be\n * zero or more `CID`s.\n *\n * @function\n * @memberof CarReader\n * @instance\n * @async\n * @returns {Promise<CID[]>}\n */\n async getRoots () {\n return this._header.roots\n }\n\n /**\n * Check whether a given `CID` exists within the CAR referenced by this\n * reader.\n *\n * @function\n * @memberof CarReader\n * @instance\n * @async\n * @param {CID} key\n * @returns {Promise<boolean>}\n */\n async has (key) {\n return this._keys.indexOf(key.toString()) > -1\n }\n\n /**\n * Fetch a `Block` (a `{ cid:CID, bytes:Uint8Array }` pair) from the CAR\n * referenced by this reader matching the provided `CID`. In the case where\n * the provided `CID` doesn't exist within the CAR, `undefined` will be\n * returned.\n *\n * @function\n * @memberof CarReader\n * @instance\n * @async\n * @param {CID} key\n * @returns {Promise<Block | undefined>}\n */\n async get (key) {\n const index = this._keys.indexOf(key.toString())\n return index > -1 ? this._blocks[index] : undefined\n }\n\n /**\n * Returns a `BlockIterator` (`AsyncIterable<Block>`) that iterates over all\n * of the `Block`s (`{ cid:CID, bytes:Uint8Array }` pairs) contained within\n * the CAR referenced by this reader.\n *\n * @function\n * @memberof CarReader\n * @instance\n * @async\n * @generator\n * @returns {AsyncGenerator<Block>}\n */\n async * blocks () {\n for (const block of this._blocks) {\n yield block\n }\n }\n\n /**\n * Returns a `CIDIterator` (`AsyncIterable<CID>`) that iterates over all of\n * the `CID`s contained within the CAR referenced by this reader.\n *\n * @function\n * @memberof CarReader\n * @instance\n * @async\n * @generator\n * @returns {AsyncGenerator<CID>}\n */\n async * cids () {\n for (const block of this._blocks) {\n yield block.cid\n }\n }\n\n /**\n * Instantiate a {@link CarReader} from a `Uint8Array` blob. This performs a\n * decode fully in memory and maintains the decoded state in memory for full\n * access to the data via the `CarReader` API.\n *\n * @async\n * @static\n * @memberof CarReader\n * @param {Uint8Array} bytes\n * @returns {Promise<CarReader>}\n */\n static async fromBytes (bytes) {\n if (!(bytes instanceof Uint8Array)) {\n throw new TypeError('fromBytes() requires a Uint8Array')\n }\n return decodeReaderComplete(bytesReader(bytes))\n }\n\n /**\n * Instantiate a {@link CarReader} from a `AsyncIterable<Uint8Array>`, such as\n * a [modern Node.js stream](https://nodejs.org/api/stream.html#stream_streams_compatibility_with_async_generators_and_async_iterators).\n * This performs a decode fully in memory and maintains the decoded state in\n * memory for full access to the data via the `CarReader` API.\n *\n * Care should be taken for large archives; this API may not be appropriate\n * where memory is a concern or the archive is potentially larger than the\n * amount of memory that the runtime can handle.\n *\n * @async\n * @static\n * @memberof CarReader\n * @param {AsyncIterable<Uint8Array>} asyncIterable\n * @returns {Promise<CarReader>}\n */\n static async fromIterable (asyncIterable) {\n if (!asyncIterable || !(typeof asyncIterable[Symbol.asyncIterator] === 'function')) {\n throw new TypeError('fromIterable() requires an async iterable')\n }\n return decodeReaderComplete(asyncIterableReader(asyncIterable))\n }\n}\n\n/**\n * @private\n * @param {BytesReader} reader\n * @returns {Promise<CarReader>}\n */\nexport async function decodeReaderComplete (reader) {\n const decoder = createDecoder(reader)\n const header = await decoder.header()\n const blocks = []\n for await (const block of decoder.blocks()) {\n blocks.push(block)\n }\n\n return new CarReader(header, blocks)\n}\n\nexport const __browser = true\n","import {\n asyncIterableReader,\n bytesReader,\n createDecoder\n} from './decoder.js'\n\n/**\n * @typedef {import('multiformats').CID} CID\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').RootsReader} RootsReader\n * @typedef {import('./coding').BytesReader} BytesReader\n */\n\n/**\n * @class\n * @implements {RootsReader}\n * @property {number} version The version number of the CAR referenced by this reader (should be `1`).\n */\nexport class CarIteratorBase {\n /**\n * @param {number} version\n * @param {CID[]} roots\n * @param {AsyncIterable<Block>|void} iterable\n */\n constructor (version, roots, iterable) {\n this._version = version\n this._roots = roots\n this._iterable = iterable\n this._decoded = false\n }\n\n get version () {\n return this._version\n }\n\n /**\n * @returns {Promise<CID[]>}\n */\n async getRoots () {\n return this._roots\n }\n}\n\n/**\n * Provides an iterator over all of the `Block`s in a CAR. Implements a\n * `BlockIterator` interface, or `AsyncIterable<Block>`. Where a `Block` is\n * a `{ cid:CID, bytes:Uint8Array }` pair.\n *\n * As an implementer of `AsyncIterable`, this class can be used directly in a\n * `for await (const block of iterator) {}` loop. Where the `iterator` is\n * constructed using {@link CarBlockiterator.fromBytes} or\n * {@link CarBlockiterator.fromIterable}.\n *\n * An iteration can only be performce _once_ per instantiation.\n *\n * `CarBlockIterator` also implements the `RootsReader` interface and provides\n * the {@link CarBlockiterator.getRoots `getRoots()`} method.\n *\n * Load this class with either\n * `import { CarBlockIterator } from '@ipld/car/iterator'`\n * (`const { CarBlockIterator } = require('@ipld/car/iterator')`). Or\n * `import { CarBlockIterator } from '@ipld/car'`\n * (`const { CarBlockIterator } = require('@ipld/car')`).\n *\n * @name CarBlockIterator\n * @class\n * @implements {RootsReader}\n * @implements {AsyncIterable<Block>}\n * @property {number} version The version number of the CAR referenced by this\n * iterator (should be `1`).\n */\nexport class CarBlockIterator extends CarIteratorBase {\n // inherited method\n /**\n * Get the list of roots defined by the CAR referenced by this iterator. May be\n * zero or more `CID`s.\n *\n * @function getRoots\n * @memberof CarBlockIterator\n * @instance\n * @async\n * @returns {Promise<CID[]>}\n */\n\n /**\n * @returns {AsyncIterator<Block>}\n */\n [Symbol.asyncIterator] () {\n if (this._decoded) {\n throw new Error('Cannot decode more than once')\n }\n /* c8 ignore next 3 */\n if (!this._iterable) {\n throw new Error('Block iterable not found')\n }\n this._decoded = true\n return this._iterable[Symbol.asyncIterator]()\n }\n\n /**\n * Instantiate a {@link CarBlockIterator} from a `Uint8Array` blob. Rather\n * than decoding the entire byte array prior to returning the iterator, as in\n * {@link CarReader.fromBytes}, only the header is decoded and the remainder\n * of the CAR is parsed as the `Block`s as yielded.\n *\n * @async\n * @static\n * @memberof CarBlockIterator\n * @param {Uint8Array} bytes\n * @returns {Promise<CarBlockIterator>}\n */\n static async fromBytes (bytes) {\n const { version, roots, iterator } = await fromBytes(bytes)\n return new CarBlockIterator(version, roots, iterator)\n }\n\n /**\n * Instantiate a {@link CarBlockIterator} from a `AsyncIterable<Uint8Array>`,\n * such as a [modern Node.js stream](https://nodejs.org/api/stream.html#stream_streams_compatibility_with_async_generators_and_async_iterators).\n * Rather than decoding the entire byte array prior to returning the iterator,\n * as in {@link CarReader.fromIterable}, only the header is decoded and the\n * remainder of the CAR is parsed as the `Block`s as yielded.\n *\n * @async\n * @static\n * @param {AsyncIterable<Uint8Array>} asyncIterable\n * @returns {Promise<CarBlockIterator>}\n */\n static async fromIterable (asyncIterable) {\n const { version, roots, iterator } = await fromIterable(asyncIterable)\n return new CarBlockIterator(version, roots, iterator)\n }\n}\n\n/**\n * Provides an iterator over all of the `CID`s in a CAR. Implements a\n * `CIDIterator` interface, or `AsyncIterable<CID>`. Similar to\n * {@link CarBlockIterator} but only yields the CIDs in the CAR.\n *\n * As an implementer of `AsyncIterable`, this class can be used directly in a\n * `for await (const cid of iterator) {}` loop. Where the `iterator` is\n * constructed using {@link CarCIDiterator.fromBytes} or\n * {@link CarCIDiterator.fromIterable}.\n *\n * An iteration can only be performce _once_ per instantiation.\n *\n * `CarCIDIterator` also implements the `RootsReader` interface and provides\n * the {@link CarCIDiterator.getRoots `getRoots()`} method.\n *\n * Load this class with either\n * `import { CarCIDIterator } from '@ipld/car/iterator'`\n * (`const { CarCIDIterator } = require('@ipld/car/iterator')`). Or\n * `import { CarCIDIterator } from '@ipld/car'`\n * (`const { CarCIDIterator } = require('@ipld/car')`).\n *\n * @name CarCIDIterator\n * @class\n * @implements {RootsReader}\n * @implements {AsyncIterable<CID>}\n * @property {number} version The version number of the CAR referenced by this\n * iterator (should be `1`).\n */\nexport class CarCIDIterator extends CarIteratorBase {\n // inherited method\n /**\n * Get the list of roots defined by the CAR referenced by this iterator. May be\n * zero or more `CID`s.\n *\n * @function getRoots\n * @memberof CarCIDIterator\n * @instance\n * @async\n * @returns {Promise<CID[]>}\n */\n\n /**\n * @returns {AsyncIterator<CID>}\n */\n [Symbol.asyncIterator] () {\n if (this._decoded) {\n throw new Error('Cannot decode more than once')\n }\n /* c8 ignore next 3 */\n if (!this._iterable) {\n throw new Error('Block iterable not found')\n }\n this._decoded = true\n const iterable = this._iterable[Symbol.asyncIterator]()\n return {\n async next () {\n const next = await iterable.next()\n if (next.done) {\n return next\n }\n return { done: false, value: next.value.cid }\n }\n }\n }\n\n /**\n * Instantiate a {@link CarCIDIterator} from a `Uint8Array` blob. Rather\n * than decoding the entire byte array prior to returning the iterator, as in\n * {@link CarReader.fromBytes}, only the header is decoded and the remainder\n * of the CAR is parsed as the `CID`s as yielded.\n *\n * @async\n * @static\n * @memberof CarCIDIterator\n * @param {Uint8Array} bytes\n * @returns {Promise<CarCIDIterator>}\n */\n static async fromBytes (bytes) {\n const { version, roots, iterator } = await fromBytes(bytes)\n return new CarCIDIterator(version, roots, iterator)\n }\n\n /**\n * Instantiate a {@link CarCIDIterator} from a `AsyncIterable<Uint8Array>`,\n * such as a [modern Node.js stream](https://nodejs.org/api/stream.html#stream_streams_compatibility_with_async_generators_and_async_iterators).\n * Rather than decoding the entire byte array prior to returning the iterator,\n * as in {@link CarReader.fromIterable}, only the header is decoded and the\n * remainder of the CAR is parsed as the `CID`s as yielded.\n *\n * @async\n * @static\n * @memberof CarCIDIterator\n * @param {AsyncIterable<Uint8Array>} asyncIterable\n * @returns {Promise<CarCIDIterator>}\n */\n static async fromIterable (asyncIterable) {\n const { version, roots, iterator } = await fromIterable(asyncIterable)\n return new CarCIDIterator(version, roots, iterator)\n }\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {Promise<{ version:number, roots:CID[], iterator:AsyncIterable<Block>}>}\n */\nasync function fromBytes (bytes) {\n if (!(bytes instanceof Uint8Array)) {\n throw new TypeError('fromBytes() requires a Uint8Array')\n }\n return decodeIterator(bytesReader(bytes))\n}\n\n/**\n * @param {AsyncIterable<Uint8Array>} asyncIterable\n * @returns {Promise<{ version:number, roots:CID[], iterator:AsyncIterable<Block>}>}\n */\nasync function fromIterable (asyncIterable) {\n if (!asyncIterable || !(typeof asyncIterable[Symbol.asyncIterator] === 'function')) {\n throw new TypeError('fromIterable() requires an async iterable')\n }\n return decodeIterator(asyncIterableReader(asyncIterable))\n}\n\n/**\n * @private\n * @param {BytesReader} reader\n * @returns {Promise<{ version:number, roots:CID[], iterator:AsyncIterable<Block>}>}\n */\nasync function decodeIterator (reader) {\n const decoder = createDecoder(reader)\n const { version, roots } = await decoder.header()\n return { version, roots, iterator: decoder.blocks() }\n}\n","import fs from 'fs'\nimport { promisify } from 'util'\nimport { readHeader, chunkReader } from './decoder.js'\nimport { createHeader } from './encoder.js'\nimport { CarWriter as BrowserCarWriter } from './writer-browser.js'\n\nconst fsread = promisify(fs.read)\nconst fswrite = promisify(fs.write)\n\n/**\n * @typedef {import('multiformats/cid').CID} CID\n * @typedef {import('./api').BlockWriter} BlockWriter\n */\n\n/**\n * @class\n * @implements {BlockWriter}\n */\nexport class CarWriter extends BrowserCarWriter {\n /**\n * Update the list of roots in the header of an existing CAR file. The first\n * argument must be a file descriptor for CAR file that is open in read and\n * write mode (not append), e.g. `fs.open` or `fs.promises.open` with `'r+'`\n * mode.\n *\n * This operation is an _overwrite_, the total length of the CAR will not be\n * modified. A rejection will occur if the new header will not be the same\n * length as the existing header, in which case the CAR will not be modified.\n * It is the responsibility of the user to ensure that the roots being\n * replaced encode as the same length as the new roots.\n *\n * This function is **only available in Node.js** and not a browser\n * environment.\n *\n * @async\n * @static\n * @memberof CarWriter\n * @param {fs.promises.FileHandle | number} fd - A file descriptor from the\n * Node.js `fs` module. Either an integer, from `fs.open()` or a `FileHandle`\n * from `fs.promises.open()`.\n * @param {CID[]} roots - A new list of roots to replace the existing list in\n * the CAR header. The new header must take up the same number of bytes as the\n * existing header, so the roots should collectively be the same byte length\n * as the existing roots.\n * @returns {Promise<void>}\n */\n static async updateRootsInFile (fd, roots) {\n const chunkSize = 256\n /** @type {Uint8Array} */\n let bytes\n let offset = 0\n\n /** @type {() => Promise<number>} */\n let readChunk\n if (typeof fd === 'number') {\n readChunk = async () => (await fsread(fd, bytes, 0, chunkSize, offset)).bytesRead\n } else if (typeof fd === 'object' && typeof fd.read === 'function') { // FileDescriptor\n readChunk = async () => (await fd.read(bytes, 0, chunkSize, offset)).bytesRead\n } else {\n throw new TypeError('Bad fd')\n }\n const fdReader = chunkReader(async () => {\n bytes = new Uint8Array(chunkSize) // need a new chunk each time, can't reuse old\n const read = await readChunk()\n offset += read\n /* eslint no-warning-comments: 0 */\n // TODO: test header > 256 bytes\n return read < chunkSize ? bytes.subarray(0, read) : bytes\n })\n\n await readHeader(fdReader)\n const newHeader = createHeader(roots)\n if (fdReader.pos !== newHeader.length) {\n throw new Error(`updateRoots() can only overwrite a header of the same length (old header is ${fdReader.pos} bytes, new header is ${newHeader.length} bytes)`)\n }\n if (typeof fd === 'number') {\n await fswrite(fd, newHeader, 0, newHeader.length, 0)\n } else if (typeof fd === 'object' && typeof fd.read === 'function') { // FileDescriptor\n await fd.write(newHeader, 0, newHeader.length, 0)\n }\n }\n}\n\nexport const __browser = false\n","import { encode as dagCborEncode } from '@ipld/dag-cbor'\nimport varint from 'varint'\n\n/**\n * @typedef {import('multiformats').CID} CID\n * @typedef {import('./api').Block} Block\n * @typedef {import('./coding').CarEncoder} CarEncoder\n * @typedef {import('./coding').IteratorChannel_Writer<Uint8Array>} IteratorChannel_Writer\n */\n\n/**\n * Create a header from an array of roots.\n *\n * @param {CID[]} roots\n * @returns {Uint8Array}\n */\nexport function createHeader (roots) {\n const headerBytes = dagCborEncode({ version: 1, roots })\n const varintBytes = varint.encode(headerBytes.length)\n const header = new Uint8Array(varintBytes.length + headerBytes.length)\n header.set(varintBytes, 0)\n header.set(headerBytes, varintBytes.length)\n return header\n}\n\n/**\n * @param {IteratorChannel_Writer} writer\n * @returns {CarEncoder}\n */\nfunction createEncoder (writer) {\n // none of this is wrapped in a mutex, that needs to happen above this to\n // avoid overwrites\n\n return {\n /**\n * @param {CID[]} roots\n * @returns {Promise<void>}\n */\n async setRoots (roots) {\n const bytes = createHeader(roots)\n await writer.write(bytes)\n },\n\n /**\n * @param {Block} block\n * @returns {Promise<void>}\n */\n async writeBlock (block) {\n const { cid, bytes } = block\n await writer.write(new Uint8Array(varint.encode(cid.bytes.length + bytes.length)))\n await writer.write(cid.bytes)\n if (bytes.length) {\n // zero-length blocks are valid, but it'd be safer if we didn't write them\n await writer.write(bytes)\n }\n },\n\n /**\n * @returns {Promise<void>}\n */\n async close () {\n await writer.end()\n }\n }\n}\n\nexport { createEncoder }\n","import { CID } from 'multiformats/cid'\nimport { bytesReader, readHeader } from './decoder.js'\nimport { createEncoder, createHeader } from './encoder.js'\nimport { create as iteratorChannel } from './iterator-channel.js'\n\n/**\n * @typedef {import('./api').Block} Block\n * @typedef {import('./api').BlockWriter} BlockWriter\n * @typedef {import('./api').WriterChannel} WriterChannel\n * @typedef {import('./coding').CarEncoder} CarEncoder\n * @typedef {import('./coding').IteratorChannel<Uint8Array>} IteratorChannel\n */\n\n/**\n * Provides a writer interface for the creation of CAR files.\n *\n * Creation of a `CarWriter` involves the instatiation of an input / output pair\n * in the form of a `WriterChannel`, which is a\n * `{ writer:CarWriter, out:AsyncIterable<Uint8Array> }` pair. These two\n * components form what can be thought of as a stream-like interface. The\n * `writer` component (an instantiated `CarWriter`), has methods to\n * {@link CarWriter.put `put()`} new blocks and {@link CarWriter.put `close()`}\n * the writing operation (finalising the CAR archive). The `out` component is\n * an `AsyncIterable` that yields the bytes of the archive. This can be\n * redirected to a file or other sink. In Node.js, you can use the\n * [`Readable.from()`](https://nodejs.org/api/stream.html#stream_stream_readable_from_iterable_options)\n * API to convert this to a standard Node.js stream, or it can be directly fed\n * to a\n * [`stream.pipeline()`](https://nodejs.org/api/stream.html#stream_stream_pipeline_source_transforms_destination_callback).\n *\n * The channel will provide a form of backpressure. The `Promise` from a\n * `write()` won't resolve until the resulting data is drained from the `out`\n * iterable.\n *\n * It is also possible to ignore the `Promise` from `write()` calls and allow\n * the generated data to queue in memory. This should be avoided for large CAR\n * archives of course due to the memory costs and potential for memory overflow.\n *\n * Load this class with either\n * `import { CarWriter } from '@ipld/car/writer'`\n * (`const { CarWriter } = require('@ipld/car/writer')`). Or\n * `import { CarWriter } from '@ipld/car'`\n * (`const { CarWriter } = require('@ipld/car')`). The former will likely\n * result in smaller bundle sizes where this is important.\n *\n * @name CarWriter\n * @class\n * @implements {BlockWriter}\n */\nexport class CarWriter {\n /**\n * @param {CID[]} roots\n * @param {CarEncoder} encoder\n */\n constructor (roots, encoder) {\n this._encoder = encoder\n /** @type {Promise<void>} */\n this._mutex = encoder.setRoots(roots)\n this._ended = false\n }\n\n /**\n * Write a `Block` (a `{ cid:CID, bytes:Uint8Array }` pair) to the archive.\n *\n * @function\n * @memberof CarWriter\n * @instance\n * @async\n * @param {Block} block - A `{ cid:CID, bytes:Uint8Array }` pair.\n * @returns {Promise<void>} The returned promise will only resolve once the\n * bytes this block generates are written to the `out` iterable.\n */\n async put (block) {\n if (!(block.bytes instanceof Uint8Array) || !block.cid) {\n throw new TypeError('Can only write {cid, bytes} objects')\n }\n if (this._ended) {\n throw new Error('Already closed')\n }\n const cid = CID.asCID(block.cid)\n if (!cid) {\n throw new TypeError('Can only write {cid, bytes} objects')\n }\n this._mutex = this._mutex.then(() => this._encoder.writeBlock({ cid, bytes: block.bytes }))\n return this._mutex\n }\n\n /**\n * Finalise the CAR archive and signal that the `out` iterable should end once\n * any remaining bytes are written.\n *\n * @function\n * @memberof CarWriter\n * @instance\n * @async\n * @returns {Promise<void>}\n */\n async close () {\n if (this._ended) {\n throw new Error('Already closed')\n }\n await this._mutex\n this._ended = true\n return this._encoder.close()\n }\n\n /**\n * Create a new CAR writer \"channel\" which consists of a\n * `{ writer:CarWriter, out:AsyncIterable<Uint8Array> }` pair.\n *\n * @async\n * @static\n * @memberof CarWriter\n * @param {CID[] | CID | void} roots\n * @returns {WriterChannel} The channel takes the form of\n * `{ writer:CarWriter, out:AsyncIterable<Uint8Array> }`.\n */\n static create (roots) {\n roots = toRoots(roots)\n const { encoder, iterator } = encodeWriter()\n const writer = new CarWriter(roots, encoder)\n const out = new CarWriterOut(iterator)\n return { writer, out }\n }\n\n /**\n * Create a new CAR appender \"channel\" which consists of a\n * `{ writer:CarWriter, out:AsyncIterable<Uint8Array> }` pair.\n * This appender does not consider roots and does not produce a CAR header.\n * It is designed to append blocks to an _existing_ CAR archive. It is\n * expected that `out` will be concatenated onto the end of an existing\n * archive that already has a properly formatted header.\n *\n * @async\n * @static\n * @memberof CarWriter\n * @returns {WriterChannel} The channel takes the form of\n * `{ writer:CarWriter, out:AsyncIterable<Uint8Array> }`.\n */\n static createAppender () {\n const { encoder, iterator } = encodeWriter()\n encoder.setRoots = () => Promise.resolve()\n const writer = new CarWriter([], encoder)\n const out = new CarWriterOut(iterator)\n return { writer, out }\n }\n\n /**\n * Update the list of roots in the header of an existing CAR as represented\n * in a Uint8Array.\n *\n * This operation is an _overwrite_, the total length of the CAR will not be\n * modified. A rejection will occur if the new header will not be the same\n * length as the existing header, in which case the CAR will not be modified.\n * It is the responsibility of the user to ensure that the roots being\n * replaced encode as the same length as the new roots.\n *\n * The byte array passed in an argument will be modified and also returned\n * upon successful modification.\n *\n * @async\n * @static\n * @memberof CarWriter\n * @param {Uint8Array} bytes\n * @param {CID[]} roots - A new list of roots to replace the existing list in\n * the CAR header. The new header must take up the same number of bytes as the\n * existing header, so the roots should collectively be the same byte length\n * as the existing roots.\n * @returns {Promise<Uint8Array>}\n */\n static async updateRootsInBytes (bytes, roots) {\n const reader = bytesReader(bytes)\n await readHeader(reader)\n const newHeader = createHeader(roots)\n if (Number(reader.pos) !== newHeader.length) {\n throw new Error(`updateRoots() can only overwrite a header of the same length (old header is ${reader.pos} bytes, new header is ${newHeader.length} bytes)`)\n }\n bytes.set(newHeader, 0)\n return bytes\n }\n}\n\n/**\n * @class\n * @implements {AsyncIterable<Uint8Array>}\n */\nexport class CarWriterOut {\n /**\n * @param {AsyncIterator<Uint8Array>} iterator\n */\n constructor (iterator) {\n this._iterator = iterator\n }\n\n [Symbol.asyncIterator] () {\n if (this._iterating) {\n throw new Error('Multiple iterator not supported')\n }\n this._iterating = true\n return this._iterator\n }\n}\n\nfunction encodeWriter () {\n /** @type {IteratorChannel} */\n const iw = iteratorChannel()\n const { writer, iterator } = iw\n const encoder = createEncoder(writer)\n return { encoder, iterator }\n}\n\n/**\n * @private\n * @param {CID[] | CID | void} roots\n * @returns {CID[]}\n */\nfunction toRoots (roots) {\n if (roots === undefined) {\n return []\n }\n\n if (!Array.isArray(roots)) {\n const cid = CID.asCID(roots)\n if (!cid) {\n throw new TypeError('roots must be a single CID or an array of CIDs')\n }\n return [cid]\n }\n\n const _roots = []\n for (const root of roots) {\n const _root = CID.asCID(root)\n if (!_root) {\n throw new TypeError('roots must be a single CID or an array of CIDs')\n }\n _roots.push(_root)\n }\n return _roots\n}\n\nexport const __browser = true\n","/**\n * @template {any} T\n * @typedef {import('./coding').IteratorChannel<T>} IteratorChannel\n */\n\nfunction noop () {}\n\n/**\n * @template {any} T\n * @returns {IteratorChannel<T>}\n */\nexport function create () {\n /** @type {T[]} */\n const chunkQueue = []\n /** @type {Promise<void> | null} */\n let drainer = null\n let drainerResolver = noop\n let ended = false\n /** @type {Promise<IteratorResult<T>> | null} */\n let outWait = null\n let outWaitResolver = noop\n\n const makeDrainer = () => {\n if (!drainer) {\n drainer = new Promise((resolve) => {\n drainerResolver = () => {\n drainer = null\n drainerResolver = noop\n resolve()\n }\n })\n }\n return drainer\n }\n\n /**\n * @returns {IteratorChannel<T>}\n */\n const writer = {\n /**\n * @param {T} chunk\n * @returns {Promise<void>}\n */\n write (chunk) {\n chunkQueue.push(chunk)\n const drainer = makeDrainer()\n outWaitResolver()\n return drainer\n },\n\n async end () {\n ended = true\n const drainer = makeDrainer()\n outWaitResolver()\n await drainer\n }\n }\n\n /** @type {AsyncIterator<T>} */\n const iterator = {\n /** @returns {Promise<IteratorResult<T>>} */\n async next () {\n const chunk = chunkQueue.shift()\n if (chunk) {\n if (chunkQueue.length === 0) {\n drainerResolver()\n }\n return { done: false, value: chunk }\n }\n\n if (ended) {\n drainerResolver()\n return { done: true, value: undefined }\n }\n\n if (!outWait) {\n outWait = new Promise((resolve) => {\n outWaitResolver = () => {\n outWait = null\n outWaitResolver = noop\n return resolve(iterator.next())\n }\n })\n }\n\n return outWait\n }\n }\n\n return { writer, iterator }\n}\n","export * from './lib/logger'\n","import { isBrowser, isNode } from 'browser-or-node'\nimport stringify from 'fast-json-stable-stringify'\n\n/// /////////\n// CONFIG //\n/// /////////\n\nlet TIME_PREFIX_ENABLED = true\nlet PERFORMANCE_PREFIX_ENABLED = true\nif (isNode) {\n // console.debug('isNode checking', { process })\n TIME_PREFIX_ENABLED = process?.env?.LOGGER_TIME_PREFIX ? process?.env?.LOGGER_TIME_PREFIX === 'true' : true\n PERFORMANCE_PREFIX_ENABLED = process?.env?.LOGGER_PERF_PREFIX ? process?.env?.LOGGER_PERF_PREFIX === 'true' : true\n}\nconst DEFAULT_CONFIG = Object.freeze({\n prefix: undefined as string | undefined,\n performanceEnabled: PERFORMANCE_PREFIX_ENABLED,\n dimDebugOnServer: true,\n printOriginOnServer: true,\n serverInspectOptions: {},\n customFormattersOnServer: true,\n // Depth of stacktrace to show on server\n // - integer saying how many lines\n // - false to disable, true for all\n printStackLinesOnServer: false as boolean | number,\n dim: true,\n})\n\nexport type Config = Partial<typeof DEFAULT_CONFIG>\nexport type ConsoleFx = (...data: any[]) => void\nexport const StringFormatters = [\n // Format to string (Client console - currently not on server)\n // {\n // match: obj => obj instanceof Model,\n // format: m => {\n // const { displayName } = m\n // return `${m.constructor.name}#${m.ID}${displayName ? `{${displayName}}` : ''}`\n // },\n // },\n] as unknown as {\n match: (obj: any) => boolean\n format: (m: any) => string\n}[]\n\n// let applyCustomFormatters;\n// applyCustomFormatters = (value, config) => {\n// for (const formatter of StringFormatters) {\n// if (formatter.match(value)) return formatter.format(value);\n// }\n// if (!_.isString(value)) {\n// return util.inspect(value, config.inspectOptionsOnServer);\n// }\n// return value;\n// };\n\n/// ////////////////\n// RUNTIME STUFF //\n/// ////////////////\n\nexport class P {\n sinceFirst = 0\n sinceLast = 0\n constructor(sinceFirst: number, sinceLast: number) {\n Object.assign(this, { sinceFirst, sinceLast })\n }\n\n toString() {\n const sinceFirstNum = (this.sinceFirst * 0.001)\n const sinceFirst = sinceFirstNum.toFixed(sinceFirstNum < 5 ? 2 : 1) /* .padStart(3, ' ') */\n const sinceLast\n = this.sinceLast < 1000 // when >= 1s, format as seconds\n ? `${this.sinceLast.toFixed(0)}`.padStart(5, ' ')\n : `${`${(this.sinceLast * 0.001).toFixed(this.sinceLast < 10000 ? 1 : 0)}`.padStart(4, ' ')}s`\n return `[${[TIME_PREFIX_ENABLED ? sinceFirst : null, PERFORMANCE_PREFIX_ENABLED ? sinceLast : null].join(',')}]`\n }\n}\n\nexport class Style {\n constructor(style: string, string: string) {\n Object.assign(this, { style, string })\n }\n}\nlet formattersEnabled = false // for tracking if chrome formatters are enabled (don't change manually)\n\nexport class Logger {\n static ERROR = 2 as const\n static WARN = 4 as const\n static INFO = 6 as const // alias for LOG\n static LOG = 6 as const\n static DEBUG = 8 as const\n static VERBOSE = 10 as const\n\n static firstLog = 0\n static lastLog = 0\n\n /**\n * This is a clever way to log without the extra check on each log line.\n * Use it like this:\n * ```\n * const { WARN, LOG, DEBUG, VERBOSE } = Logger.setup(Logger.INFO); // eslint-disable-line no-unused-vars\n * LOG('message', data);\n * DEBUG(this.collectionName, '...')\n * if (!VERBOSE.isDisabled) {\n * const verboseStuff = generateVerboseStuff(); // computationally intensive\n * VERBOSE('Here it is:', verboseStuff)\n * }\n * ```\n *\n * @ param {number} level See {@link LVs}\n * @ param {object} config see DEFAULT_CONFIG\n * @ typedef {Function & {isDisabled: boolean, isEnabled: boolean, ...}} LogFunc\n * @ returns {{LOG: LogFunc, VERBOSE: LogFunc, DEBUG: LogFunc, WARN: LogFunc, ERROR: LogFunc}}\n */\n static setup(level: 2 | 4 | 6 | 8 | 10, config: Config = {}) {\n config = Object.assign({}, DEFAULT_CONFIG, config) // defaults(config, DEFAULT_CONFIG) // fyi this is like the reverse of Object.assign\n if(level>10) console.debug('setup logger',{config}) // manual overide to level:11 to show this trace\n \n const debugLogForStub = this.wrapLog(console.debug, { ...config, dim: config.dimDebugOnServer })\n const stub = (...args: any[]) => {\n // @ts-expect-error hack to enable DEBUG logging EVERYWHERE\n if (window?.FORCE_DISABLE_LOGLEVEL)\n debugLogForStub(...args)\n } // For disabled log-levels, we just return a stub function\n stub.isDisabled = true // this makes it possible to check, e.g. `DEBUG.isDisabled`\n stub.isEnabled = false // depending on syntactic preference\n const groupCollapsed = this.wrapLog(console.groupCollapsed, config)\n\n const addExtraFxs = (enabled: boolean, func: (...T: any) => void) =>/* : ((...T) => void & {isDisabled: boolean}) */ {\n // warning - weird TS hacks approaching:\n function group<T extends Func>(\n ...args: [...any[], T]\n ): ReturnType<T> extends Promise<any> ? Promise<ReturnType<T>> : ReturnType<T> {\n const functionToWrap = args[args.length - 1] as T\n\n if (functionToWrap as Func === stub)\n return functionToWrap() as ReturnType<T>\n\n groupCollapsed(...args.slice(0, -1)) // except last\n\n const asyncWrapper = async () => {\n try {\n const result = functionToWrap()\n return result instanceof Promise ? await result : result\n } finally {\n console.groupEnd()\n }\n }\n\n return asyncWrapper() as ReturnType<T> // Cast to bypass the Promise type inference\n }\n\n const realFunc = Object.assign(\n func.bind({}), // clone function - https://stackoverflow.com/a/6772648\n {\n isEnabled: enabled,\n isDisabled: !enabled,\n group,\n force: func,\n },\n )\n if (enabled) {\n return realFunc\n } else {\n return Object.assign(\n stub.bind({}), // clone stub function - https://stackoverflow.com/a/6772648\n {\n isEnabled: enabled,\n isDisabled: !enabled,\n group,\n force: realFunc,\n },\n )\n }\n }\n\n const ERRFX = addExtraFxs(level >= Logger.ERROR, this.wrapLog(console.error, config))\n const ERROR = (...params: any[]) => {\n ERRFX(...params)\n return new Error(stringify(params)) // return so we can throw it, stringify is fast & safe with circular references\n }\n\n return {\n ERROR,\n WARN: addExtraFxs(level >= Logger.WARN, this.wrapLog(console.warn, config)),\n LOG: addExtraFxs(level >= Logger.INFO, this.wrapLog(console.log, config)),\n DEBUG: addExtraFxs(level >= Logger.DEBUG, this.wrapLog(console.log, { ...config, dim: config.dimDebugOnServer })), // not using console.debug as that requires dev tools verbose to be enabled\n VERBOSE: addExtraFxs(level >= Logger.VERBOSE, this.wrapLog(console.debug, { ...config, dim: config.dimDebugOnServer })),\n }\n }\n\n static wrapLog(logFunc: ConsoleFx, config: Config) {\n if (!isNode) {\n // ℹ In browser we can only do some of the fancy things, because we cannot call console.log ourselves,\n // as that would pollute the stacktrace\n\n // ℹ Would be nice to get formtted links in devtools, but <a> tags are not allowed:\n // const stack = new Error().stack;\n // const origin = Logger.getOriginFromStack(stack);\n // const originFilename = origin.split('\\\\').pop().split('/').pop(); // eslint-disable-line\n // if (origin) fixedArgs.push({ link: originFilename, href: `http://localhost:63342/api/file/${origin}` });\n\n // on the client, we need to return the original log function, as otherwise the origin of the log is set to here\n // But luckily we can bind fixed parameters on the function:\n const fixedArgs = []\n // if the custom formatters are enabled, and we want performance logging - we add an instance of P as a prefix\n if (config.performanceEnabled) {\n const isChrome = isBrowser && navigator.userAgent.includes('Chrome')\n\n const p = isChrome\n ? ['', Logger.perf()] // this is a placeholder that gets replaced by the custom formatter\n : [] // [{ get perfNiceTry () { return Logger.perf().toString() } }] // this (of course) shows the time when you click the getter\n fixedArgs.push(...p) // if we start with a non-string, all strings are rendered with quotes :/\n }\n if (config.prefix) {\n if (formattersEnabled)\n fixedArgs.push(new Style('dim', config.prefix))\n else fixedArgs.push(config.prefix)\n }\n // console.log('logger-log', { config, fixedArgs })\n return logFunc.bind(console, ...fixedArgs)\n } else {\n // ℹ in nodejs we print the stack trace origin ourselves, so we can do a lot more things\n // TODO: re-import removed code - https://gitlab.com/onezoomin/ztax/ztax/-/commit/f6f9bde617cd9ae93d1bc4bc49a4b5275e4cbff2#b1d1e091ca27ae560becf7ae1b27a4d53d39c061\n return logFunc.bind(console)\n }\n }\n\n // static log(msg, logPerformance = true) {\n // const p = this.perf();\n // return logPerformance ? `${p} ${msg}` : msg;\n // }\n\n static perf(returnAsString = 0): P | string | undefined {\n if (!performance.now)\n return undefined // TODO: server? p = { now: require('performance-now') };\n const now = performance.now()\n if (!Logger.firstLog) {\n Logger.firstLog = now\n Logger.lastLog = now\n }\n const p = new P(now - Logger.firstLog, now - Logger.lastLog)\n Logger.lastLog = now\n return returnAsString ? p.toString() : p\n }\n\n // (for nodejs) ~ https://stackoverflow.com/a/47296370/1633985\n static getOriginFromStack(stack: any): string | undefined {\n let skippedFirst = false // the first one is Logger.js\n for (const line of stack.split('\\n')) {\n const matches = line.match(/^\\s+at\\s+(.*)/)\n if (matches) {\n if (skippedFirst) {\n // first line - current function\n // second line - caller (what we are looking for)\n return (\n matches[1]\n .trim() // Removes spaces\n // .replace(/^module /, '') // Removes 'module ' at beginning\n // .replace(/^at /, '') // Removes 'at ' at beginning\n // .replace(/^ \\(/, '') // Removes parentheseses around file\n // .replace(/\\)$/, '') // -||-\n .replace(__dirname, '') // Removes script folder path (if exists)\n )\n }\n skippedFirst = true\n }\n }\n }\n}\n\nif (isBrowser) { // isBrowser is not true for web workers\n // CLIENT or Worker //\n\n // @ts-expect-error window hack\n window.devtoolsFormatters = window.devtoolsFormatters ?? []\n // noinspection JSUnusedGlobalSymbols\n // @ts-expect-error window hack\n window.devtoolsFormatters.push(\n {\n // Custom formatters\n header: (obj: any) => {\n if (StringFormatters && StringFormatters.length) {\n for (const formatter of StringFormatters) {\n if (formatter.match(obj))\n return ['span', {}, formatter.format(obj)]\n }\n }\n return null\n },\n hasBody: () => true,\n },\n {\n // Performance object //\n // This is a sneaky way to show performance info withouth any extra calls when logging:\n // LOG(`...`)\n // it would work without this if we would have some way to intercept the call:\n // L.INFO('...') - a getter on L that adds the current time as prefix\n // LOG('...')() - returns the log function with all argumends bound\n // But instead we are adding a custom formatter that replaced the placeholder object of class P with the performance info\n header: (obj: any) => {\n if (!(obj instanceof P))\n return null\n if (!formattersEnabled)\n formattersEnabled = true\n const p = Logger.perf()\n return [\n 'span',\n { style: 'font-weight: light; color: grey' },\n p?.toString(),\n // ['a', { href: 'vscodium://file/home/manu/dev/tamera/bookr/imports/lib/utils/Logger.js' }, 'WOW'],\n ]\n },\n hasBody: () => false,\n },\n {\n // Style object\n header: (obj: { string: any }) => {\n if (!(obj instanceof Style))\n return null\n if (!formattersEnabled)\n formattersEnabled = true\n return ['span', { style: 'font-weight: light; color: grey; '/* font-style: italic; */ }, obj.string]\n },\n hasBody: () => false,\n },\n )\n}\nelse if (isNode) {\n // SERVER //\n // node stuff removed as it breaks/bloats webworker build\n}\n\nexport function logriniTest(): string {\n return 'logrini'\n}\n\ntype Func<T = any> = () => T\n"],"mappings":";;;;;;;;;AAAA;AAAA,2EAAAA,UAAA;AAAA;AAAA;AAAA,WAAO,UAAUC;AAEjB,QAAIC,OAAM;AAAV,QACIC,QAAO;AADX,QAEIC,UAAS,CAACD;AAFd,QAGIE,OAAM,KAAK,IAAI,GAAG,EAAE;AAExB,aAASJ,QAAO,KAAK,KAAK,QAAQ;AAChC,UAAI,OAAO,oBAAoB,MAAM,OAAO,kBAAkB;AAC5D,QAAAA,QAAO,QAAQ;AACf,cAAM,IAAI,WAAW,yBAAyB;AAAA,MAChD;AACA,YAAM,OAAO,CAAC;AACd,eAAS,UAAU;AACnB,UAAI,YAAY;AAEhB,aAAM,OAAOI,MAAK;AAChB,YAAI,QAAQ,IAAK,MAAM,MAAQH;AAC/B,eAAO;AAAA,MACT;AACA,aAAM,MAAME,SAAQ;AAClB,YAAI,QAAQ,IAAK,MAAM,MAAQF;AAC/B,iBAAS;AAAA,MACX;AACA,UAAI,MAAM,IAAI,MAAM;AAEpB,MAAAD,QAAO,QAAQ,SAAS,YAAY;AAEpC,aAAO;AAAA,IACT;AAAA;AAAA;;;AC7BA;AAAA,2EAAAK,UAAA;AAAA;AAAA;AAAA,WAAO,UAAUC;AAEjB,QAAIC,OAAM;AAAV,QACIC,QAAO;AAEX,aAASF,MAAKG,MAAK,QAAQ;AACzB,UAAI,MAAS,GACT,SAAS,UAAU,GACnB,QAAS,GACT,UAAU,QACVC,IACAC,KAAIF,KAAI;AAEZ,SAAG;AACD,YAAI,WAAWE,MAAK,QAAQ,IAAI;AAC9B,UAAAL,MAAK,QAAQ;AACb,gBAAM,IAAI,WAAW,yBAAyB;AAAA,QAChD;AACA,QAAAI,KAAID,KAAI,SAAS;AACjB,eAAO,QAAQ,MACVC,KAAIF,UAAS,SACbE,KAAIF,SAAQ,KAAK,IAAI,GAAG,KAAK;AAClC,iBAAS;AAAA,MACX,SAASE,MAAKH;AAEd,MAAAD,MAAK,QAAQ,UAAU;AAEvB,aAAO;AAAA,IACT;AAAA;AAAA;;;AC5BA;AAAA,2EAAAM,UAAA;AAAA;AAAA;AACA,QAAIC,MAAK,KAAK,IAAI,GAAI,CAAC;AACvB,QAAIC,MAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAIC,MAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAIC,MAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAIC,MAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAIC,MAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAIC,MAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAIC,MAAK,KAAK,IAAI,GAAG,EAAE;AACvB,QAAIC,MAAK,KAAK,IAAI,GAAG,EAAE;AAEvB,WAAO,UAAU,SAAU,OAAO;AAChC,aACE,QAAQR,MAAK,IACb,QAAQC,MAAK,IACb,QAAQC,MAAK,IACb,QAAQC,MAAK,IACb,QAAQC,MAAK,IACb,QAAQC,MAAK,IACb,QAAQC,MAAK,IACb,QAAQC,MAAK,IACb,QAAQC,MAAK,IACA;AAAA,IAEjB;AAAA;AAAA;;;ACxBA;AAAA,0EAAAC,UAAA;AAAA;AAAA;AAAA,WAAO,UAAU;AAAA,MACb,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,gBAAgB;AAAA,IACpB;AAAA;AAAA;;;ACJA;AAAA,gGAAAC,UAAA;AAAA;AAAA;AAEA,WAAO,eAAeA,UAAS,cAAc;AAAA,MAC3C,OAAO;AAAA,IACT,CAAC;AAED,QAAI,UAAU,OAAO,WAAW,cAAc,OAAO,OAAO,aAAa,WAAW,SAAU,KAAK;AAAE,aAAO,OAAO;AAAA,IAAK,IAAI,SAAU,KAAK;AAAE,aAAO,OAAO,OAAO,WAAW,cAAc,IAAI,gBAAgB,UAAU,QAAQ,OAAO,YAAY,WAAW,OAAO;AAAA,IAAK;AAE3Q,QAAIC,aAAY,OAAO,WAAW,eAAe,OAAO,OAAO,aAAa;AAE5E,QAAIC,UAAS,OAAO,YAAY,eAAe,QAAQ,YAAY,QAAQ,QAAQ,SAAS,QAAQ;AAEpG,QAAI,eAAe,OAAO,SAAS,cAAc,cAAc,QAAQ,IAAI,OAAO,YAAY,KAAK,eAAe,KAAK,YAAY,SAAS;AAM5I,QAAI,UAAU,OAAO,WAAW,eAAe,OAAO,SAAS,YAAY,OAAO,cAAc,gBAAgB,UAAU,UAAU,SAAS,SAAS,KAAK,UAAU,UAAU,SAAS,OAAO;AAE/L,QAAI,SAAS,OAAO,SAAS,eAAe,OAAO,KAAK,YAAY,eAAe,OAAO,KAAK,QAAQ,SAAS;AAEhH,IAAAF,SAAQ,YAAYC;AACpB,IAAAD,SAAQ,cAAc;AACtB,IAAAA,SAAQ,SAASE;AACjB,IAAAF,SAAQ,UAAU;AAClB,IAAAA,SAAQ,SAAS;AAAA;AAAA;;;AC1BjB;AAAA,kHAAAG,UAAA;AAAA;AAAA;AAEA,WAAO,UAAU,SAAU,MAAM,MAAM;AACnC,UAAI,CAAC;AAAM,eAAO,CAAC;AACnB,UAAI,OAAO,SAAS;AAAY,eAAO,EAAE,KAAK,KAAK;AACnD,UAAI,SAAU,OAAO,KAAK,WAAW,YAAa,KAAK,SAAS;AAEhE,UAAI,MAAM,KAAK,OAAQ,yBAAUC,IAAG;AAChC,eAAO,SAAU,MAAM;AACnB,iBAAO,SAAUC,IAAGC,IAAG;AACnB,gBAAI,OAAO,EAAE,KAAKD,IAAG,OAAO,KAAKA,EAAC,EAAE;AACpC,gBAAI,OAAO,EAAE,KAAKC,IAAG,OAAO,KAAKA,EAAC,EAAE;AACpC,mBAAOF,GAAE,MAAM,IAAI;AAAA,UACvB;AAAA,QACJ;AAAA,MACJ,EAAG,KAAK,GAAG;AAEX,UAAI,OAAO,CAAC;AACZ,aAAQ,SAASG,WAAW,MAAM;AAC9B,YAAI,QAAQ,KAAK,UAAU,OAAO,KAAK,WAAW,YAAY;AAC1D,iBAAO,KAAK,OAAO;AAAA,QACvB;AAEA,YAAI,SAAS;AAAW;AACxB,YAAI,OAAO,QAAQ;AAAU,iBAAO,SAAS,IAAI,IAAI,KAAK,OAAO;AACjE,YAAI,OAAO,SAAS;AAAU,iBAAO,KAAK,UAAU,IAAI;AAExD,YAAIC,IAAG;AACP,YAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,gBAAM;AACN,eAAKA,KAAI,GAAGA,KAAI,KAAK,QAAQA,MAAK;AAC9B,gBAAIA;AAAG,qBAAO;AACd,mBAAOD,WAAU,KAAKC,EAAC,CAAC,KAAK;AAAA,UACjC;AACA,iBAAO,MAAM;AAAA,QACjB;AAEA,YAAI,SAAS;AAAM,iBAAO;AAE1B,YAAI,KAAK,QAAQ,IAAI,MAAM,IAAI;AAC3B,cAAI;AAAQ,mBAAO,KAAK,UAAU,WAAW;AAC7C,gBAAM,IAAI,UAAU,uCAAuC;AAAA,QAC/D;AAEA,YAAI,YAAY,KAAK,KAAK,IAAI,IAAI;AAClC,YAAI,OAAO,OAAO,KAAK,IAAI,EAAE,KAAK,OAAO,IAAI,IAAI,CAAC;AAClD,cAAM;AACN,aAAKA,KAAI,GAAGA,KAAI,KAAK,QAAQA,MAAK;AAC9B,cAAI,MAAM,KAAKA,EAAC;AAChB,cAAI,QAAQD,WAAU,KAAK,GAAG,CAAC;AAE/B,cAAI,CAAC;AAAO;AACZ,cAAI;AAAK,mBAAO;AAChB,iBAAO,KAAK,UAAU,GAAG,IAAI,MAAM;AAAA,QACvC;AACA,aAAK,OAAO,WAAW,CAAC;AACxB,eAAO,MAAM,MAAM;AAAA,MACvB,EAAG,IAAI;AAAA,IACX;AAAA;AAAA;;;AC1DA;;;ACAA;;;ACAA;;;ACAA;;;ACAA;;;ACAA;AAAA,IAAI;AAAJ,IAAM;AAAN,IAAQ,IAAE,YAAU,OAAO,UAAQ,UAAQ;AAA3C,IAAgD,IAAE,KAAG,cAAY,OAAO,EAAE,QAAM,EAAE,QAAM,SAASE,IAAEC,IAAEC,IAAE;AAAC,SAAO,SAAS,UAAU,MAAM,KAAKF,IAAEC,IAAEC,EAAC;AAAC;AAAE,IAAE,KAAG,cAAY,OAAO,EAAE,UAAQ,EAAE,UAAQ,OAAO,wBAAsB,SAASF,IAAE;AAAC,SAAO,OAAO,oBAAoBA,EAAC,EAAE,OAAO,OAAO,sBAAsBA,EAAC,CAAC;AAAC,IAAE,SAASA,IAAE;AAAC,SAAO,OAAO,oBAAoBA,EAAC;AAAC;AAAE,IAAI,IAAE,OAAO,SAAO,SAASA,IAAE;AAAC,SAAOA,MAAGA;AAAC;AAAE,SAAS,IAAG;AAAC,IAAE,KAAK,KAAK,IAAI;AAAE;AAAC,IAAE,GAAE,EAAE,eAAa,GAAE,EAAE,UAAU,UAAQ,QAAO,EAAE,UAAU,eAAa,GAAE,EAAE,UAAU,gBAAc;AAAO,IAAI,IAAE;AAAG,SAAS,EAAEA,IAAE;AAAC,MAAG,cAAY,OAAOA;AAAE,UAAM,IAAI,UAAU,qEAAmE,OAAOA,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,WAASA,GAAE,gBAAc,EAAE,sBAAoBA,GAAE;AAAa;AAAC,SAAS,EAAEA,IAAEC,IAAEC,IAAEC,IAAE;AAAC,MAAIC,IAAEC,IAAEC,IAAEC;AAAE,MAAG,EAAEL,EAAC,GAAE,YAAUG,KAAEL,GAAE,YAAUK,KAAEL,GAAE,UAAQ,uBAAO,OAAO,IAAI,GAAEA,GAAE,eAAa,MAAI,WAASK,GAAE,gBAAcL,GAAE,KAAK,eAAcC,IAAEC,GAAE,WAASA,GAAE,WAASA,EAAC,GAAEG,KAAEL,GAAE,UAASM,KAAED,GAAEJ,EAAC,IAAG,WAASK;AAAE,IAAAA,KAAED,GAAEJ,EAAC,IAAEC,IAAE,EAAEF,GAAE;AAAA,WAAqB,cAAY,OAAOM,KAAEA,KAAED,GAAEJ,EAAC,IAAEE,KAAE,CAACD,IAAEI,EAAC,IAAE,CAACA,IAAEJ,EAAC,IAAEC,KAAEG,GAAE,QAAQJ,EAAC,IAAEI,GAAE,KAAKJ,EAAC,IAAGE,KAAE,EAAEJ,EAAC,KAAG,KAAGM,GAAE,SAAOF,MAAG,CAACE,GAAE,QAAO;AAAC,IAAAA,GAAE,SAAO;AAAG,QAAIE,KAAE,IAAI,MAAM,iDAA+CF,GAAE,SAAO,MAAI,OAAOL,EAAC,IAAE,mEAAmE;AAAE,IAAAO,GAAE,OAAK,+BAA8BA,GAAE,UAAQR,IAAEQ,GAAE,OAAKP,IAAEO,GAAE,QAAMF,GAAE,QAAOC,KAAEC,IAAE,WAAS,QAAQ,QAAM,QAAQ,KAAKD,EAAC;AAAA,EAAE;AAAC,SAAOP;AAAC;AAAC,SAAS,IAAG;AAAC,MAAG,CAAC,KAAK;AAAM,WAAO,KAAK,OAAO,eAAe,KAAK,MAAK,KAAK,MAAM,GAAE,KAAK,QAAM,MAAG,MAAI,UAAU,SAAO,KAAK,SAAS,KAAK,KAAK,MAAM,IAAE,KAAK,SAAS,MAAM,KAAK,QAAO,SAAS;AAAC;AAAC,SAAS,EAAEA,IAAEC,IAAEC,IAAE;AAAC,MAAIC,KAAE,EAAC,OAAM,OAAG,QAAO,QAAO,QAAOH,IAAE,MAAKC,IAAE,UAASC,GAAC,GAAEE,KAAE,EAAE,KAAKD,EAAC;AAAE,SAAOC,GAAE,WAASF,IAAEC,GAAE,SAAOC,IAAEA;AAAC;AAAC,SAAS,EAAEJ,IAAEC,IAAEC,IAAE;AAAC,MAAIC,KAAEH,GAAE;AAAQ,MAAG,WAASG;AAAE,WAAO,CAAC;AAAE,MAAIC,KAAED,GAAEF,EAAC;AAAE,SAAO,WAASG,KAAE,CAAC,IAAE,cAAY,OAAOA,KAAEF,KAAE,CAACE,GAAE,YAAUA,EAAC,IAAE,CAACA,EAAC,IAAEF,KAAE,SAASF,KAAE;AAAC,aAAQC,KAAE,IAAI,MAAMD,IAAE,MAAM,GAAEE,KAAE,GAAEA,KAAED,GAAE,QAAO,EAAEC;AAAE,MAAAD,GAAEC,EAAC,IAAEF,IAAEE,EAAC,EAAE,YAAUF,IAAEE,EAAC;AAAE,WAAOD;AAAA,EAAC,EAAEG,EAAC,IAAE,EAAEA,IAAEA,GAAE,MAAM;AAAC;AAAC,SAAS,EAAEJ,IAAE;AAAC,MAAIC,KAAE,KAAK;AAAQ,MAAG,WAASA,IAAE;AAAC,QAAIC,KAAED,GAAED,EAAC;AAAE,QAAG,cAAY,OAAOE;AAAE,aAAO;AAAE,QAAG,WAASA;AAAE,aAAOA,GAAE;AAAA,EAAM;AAAC,SAAO;AAAC;AAAC,SAAS,EAAEF,IAAEC,IAAE;AAAC,WAAQC,KAAE,IAAI,MAAMD,EAAC,GAAEE,KAAE,GAAEA,KAAEF,IAAE,EAAEE;AAAE,IAAAD,GAAEC,EAAC,IAAEH,GAAEG,EAAC;AAAE,SAAOD;AAAC;AAAC,OAAO,eAAe,GAAE,uBAAsB,EAAC,YAAW,MAAG,KAAI,WAAU;AAAC,SAAO;AAAC,GAAE,KAAI,SAASF,IAAE;AAAC,MAAG,YAAU,OAAOA,MAAGA,KAAE,KAAG,EAAEA,EAAC;AAAE,UAAM,IAAI,WAAW,oGAAkGA,KAAE,GAAG;AAAE,MAAEA;AAAE,EAAC,CAAC,GAAE,EAAE,OAAK,WAAU;AAAC,aAAS,KAAK,WAAS,KAAK,YAAU,OAAO,eAAe,IAAI,EAAE,YAAU,KAAK,UAAQ,uBAAO,OAAO,IAAI,GAAE,KAAK,eAAa,IAAG,KAAK,gBAAc,KAAK,iBAAe;AAAO,GAAE,EAAE,UAAU,kBAAgB,SAASA,IAAE;AAAC,MAAG,YAAU,OAAOA,MAAGA,KAAE,KAAG,EAAEA,EAAC;AAAE,UAAM,IAAI,WAAW,kFAAgFA,KAAE,GAAG;AAAE,SAAO,KAAK,gBAAcA,IAAE;AAAI,GAAE,EAAE,UAAU,kBAAgB,WAAU;AAAC,SAAO,EAAE,IAAI;AAAC,GAAE,EAAE,UAAU,OAAK,SAASA,IAAE;AAAC,WAAQC,KAAE,CAAC,GAAEC,KAAE,GAAEA,KAAE,UAAU,QAAOA;AAAI,IAAAD,GAAE,KAAK,UAAUC,EAAC,CAAC;AAAE,MAAIE,KAAE,YAAUJ,IAAEK,KAAE,KAAK;AAAQ,MAAG,WAASA;AAAE,IAAAD,KAAEA,MAAG,WAASC,GAAE;AAAA,WAAc,CAACD;AAAE,WAAO;AAAG,MAAGA,IAAE;AAAC,QAAIE;AAAE,QAAGL,GAAE,SAAO,MAAIK,KAAEL,GAAE,CAAC,IAAGK,cAAa;AAAM,YAAMA;AAAE,QAAIG,KAAE,IAAI,MAAM,sBAAoBH,KAAE,OAAKA,GAAE,UAAQ,MAAI,GAAG;AAAE,UAAMG,GAAE,UAAQH,IAAEG;AAAA,EAAC;AAAC,MAAIC,KAAEL,GAAEL,EAAC;AAAE,MAAG,WAASU;AAAE,WAAO;AAAG,MAAG,cAAY,OAAOA;AAAE,MAAEA,IAAE,MAAKT,EAAC;AAAA,OAAO;AAAC,QAAIM,KAAEG,GAAE,QAAOF,KAAE,EAAEE,IAAEH,EAAC;AAAE,SAAIL,KAAE,GAAEA,KAAEK,IAAE,EAAEL;AAAE,QAAEM,GAAEN,EAAC,GAAE,MAAKD,EAAC;AAAA,EAAE;AAAC,SAAO;AAAE,GAAE,EAAE,UAAU,cAAY,SAASD,IAAEC,IAAE;AAAC,SAAO,EAAE,MAAKD,IAAEC,IAAE,KAAE;AAAC,GAAE,EAAE,UAAU,KAAG,EAAE,UAAU,aAAY,EAAE,UAAU,kBAAgB,SAASD,IAAEC,IAAE;AAAC,SAAO,EAAE,MAAKD,IAAEC,IAAE,IAAE;AAAC,GAAE,EAAE,UAAU,OAAK,SAASD,IAAEC,IAAE;AAAC,SAAO,EAAEA,EAAC,GAAE,KAAK,GAAGD,IAAE,EAAE,MAAKA,IAAEC,EAAC,CAAC,GAAE;AAAI,GAAE,EAAE,UAAU,sBAAoB,SAASD,IAAEC,IAAE;AAAC,SAAO,EAAEA,EAAC,GAAE,KAAK,gBAAgBD,IAAE,EAAE,MAAKA,IAAEC,EAAC,CAAC,GAAE;AAAI,GAAE,EAAE,UAAU,iBAAe,SAASD,IAAEC,IAAE;AAAC,MAAIC,IAAEC,IAAEC,IAAEC,IAAEC;AAAE,MAAG,EAAEL,EAAC,GAAE,YAAUE,KAAE,KAAK;AAAS,WAAO;AAAK,MAAG,YAAUD,KAAEC,GAAEH,EAAC;AAAG,WAAO;AAAK,MAAGE,OAAID,MAAGC,GAAE,aAAWD;AAAE,SAAG,EAAE,KAAK,eAAa,KAAK,UAAQ,uBAAO,OAAO,IAAI,KAAG,OAAOE,GAAEH,EAAC,GAAEG,GAAE,kBAAgB,KAAK,KAAK,kBAAiBH,IAAEE,GAAE,YAAUD,EAAC;AAAA,WAAW,cAAY,OAAOC,IAAE;AAAC,SAAIE,KAAE,IAAGC,KAAEH,GAAE,SAAO,GAAEG,MAAG,GAAEA;AAAI,UAAGH,GAAEG,EAAC,MAAIJ,MAAGC,GAAEG,EAAC,EAAE,aAAWJ,IAAE;AAAC,QAAAK,KAAEJ,GAAEG,EAAC,EAAE,UAASD,KAAEC;AAAE;AAAA,MAAK;AAAC,QAAGD,KAAE;AAAE,aAAO;AAAK,UAAIA,KAAEF,GAAE,MAAM,IAAE,CAAC,SAASF,KAAEC,IAAE;AAAC,aAAKA,KAAE,IAAED,IAAE,QAAOC;AAAI,QAAAD,IAAEC,EAAC,IAAED,IAAEC,KAAE,CAAC;AAAE,MAAAD,IAAE,IAAI;AAAA,IAAE,EAAEE,IAAEE,EAAC,GAAE,MAAIF,GAAE,WAASC,GAAEH,EAAC,IAAEE,GAAE,CAAC,IAAG,WAASC,GAAE,kBAAgB,KAAK,KAAK,kBAAiBH,IAAEM,MAAGL,EAAC;AAAA,EAAE;AAAC,SAAO;AAAI,GAAE,EAAE,UAAU,MAAI,EAAE,UAAU,gBAAe,EAAE,UAAU,qBAAmB,SAASD,IAAE;AAAC,MAAIC,IAAEC,IAAEC;AAAE,MAAG,YAAUD,KAAE,KAAK;AAAS,WAAO;AAAK,MAAG,WAASA,GAAE;AAAe,WAAO,MAAI,UAAU,UAAQ,KAAK,UAAQ,uBAAO,OAAO,IAAI,GAAE,KAAK,eAAa,KAAG,WAASA,GAAEF,EAAC,MAAI,KAAG,EAAE,KAAK,eAAa,KAAK,UAAQ,uBAAO,OAAO,IAAI,IAAE,OAAOE,GAAEF,EAAC,IAAG;AAAK,MAAG,MAAI,UAAU,QAAO;AAAC,QAAII,IAAEC,KAAE,OAAO,KAAKH,EAAC;AAAE,SAAIC,KAAE,GAAEA,KAAEE,GAAE,QAAO,EAAEF;AAAE,4BAAoBC,KAAEC,GAAEF,EAAC,MAAI,KAAK,mBAAmBC,EAAC;AAAE,WAAO,KAAK,mBAAmB,gBAAgB,GAAE,KAAK,UAAQ,uBAAO,OAAO,IAAI,GAAE,KAAK,eAAa,GAAE;AAAA,EAAI;AAAC,MAAG,cAAY,QAAOH,KAAEC,GAAEF,EAAC;AAAG,SAAK,eAAeA,IAAEC,EAAC;AAAA,WAAU,WAASA;AAAE,SAAIE,KAAEF,GAAE,SAAO,GAAEE,MAAG,GAAEA;AAAI,WAAK,eAAeH,IAAEC,GAAEE,EAAC,CAAC;AAAE,SAAO;AAAI,GAAE,EAAE,UAAU,YAAU,SAASH,IAAE;AAAC,SAAO,EAAE,MAAKA,IAAE,IAAE;AAAC,GAAE,EAAE,UAAU,eAAa,SAASA,IAAE;AAAC,SAAO,EAAE,MAAKA,IAAE,KAAE;AAAC,GAAE,EAAE,gBAAc,SAASA,IAAEC,IAAE;AAAC,SAAO,cAAY,OAAOD,GAAE,gBAAcA,GAAE,cAAcC,EAAC,IAAE,EAAE,KAAKD,IAAEC,EAAC;AAAC,GAAE,EAAE,UAAU,gBAAc,GAAE,EAAE,UAAU,aAAW,WAAU;AAAC,SAAO,KAAK,eAAa,IAAE,EAAE,KAAK,OAAO,IAAE,CAAC;AAAC;AAAE,IAAI,IAAE;AAAE,EAAE;AAAa,EAAE;AAAoB,EAAE;AAAK,EAAE;AAE7zK,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;;;ACLF;;;ACAA;;;ACAA;AAAA,IAAIU;AAAJ,IAAMC;AAAN,IAAQC;AAAR,IAAUC,KAAE,eAAa,OAAO,aAAW,aAAW,eAAa,OAAO,OAAK,OAAK;AAApF,IAA2FC,KAAEJ,KAAE,CAAC;AAAE,SAASK,KAAG;AAAC,QAAM,IAAI,MAAM,iCAAiC;AAAC;AAAC,SAASC,KAAG;AAAC,QAAM,IAAI,MAAM,mCAAmC;AAAC;AAAC,SAASC,GAAEP,IAAE;AAAC,MAAGC,OAAI;AAAW,WAAO,WAAWD,IAAE,CAAC;AAAE,OAAIC,OAAII,MAAG,CAACJ,OAAI;AAAW,WAAOA,KAAE,YAAW,WAAWD,IAAE,CAAC;AAAE,MAAG;AAAC,WAAOC,GAAED,IAAE,CAAC;AAAA,EAAC,SAAOE,IAAE;AAAC,QAAG;AAAC,aAAOD,GAAE,KAAK,MAAKD,IAAE,CAAC;AAAA,IAAC,SAAOE,IAAE;AAAC,aAAOD,GAAE,KAAK,QAAME,IAAEH,IAAE,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC;AAAC,CAAC,WAAU;AAAC,MAAG;AAAC,IAAAC,KAAE,cAAY,OAAO,aAAW,aAAWI;AAAA,EAAE,SAAOL,IAAE;AAAC,IAAAC,KAAEI;AAAA,EAAE;AAAC,MAAG;AAAC,IAAAH,KAAE,cAAY,OAAO,eAAa,eAAaI;AAAA,EAAE,SAAON,IAAE;AAAC,IAAAE,KAAEI;AAAA,EAAE;AAAC,EAAE;AAAE,IAAIE;AAAJ,IAAMC,KAAE,CAAC;AAAT,IAAWC,KAAE;AAAb,IAAgBC,KAAE;AAAG,SAASC,KAAG;AAAC,EAAAF,MAAGF,OAAIE,KAAE,OAAGF,GAAE,SAAOC,KAAED,GAAE,OAAOC,EAAC,IAAEE,KAAE,IAAGF,GAAE,UAAQ,EAAE;AAAG;AAAC,SAAS,IAAG;AAAC,MAAG,CAACC,IAAE;AAAC,QAAIV,KAAEO,GAAEK,EAAC;AAAE,IAAAF,KAAE;AAAG,aAAQT,KAAEQ,GAAE,QAAOR,MAAG;AAAC,WAAIO,KAAEC,IAAEA,KAAE,CAAC,GAAE,EAAEE,KAAEV;AAAG,QAAAO,MAAGA,GAAEG,EAAC,EAAE,IAAI;AAAE,MAAAA,KAAE,IAAGV,KAAEQ,GAAE;AAAA,IAAO;AAAC,IAAAD,KAAE,MAAKE,KAAE,OAAG,SAASV,KAAE;AAAC,UAAGE,OAAI;AAAa,eAAO,aAAaF,GAAC;AAAE,WAAIE,OAAII,MAAG,CAACJ,OAAI;AAAa,eAAOA,KAAE,cAAa,aAAaF,GAAC;AAAE,UAAG;AAAC,QAAAE,GAAEF,GAAC;AAAA,MAAE,SAAOC,IAAE;AAAC,YAAG;AAAC,iBAAOC,GAAE,KAAK,MAAKF,GAAC;AAAA,QAAC,SAAOC,KAAE;AAAC,iBAAOC,GAAE,KAAK,QAAMC,IAAEH,GAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,EAAEA,EAAC;AAAA,EAAE;AAAC;AAAC,SAAS,EAAEA,IAAEC,IAAE;AAAC,GAAC,QAAME,IAAG,MAAIH,KAAG,QAAMG,IAAG,QAAMF;AAAE;AAAC,SAASY,KAAG;AAAC;AAACT,GAAE,WAAS,SAASJ,IAAE;AAAC,MAAIC,KAAE,IAAI,MAAM,UAAU,SAAO,CAAC;AAAE,MAAG,UAAU,SAAO;AAAE,aAAQC,KAAE,GAAEA,KAAE,UAAU,QAAOA;AAAI,MAAAD,GAAEC,KAAE,CAAC,IAAE,UAAUA,EAAC;AAAE,EAAAO,GAAE,KAAK,IAAI,EAAET,IAAEC,EAAC,CAAC,GAAE,MAAIQ,GAAE,UAAQC,MAAGH,GAAE,CAAC;AAAE,GAAE,EAAE,UAAU,MAAI,WAAU;AAAC,GAAC,QAAMJ,IAAG,IAAI,MAAM,OAAM,QAAMA,IAAG,KAAK;AAAE,GAAEC,GAAE,QAAM,WAAUA,GAAE,UAAQ,MAAGA,GAAE,MAAI,CAAC,GAAEA,GAAE,OAAK,CAAC,GAAEA,GAAE,UAAQ,IAAGA,GAAE,WAAS,CAAC,GAAEA,GAAE,KAAGS,IAAET,GAAE,cAAYS,IAAET,GAAE,OAAKS,IAAET,GAAE,MAAIS,IAAET,GAAE,iBAAeS,IAAET,GAAE,qBAAmBS,IAAET,GAAE,OAAKS,IAAET,GAAE,kBAAgBS,IAAET,GAAE,sBAAoBS,IAAET,GAAE,YAAU,SAASJ,IAAE;AAAC,SAAO,CAAC;AAAC,GAAEI,GAAE,UAAQ,SAASJ,IAAE;AAAC,QAAM,IAAI,MAAM,kCAAkC;AAAC,GAAEI,GAAE,MAAI,WAAU;AAAC,SAAO;AAAG,GAAEA,GAAE,QAAM,SAASJ,IAAE;AAAC,QAAM,IAAI,MAAM,gCAAgC;AAAC,GAAEI,GAAE,QAAM,WAAU;AAAC,SAAO;AAAC;AAAE,IAAI,IAAEJ;AAAE,EAAE;AAAY,EAAE;AAAK,EAAE;AAAQ,EAAE;AAAQ,EAAE;AAAM,EAAE;AAAI,EAAE;AAAK,EAAE;AAAI,EAAE;AAAU,EAAE;AAAS,EAAE;AAAI,EAAE;AAAG,EAAE;AAAK,EAAE;AAAgB,EAAE;AAAoB,EAAE;AAAmB,EAAE;AAAe,EAAE;AAAM,EAAE;AAAM,EAAE;AAAQ,EAAE;;;ADE78D,IAAIc,KAAE,cAAY,OAAO,UAAQ,YAAU,OAAO,OAAO;AAAzD,IAAqEC,KAAE,OAAO,UAAU;AAAxF,IAAiGC,KAAE,SAASA,IAAE;AAAC,SAAO,EAAEF,MAAGE,MAAG,YAAU,OAAOA,MAAG,OAAO,eAAeA,OAAI,yBAAuBD,GAAE,KAAKC,EAAC;AAAC;AAA5M,IAA8MC,KAAE,SAASH,IAAE;AAAC,SAAO,CAAC,CAACE,GAAEF,EAAC,KAAG,SAAOA,MAAG,YAAU,OAAOA,MAAG,YAAU,OAAOA,GAAE,UAAQA,GAAE,UAAQ,KAAG,qBAAmBC,GAAE,KAAKD,EAAC,KAAG,wBAAsBC,GAAE,KAAKD,GAAE,MAAM;AAAC;AAArX,IAAuXI,KAAE,WAAU;AAAC,SAAOF,GAAE,SAAS;AAAC,EAAE;AAAEA,GAAE,oBAAkBC;AAAE,IAAIE,KAAED,KAAEF,KAAEC;AAAE,IAAI,MAAI,OAAO,UAAU;AAAzB,IAAkC,MAAI,SAAS,UAAU;AAAzD,IAAkE,MAAI;AAAtE,IAA4F,MAAI,cAAY,OAAO,UAAQ,YAAU,OAAO,OAAO;AAAnJ,IAA+J,MAAI,OAAO;AAA1K,IAAyLG,KAAE,WAAU;AAAC,MAAG,CAAC;AAAI,WAAO;AAAG,MAAG;AAAC,WAAO,SAAS,uBAAuB,EAAE;AAAA,EAAC,SAAON,IAAE;AAAA,EAAC;AAAC,EAAE;AAAnR,IAAqRO,KAAED,KAAE,IAAIA,EAAC,IAAE,CAAC;AAAjS,IAAmSE,KAAE,SAASF,IAAE;AAAC,SAAO,cAAY,OAAOA,OAAI,CAAC,CAAC,IAAI,KAAK,IAAI,KAAKA,EAAC,CAAC,MAAI,MAAI,IAAIA,EAAC,MAAIC,KAAE,iCAA+B,IAAI,KAAKD,EAAC;AAAG;AAAE,IAAI,MAAI,cAAY,OAAO,OAAO,SAAO,SAASN,IAAEC,IAAE;AAAC,EAAAA,OAAID,GAAE,SAAOC,IAAED,GAAE,YAAU,OAAO,OAAOC,GAAE,WAAU,EAAC,aAAY,EAAC,OAAMD,IAAE,YAAW,OAAG,UAAS,MAAG,cAAa,KAAE,EAAC,CAAC;AAAG,IAAE,SAASA,IAAEC,IAAE;AAAC,MAAGA,IAAE;AAAC,IAAAD,GAAE,SAAOC;AAAE,QAAIC,KAAE,WAAU;AAAA,IAAC;AAAE,IAAAA,GAAE,YAAUD,GAAE,WAAUD,GAAE,YAAU,IAAIE,MAAEF,GAAE,UAAU,cAAYA;AAAA,EAAE;AAAC;AAAE,IAAI,MAAI,SAASC,IAAE;AAAC,SAAOA,MAAG,YAAU,OAAOA,MAAG,cAAY,OAAOA,GAAE,QAAM,cAAY,OAAOA,GAAE,QAAM,cAAY,OAAOA,GAAE;AAAS;AAAtI,IAAwI,MAAI,CAAC;AAA7I,IAA+I,MAAI;AAAnJ,IAAuJQ,KAAEJ;AAAzJ,IAA2JK,KAAEF;AAAE,SAAS,IAAIP,IAAE;AAAC,SAAOA,GAAE,KAAK,KAAKA,EAAC;AAAC;AAAC,IAAIU,KAAE,eAAa,OAAO;AAA1B,IAAiCC,KAAE,eAAa,OAAO;AAAvD,IAA8DC,KAAED,MAAG,WAAS,OAAO;AAAnF,IAA+F,MAAI,eAAa,OAAO;AAAvH,IAAkIE,KAAE,eAAa,OAAO;AAAY,IAAG,OAAKD;AAAE,MAAI,IAAE,OAAO,eAAe,WAAW,SAAS,GAAE,IAAE,IAAI,OAAO,yBAAyB,GAAE,OAAO,WAAW,EAAE,GAAG;AAAE,IAAIE,KAAE,IAAI,OAAO,UAAU,QAAQ;AAAnC,IAAqCC,KAAE,IAAI,OAAO,UAAU,OAAO;AAAnE,IAAqE,IAAE,IAAI,OAAO,UAAU,OAAO;AAAnG,IAAqG,IAAE,IAAI,QAAQ,UAAU,OAAO;AAAE,IAAGL;AAAE,MAAI,IAAE,IAAI,OAAO,UAAU,OAAO;AAAE,IAAGC;AAAE,MAAIK,KAAE,IAAI,OAAO,UAAU,OAAO;AAAE,SAAS,EAAEhB,IAAED,IAAE;AAAC,MAAG,YAAU,OAAOC;AAAE,WAAO;AAAG,MAAG;AAAC,WAAOD,GAAEC,EAAC,GAAE;AAAA,EAAE,SAAOA,KAAE;AAAC,WAAO;AAAA,EAAE;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,OAAKY,KAAE,WAAS,EAAEZ,EAAC,IAAE,EAAEA,EAAC,KAAG,EAAEA,EAAC,KAAG,EAAEA,EAAC,KAAG,EAAEA,EAAC,KAAG,EAAEA,EAAC,KAAG,EAAEA,EAAC,KAAG,EAAEA,EAAC,KAAG,EAAEA,EAAC,KAAG,EAAEA,EAAC,KAAG,EAAEA,EAAC,KAAG,EAAEA,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,OAAKY,KAAE,iBAAe,EAAEZ,EAAC,IAAE,0BAAwBc,GAAEd,EAAC,KAAG,IAAIA,EAAC,KAAG,WAASA,GAAE;AAAM;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,OAAKY,KAAE,wBAAsB,EAAEZ,EAAC,IAAE,iCAA+Bc,GAAEd,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,OAAKY,KAAE,kBAAgB,EAAEZ,EAAC,IAAE,2BAAyBc,GAAEd,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,OAAKY,KAAE,kBAAgB,EAAEZ,EAAC,IAAE,2BAAyBc,GAAEd,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,OAAKY,KAAE,gBAAc,EAAEZ,EAAC,IAAE,yBAAuBc,GAAEd,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,OAAKY,KAAE,iBAAe,EAAEZ,EAAC,IAAE,0BAAwBc,GAAEd,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,OAAKY,KAAE,iBAAe,EAAEZ,EAAC,IAAE,0BAAwBc,GAAEd,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,OAAKY,KAAE,mBAAiB,EAAEZ,EAAC,IAAE,4BAA0Bc,GAAEd,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,OAAKY,KAAE,mBAAiB,EAAEZ,EAAC,IAAE,4BAA0Bc,GAAEd,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,OAAKY,KAAE,oBAAkB,EAAEZ,EAAC,IAAE,6BAA2Bc,GAAEd,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,OAAKY,KAAE,qBAAmB,EAAEZ,EAAC,IAAE,8BAA4Bc,GAAEd,EAAC;AAAC;AAAC,SAASiB,GAAEjB,IAAE;AAAC,SAAO,mBAAiBc,GAAEd,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,mBAAiBc,GAAEd,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,uBAAqBc,GAAEd,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,uBAAqBc,GAAEd,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,2BAAyBc,GAAEd,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,eAAa,OAAO,gBAAc,EAAE,UAAQ,EAAEA,EAAC,IAAEA,cAAa;AAAY;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,wBAAsBc,GAAEd,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,eAAa,OAAO,aAAW,EAAE,UAAQ,EAAEA,EAAC,IAAEA,cAAa;AAAS;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,iCAA+Bc,GAAEd,EAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,eAAa,OAAO,sBAAoB,EAAE,UAAQ,EAAEA,EAAC,IAAEA,cAAa;AAAkB;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,EAAEA,IAAEe,EAAC;AAAC;AAAC,SAAS,EAAEf,IAAE;AAAC,SAAO,EAAEA,IAAE,CAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAO,EAAEA,IAAE,CAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAOU,MAAG,EAAEV,IAAE,CAAC;AAAC;AAAC,SAAS,EAAEA,IAAE;AAAC,SAAOW,MAAG,EAAEX,IAAEgB,EAAC;AAAC;AAAC,IAAI,oBAAkBR,IAAE,IAAI,sBAAoBC,IAAE,IAAI,YAAU,SAAST,IAAE;AAAC,SAAO,eAAa,OAAO,WAASA,cAAa,WAAS,SAAOA,MAAG,YAAU,OAAOA,MAAG,cAAY,OAAOA,GAAE,QAAM,cAAY,OAAOA,GAAE;AAAK,GAAE,IAAI,oBAAkB,SAASA,IAAE;AAAC,SAAOa,MAAG,YAAY,SAAO,YAAY,OAAOb,EAAC,IAAE,EAAEA,EAAC,KAAG,EAAEA,EAAC;AAAC,GAAE,IAAI,eAAa,GAAE,IAAI,eAAa,GAAE,IAAI,sBAAoB,GAAE,IAAI,gBAAc,GAAE,IAAI,gBAAc,GAAE,IAAI,cAAY,GAAE,IAAI,eAAa,GAAE,IAAI,eAAa,GAAE,IAAI,iBAAe,GAAE,IAAI,iBAAe,GAAE,IAAI,kBAAgB,GAAE,IAAI,mBAAiB,GAAEiB,GAAE,UAAQ,eAAa,OAAO,OAAKA,GAAE,oBAAI,KAAG,GAAE,IAAI,QAAM,SAASjB,IAAE;AAAC,SAAO,eAAa,OAAO,QAAMiB,GAAE,UAAQA,GAAEjB,EAAC,IAAEA,cAAa;AAAI,GAAE,EAAE,UAAQ,eAAa,OAAO,OAAK,EAAE,oBAAI,KAAG,GAAE,IAAI,QAAM,SAASA,IAAE;AAAC,SAAO,eAAa,OAAO,QAAM,EAAE,UAAQ,EAAEA,EAAC,IAAEA,cAAa;AAAI,GAAE,EAAE,UAAQ,eAAa,OAAO,WAAS,EAAE,oBAAI,SAAO,GAAE,IAAI,YAAU,SAASA,IAAE;AAAC,SAAO,eAAa,OAAO,YAAU,EAAE,UAAQ,EAAEA,EAAC,IAAEA,cAAa;AAAQ,GAAE,EAAE,UAAQ,eAAa,OAAO,WAAS,EAAE,oBAAI,SAAO,GAAE,IAAI,YAAU,SAASA,IAAE;AAAC,SAAO,EAAEA,EAAC;AAAC,GAAE,EAAE,UAAQ,eAAa,OAAO,eAAa,EAAE,IAAI,aAAW,GAAE,IAAI,gBAAc,GAAE,EAAE,UAAQ,eAAa,OAAO,eAAa,eAAa,OAAO,YAAU,EAAE,IAAI,SAAS,IAAI,YAAY,CAAC,GAAE,GAAE,CAAC,CAAC,GAAE,IAAI,aAAW,GAAE,EAAE,UAAQ,eAAa,OAAO,qBAAmB,EAAE,IAAI,mBAAiB,GAAE,IAAI,sBAAoB,GAAE,IAAI,kBAAgB,SAASA,IAAE;AAAC,SAAO,6BAA2Bc,GAAEd,EAAC;AAAC,GAAE,IAAI,gBAAc,SAASA,IAAE;AAAC,SAAO,4BAA0Bc,GAAEd,EAAC;AAAC,GAAE,IAAI,gBAAc,SAASA,IAAE;AAAC,SAAO,4BAA0Bc,GAAEd,EAAC;AAAC,GAAE,IAAI,oBAAkB,SAASA,IAAE;AAAC,SAAO,yBAAuBc,GAAEd,EAAC;AAAC,GAAE,IAAI,8BAA4B,SAASA,IAAE;AAAC,SAAO,kCAAgCc,GAAEd,EAAC;AAAC,GAAE,IAAI,iBAAe,GAAE,IAAI,iBAAe,GAAE,IAAI,kBAAgB,GAAE,IAAI,iBAAe,GAAE,IAAI,iBAAe,GAAE,IAAI,mBAAiB,SAASA,IAAE;AAAC,SAAO,EAAEA,EAAC,KAAG,EAAEA,EAAC,KAAG,EAAEA,EAAC,KAAG,EAAEA,EAAC,KAAG,EAAEA,EAAC;AAAC,GAAE,IAAI,mBAAiB,SAASA,IAAE;AAAC,SAAO,QAAM,EAAEA,EAAC,KAAG,EAAEA,EAAC;AAAE,GAAE,CAAC,WAAU,cAAa,yBAAyB,EAAE,QAAS,SAASA,IAAE;AAAC,SAAO,eAAe,KAAIA,IAAE,EAAC,YAAW,OAAG,OAAM,WAAU;AAAC,UAAM,IAAI,MAAMA,KAAE,+BAA+B;AAAA,EAAC,EAAC,CAAC;AAAE,CAAE;AAAE,IAAI,IAAE,eAAa,OAAO,aAAW,aAAW,eAAa,OAAO,OAAK,OAAK;AAA9E,IAAqF,IAAE,CAAC;AAAxF,IAA0F,IAAE;AAA5F,IAAgG,KAAG,OAAO,6BAA2B,SAASA,IAAE;AAAC,WAAQD,KAAE,OAAO,KAAKC,EAAC,GAAEG,KAAE,CAAC,GAAED,KAAE,GAAEA,KAAEH,GAAE,QAAOG;AAAI,IAAAC,GAAEJ,GAAEG,EAAC,CAAC,IAAE,OAAO,yBAAyBF,IAAED,GAAEG,EAAC,CAAC;AAAE,SAAOC;AAAC;AAA1P,IAA4P,KAAG;AAAW,EAAE,SAAO,SAASH,IAAE;AAAC,MAAG,CAAC,GAAGA,EAAC,GAAE;AAAC,aAAQD,KAAE,CAAC,GAAEI,KAAE,GAAEA,KAAE,UAAU,QAAOA;AAAI,MAAAJ,GAAE,KAAK,GAAG,UAAUI,EAAC,CAAC,CAAC;AAAE,WAAOJ,GAAE,KAAK,GAAG;AAAA,EAAC;AAAC,EAAAI,KAAE;AAAE,WAAQD,KAAE,WAAUK,KAAEL,GAAE,QAAOD,KAAE,OAAOD,EAAC,EAAE,QAAQ,IAAI,SAASA,KAAE;AAAC,QAAG,SAAOA;AAAE,aAAO;AAAI,QAAGG,MAAGI;AAAE,aAAOP;AAAE,YAAOA,KAAE;AAAA,MAAC,KAAI;AAAK,eAAO,OAAOE,GAAEC,IAAG,CAAC;AAAA,MAAE,KAAI;AAAK,eAAO,OAAOD,GAAEC,IAAG,CAAC;AAAA,MAAE,KAAI;AAAK,YAAG;AAAC,iBAAO,KAAK,UAAUD,GAAEC,IAAG,CAAC;AAAA,QAAC,SAAOH,KAAE;AAAC,iBAAO;AAAA,QAAY;AAAA,MAAC;AAAQ,eAAOA;AAAA,IAAC;AAAA,EAAC,CAAE,GAAEM,KAAEJ,GAAEC,EAAC,GAAEA,KAAEI,IAAED,KAAEJ,GAAE,EAAEC,EAAC;AAAE,OAAGG,EAAC,KAAG,CAAC,GAAGA,EAAC,IAAEL,MAAG,MAAIK,KAAEL,MAAG,MAAI,GAAGK,EAAC;AAAE,SAAOL;AAAC,GAAE,EAAE,YAAU,SAASD,IAAED,IAAE;AAAC,MAAG,WAAS,KAAG,SAAK,EAAE;AAAc,WAAOC;AAAE,MAAG,WAAS;AAAE,WAAO,WAAU;AAAC,aAAO,EAAE,UAAUA,IAAED,EAAC,EAAE,MAAM,QAAM,GAAE,SAAS;AAAA,IAAC;AAAE,MAAII,KAAE;AAAG,SAAO,WAAU;AAAC,QAAG,CAACA,IAAE;AAAC,UAAG,EAAE;AAAiB,cAAM,IAAI,MAAMJ,EAAC;AAAE,QAAE,mBAAiB,QAAQ,MAAMA,EAAC,IAAE,QAAQ,MAAMA,EAAC,GAAEI,KAAE;AAAA,IAAG;AAAC,WAAOH,GAAE,MAAM,QAAM,GAAE,SAAS;AAAA,EAAC;AAAC;AAAE,IAAI,KAAG,CAAC;AAAR,IAAU,KAAG;AAAK,IAAG,EAAE,IAAI,YAAW;AAAK,OAAG,EAAE,IAAI;AAAW,OAAG,GAAG,QAAQ,sBAAqB,MAAM,EAAE,QAAQ,OAAM,IAAI,EAAE,QAAQ,MAAK,KAAK,EAAE,YAAY,GAAE,KAAG,IAAI,OAAO,MAAI,KAAG,KAAI,GAAG;AAAE;AAAnJ;AAAoJ,SAAS,GAAGA,IAAED,IAAE;AAAC,MAAII,KAAE,EAAC,MAAK,CAAC,GAAE,SAAQ,GAAE;AAAE,SAAO,UAAU,UAAQ,MAAIA,GAAE,QAAM,UAAU,CAAC,IAAG,UAAU,UAAQ,MAAIA,GAAE,SAAO,UAAU,CAAC,IAAG,GAAGJ,EAAC,IAAEI,GAAE,aAAWJ,KAAEA,MAAG,EAAE,QAAQI,IAAEJ,EAAC,GAAE,GAAGI,GAAE,UAAU,MAAIA,GAAE,aAAW,QAAI,GAAGA,GAAE,KAAK,MAAIA,GAAE,QAAM,IAAG,GAAGA,GAAE,MAAM,MAAIA,GAAE,SAAO,QAAI,GAAGA,GAAE,aAAa,MAAIA,GAAE,gBAAc,OAAIA,GAAE,WAASA,GAAE,UAAQ,KAAI,GAAGA,IAAEH,IAAEG,GAAE,KAAK;AAAC;AAAC,SAAS,GAAGH,IAAED,IAAE;AAAC,MAAII,KAAE,GAAG,OAAOJ,EAAC;AAAE,SAAOI,KAAE,UAAK,GAAG,OAAOA,EAAC,EAAE,CAAC,IAAE,MAAIH,KAAE,UAAK,GAAG,OAAOG,EAAC,EAAE,CAAC,IAAE,MAAIH;AAAC;AAAC,SAAS,GAAGA,IAAED,IAAE;AAAC,SAAOC;AAAC;AAAC,SAAS,GAAGA,IAAED,IAAEI,IAAE;AAAC,MAAGH,GAAE,iBAAeD,MAAG,GAAGA,GAAE,OAAO,KAAGA,GAAE,YAAU,EAAE,YAAU,CAACA,GAAE,eAAaA,GAAE,YAAY,cAAYA,KAAG;AAAC,QAAIG,KAAEH,GAAE,QAAQI,IAAEH,EAAC;AAAE,WAAO,GAAGE,EAAC,MAAIA,KAAE,GAAGF,IAAEE,IAAEC,EAAC,IAAGD;AAAA,EAAC;AAAC,MAAIK,KAAE,SAASP,KAAED,IAAE;AAAC,QAAG,GAAGA,EAAC;AAAE,aAAOC,IAAE,QAAQ,aAAY,WAAW;AAAE,QAAG,GAAGD,EAAC,GAAE;AAAC,UAAII,MAAE,MAAI,KAAK,UAAUJ,EAAC,EAAE,QAAQ,UAAS,EAAE,EAAE,QAAQ,MAAK,KAAK,EAAE,QAAQ,QAAO,GAAG,IAAE;AAAI,aAAOC,IAAE,QAAQG,KAAE,QAAQ;AAAA,IAAC;AAAC,QAAG,GAAGJ,EAAC;AAAE,aAAOC,IAAE,QAAQ,KAAGD,IAAE,QAAQ;AAAE,QAAG,GAAGA,EAAC;AAAE,aAAOC,IAAE,QAAQ,KAAGD,IAAE,SAAS;AAAE,QAAG,GAAGA,EAAC;AAAE,aAAOC,IAAE,QAAQ,QAAO,MAAM;AAAA,EAAC,EAAEA,IAAED,EAAC;AAAE,MAAGQ;AAAE,WAAOA;AAAE,MAAIN,KAAE,OAAO,KAAKF,EAAC,GAAEO,KAAE,SAASN,KAAE;AAAC,QAAID,KAAE,CAAC;AAAE,WAAOC,IAAE,QAAS,SAASA,KAAEG,KAAE;AAAC,MAAAJ,GAAEC,GAAC,IAAE;AAAA,IAAG,CAAE,GAAED;AAAA,EAAC,EAAEE,EAAC;AAAE,MAAGD,GAAE,eAAaC,KAAE,OAAO,oBAAoBF,EAAC,IAAG,GAAGA,EAAC,MAAIE,GAAE,QAAQ,SAAS,KAAG,KAAGA,GAAE,QAAQ,aAAa,KAAG;AAAG,WAAO,GAAGF,EAAC;AAAE,MAAG,MAAIE,GAAE,QAAO;AAAC,QAAG,GAAGF,EAAC,GAAE;AAAC,UAAIS,KAAET,GAAE,OAAK,OAAKA,GAAE,OAAK;AAAG,aAAOC,GAAE,QAAQ,cAAYQ,KAAE,KAAI,SAAS;AAAA,IAAC;AAAC,QAAG,GAAGT,EAAC;AAAE,aAAOC,GAAE,QAAQ,OAAO,UAAU,SAAS,KAAKD,EAAC,GAAE,QAAQ;AAAE,QAAG,GAAGA,EAAC;AAAE,aAAOC,GAAE,QAAQ,KAAK,UAAU,SAAS,KAAKD,EAAC,GAAE,MAAM;AAAE,QAAG,GAAGA,EAAC;AAAE,aAAO,GAAGA,EAAC;AAAA,EAAC;AAAC,MAAIU,IAAEJ,KAAE,IAAGK,KAAE,OAAGC,KAAE,CAAC,KAAI,GAAG;AAAE,GAAC,GAAGZ,EAAC,MAAIW,KAAE,MAAGC,KAAE,CAAC,KAAI,GAAG,IAAG,GAAGZ,EAAC,OAAKM,KAAE,gBAAcN,GAAE,OAAK,OAAKA,GAAE,OAAK,MAAI;AAAK,SAAO,GAAGA,EAAC,MAAIM,KAAE,MAAI,OAAO,UAAU,SAAS,KAAKN,EAAC,IAAG,GAAGA,EAAC,MAAIM,KAAE,MAAI,KAAK,UAAU,YAAY,KAAKN,EAAC,IAAG,GAAGA,EAAC,MAAIM,KAAE,MAAI,GAAGN,EAAC,IAAG,MAAIE,GAAE,UAAQS,MAAG,KAAGX,GAAE,SAAOI,KAAE,IAAE,GAAGJ,EAAC,IAAEC,GAAE,QAAQ,OAAO,UAAU,SAAS,KAAKD,EAAC,GAAE,QAAQ,IAAEC,GAAE,QAAQ,YAAW,SAAS,KAAGA,GAAE,KAAK,KAAKD,EAAC,GAAEU,KAAEC,KAAE,SAASV,KAAED,IAAEI,KAAED,IAAEK,IAAE;AAAC,aAAQN,KAAE,CAAC,GAAEK,KAAE,GAAEE,KAAET,GAAE,QAAOO,KAAEE,IAAE,EAAEF;AAAE,SAAGP,IAAE,OAAOO,EAAC,CAAC,IAAEL,GAAE,KAAK,GAAGD,KAAED,IAAEI,KAAED,IAAE,OAAOI,EAAC,GAAE,IAAE,CAAC,IAAEL,GAAE,KAAK,EAAE;AAAE,WAAOM,GAAE,QAAS,SAASA,IAAE;AAAC,MAAAA,GAAE,MAAM,OAAO,KAAGN,GAAE,KAAK,GAAGD,KAAED,IAAEI,KAAED,IAAEK,IAAE,IAAE,CAAC;AAAA,IAAE,CAAE,GAAEN;AAAA,EAAC,EAAED,IAAED,IAAEI,IAAEG,IAAEL,EAAC,IAAEA,GAAE,IAAK,SAASC,IAAE;AAAC,WAAO,GAAGF,IAAED,IAAEI,IAAEG,IAAEJ,IAAEQ,EAAC;AAAA,EAAC,CAAE,GAAEV,GAAE,KAAK,IAAI,GAAE,SAASA,KAAED,IAAEI,KAAE;AAAC,QAAID,KAAE;AAAE,QAAGF,IAAE,OAAQ,SAASA,KAAED,KAAE;AAAC,aAAOG,MAAIH,IAAE,QAAQ,IAAI,KAAG,KAAGG,MAAIF,MAAED,IAAE,QAAQ,mBAAkB,EAAE,EAAE,SAAO;AAAA,IAAC,GAAG,CAAC,IAAE;AAAG,aAAOI,IAAE,CAAC,KAAG,OAAKJ,KAAE,KAAGA,KAAE,SAAO,MAAIC,IAAE,KAAK,OAAO,IAAE,MAAIG,IAAE,CAAC;AAAE,WAAOA,IAAE,CAAC,IAAEJ,KAAE,MAAIC,IAAE,KAAK,IAAI,IAAE,MAAIG,IAAE,CAAC;AAAA,EAAC,EAAEM,IAAEJ,IAAEM,EAAC,KAAGA,GAAE,CAAC,IAAEN,KAAEM,GAAE,CAAC;AAAC;AAAC,SAAS,GAAGX,IAAE;AAAC,SAAO,MAAI,MAAM,UAAU,SAAS,KAAKA,EAAC,IAAE;AAAG;AAAC,SAAS,GAAGA,IAAED,IAAEI,IAAED,IAAEK,IAAEN,IAAE;AAAC,MAAIK,IAAEE,IAAEC;AAAE,OAAIA,KAAE,OAAO,yBAAyBV,IAAEQ,EAAC,KAAG,EAAC,OAAMR,GAAEQ,EAAC,EAAC,GAAG,MAAIC,KAAEC,GAAE,MAAIT,GAAE,QAAQ,mBAAkB,SAAS,IAAEA,GAAE,QAAQ,YAAW,SAAS,IAAES,GAAE,QAAMD,KAAER,GAAE,QAAQ,YAAW,SAAS,IAAG,GAAGE,IAAEK,EAAC,MAAID,KAAE,MAAIC,KAAE,MAAKC,OAAIR,GAAE,KAAK,QAAQS,GAAE,KAAK,IAAE,KAAGD,KAAE,GAAGL,EAAC,IAAE,GAAGH,IAAES,GAAE,OAAM,IAAI,IAAE,GAAGT,IAAES,GAAE,OAAMN,KAAE,CAAC,GAAG,QAAQ,IAAI,IAAE,OAAKK,KAAEP,KAAEO,GAAE,MAAM,IAAI,EAAE,IAAK,SAASR,KAAE;AAAC,WAAO,OAAKA;AAAA,EAAC,CAAE,EAAE,KAAK,IAAI,EAAE,OAAO,CAAC,IAAE,OAAKQ,GAAE,MAAM,IAAI,EAAE,IAAK,SAASR,KAAE;AAAC,WAAO,QAAMA;AAAA,EAAC,CAAE,EAAE,KAAK,IAAI,KAAGQ,KAAER,GAAE,QAAQ,cAAa,SAAS,IAAG,GAAGM,EAAC,GAAE;AAAC,QAAGL,MAAGM,GAAE,MAAM,OAAO;AAAE,aAAOC;AAAE,KAACF,KAAE,KAAK,UAAU,KAAGC,EAAC,GAAG,MAAM,8BAA8B,KAAGD,KAAEA,GAAE,OAAO,GAAEA,GAAE,SAAO,CAAC,GAAEA,KAAEN,GAAE,QAAQM,IAAE,MAAM,MAAIA,KAAEA,GAAE,QAAQ,MAAK,KAAK,EAAE,QAAQ,QAAO,GAAG,EAAE,QAAQ,YAAW,GAAG,GAAEA,KAAEN,GAAE,QAAQM,IAAE,QAAQ;AAAA,EAAG;AAAC,SAAOA,KAAE,OAAKE;AAAC;AAAC,SAAS,GAAGR,IAAE;AAAC,SAAO,MAAM,QAAQA,EAAC;AAAC;AAAC,SAAS,GAAGA,IAAE;AAAC,SAAO,aAAW,OAAOA;AAAC;AAAC,SAAS,GAAGA,IAAE;AAAC,SAAO,SAAOA;AAAC;AAAC,SAAS,GAAGA,IAAE;AAAC,SAAO,YAAU,OAAOA;AAAC;AAAC,SAAS,GAAGA,IAAE;AAAC,SAAO,YAAU,OAAOA;AAAC;AAAC,SAAS,GAAGA,IAAE;AAAC,SAAO,WAASA;AAAC;AAAC,SAAS,GAAGA,IAAE;AAAC,SAAO,GAAGA,EAAC,KAAG,sBAAoB,GAAGA,EAAC;AAAC;AAAC,SAAS,GAAGA,IAAE;AAAC,SAAO,YAAU,OAAOA,MAAG,SAAOA;AAAC;AAAC,SAAS,GAAGA,IAAE;AAAC,SAAO,GAAGA,EAAC,KAAG,oBAAkB,GAAGA,EAAC;AAAC;AAAC,SAAS,GAAGA,IAAE;AAAC,SAAO,GAAGA,EAAC,MAAI,qBAAmB,GAAGA,EAAC,KAAGA,cAAa;AAAM;AAAC,SAAS,GAAGA,IAAE;AAAC,SAAO,cAAY,OAAOA;AAAC;AAAC,SAAS,GAAGA,IAAE;AAAC,SAAO,OAAO,UAAU,SAAS,KAAKA,EAAC;AAAC;AAAC,SAAS,GAAGA,IAAE;AAAC,SAAOA,KAAE,KAAG,MAAIA,GAAE,SAAS,EAAE,IAAEA,GAAE,SAAS,EAAE;AAAC;AAAC,EAAE,WAAS,SAASA,IAAE;AAAC,MAAGA,KAAEA,GAAE,YAAY,GAAE,CAAC,GAAGA,EAAC;AAAE,QAAG,GAAG,KAAKA,EAAC,GAAE;AAAC,UAAID,KAAE,EAAE;AAAI,SAAGC,EAAC,IAAE,WAAU;AAAC,YAAIG,KAAE,EAAE,OAAO,MAAM,GAAE,SAAS;AAAE,gBAAQ,MAAM,aAAYH,IAAED,IAAEI,EAAC;AAAA,MAAE;AAAA,IAAE;AAAM,SAAGH,EAAC,IAAE,WAAU;AAAA,MAAC;AAAE,SAAO,GAAGA,EAAC;AAAC,GAAE,EAAE,UAAQ,IAAG,GAAG,SAAO,EAAC,MAAK,CAAC,GAAE,EAAE,GAAE,QAAO,CAAC,GAAE,EAAE,GAAE,WAAU,CAAC,GAAE,EAAE,GAAE,SAAQ,CAAC,GAAE,EAAE,GAAE,OAAM,CAAC,IAAG,EAAE,GAAE,MAAK,CAAC,IAAG,EAAE,GAAE,OAAM,CAAC,IAAG,EAAE,GAAE,MAAK,CAAC,IAAG,EAAE,GAAE,MAAK,CAAC,IAAG,EAAE,GAAE,OAAM,CAAC,IAAG,EAAE,GAAE,SAAQ,CAAC,IAAG,EAAE,GAAE,KAAI,CAAC,IAAG,EAAE,GAAE,QAAO,CAAC,IAAG,EAAE,EAAC,GAAE,GAAG,SAAO,EAAC,SAAQ,QAAO,QAAO,UAAS,SAAQ,UAAS,WAAU,QAAO,MAAK,QAAO,QAAO,SAAQ,MAAK,WAAU,QAAO,MAAK,GAAE,EAAE,QAAM,KAAI,EAAE,UAAQ,IAAG,EAAE,YAAU,IAAG,EAAE,SAAO,IAAG,EAAE,oBAAkB,SAASA,IAAE;AAAC,SAAO,QAAMA;AAAC,GAAE,EAAE,WAAS,IAAG,EAAE,WAAS,IAAG,EAAE,WAAS,SAASA,IAAE;AAAC,SAAO,YAAU,OAAOA;AAAC,GAAE,EAAE,cAAY,IAAG,EAAE,WAAS,IAAG,EAAE,MAAM,WAAS,IAAG,EAAE,WAAS,IAAG,EAAE,SAAO,IAAG,EAAE,MAAM,SAAO,IAAG,EAAE,UAAQ,IAAG,EAAE,MAAM,gBAAc,IAAG,EAAE,aAAW,IAAG,EAAE,cAAY,SAASA,IAAE;AAAC,SAAO,SAAOA,MAAG,aAAW,OAAOA,MAAG,YAAU,OAAOA,MAAG,YAAU,OAAOA,MAAG,YAAU,OAAOA,MAAG,WAASA;AAAC,GAAE,EAAE,WAAS;AAAI,IAAI,KAAG,CAAC,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,KAAK;AAAE,SAAS,KAAI;AAAC,MAAIA,KAAE,oBAAI,QAAKD,KAAE,CAAC,GAAGC,GAAE,SAAS,CAAC,GAAE,GAAGA,GAAE,WAAW,CAAC,GAAE,GAAGA,GAAE,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG;AAAE,SAAO,CAACA,GAAE,QAAQ,GAAE,GAAGA,GAAE,SAAS,CAAC,GAAED,EAAC,EAAE,KAAK,GAAG;AAAC;AAAC,SAAS,GAAGC,IAAED,IAAE;AAAC,SAAO,OAAO,UAAU,eAAe,KAAKC,IAAED,EAAC;AAAC;AAAC,EAAE,MAAI,WAAU;AAAC,UAAQ,IAAI,WAAU,GAAG,GAAE,EAAE,OAAO,MAAM,GAAE,SAAS,CAAC;AAAE,GAAE,EAAE,WAAS,KAAI,EAAE,UAAQ,SAASC,IAAED,IAAE;AAAC,MAAG,CAACA,MAAG,CAAC,GAAGA,EAAC;AAAE,WAAOC;AAAE,WAAQG,KAAE,OAAO,KAAKJ,EAAC,GAAEG,KAAEC,GAAE,QAAOD;AAAK,IAAAF,GAAEG,GAAED,EAAC,CAAC,IAAEH,GAAEI,GAAED,EAAC,CAAC;AAAE,SAAOF;AAAC;AAAE,IAAI,KAAG,eAAa,OAAO,SAAO,OAAO,uBAAuB,IAAE;AAAO,SAAS,GAAGA,IAAED,IAAE;AAAC,MAAG,CAACC,IAAE;AAAC,QAAIG,KAAE,IAAI,MAAM,yCAAyC;AAAE,IAAAA,GAAE,SAAOH,IAAEA,KAAEG;AAAA,EAAE;AAAC,SAAOJ,GAAEC,EAAC;AAAC;AAAC,EAAE,YAAU,SAASA,IAAE;AAAC,MAAG,cAAY,OAAOA;AAAE,UAAM,IAAI,UAAU,kDAAkD;AAAE,MAAG,MAAIA,GAAE,EAAE,GAAE;AAAC,QAAID;AAAE,QAAG,cAAY,QAAOA,KAAEC,GAAE,EAAE;AAAG,YAAM,IAAI,UAAU,+DAA+D;AAAE,WAAO,OAAO,eAAeD,IAAE,IAAG,EAAC,OAAMA,IAAE,YAAW,OAAG,UAAS,OAAG,cAAa,KAAE,CAAC,GAAEA;AAAA,EAAC;AAAC,WAASA,KAAG;AAAC,aAAQA,IAAEI,IAAED,KAAE,IAAI,QAAS,SAASF,KAAEE,IAAE;AAAC,MAAAH,KAAEC,KAAEG,KAAED;AAAA,IAAE,CAAE,GAAEK,KAAE,CAAC,GAAEN,KAAE,GAAEA,KAAE,UAAU,QAAOA;AAAI,MAAAM,GAAE,KAAK,UAAUN,EAAC,CAAC;AAAE,IAAAM,GAAE,KAAM,SAASP,KAAEE,IAAE;AAAC,MAAAF,MAAEG,GAAEH,GAAC,IAAED,GAAEG,EAAC;AAAA,IAAE,CAAE;AAAE,QAAG;AAAC,MAAAF,GAAE,MAAM,QAAM,GAAEO,EAAC;AAAA,IAAE,SAAOP,KAAE;AAAC,MAAAG,GAAEH,GAAC;AAAA,IAAE;AAAC,WAAOE;AAAA,EAAC;AAAC,SAAO,OAAO,eAAeH,IAAE,OAAO,eAAeC,EAAC,CAAC,GAAE,MAAI,OAAO,eAAeD,IAAE,IAAG,EAAC,OAAMA,IAAE,YAAW,OAAG,UAAS,OAAG,cAAa,KAAE,CAAC,GAAE,OAAO,iBAAiBA,IAAE,GAAGC,EAAC,CAAC;AAAC,GAAE,EAAE,UAAU,SAAO,IAAG,EAAE,cAAY,SAASA,IAAE;AAAC,MAAG,cAAY,OAAOA;AAAE,UAAM,IAAI,UAAU,kDAAkD;AAAE,WAASD,KAAG;AAAC,aAAQA,KAAE,CAAC,GAAEI,KAAE,GAAEA,KAAE,UAAU,QAAOA;AAAI,MAAAJ,GAAE,KAAK,UAAUI,EAAC,CAAC;AAAE,QAAID,KAAEH,GAAE,IAAI;AAAE,QAAG,cAAY,OAAOG;AAAE,YAAM,IAAI,UAAU,4CAA4C;AAAE,QAAIK,KAAE,QAAM,GAAEN,KAAE,WAAU;AAAC,aAAOC,GAAE,MAAMK,IAAE,SAAS;AAAA,IAAC;AAAE,IAAAP,GAAE,MAAM,QAAM,GAAED,EAAC,EAAE,KAAM,SAASC,KAAE;AAAC,QAAE,SAASC,GAAE,KAAK,MAAK,MAAKD,GAAC,CAAC;AAAA,IAAE,GAAI,SAASA,KAAE;AAAC,QAAE,SAAS,GAAG,KAAK,MAAKA,KAAEC,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAE;AAAC,SAAO,OAAO,eAAeF,IAAE,OAAO,eAAeC,EAAC,CAAC,GAAE,OAAO,iBAAiBD,IAAE,GAAGC,EAAC,CAAC,GAAED;AAAC;;;ADCrtb,EAAE;AAAQ,EAAE;AAAY,EAAE;AAAS,EAAE;AAAU,EAAE;AAAO,EAAE;AAAS,EAAE;AAAQ,EAAE;AAAQ,EAAE;AAAU,EAAE;AAAS,EAAE;AAAO,EAAE;AAAQ,EAAE;AAAW,EAAE;AAAO,EAAE;AAAkB,EAAE;AAAS,EAAE;AAAS,EAAE;AAAY,EAAE;AAAS,EAAE;AAAS,EAAE;AAAS,EAAE;AAAY,EAAE;AAAI,EAAE;AAEtQ,IAAI,UAAU,EAAE;AAChB,IAAI,cAAc,EAAE;AACpB,IAAI,WAAW,EAAE;AACjB,IAAI,YAAY,EAAE;AAClB,IAAI,SAAS,EAAE;AACf,IAAI,WAAW,EAAE;AACjB,IAAI,UAAU,EAAE;AAChB,IAAI,UAAU,EAAE;AAChB,IAAI,YAAY,EAAE;AAClB,IAAI,WAAW,EAAE;AACjB,IAAI,SAAS,EAAE;AACf,IAAI,UAAU,EAAE;AAChB,IAAI,aAAa,EAAE;AACnB,IAAI,SAAS,EAAE;AACf,IAAI,oBAAoB,EAAE;AAC1B,IAAI,WAAW,EAAE;AACjB,IAAI,WAAW,EAAE;AACjB,IAAI,cAAc,EAAE;AACpB,IAAI,WAAW,EAAE;AACjB,IAAI,WAAW,EAAE;AACjB,IAAI,WAAW,EAAE;AACjB,IAAI,cAAc,EAAE;AACpB,IAAI,MAAM,EAAE;AACZ,IAAI,YAAY,EAAE;AAClB,IAAI,QAAQ,EAAE;AAEd,IAAMmB,eAAc,KAAK;AACzB,IAAMC,eAAc,KAAK;;;AGhCzB;AAAA,IAAI,UAAU,CAAC;AAAf,IACI,WAAW;AAEf,IAAI,UAAU,OAAO,eAAe,cAAc,aAAa,OAAO,SAAS,cAAc,OAAO;AAEpG,SAAS,MAAM;AACb,MAAI;AAAU,WAAO;AACrB,aAAW;AAEX,MAAIC,WAAU,UAAU,CAAC;AAKzB,MAAI;AACJ,MAAI;AAEJ,WAAS,mBAAmB;AAC1B,UAAM,IAAI,MAAM,iCAAiC;AAAA,EACnD;AAEA,WAAS,sBAAsB;AAC7B,UAAM,IAAI,MAAM,mCAAmC;AAAA,EACrD;AAEA,GAAC,WAAY;AACX,QAAI;AACF,UAAI,OAAO,eAAe,YAAY;AACpC,2BAAmB;AAAA,MACrB,OAAO;AACL,2BAAmB;AAAA,MACrB;AAAA,IACF,SAASC,IAAG;AACV,yBAAmB;AAAA,IACrB;AAEA,QAAI;AACF,UAAI,OAAO,iBAAiB,YAAY;AACtC,6BAAqB;AAAA,MACvB,OAAO;AACL,6BAAqB;AAAA,MACvB;AAAA,IACF,SAASA,IAAG;AACV,2BAAqB;AAAA,IACvB;AAAA,EACF,GAAG;AAEH,WAAS,WAAW,KAAK;AACvB,QAAI,qBAAqB,YAAY;AAEnC,aAAO,WAAW,KAAK,CAAC;AAAA,IAC1B;AAGA,SAAK,qBAAqB,oBAAoB,CAAC,qBAAqB,YAAY;AAC9E,yBAAmB;AACnB,aAAO,WAAW,KAAK,CAAC;AAAA,IAC1B;AAEA,QAAI;AAEF,aAAO,iBAAiB,KAAK,CAAC;AAAA,IAChC,SAASA,IAAG;AACV,UAAI;AAEF,eAAO,iBAAiB,KAAK,MAAM,KAAK,CAAC;AAAA,MAC3C,SAASA,KAAG;AAEV,eAAO,iBAAiB,KAAK,QAAQ,SAAS,KAAK,CAAC;AAAA,MACtD;AAAA,IACF;AAAA,EACF;AAEA,WAAS,gBAAgB,QAAQ;AAC/B,QAAI,uBAAuB,cAAc;AAEvC,aAAO,aAAa,MAAM;AAAA,IAC5B;AAGA,SAAK,uBAAuB,uBAAuB,CAAC,uBAAuB,cAAc;AACvF,2BAAqB;AACrB,aAAO,aAAa,MAAM;AAAA,IAC5B;AAEA,QAAI;AAEF,aAAO,mBAAmB,MAAM;AAAA,IAClC,SAASA,IAAG;AACV,UAAI;AAEF,eAAO,mBAAmB,KAAK,MAAM,MAAM;AAAA,MAC7C,SAASA,KAAG;AAGV,eAAO,mBAAmB,KAAK,QAAQ,SAAS,MAAM;AAAA,MACxD;AAAA,IACF;AAAA,EACF;AAEA,MAAI,QAAQ,CAAC;AACb,MAAI,WAAW;AACf,MAAI;AACJ,MAAI,aAAa;AAEjB,WAAS,kBAAkB;AACzB,QAAI,CAAC,YAAY,CAAC,cAAc;AAC9B;AAAA,IACF;AAEA,eAAW;AAEX,QAAI,aAAa,QAAQ;AACvB,cAAQ,aAAa,OAAO,KAAK;AAAA,IACnC,OAAO;AACL,mBAAa;AAAA,IACf;AAEA,QAAI,MAAM,QAAQ;AAChB,iBAAW;AAAA,IACb;AAAA,EACF;AAEA,WAAS,aAAa;AACpB,QAAI,UAAU;AACZ;AAAA,IACF;AAEA,QAAI,UAAU,WAAW,eAAe;AACxC,eAAW;AACX,QAAI,MAAM,MAAM;AAEhB,WAAO,KAAK;AACV,qBAAe;AACf,cAAQ,CAAC;AAET,aAAO,EAAE,aAAa,KAAK;AACzB,YAAI,cAAc;AAChB,uBAAa,UAAU,EAAE,IAAI;AAAA,QAC/B;AAAA,MACF;AAEA,mBAAa;AACb,YAAM,MAAM;AAAA,IACd;AAEA,mBAAe;AACf,eAAW;AACX,oBAAgB,OAAO;AAAA,EACzB;AAEA,EAAAD,SAAQ,WAAW,SAAU,KAAK;AAChC,QAAI,OAAO,IAAI,MAAM,UAAU,SAAS,CAAC;AAEzC,QAAI,UAAU,SAAS,GAAG;AACxB,eAASE,KAAI,GAAGA,KAAI,UAAU,QAAQA,MAAK;AACzC,aAAKA,KAAI,CAAC,IAAI,UAAUA,EAAC;AAAA,MAC3B;AAAA,IACF;AAEA,UAAM,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC;AAE9B,QAAI,MAAM,WAAW,KAAK,CAAC,UAAU;AACnC,iBAAW,UAAU;AAAA,IACvB;AAAA,EACF;AAGA,WAAS,KAAK,KAAK,OAAO;AACxB,KAAC,QAAQ,SAAS,MAAM;AACxB,KAAC,QAAQ,SAAS,QAAQ;AAAA,EAC5B;AAEA,OAAK,UAAU,MAAM,WAAY;AAC/B,KAAC,QAAQ,SAAS,IAAI,MAAM,OAAO,QAAQ,SAAS,KAAK;AAAA,EAC3D;AAEA,EAAAF,SAAQ,QAAQ;AAChB,EAAAA,SAAQ,UAAU;AAClB,EAAAA,SAAQ,MAAM,CAAC;AACf,EAAAA,SAAQ,OAAO,CAAC;AAChB,EAAAA,SAAQ,UAAU;AAElB,EAAAA,SAAQ,WAAW,CAAC;AAEpB,WAAS,OAAO;AAAA,EAAC;AAEjB,EAAAA,SAAQ,KAAK;AACb,EAAAA,SAAQ,cAAc;AACtB,EAAAA,SAAQ,OAAO;AACf,EAAAA,SAAQ,MAAM;AACd,EAAAA,SAAQ,iBAAiB;AACzB,EAAAA,SAAQ,qBAAqB;AAC7B,EAAAA,SAAQ,OAAO;AACf,EAAAA,SAAQ,kBAAkB;AAC1B,EAAAA,SAAQ,sBAAsB;AAE9B,EAAAA,SAAQ,YAAY,SAAUG,OAAM;AAClC,WAAO,CAAC;AAAA,EACV;AAEA,EAAAH,SAAQ,UAAU,SAAUG,OAAM;AAChC,UAAM,IAAI,MAAM,kCAAkC;AAAA,EACpD;AAEA,EAAAH,SAAQ,MAAM,WAAY;AACxB,WAAO;AAAA,EACT;AAEA,EAAAA,SAAQ,QAAQ,SAAU,KAAK;AAC7B,UAAM,IAAI,MAAM,gCAAgC;AAAA,EAClD;AAEA,EAAAA,SAAQ,QAAQ,WAAY;AAC1B,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,IAAIA,WAAU,IAAI;AAElBA,SAAQ,WAAW;AACnBA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;AACRA,SAAQ;;;ACnPR;AAAA,KAAQI,OAAI,EAAC,YAAW,SAASC,IAAE;AAAC,MAAIC,KAAE,IAAID,EAAC,GAAEE,KAAED,GAAE,CAAC,GAAEE,KAAEF,GAAE,CAAC;AAAE,SAAO,KAAGC,KAAEC,MAAG,IAAEA;AAAC,GAAE,aAAY,SAASH,IAAE;AAAC,MAAIC,IAAEG,IAAEC,KAAE,IAAIL,EAAC,GAAEM,KAAED,GAAE,CAAC,GAAEE,KAAEF,GAAE,CAAC,GAAEG,KAAE,IAAIC,KAAI,SAAST,KAAEC,IAAEC,IAAE;AAAC,WAAO,KAAGD,KAAEC,MAAG,IAAEA;AAAA,EAAC,EAAE,GAAEI,IAAEC,EAAC,CAAC,GAAEG,KAAE,GAAEC,KAAEJ,KAAE,IAAED,KAAE,IAAEA;AAAE,OAAIF,KAAE,GAAEA,KAAEO,IAAEP,MAAG;AAAE,IAAAH,KAAEW,KAAIZ,GAAE,WAAWI,EAAC,CAAC,KAAG,KAAGQ,KAAIZ,GAAE,WAAWI,KAAE,CAAC,CAAC,KAAG,KAAGQ,KAAIZ,GAAE,WAAWI,KAAE,CAAC,CAAC,KAAG,IAAEQ,KAAIZ,GAAE,WAAWI,KAAE,CAAC,CAAC,GAAEI,GAAEE,IAAG,IAAET,MAAG,KAAG,KAAIO,GAAEE,IAAG,IAAET,MAAG,IAAE,KAAIO,GAAEE,IAAG,IAAE,MAAIT;AAAE,QAAIM,OAAIN,KAAEW,KAAIZ,GAAE,WAAWI,EAAC,CAAC,KAAG,IAAEQ,KAAIZ,GAAE,WAAWI,KAAE,CAAC,CAAC,KAAG,GAAEI,GAAEE,IAAG,IAAE,MAAIT;AAAG,QAAIM,OAAIN,KAAEW,KAAIZ,GAAE,WAAWI,EAAC,CAAC,KAAG,KAAGQ,KAAIZ,GAAE,WAAWI,KAAE,CAAC,CAAC,KAAG,IAAEQ,KAAIZ,GAAE,WAAWI,KAAE,CAAC,CAAC,KAAG,GAAEI,GAAEE,IAAG,IAAET,MAAG,IAAE,KAAIO,GAAEE,IAAG,IAAE,MAAIT;AAAG,SAAOO;AAAC,GAAE,eAAc,SAASR,IAAE;AAAC,WAAQE,IAAEC,KAAEH,GAAE,QAAOI,KAAED,KAAE,GAAEE,KAAE,CAAC,GAAEC,KAAE,GAAEO,KAAEV,KAAEC,IAAEE,KAAEO,IAAEP,MAAG;AAAM,IAAAD,GAAE,KAAKS,KAAId,IAAEM,IAAEA,KAAE,QAAMO,KAAEA,KAAEP,KAAE,KAAK,CAAC;AAAE,QAAIF,MAAGF,KAAEF,GAAEG,KAAE,CAAC,GAAEE,GAAE,KAAKU,KAAIb,MAAG,CAAC,IAAEa,KAAIb,MAAG,IAAE,EAAE,IAAE,IAAI,KAAG,MAAIE,OAAIF,MAAGF,GAAEG,KAAE,CAAC,KAAG,KAAGH,GAAEG,KAAE,CAAC,GAAEE,GAAE,KAAKU,KAAIb,MAAG,EAAE,IAAEa,KAAIb,MAAG,IAAE,EAAE,IAAEa,KAAIb,MAAG,IAAE,EAAE,IAAE,GAAG;AAAG,SAAOG,GAAE,KAAK,EAAE;AAAC,EAAC,GAAEU,OAAI,CAAC,GAAEH,OAAI,CAAC,GAAEH,OAAI,eAAa,OAAO,aAAW,aAAW,OAAMO,OAAI,oEAAmEC,OAAI,GAAEC,OAAIF,KAAI,QAAOC,OAAIC,MAAI,EAAED;AAAI,EAAAF,KAAIE,IAAG,IAAED,KAAIC,IAAG,GAAEL,KAAII,KAAI,WAAWC,IAAG,CAAC,IAAEA;AAA5hC,IAAAlB;AAAq0B,IAAAgB;AAAO,IAAAH;AAAO,IAAAH;AAAoD,IAAAO;AAAuE,IAAAC;AAAM,IAAAC;AAA4E,SAAS,IAAIlB,IAAE;AAAC,MAAIC,KAAED,GAAE;AAAO,MAAGC,KAAE,IAAE;AAAE,UAAM,IAAI,MAAM,gDAAgD;AAAE,MAAIC,KAAEF,GAAE,QAAQ,GAAG;AAAE,SAAO,OAAKE,OAAIA,KAAED,KAAG,CAACC,IAAEA,OAAID,KAAE,IAAE,IAAEC,KAAE,CAAC;AAAC;AAAC,SAASY,KAAId,IAAEE,IAAEC,IAAE;AAAC,WAAQC,IAAEC,IAAEC,KAAE,CAAC,GAAEO,KAAEX,IAAEW,KAAEV,IAAEU,MAAG;AAAE,IAAAT,MAAGJ,GAAEa,EAAC,KAAG,KAAG,aAAWb,GAAEa,KAAE,CAAC,KAAG,IAAE,UAAQ,MAAIb,GAAEa,KAAE,CAAC,IAAGP,GAAE,KAAKS,MAAKV,KAAED,OAAI,KAAG,EAAE,IAAEW,KAAIV,MAAG,KAAG,EAAE,IAAEU,KAAIV,MAAG,IAAE,EAAE,IAAEU,KAAI,KAAGV,EAAC,CAAC;AAAE,SAAOC,GAAE,KAAK,EAAE;AAAC;AAACM,KAAI,IAAI,WAAW,CAAC,CAAC,IAAE,IAAGA,KAAI,IAAI,WAAW,CAAC,CAAC,IAAE;AAAG,IAAI,QAAM,EAAC,MAAK,SAASP,IAAEJ,IAAEG,IAAEJ,IAAEM,IAAE;AAAC,MAAIa,IAAET,IAAEU,KAAE,IAAEd,KAAEN,KAAE,GAAEqB,MAAG,KAAGD,MAAG,GAAElB,KAAEmB,MAAG,GAAEC,KAAE,IAAGC,MAAEnB,KAAEE,KAAE,IAAE,GAAEH,KAAEC,KAAE,KAAG,GAAES,KAAER,GAAEJ,KAAEsB,GAAC;AAAE,OAAIA,OAAGpB,IAAEgB,KAAEN,MAAG,KAAG,CAACS,MAAG,GAAET,OAAI,CAACS,IAAEA,MAAGF,IAAEE,KAAE,GAAEH,KAAE,MAAIA,KAAEd,GAAEJ,KAAEsB,GAAC,GAAEA,OAAGpB,IAAEmB,MAAG;AAAE;AAAC,OAAIZ,KAAES,MAAG,KAAG,CAACG,MAAG,GAAEH,OAAI,CAACG,IAAEA,MAAGtB,IAAEsB,KAAE,GAAEZ,KAAE,MAAIA,KAAEL,GAAEJ,KAAEsB,GAAC,GAAEA,OAAGpB,IAAEmB,MAAG;AAAE;AAAC,MAAG,MAAIH;AAAE,IAAAA,KAAE,IAAEjB;AAAA,OAAO;AAAC,QAAGiB,OAAIE;AAAE,aAAOX,KAAE,MAAI,IAAE,KAAGG,KAAE,KAAG;AAAG,IAAAH,MAAG,KAAK,IAAI,GAAEV,EAAC,GAAEmB,MAAGjB;AAAA,EAAE;AAAC,UAAQW,KAAE,KAAG,KAAGH,KAAE,KAAK,IAAI,GAAES,KAAEnB,EAAC;AAAC,GAAE,OAAM,SAASK,IAAEJ,IAAEG,IAAEJ,IAAEM,IAAEa,IAAE;AAAC,MAAIT,IAAEU,IAAEC,IAAEnB,KAAE,IAAEiB,KAAEb,KAAE,GAAEgB,MAAG,KAAGpB,MAAG,GAAEqB,MAAED,MAAG,GAAEnB,KAAE,OAAKG,KAAE,KAAK,IAAI,GAAE,GAAG,IAAE,KAAK,IAAI,GAAE,GAAG,IAAE,GAAEO,KAAEb,KAAE,IAAEmB,KAAE,GAAEK,KAAExB,KAAE,IAAE,IAAGyB,KAAExB,KAAE,KAAG,MAAIA,MAAG,IAAEA,KAAE,IAAE,IAAE;AAAE,OAAIA,KAAE,KAAK,IAAIA,EAAC,GAAE,MAAMA,EAAC,KAAGA,OAAI,IAAE,KAAGmB,KAAE,MAAMnB,EAAC,IAAE,IAAE,GAAES,KAAEY,OAAIZ,KAAE,KAAK,MAAM,KAAK,IAAIT,EAAC,IAAE,KAAK,GAAG,GAAEA,MAAGoB,KAAE,KAAK,IAAI,GAAE,CAACX,EAAC,KAAG,MAAIA,MAAIW,MAAG,KAAIpB,MAAGS,KAAEa,OAAG,IAAEpB,KAAEkB,KAAElB,KAAE,KAAK,IAAI,GAAE,IAAEoB,GAAC,KAAGF,MAAG,MAAIX,MAAIW,MAAG,IAAGX,KAAEa,OAAGD,MAAGF,KAAE,GAAEV,KAAEY,MAAGZ,KAAEa,OAAG,KAAGH,MAAGnB,KAAEoB,KAAE,KAAG,KAAK,IAAI,GAAEf,EAAC,GAAEI,MAAGa,QAAIH,KAAEnB,KAAE,KAAK,IAAI,GAAEsB,MAAE,CAAC,IAAE,KAAK,IAAI,GAAEjB,EAAC,GAAEI,KAAE,KAAIJ,MAAG,GAAED,GAAED,KAAES,EAAC,IAAE,MAAIO,IAAEP,MAAGW,IAAEJ,MAAG,KAAId,MAAG;AAAE;AAAC,OAAII,KAAEA,MAAGJ,KAAEc,IAAElB,MAAGI,IAAEJ,KAAE,GAAEG,GAAED,KAAES,EAAC,IAAE,MAAIH,IAAEG,MAAGW,IAAEd,MAAG,KAAIR,MAAG;AAAE;AAAC,EAAAG,GAAED,KAAES,KAAEW,EAAC,KAAG,MAAIC;AAAE,EAAC;AAAE,IAAI,QAAM,CAAC;AAAX,IAAa,QAAM1B;AAAnB,IAAuB2B,OAAI;AAA3B,IAAiC,QAAM,cAAY,OAAO,UAAQ,cAAY,OAAO,OAAO,MAAI,OAAO,IAAI,4BAA4B,IAAE;AAAK,MAAM,SAAO,OAAM,MAAM,aAAW,SAASzB,IAAE;AAAC,GAACA,MAAGA,OAAIA,KAAE;AAAG,SAAO,MAAM,MAAM,CAACA,EAAC;AAAC,GAAE,MAAM,oBAAkB;AAAG,SAAS,IAAIA,IAAE;AAAC,MAAGA,KAAE;AAAW,UAAM,IAAI,WAAW,gBAAcA,KAAE,gCAAgC;AAAE,MAAID,KAAE,IAAI,WAAWC,EAAC;AAAE,SAAO,OAAO,eAAeD,IAAE,MAAM,SAAS,GAAEA;AAAC;AAAC,SAAS,MAAMC,IAAED,IAAEE,IAAE;AAAC,MAAG,YAAU,OAAOD,IAAE;AAAC,QAAG,YAAU,OAAOD;AAAE,YAAM,IAAI,UAAU,oEAAoE;AAAE,WAAO,IAAIC,EAAC;AAAA,EAAC;AAAC,SAAO,IAAIA,IAAED,IAAEE,EAAC;AAAC;AAAC,SAAS,IAAID,IAAED,IAAEE,IAAE;AAAC,MAAG,YAAU,OAAOD;AAAE,WAAO,SAASA,IAAED,KAAE;AAAC,kBAAU,OAAOA,OAAG,OAAKA,QAAIA,MAAE;AAAQ,UAAG,CAAC,MAAM,WAAWA,GAAC;AAAE,cAAM,IAAI,UAAU,uBAAqBA,GAAC;AAAE,UAAIE,MAAE,IAAEyB,GAAE1B,IAAED,GAAC,GAAEG,KAAE,IAAID,GAAC,GAAEoB,KAAEnB,GAAE,MAAMF,IAAED,GAAC;AAAE,MAAAsB,OAAIpB,QAAIC,KAAEA,GAAE,MAAM,GAAEmB,EAAC;AAAG,aAAOnB;AAAA,IAAC,EAAEF,IAAED,EAAC;AAAE,MAAG,YAAY,OAAOC,EAAC;AAAE,WAAOmB,GAAEnB,EAAC;AAAE,MAAG,QAAMA;AAAE,UAAM,IAAI,UAAU,oHAAkH,OAAOA,EAAC;AAAE,MAAG2B,GAAE3B,IAAE,WAAW,KAAGA,MAAG2B,GAAE3B,GAAE,QAAO,WAAW;AAAE,WAAO,MAAMA,IAAED,IAAEE,EAAC;AAAE,MAAG,eAAa,OAAO,sBAAoB0B,GAAE3B,IAAE,iBAAiB,KAAGA,MAAG2B,GAAE3B,GAAE,QAAO,iBAAiB;AAAG,WAAO,MAAMA,IAAED,IAAEE,EAAC;AAAE,MAAG,YAAU,OAAOD;AAAE,UAAM,IAAI,UAAU,uEAAuE;AAAE,MAAIE,KAAEF,GAAE,WAASA,GAAE,QAAQ;AAAE,MAAG,QAAME,MAAGA,OAAIF;AAAE,WAAO,MAAM,KAAKE,IAAEH,IAAEE,EAAC;AAAE,MAAIoB,KAAE,SAASrB,IAAE;AAAC,QAAG,MAAM,SAASA,EAAC,GAAE;AAAC,UAAID,MAAE,IAAE6B,KAAI5B,GAAE,MAAM,GAAEC,MAAE,IAAIF,GAAC;AAAE,aAAO,MAAIE,IAAE,UAAQD,GAAE,KAAKC,KAAE,GAAE,GAAEF,GAAC,GAAEE;AAAA,IAAC;AAAC,QAAG,WAASD,GAAE;AAAO,aAAO,YAAU,OAAOA,GAAE,UAAQsB,GAAEtB,GAAE,MAAM,IAAE,IAAI,CAAC,IAAEmB,GAAEnB,EAAC;AAAE,QAAG,aAAWA,GAAE,QAAM,MAAM,QAAQA,GAAE,IAAI;AAAE,aAAOmB,GAAEnB,GAAE,IAAI;AAAA,EAAC,EAAEA,EAAC;AAAE,MAAGqB;AAAE,WAAOA;AAAE,MAAG,eAAa,OAAO,UAAQ,QAAM,OAAO,eAAa,cAAY,OAAOrB,GAAE,OAAO,WAAW;AAAE,WAAO,MAAM,KAAKA,GAAE,OAAO,WAAW,EAAE,QAAQ,GAAED,IAAEE,EAAC;AAAE,QAAM,IAAI,UAAU,oHAAkH,OAAOD,EAAC;AAAC;AAAC,SAAS,MAAMA,IAAE;AAAC,MAAG,YAAU,OAAOA;AAAE,UAAM,IAAI,UAAU,wCAAwC;AAAE,MAAGA,KAAE;AAAE,UAAM,IAAI,WAAW,gBAAcA,KAAE,gCAAgC;AAAC;AAAC,SAAS,IAAIA,IAAE;AAAC,SAAO,MAAMA,EAAC,GAAE,IAAIA,KAAE,IAAE,IAAE,IAAE4B,KAAI5B,EAAC,CAAC;AAAC;AAAC,SAASmB,GAAEnB,IAAE;AAAC,WAAQD,KAAEC,GAAE,SAAO,IAAE,IAAE,IAAE4B,KAAI5B,GAAE,MAAM,GAAEC,KAAE,IAAIF,EAAC,GAAEG,KAAE,GAAEA,KAAEH,IAAEG,MAAG;AAAE,IAAAD,GAAEC,EAAC,IAAE,MAAIF,GAAEE,EAAC;AAAE,SAAOD;AAAC;AAAC,SAAS,MAAMD,IAAED,IAAEE,IAAE;AAAC,MAAGF,KAAE,KAAGC,GAAE,aAAWD;AAAE,UAAM,IAAI,WAAW,sCAAsC;AAAE,MAAGC,GAAE,aAAWD,MAAGE,MAAG;AAAG,UAAM,IAAI,WAAW,sCAAsC;AAAE,MAAIC;AAAE,SAAOA,KAAE,WAASH,MAAG,WAASE,KAAE,IAAI,WAAWD,EAAC,IAAE,WAASC,KAAE,IAAI,WAAWD,IAAED,EAAC,IAAE,IAAI,WAAWC,IAAED,IAAEE,EAAC,GAAE,OAAO,eAAeC,IAAE,MAAM,SAAS,GAAEA;AAAC;AAAC,SAAS0B,KAAI5B,IAAE;AAAC,MAAGA,MAAG;AAAW,UAAM,IAAI,WAAW,4DAA0D,YAAY,SAAS,EAAE,IAAE,QAAQ;AAAE,SAAO,IAAEA;AAAC;AAAC,SAAS0B,GAAE1B,IAAED,IAAE;AAAC,MAAG,MAAM,SAASC,EAAC;AAAE,WAAOA,GAAE;AAAO,MAAG,YAAY,OAAOA,EAAC,KAAG2B,GAAE3B,IAAE,WAAW;AAAE,WAAOA,GAAE;AAAW,MAAG,YAAU,OAAOA;AAAE,UAAM,IAAI,UAAU,6FAA2F,OAAOA,EAAC;AAAE,MAAIC,KAAED,GAAE,QAAOE,KAAE,UAAU,SAAO,KAAG,SAAK,UAAU,CAAC;AAAE,MAAG,CAACA,MAAG,MAAID;AAAE,WAAO;AAAE,WAAQoB,KAAE;AAAK,YAAOtB,IAAE;AAAA,MAAC,KAAI;AAAA,MAAQ,KAAI;AAAA,MAAS,KAAI;AAAS,eAAOE;AAAA,MAAE,KAAI;AAAA,MAAO,KAAI;AAAQ,eAAO4B,GAAE7B,EAAC,EAAE;AAAA,MAAO,KAAI;AAAA,MAAO,KAAI;AAAA,MAAQ,KAAI;AAAA,MAAU,KAAI;AAAW,eAAO,IAAEC;AAAA,MAAE,KAAI;AAAM,eAAOA,OAAI;AAAA,MAAE,KAAI;AAAS,eAAO6B,GAAE9B,EAAC,EAAE;AAAA,MAAO;AAAQ,YAAGqB;AAAE,iBAAOnB,KAAE,KAAG2B,GAAE7B,EAAC,EAAE;AAAO,QAAAD,MAAG,KAAGA,IAAG,YAAY,GAAEsB,KAAE;AAAA,IAAG;AAAC;AAAC,SAASU,GAAE/B,IAAED,IAAEE,IAAE;AAAC,MAAIC,KAAE;AAAG,OAAI,WAASH,MAAGA,KAAE,OAAKA,KAAE,IAAGA,KAAE,KAAK;AAAO,WAAO;AAAG,OAAI,WAASE,MAAGA,KAAE,KAAK,YAAUA,KAAE,KAAK,SAAQA,MAAG;AAAE,WAAO;AAAG,OAAIA,QAAK,OAAKF,QAAK;AAAG,WAAO;AAAG,OAAIC,OAAIA,KAAE;AAAU,YAAOA,IAAE;AAAA,MAAC,KAAI;AAAM,eAAOgC,GAAE,MAAKjC,IAAEE,EAAC;AAAA,MAAE,KAAI;AAAA,MAAO,KAAI;AAAQ,eAAOgC,GAAE,MAAKlC,IAAEE,EAAC;AAAA,MAAE,KAAI;AAAQ,eAAOiC,GAAE,MAAKnC,IAAEE,EAAC;AAAA,MAAE,KAAI;AAAA,MAAS,KAAI;AAAS,eAAOkC,GAAE,MAAKpC,IAAEE,EAAC;AAAA,MAAE,KAAI;AAAS,eAAOmC,GAAE,MAAKrC,IAAEE,EAAC;AAAA,MAAE,KAAI;AAAA,MAAO,KAAI;AAAA,MAAQ,KAAI;AAAA,MAAU,KAAI;AAAW,eAAOoC,GAAE,MAAKtC,IAAEE,EAAC;AAAA,MAAE;AAAQ,YAAGC;AAAE,gBAAM,IAAI,UAAU,uBAAqBF,EAAC;AAAE,QAAAA,MAAGA,KAAE,IAAI,YAAY,GAAEE,KAAE;AAAA,IAAG;AAAC;AAAC,SAASkB,GAAEpB,IAAED,IAAEE,IAAE;AAAC,MAAIC,KAAEF,GAAED,EAAC;AAAE,EAAAC,GAAED,EAAC,IAAEC,GAAEC,EAAC,GAAED,GAAEC,EAAC,IAAEC;AAAE;AAAC,SAASK,GAAEP,IAAED,IAAEE,IAAEC,IAAEmB,IAAE;AAAC,MAAG,MAAIrB,GAAE;AAAO,WAAO;AAAG,MAAG,YAAU,OAAOC,MAAGC,KAAED,IAAEA,KAAE,KAAGA,KAAE,aAAWA,KAAE,aAAWA,KAAE,gBAAcA,KAAE,cAAaqB,GAAErB,KAAE,CAACA,EAAC,MAAIA,KAAEoB,KAAE,IAAErB,GAAE,SAAO,IAAGC,KAAE,MAAIA,KAAED,GAAE,SAAOC,KAAGA,MAAGD,GAAE,QAAO;AAAC,QAAGqB;AAAE,aAAO;AAAG,IAAApB,KAAED,GAAE,SAAO;AAAA,EAAE,WAASC,KAAE,GAAE;AAAC,QAAG,CAACoB;AAAE,aAAO;AAAG,IAAApB,KAAE;AAAA,EAAE;AAAC,MAAG,YAAU,OAAOF,OAAIA,KAAE,MAAM,KAAKA,IAAEG,EAAC,IAAG,MAAM,SAASH,EAAC;AAAE,WAAO,MAAIA,GAAE,SAAO,KAAGuC,GAAEtC,IAAED,IAAEE,IAAEC,IAAEmB,EAAC;AAAE,MAAG,YAAU,OAAOtB;AAAE,WAAOA,MAAG,KAAI,cAAY,OAAO,WAAW,UAAU,UAAQsB,KAAE,WAAW,UAAU,QAAQ,KAAKrB,IAAED,IAAEE,EAAC,IAAE,WAAW,UAAU,YAAY,KAAKD,IAAED,IAAEE,EAAC,IAAEqC,GAAEtC,IAAE,CAACD,EAAC,GAAEE,IAAEC,IAAEmB,EAAC;AAAE,QAAM,IAAI,UAAU,sCAAsC;AAAC;AAAC,SAASiB,GAAEtC,IAAED,IAAEE,IAAEC,IAAEmB,IAAE;AAAC,MAAIlB,IAAEM,KAAE,GAAEG,KAAEZ,GAAE,QAAOwB,KAAEzB,GAAE;AAAO,MAAG,WAASG,OAAI,YAAUA,KAAE,OAAOA,EAAC,EAAE,YAAY,MAAI,YAAUA,MAAG,cAAYA,MAAG,eAAaA,KAAG;AAAC,QAAGF,GAAE,SAAO,KAAGD,GAAE,SAAO;AAAE,aAAO;AAAG,IAAAU,KAAE,GAAEG,MAAG,GAAEY,MAAG,GAAEvB,MAAG;AAAA,EAAE;AAAC,WAASI,GAAEL,IAAED,KAAE;AAAC,WAAO,MAAIU,KAAET,GAAED,GAAC,IAAEC,GAAE,aAAaD,MAAEU,EAAC;AAAA,EAAC;AAAC,MAAGY,IAAE;AAAC,QAAIjB,KAAE;AAAG,SAAID,KAAEF,IAAEE,KAAES,IAAET;AAAI,UAAGE,GAAEL,IAAEG,EAAC,MAAIE,GAAEN,IAAE,OAAKK,KAAE,IAAED,KAAEC,EAAC,GAAE;AAAC,YAAG,OAAKA,OAAIA,KAAED,KAAGA,KAAEC,KAAE,MAAIoB;AAAE,iBAAOpB,KAAEK;AAAA,MAAC;AAAM,eAAKL,OAAID,MAAGA,KAAEC,KAAGA,KAAE;AAAA,EAAG;AAAM,SAAIH,KAAEuB,KAAEZ,OAAIX,KAAEW,KAAEY,KAAGrB,KAAEF,IAAEE,MAAG,GAAEA,MAAI;AAAC,eAAQgB,KAAE,MAAGb,KAAE,GAAEA,KAAEkB,IAAElB;AAAI,YAAGD,GAAEL,IAAEG,KAAEG,EAAC,MAAID,GAAEN,IAAEO,EAAC,GAAE;AAAC,UAAAa,KAAE;AAAG;AAAA,QAAK;AAAC,UAAGA;AAAE,eAAOhB;AAAA,IAAC;AAAC,SAAO;AAAE;AAAC,SAASoC,GAAEvC,IAAED,IAAEE,IAAEC,IAAE;AAAC,EAAAD,KAAE,OAAOA,EAAC,KAAG;AAAE,MAAIoB,KAAErB,GAAE,SAAOC;AAAE,EAAAC,MAAGA,KAAE,OAAOA,EAAC,KAAGmB,OAAInB,KAAEmB,MAAGnB,KAAEmB;AAAE,MAAIlB,KAAEJ,GAAE;AAAO,EAAAG,KAAEC,KAAE,MAAID,KAAEC,KAAE;AAAG,WAAQM,KAAE,GAAEA,KAAEP,IAAE,EAAEO,IAAE;AAAC,QAAIG,KAAE,SAASb,GAAE,OAAO,IAAEU,IAAE,CAAC,GAAE,EAAE;AAAE,QAAGa,GAAEV,EAAC;AAAE,aAAOH;AAAE,IAAAT,GAAEC,KAAEQ,EAAC,IAAEG;AAAA,EAAE;AAAC,SAAOH;AAAC;AAAC,SAAS+B,GAAExC,IAAED,IAAEE,IAAEC,IAAE;AAAC,SAAOuC,GAAEZ,GAAE9B,IAAEC,GAAE,SAAOC,EAAC,GAAED,IAAEC,IAAEC,EAAC;AAAC;AAAC,SAASwC,GAAE1C,IAAED,IAAEE,IAAEC,IAAE;AAAC,SAAOuC,GAAE,SAASzC,IAAE;AAAC,aAAQD,MAAE,CAAC,GAAEE,MAAE,GAAEA,MAAED,GAAE,QAAO,EAAEC;AAAE,MAAAF,IAAE,KAAK,MAAIC,GAAE,WAAWC,GAAC,CAAC;AAAE,WAAOF;AAAA,EAAC,EAAEA,EAAC,GAAEC,IAAEC,IAAEC,EAAC;AAAC;AAAC,SAASyC,GAAE3C,IAAED,IAAEE,IAAEC,IAAE;AAAC,SAAOwC,GAAE1C,IAAED,IAAEE,IAAEC,EAAC;AAAC;AAAC,SAASQ,GAAEV,IAAED,IAAEE,IAAEC,IAAE;AAAC,SAAOuC,GAAEX,GAAE/B,EAAC,GAAEC,IAAEC,IAAEC,EAAC;AAAC;AAAC,SAAS0C,GAAE5C,IAAED,IAAEE,IAAEC,IAAE;AAAC,SAAOuC,GAAE,SAASzC,IAAED,KAAE;AAAC,aAAQE,KAAEC,IAAEmB,IAAElB,KAAE,CAAC,GAAEM,KAAE,GAAEA,KAAET,GAAE,UAAQ,GAAGD,OAAG,KAAG,IAAG,EAAEU;AAAE,MAAAR,MAAED,GAAE,WAAWS,EAAC,GAAEP,KAAED,OAAG,GAAEoB,KAAEpB,MAAE,KAAIE,GAAE,KAAKkB,EAAC,GAAElB,GAAE,KAAKD,EAAC;AAAE,WAAOC;AAAA,EAAC,EAAEJ,IAAEC,GAAE,SAAOC,EAAC,GAAED,IAAEC,IAAEC,EAAC;AAAC;AAAC,SAASkC,GAAEpC,IAAED,IAAEE,IAAE;AAAC,SAAO,MAAIF,MAAGE,OAAID,GAAE,SAAO,MAAM,cAAcA,EAAC,IAAE,MAAM,cAAcA,GAAE,MAAMD,IAAEE,EAAC,CAAC;AAAC;AAAC,SAASgC,GAAEjC,IAAED,IAAEE,IAAE;AAAC,EAAAA,KAAE,KAAK,IAAID,GAAE,QAAOC,EAAC;AAAE,WAAQC,KAAE,CAAC,GAAEmB,KAAEtB,IAAEsB,KAAEpB,MAAG;AAAC,QAAIE,IAAEM,IAAEG,IAAEY,IAAEnB,KAAEL,GAAEqB,EAAC,GAAEjB,KAAE,MAAKe,KAAEd,KAAE,MAAI,IAAEA,KAAE,MAAI,IAAEA,KAAE,MAAI,IAAE;AAAE,QAAGgB,KAAEF,MAAGlB;AAAE,cAAOkB,IAAE;AAAA,QAAC,KAAK;AAAE,UAAAd,KAAE,QAAMD,KAAEC;AAAG;AAAA,QAAM,KAAK;AAAE,kBAAM,OAAKF,KAAEH,GAAEqB,KAAE,CAAC,QAAMG,MAAG,KAAGnB,OAAI,IAAE,KAAGF,MAAG,QAAMC,KAAEoB;AAAG;AAAA,QAAM,KAAK;AAAE,UAAArB,KAAEH,GAAEqB,KAAE,CAAC,GAAEZ,KAAET,GAAEqB,KAAE,CAAC,GAAE,QAAM,MAAIlB,OAAI,QAAM,MAAIM,QAAKe,MAAG,KAAGnB,OAAI,MAAI,KAAGF,OAAI,IAAE,KAAGM,MAAG,SAAOe,KAAE,SAAOA,KAAE,WAASpB,KAAEoB;AAAG;AAAA,QAAM,KAAK;AAAE,UAAArB,KAAEH,GAAEqB,KAAE,CAAC,GAAEZ,KAAET,GAAEqB,KAAE,CAAC,GAAET,KAAEZ,GAAEqB,KAAE,CAAC,GAAE,QAAM,MAAIlB,OAAI,QAAM,MAAIM,OAAI,QAAM,MAAIG,QAAKY,MAAG,KAAGnB,OAAI,MAAI,KAAGF,OAAI,MAAI,KAAGM,OAAI,IAAE,KAAGG,MAAG,SAAOY,KAAE,YAAUpB,KAAEoB;AAAA,MAAG;AAAC,aAAOpB,MAAGA,KAAE,OAAMe,KAAE,KAAGf,KAAE,UAAQA,MAAG,OAAMF,GAAE,KAAKE,OAAI,KAAG,OAAK,KAAK,GAAEA,KAAE,QAAM,OAAKA,KAAGF,GAAE,KAAKE,EAAC,GAAEiB,MAAGF;AAAA,EAAE;AAAC,SAAO,SAASnB,IAAE;AAAC,QAAID,MAAEC,GAAE;AAAO,QAAGD,OAAG;AAAK,aAAO,OAAO,aAAa,MAAM,QAAOC,EAAC;AAAE,QAAIC,MAAE,IAAGC,KAAE;AAAE,WAAKA,KAAEH;AAAG,MAAAE,OAAG,OAAO,aAAa,MAAM,QAAOD,GAAE,MAAME,IAAEA,MAAG,IAAI,CAAC;AAAE,WAAOD;AAAA,EAAC,EAAEC,EAAC;AAAC;AAAC,MAAM,aAAW,YAAW,MAAM,sBAAoB,WAAU;AAAC,MAAG;AAAC,QAAIF,KAAE,IAAI,WAAW,CAAC,GAAED,KAAE,EAAC,KAAI,WAAU;AAAC,aAAO;AAAA,IAAE,EAAC;AAAE,WAAO,OAAO,eAAeA,IAAE,WAAW,SAAS,GAAE,OAAO,eAAeC,IAAED,EAAC,GAAE,OAAKC,GAAE,IAAI;AAAA,EAAC,SAAOA,IAAE;AAAC,WAAO;AAAA,EAAE;AAAC,EAAE,GAAE,MAAM,uBAAqB,eAAa,OAAO,WAAS,cAAY,OAAO,QAAQ,SAAO,QAAQ,MAAM,+IAA+I,GAAE,OAAO,eAAe,MAAM,WAAU,UAAS,EAAC,YAAW,MAAG,KAAI,WAAU;AAAC,MAAG,MAAM,SAAS,IAAI;AAAE,WAAO,KAAK;AAAM,EAAC,CAAC,GAAE,OAAO,eAAe,MAAM,WAAU,UAAS,EAAC,YAAW,MAAG,KAAI,WAAU;AAAC,MAAG,MAAM,SAAS,IAAI;AAAE,WAAO,KAAK;AAAU,EAAC,CAAC,GAAE,MAAM,WAAS,MAAK,MAAM,OAAK,SAASA,IAAED,IAAEE,IAAE;AAAC,SAAO,IAAID,IAAED,IAAEE,EAAC;AAAC,GAAE,OAAO,eAAe,MAAM,WAAU,WAAW,SAAS,GAAE,OAAO,eAAe,OAAM,UAAU,GAAE,MAAM,QAAM,SAASD,IAAED,IAAEE,IAAE;AAAC,SAAO,SAASD,IAAED,KAAEE,KAAE;AAAC,WAAO,MAAMD,EAAC,GAAEA,MAAG,IAAE,IAAIA,EAAC,IAAE,WAASD,MAAE,YAAU,OAAOE,MAAE,IAAID,EAAC,EAAE,KAAKD,KAAEE,GAAC,IAAE,IAAID,EAAC,EAAE,KAAKD,GAAC,IAAE,IAAIC,EAAC;AAAA,EAAC,EAAEA,IAAED,IAAEE,EAAC;AAAC,GAAE,MAAM,cAAY,SAASD,IAAE;AAAC,SAAO,IAAIA,EAAC;AAAC,GAAE,MAAM,kBAAgB,SAASA,IAAE;AAAC,SAAO,IAAIA,EAAC;AAAC,GAAE,MAAM,WAAS,SAASA,IAAE;AAAC,SAAO,QAAMA,MAAG,SAAKA,GAAE,aAAWA,OAAI,MAAM;AAAS,GAAE,MAAM,UAAQ,SAASA,IAAED,IAAE;AAAC,MAAG4B,GAAE3B,IAAE,UAAU,MAAIA,KAAE,MAAM,KAAKA,IAAEA,GAAE,QAAOA,GAAE,UAAU,IAAG2B,GAAE5B,IAAE,UAAU,MAAIA,KAAE,MAAM,KAAKA,IAAEA,GAAE,QAAOA,GAAE,UAAU,IAAG,CAAC,MAAM,SAASC,EAAC,KAAG,CAAC,MAAM,SAASD,EAAC;AAAE,UAAM,IAAI,UAAU,uEAAuE;AAAE,MAAGC,OAAID;AAAE,WAAO;AAAE,WAAQE,KAAED,GAAE,QAAOE,KAAEH,GAAE,QAAOsB,KAAE,GAAElB,KAAE,KAAK,IAAIF,IAAEC,EAAC,GAAEmB,KAAElB,IAAE,EAAEkB;AAAE,QAAGrB,GAAEqB,EAAC,MAAItB,GAAEsB,EAAC,GAAE;AAAC,MAAApB,KAAED,GAAEqB,EAAC,GAAEnB,KAAEH,GAAEsB,EAAC;AAAE;AAAA,IAAK;AAAC,SAAOpB,KAAEC,KAAE,KAAGA,KAAED,KAAE,IAAE;AAAC,GAAE,MAAM,aAAW,SAASD,IAAE;AAAC,UAAO,OAAOA,EAAC,EAAE,YAAY,GAAE;AAAA,IAAC,KAAI;AAAA,IAAM,KAAI;AAAA,IAAO,KAAI;AAAA,IAAQ,KAAI;AAAA,IAAQ,KAAI;AAAA,IAAS,KAAI;AAAA,IAAS,KAAI;AAAA,IAAS,KAAI;AAAA,IAAO,KAAI;AAAA,IAAQ,KAAI;AAAA,IAAU,KAAI;AAAW,aAAO;AAAA,IAAG;AAAQ,aAAO;AAAA,EAAE;AAAC,GAAE,MAAM,SAAO,SAASA,IAAED,IAAE;AAAC,MAAG,CAAC,MAAM,QAAQC,EAAC;AAAE,UAAM,IAAI,UAAU,6CAA6C;AAAE,MAAG,MAAIA,GAAE;AAAO,WAAO,MAAM,MAAM,CAAC;AAAE,MAAIC;AAAE,MAAG,WAASF;AAAE,SAAIA,KAAE,GAAEE,KAAE,GAAEA,KAAED,GAAE,QAAO,EAAEC;AAAE,MAAAF,MAAGC,GAAEC,EAAC,EAAE;AAAO,MAAIC,KAAE,MAAM,YAAYH,EAAC,GAAEsB,KAAE;AAAE,OAAIpB,KAAE,GAAEA,KAAED,GAAE,QAAO,EAAEC,IAAE;AAAC,QAAIE,KAAEH,GAAEC,EAAC;AAAE,QAAG0B,GAAExB,IAAE,UAAU,MAAIA,KAAE,MAAM,KAAKA,EAAC,IAAG,CAAC,MAAM,SAASA,EAAC;AAAE,YAAM,IAAI,UAAU,6CAA6C;AAAE,IAAAA,GAAE,KAAKD,IAAEmB,EAAC,GAAEA,MAAGlB,GAAE;AAAA,EAAO;AAAC,SAAOD;AAAC,GAAE,MAAM,aAAWwB,IAAE,MAAM,UAAU,YAAU,MAAG,MAAM,UAAU,SAAO,WAAU;AAAC,MAAI1B,KAAE,KAAK;AAAO,MAAGA,KAAE,KAAG;AAAE,UAAM,IAAI,WAAW,2CAA2C;AAAE,WAAQD,KAAE,GAAEA,KAAEC,IAAED,MAAG;AAAE,IAAAqB,GAAE,MAAKrB,IAAEA,KAAE,CAAC;AAAE,SAAO;AAAI,GAAE,MAAM,UAAU,SAAO,WAAU;AAAC,MAAIC,KAAE,KAAK;AAAO,MAAGA,KAAE,KAAG;AAAE,UAAM,IAAI,WAAW,2CAA2C;AAAE,WAAQD,KAAE,GAAEA,KAAEC,IAAED,MAAG;AAAE,IAAAqB,GAAE,MAAKrB,IAAEA,KAAE,CAAC,GAAEqB,GAAE,MAAKrB,KAAE,GAAEA,KAAE,CAAC;AAAE,SAAO;AAAI,GAAE,MAAM,UAAU,SAAO,WAAU;AAAC,MAAIC,KAAE,KAAK;AAAO,MAAGA,KAAE,KAAG;AAAE,UAAM,IAAI,WAAW,2CAA2C;AAAE,WAAQD,KAAE,GAAEA,KAAEC,IAAED,MAAG;AAAE,IAAAqB,GAAE,MAAKrB,IAAEA,KAAE,CAAC,GAAEqB,GAAE,MAAKrB,KAAE,GAAEA,KAAE,CAAC,GAAEqB,GAAE,MAAKrB,KAAE,GAAEA,KAAE,CAAC,GAAEqB,GAAE,MAAKrB,KAAE,GAAEA,KAAE,CAAC;AAAE,SAAO;AAAI,GAAE,MAAM,UAAU,WAAS,WAAU;AAAC,MAAIC,KAAE,KAAK;AAAO,SAAO,MAAIA,KAAE,KAAG,MAAI,UAAU,SAAOiC,GAAE,MAAK,GAAEjC,EAAC,IAAE+B,GAAE,MAAM,MAAK,SAAS;AAAC,GAAE,MAAM,UAAU,iBAAe,MAAM,UAAU,UAAS,MAAM,UAAU,SAAO,SAAS/B,IAAE;AAAC,MAAG,CAAC,MAAM,SAASA,EAAC;AAAE,UAAM,IAAI,UAAU,2BAA2B;AAAE,SAAO,SAAOA,MAAG,MAAI,MAAM,QAAQ,MAAKA,EAAC;AAAC,GAAE,MAAM,UAAU,UAAQ,WAAU;AAAC,MAAIA,KAAE,IAAGD,KAAE,MAAM;AAAkB,SAAOC,KAAE,KAAK,SAAS,OAAM,GAAED,EAAC,EAAE,QAAQ,WAAU,KAAK,EAAE,KAAK,GAAE,KAAK,SAAOA,OAAIC,MAAG,UAAS,aAAWA,KAAE;AAAG,GAAE,UAAQ,MAAM,UAAU,KAAK,IAAE,MAAM,UAAU,UAAS,MAAM,UAAU,UAAQ,SAASA,IAAED,IAAEE,IAAEC,IAAEmB,IAAE;AAAC,MAAGM,GAAE3B,IAAE,UAAU,MAAIA,KAAE,MAAM,KAAKA,IAAEA,GAAE,QAAOA,GAAE,UAAU,IAAG,CAAC,MAAM,SAASA,EAAC;AAAE,UAAM,IAAI,UAAU,mFAAiF,OAAOA,EAAC;AAAE,MAAG,WAASD,OAAIA,KAAE,IAAG,WAASE,OAAIA,KAAED,KAAEA,GAAE,SAAO,IAAG,WAASE,OAAIA,KAAE,IAAG,WAASmB,OAAIA,KAAE,KAAK,SAAQtB,KAAE,KAAGE,KAAED,GAAE,UAAQE,KAAE,KAAGmB,KAAE,KAAK;AAAO,UAAM,IAAI,WAAW,oBAAoB;AAAE,MAAGnB,MAAGmB,MAAGtB,MAAGE;AAAE,WAAO;AAAE,MAAGC,MAAGmB;AAAE,WAAO;AAAG,MAAGtB,MAAGE;AAAE,WAAO;AAAE,MAAG,SAAOD;AAAE,WAAO;AAAE,WAAQG,MAAGkB,QAAK,MAAInB,QAAK,IAAGO,MAAGR,QAAK,MAAIF,QAAK,IAAGyB,KAAE,KAAK,IAAIrB,IAAEM,EAAC,GAAEJ,KAAE,KAAK,MAAMH,IAAEmB,EAAC,GAAEjB,KAAEJ,GAAE,MAAMD,IAAEE,EAAC,GAAEkB,KAAE,GAAEA,KAAEK,IAAE,EAAEL;AAAE,QAAGd,GAAEc,EAAC,MAAIf,GAAEe,EAAC,GAAE;AAAC,MAAAhB,KAAEE,GAAEc,EAAC,GAAEV,KAAEL,GAAEe,EAAC;AAAE;AAAA,IAAK;AAAC,SAAOhB,KAAEM,KAAE,KAAGA,KAAEN,KAAE,IAAE;AAAC,GAAE,MAAM,UAAU,WAAS,SAASH,IAAED,IAAEE,IAAE;AAAC,SAAO,OAAK,KAAK,QAAQD,IAAED,IAAEE,EAAC;AAAC,GAAE,MAAM,UAAU,UAAQ,SAASD,IAAED,IAAEE,IAAE;AAAC,SAAOM,GAAE,MAAKP,IAAED,IAAEE,IAAE,IAAE;AAAC,GAAE,MAAM,UAAU,cAAY,SAASD,IAAED,IAAEE,IAAE;AAAC,SAAOM,GAAE,MAAKP,IAAED,IAAEE,IAAE,KAAE;AAAC,GAAE,MAAM,UAAU,QAAM,SAASD,IAAED,IAAEE,IAAEC,IAAE;AAAC,MAAG,WAASH;AAAE,IAAAG,KAAE,QAAOD,KAAE,KAAK,QAAOF,KAAE;AAAA,WAAU,WAASE,MAAG,YAAU,OAAOF;AAAE,IAAAG,KAAEH,IAAEE,KAAE,KAAK,QAAOF,KAAE;AAAA,OAAO;AAAC,QAAG,CAAC,SAASA,EAAC;AAAE,YAAM,IAAI,MAAM,yEAAyE;AAAE,IAAAA,QAAK,GAAE,SAASE,EAAC,KAAGA,QAAK,GAAE,WAASC,OAAIA,KAAE,YAAUA,KAAED,IAAEA,KAAE;AAAA,EAAQ;AAAC,MAAIoB,KAAE,KAAK,SAAOtB;AAAE,OAAI,WAASE,MAAGA,KAAEoB,QAAKpB,KAAEoB,KAAGrB,GAAE,SAAO,MAAIC,KAAE,KAAGF,KAAE,MAAIA,KAAE,KAAK;AAAO,UAAM,IAAI,WAAW,wCAAwC;AAAE,EAAAG,OAAIA,KAAE;AAAQ,WAAQC,KAAE;AAAK,YAAOD,IAAE;AAAA,MAAC,KAAI;AAAM,eAAOqC,GAAE,MAAKvC,IAAED,IAAEE,EAAC;AAAA,MAAE,KAAI;AAAA,MAAO,KAAI;AAAQ,eAAOuC,GAAE,MAAKxC,IAAED,IAAEE,EAAC;AAAA,MAAE,KAAI;AAAQ,eAAOyC,GAAE,MAAK1C,IAAED,IAAEE,EAAC;AAAA,MAAE,KAAI;AAAA,MAAS,KAAI;AAAS,eAAO0C,GAAE,MAAK3C,IAAED,IAAEE,EAAC;AAAA,MAAE,KAAI;AAAS,eAAOS,GAAE,MAAKV,IAAED,IAAEE,EAAC;AAAA,MAAE,KAAI;AAAA,MAAO,KAAI;AAAA,MAAQ,KAAI;AAAA,MAAU,KAAI;AAAW,eAAO2C,GAAE,MAAK5C,IAAED,IAAEE,EAAC;AAAA,MAAE;AAAQ,YAAGE;AAAE,gBAAM,IAAI,UAAU,uBAAqBD,EAAC;AAAE,QAAAA,MAAG,KAAGA,IAAG,YAAY,GAAEC,KAAE;AAAA,IAAG;AAAC,GAAE,MAAM,UAAU,SAAO,WAAU;AAAC,SAAO,EAAC,MAAK,UAAS,MAAK,MAAM,UAAU,MAAM,KAAK,KAAK,QAAM,MAAK,CAAC,EAAC;AAAC;AAAE,SAAS+B,GAAElC,IAAED,IAAEE,IAAE;AAAC,MAAIC,KAAE;AAAG,EAAAD,KAAE,KAAK,IAAID,GAAE,QAAOC,EAAC;AAAE,WAAQoB,KAAEtB,IAAEsB,KAAEpB,IAAE,EAAEoB;AAAE,IAAAnB,MAAG,OAAO,aAAa,MAAIF,GAAEqB,EAAC,CAAC;AAAE,SAAOnB;AAAC;AAAC,SAASiC,GAAEnC,IAAED,IAAEE,IAAE;AAAC,MAAIC,KAAE;AAAG,EAAAD,KAAE,KAAK,IAAID,GAAE,QAAOC,EAAC;AAAE,WAAQoB,KAAEtB,IAAEsB,KAAEpB,IAAE,EAAEoB;AAAE,IAAAnB,MAAG,OAAO,aAAaF,GAAEqB,EAAC,CAAC;AAAE,SAAOnB;AAAC;AAAC,SAAS8B,GAAEhC,IAAED,IAAEE,IAAE;AAAC,MAAIC,KAAEF,GAAE;AAAO,GAAC,CAACD,MAAGA,KAAE,OAAKA,KAAE,KAAI,CAACE,MAAGA,KAAE,KAAGA,KAAEC,QAAKD,KAAEC;AAAG,WAAQmB,KAAE,IAAGlB,KAAEJ,IAAEI,KAAEF,IAAE,EAAEE;AAAE,IAAAkB,MAAGwB,GAAE7C,GAAEG,EAAC,CAAC;AAAE,SAAOkB;AAAC;AAAC,SAASgB,GAAErC,IAAED,IAAEE,IAAE;AAAC,WAAQC,KAAEF,GAAE,MAAMD,IAAEE,EAAC,GAAEoB,KAAE,IAAGlB,KAAE,GAAEA,KAAED,GAAE,QAAOC,MAAG;AAAE,IAAAkB,MAAG,OAAO,aAAanB,GAAEC,EAAC,IAAE,MAAID,GAAEC,KAAE,CAAC,CAAC;AAAE,SAAOkB;AAAC;AAAC,SAASyB,GAAE9C,IAAED,IAAEE,IAAE;AAAC,MAAGD,KAAE,KAAG,KAAGA,KAAE;AAAE,UAAM,IAAI,WAAW,oBAAoB;AAAE,MAAGA,KAAED,KAAEE;AAAE,UAAM,IAAI,WAAW,uCAAuC;AAAC;AAAC,SAAS8C,GAAE/C,IAAED,IAAEE,IAAEC,IAAEmB,IAAElB,IAAE;AAAC,MAAG,CAAC,MAAM,SAASH,EAAC;AAAE,UAAM,IAAI,UAAU,6CAA6C;AAAE,MAAGD,KAAEsB,MAAGtB,KAAEI;AAAE,UAAM,IAAI,WAAW,mCAAmC;AAAE,MAAGF,KAAEC,KAAEF,GAAE;AAAO,UAAM,IAAI,WAAW,oBAAoB;AAAC;AAAC,SAASgD,GAAEhD,IAAED,IAAEE,IAAEC,IAAEmB,IAAElB,IAAE;AAAC,MAAGF,KAAEC,KAAEF,GAAE;AAAO,UAAM,IAAI,WAAW,oBAAoB;AAAE,MAAGC,KAAE;AAAE,UAAM,IAAI,WAAW,oBAAoB;AAAC;AAAC,SAASgD,GAAEjD,IAAED,IAAEE,IAAEC,IAAEC,IAAE;AAAC,SAAOJ,KAAE,CAACA,IAAEE,QAAK,GAAEE,MAAG6C,GAAEhD,IAAE,GAAEC,IAAE,CAAC,GAAEwB,KAAI,MAAMzB,IAAED,IAAEE,IAAEC,IAAE,IAAG,CAAC,GAAED,KAAE;AAAC;AAAC,SAASiB,GAAElB,IAAED,IAAEE,IAAEC,IAAEC,IAAE;AAAC,SAAOJ,KAAE,CAACA,IAAEE,QAAK,GAAEE,MAAG6C,GAAEhD,IAAE,GAAEC,IAAE,CAAC,GAAEwB,KAAI,MAAMzB,IAAED,IAAEE,IAAEC,IAAE,IAAG,CAAC,GAAED,KAAE;AAAC;AAAC,MAAM,UAAU,QAAM,SAASD,IAAED,IAAE;AAAC,MAAIE,KAAE,KAAK;AAAO,GAACD,KAAE,CAAC,CAACA,MAAG,KAAGA,MAAGC,MAAG,MAAID,KAAE,KAAGA,KAAEC,OAAID,KAAEC,MAAIF,KAAE,WAASA,KAAEE,KAAE,CAAC,CAACF,MAAG,KAAGA,MAAGE,MAAG,MAAIF,KAAE,KAAGA,KAAEE,OAAIF,KAAEE,KAAGF,KAAEC,OAAID,KAAEC;AAAG,MAAIE,KAAE,KAAK,SAASF,IAAED,EAAC;AAAE,SAAO,OAAO,eAAeG,IAAE,MAAM,SAAS,GAAEA;AAAC,GAAE,MAAM,UAAU,aAAW,SAASF,IAAED,IAAEE,IAAE;AAAC,EAAAD,QAAK,GAAED,QAAK,GAAEE,MAAG6C,GAAE9C,IAAED,IAAE,KAAK,MAAM;AAAE,WAAQG,KAAE,KAAKF,EAAC,GAAEqB,KAAE,GAAElB,KAAE,GAAE,EAAEA,KAAEJ,OAAIsB,MAAG;AAAM,IAAAnB,MAAG,KAAKF,KAAEG,EAAC,IAAEkB;AAAE,SAAOnB;AAAC,GAAE,MAAM,UAAU,aAAW,SAASF,IAAED,IAAEE,IAAE;AAAC,EAAAD,QAAK,GAAED,QAAK,GAAEE,MAAG6C,GAAE9C,IAAED,IAAE,KAAK,MAAM;AAAE,WAAQG,KAAE,KAAKF,KAAE,EAAED,EAAC,GAAEsB,KAAE,GAAEtB,KAAE,MAAIsB,MAAG;AAAM,IAAAnB,MAAG,KAAKF,KAAE,EAAED,EAAC,IAAEsB;AAAE,SAAOnB;AAAC,GAAE,MAAM,UAAU,YAAU,SAASF,IAAED,IAAE;AAAC,SAAOC,QAAK,GAAED,MAAG+C,GAAE9C,IAAE,GAAE,KAAK,MAAM,GAAE,KAAKA,EAAC;AAAC,GAAE,MAAM,UAAU,eAAa,SAASA,IAAED,IAAE;AAAC,SAAOC,QAAK,GAAED,MAAG+C,GAAE9C,IAAE,GAAE,KAAK,MAAM,GAAE,KAAKA,EAAC,IAAE,KAAKA,KAAE,CAAC,KAAG;AAAC,GAAE,MAAM,UAAU,eAAa,SAASA,IAAED,IAAE;AAAC,SAAOC,QAAK,GAAED,MAAG+C,GAAE9C,IAAE,GAAE,KAAK,MAAM,GAAE,KAAKA,EAAC,KAAG,IAAE,KAAKA,KAAE,CAAC;AAAC,GAAE,MAAM,UAAU,eAAa,SAASA,IAAED,IAAE;AAAC,SAAOC,QAAK,GAAED,MAAG+C,GAAE9C,IAAE,GAAE,KAAK,MAAM,IAAG,KAAKA,EAAC,IAAE,KAAKA,KAAE,CAAC,KAAG,IAAE,KAAKA,KAAE,CAAC,KAAG,MAAI,WAAS,KAAKA,KAAE,CAAC;AAAC,GAAE,MAAM,UAAU,eAAa,SAASA,IAAED,IAAE;AAAC,SAAOC,QAAK,GAAED,MAAG+C,GAAE9C,IAAE,GAAE,KAAK,MAAM,GAAE,WAAS,KAAKA,EAAC,KAAG,KAAKA,KAAE,CAAC,KAAG,KAAG,KAAKA,KAAE,CAAC,KAAG,IAAE,KAAKA,KAAE,CAAC;AAAE,GAAE,MAAM,UAAU,YAAU,SAASA,IAAED,IAAEE,IAAE;AAAC,EAAAD,QAAK,GAAED,QAAK,GAAEE,MAAG6C,GAAE9C,IAAED,IAAE,KAAK,MAAM;AAAE,WAAQG,KAAE,KAAKF,EAAC,GAAEqB,KAAE,GAAElB,KAAE,GAAE,EAAEA,KAAEJ,OAAIsB,MAAG;AAAM,IAAAnB,MAAG,KAAKF,KAAEG,EAAC,IAAEkB;AAAE,SAAOnB,OAAImB,MAAG,SAAOnB,MAAG,KAAK,IAAI,GAAE,IAAEH,EAAC,IAAGG;AAAC,GAAE,MAAM,UAAU,YAAU,SAASF,IAAED,IAAEE,IAAE;AAAC,EAAAD,QAAK,GAAED,QAAK,GAAEE,MAAG6C,GAAE9C,IAAED,IAAE,KAAK,MAAM;AAAE,WAAQG,KAAEH,IAAEsB,KAAE,GAAElB,KAAE,KAAKH,KAAE,EAAEE,EAAC,GAAEA,KAAE,MAAImB,MAAG;AAAM,IAAAlB,MAAG,KAAKH,KAAE,EAAEE,EAAC,IAAEmB;AAAE,SAAOlB,OAAIkB,MAAG,SAAOlB,MAAG,KAAK,IAAI,GAAE,IAAEJ,EAAC,IAAGI;AAAC,GAAE,MAAM,UAAU,WAAS,SAASH,IAAED,IAAE;AAAC,SAAOC,QAAK,GAAED,MAAG+C,GAAE9C,IAAE,GAAE,KAAK,MAAM,GAAE,MAAI,KAAKA,EAAC,IAAE,MAAI,MAAI,KAAKA,EAAC,IAAE,KAAG,KAAKA,EAAC;AAAC,GAAE,MAAM,UAAU,cAAY,SAASA,IAAED,IAAE;AAAC,EAAAC,QAAK,GAAED,MAAG+C,GAAE9C,IAAE,GAAE,KAAK,MAAM;AAAE,MAAIC,KAAE,KAAKD,EAAC,IAAE,KAAKA,KAAE,CAAC,KAAG;AAAE,SAAO,QAAMC,KAAE,aAAWA,KAAEA;AAAC,GAAE,MAAM,UAAU,cAAY,SAASD,IAAED,IAAE;AAAC,EAAAC,QAAK,GAAED,MAAG+C,GAAE9C,IAAE,GAAE,KAAK,MAAM;AAAE,MAAIC,KAAE,KAAKD,KAAE,CAAC,IAAE,KAAKA,EAAC,KAAG;AAAE,SAAO,QAAMC,KAAE,aAAWA,KAAEA;AAAC,GAAE,MAAM,UAAU,cAAY,SAASD,IAAED,IAAE;AAAC,SAAOC,QAAK,GAAED,MAAG+C,GAAE9C,IAAE,GAAE,KAAK,MAAM,GAAE,KAAKA,EAAC,IAAE,KAAKA,KAAE,CAAC,KAAG,IAAE,KAAKA,KAAE,CAAC,KAAG,KAAG,KAAKA,KAAE,CAAC,KAAG;AAAE,GAAE,MAAM,UAAU,cAAY,SAASA,IAAED,IAAE;AAAC,SAAOC,QAAK,GAAED,MAAG+C,GAAE9C,IAAE,GAAE,KAAK,MAAM,GAAE,KAAKA,EAAC,KAAG,KAAG,KAAKA,KAAE,CAAC,KAAG,KAAG,KAAKA,KAAE,CAAC,KAAG,IAAE,KAAKA,KAAE,CAAC;AAAC,GAAE,MAAM,UAAU,cAAY,SAASA,IAAED,IAAE;AAAC,SAAOC,QAAK,GAAED,MAAG+C,GAAE9C,IAAE,GAAE,KAAK,MAAM,GAAEyB,KAAI,KAAK,MAAKzB,IAAE,MAAG,IAAG,CAAC;AAAC,GAAE,MAAM,UAAU,cAAY,SAASA,IAAED,IAAE;AAAC,SAAOC,QAAK,GAAED,MAAG+C,GAAE9C,IAAE,GAAE,KAAK,MAAM,GAAEyB,KAAI,KAAK,MAAKzB,IAAE,OAAG,IAAG,CAAC;AAAC,GAAE,MAAM,UAAU,eAAa,SAASA,IAAED,IAAE;AAAC,SAAOC,QAAK,GAAED,MAAG+C,GAAE9C,IAAE,GAAE,KAAK,MAAM,GAAEyB,KAAI,KAAK,MAAKzB,IAAE,MAAG,IAAG,CAAC;AAAC,GAAE,MAAM,UAAU,eAAa,SAASA,IAAED,IAAE;AAAC,SAAOC,QAAK,GAAED,MAAG+C,GAAE9C,IAAE,GAAE,KAAK,MAAM,GAAEyB,KAAI,KAAK,MAAKzB,IAAE,OAAG,IAAG,CAAC;AAAC,GAAE,MAAM,UAAU,cAAY,SAASA,IAAED,IAAEE,IAAEC,IAAE;AAAC,GAACF,KAAE,CAACA,IAAED,QAAK,GAAEE,QAAK,GAAEC,OAAI6C,GAAE,MAAK/C,IAAED,IAAEE,IAAE,KAAK,IAAI,GAAE,IAAEA,EAAC,IAAE,GAAE,CAAC;AAAE,MAAIoB,KAAE,GAAElB,KAAE;AAAE,OAAI,KAAKJ,EAAC,IAAE,MAAIC,IAAE,EAAEG,KAAEF,OAAIoB,MAAG;AAAM,SAAKtB,KAAEI,EAAC,IAAEH,KAAEqB,KAAE;AAAI,SAAOtB,KAAEE;AAAC,GAAE,MAAM,UAAU,cAAY,SAASD,IAAED,IAAEE,IAAEC,IAAE;AAAC,GAACF,KAAE,CAACA,IAAED,QAAK,GAAEE,QAAK,GAAEC,OAAI6C,GAAE,MAAK/C,IAAED,IAAEE,IAAE,KAAK,IAAI,GAAE,IAAEA,EAAC,IAAE,GAAE,CAAC;AAAE,MAAIoB,KAAEpB,KAAE,GAAEE,KAAE;AAAE,OAAI,KAAKJ,KAAEsB,EAAC,IAAE,MAAIrB,IAAE,EAAEqB,MAAG,MAAIlB,MAAG;AAAM,SAAKJ,KAAEsB,EAAC,IAAErB,KAAEG,KAAE;AAAI,SAAOJ,KAAEE;AAAC,GAAE,MAAM,UAAU,aAAW,SAASD,IAAED,IAAEE,IAAE;AAAC,SAAOD,KAAE,CAACA,IAAED,QAAK,GAAEE,MAAG8C,GAAE,MAAK/C,IAAED,IAAE,GAAE,KAAI,CAAC,GAAE,KAAKA,EAAC,IAAE,MAAIC,IAAED,KAAE;AAAC,GAAE,MAAM,UAAU,gBAAc,SAASC,IAAED,IAAEE,IAAE;AAAC,SAAOD,KAAE,CAACA,IAAED,QAAK,GAAEE,MAAG8C,GAAE,MAAK/C,IAAED,IAAE,GAAE,OAAM,CAAC,GAAE,KAAKA,EAAC,IAAE,MAAIC,IAAE,KAAKD,KAAE,CAAC,IAAEC,OAAI,GAAED,KAAE;AAAC,GAAE,MAAM,UAAU,gBAAc,SAASC,IAAED,IAAEE,IAAE;AAAC,SAAOD,KAAE,CAACA,IAAED,QAAK,GAAEE,MAAG8C,GAAE,MAAK/C,IAAED,IAAE,GAAE,OAAM,CAAC,GAAE,KAAKA,EAAC,IAAEC,OAAI,GAAE,KAAKD,KAAE,CAAC,IAAE,MAAIC,IAAED,KAAE;AAAC,GAAE,MAAM,UAAU,gBAAc,SAASC,IAAED,IAAEE,IAAE;AAAC,SAAOD,KAAE,CAACA,IAAED,QAAK,GAAEE,MAAG8C,GAAE,MAAK/C,IAAED,IAAE,GAAE,YAAW,CAAC,GAAE,KAAKA,KAAE,CAAC,IAAEC,OAAI,IAAG,KAAKD,KAAE,CAAC,IAAEC,OAAI,IAAG,KAAKD,KAAE,CAAC,IAAEC,OAAI,GAAE,KAAKD,EAAC,IAAE,MAAIC,IAAED,KAAE;AAAC,GAAE,MAAM,UAAU,gBAAc,SAASC,IAAED,IAAEE,IAAE;AAAC,SAAOD,KAAE,CAACA,IAAED,QAAK,GAAEE,MAAG8C,GAAE,MAAK/C,IAAED,IAAE,GAAE,YAAW,CAAC,GAAE,KAAKA,EAAC,IAAEC,OAAI,IAAG,KAAKD,KAAE,CAAC,IAAEC,OAAI,IAAG,KAAKD,KAAE,CAAC,IAAEC,OAAI,GAAE,KAAKD,KAAE,CAAC,IAAE,MAAIC,IAAED,KAAE;AAAC,GAAE,MAAM,UAAU,aAAW,SAASC,IAAED,IAAEE,IAAEC,IAAE;AAAC,MAAGF,KAAE,CAACA,IAAED,QAAK,GAAE,CAACG,IAAE;AAAC,QAAImB,KAAE,KAAK,IAAI,GAAE,IAAEpB,KAAE,CAAC;AAAE,IAAA8C,GAAE,MAAK/C,IAAED,IAAEE,IAAEoB,KAAE,GAAE,CAACA,EAAC;AAAA,EAAE;AAAC,MAAIlB,KAAE,GAAEM,KAAE,GAAEG,KAAE;AAAE,OAAI,KAAKb,EAAC,IAAE,MAAIC,IAAE,EAAEG,KAAEF,OAAIQ,MAAG;AAAM,IAAAT,KAAE,KAAG,MAAIY,MAAG,MAAI,KAAKb,KAAEI,KAAE,CAAC,MAAIS,KAAE,IAAG,KAAKb,KAAEI,EAAC,KAAGH,KAAES,MAAG,KAAGG,KAAE;AAAI,SAAOb,KAAEE;AAAC,GAAE,MAAM,UAAU,aAAW,SAASD,IAAED,IAAEE,IAAEC,IAAE;AAAC,MAAGF,KAAE,CAACA,IAAED,QAAK,GAAE,CAACG,IAAE;AAAC,QAAImB,KAAE,KAAK,IAAI,GAAE,IAAEpB,KAAE,CAAC;AAAE,IAAA8C,GAAE,MAAK/C,IAAED,IAAEE,IAAEoB,KAAE,GAAE,CAACA,EAAC;AAAA,EAAE;AAAC,MAAIlB,KAAEF,KAAE,GAAEQ,KAAE,GAAEG,KAAE;AAAE,OAAI,KAAKb,KAAEI,EAAC,IAAE,MAAIH,IAAE,EAAEG,MAAG,MAAIM,MAAG;AAAM,IAAAT,KAAE,KAAG,MAAIY,MAAG,MAAI,KAAKb,KAAEI,KAAE,CAAC,MAAIS,KAAE,IAAG,KAAKb,KAAEI,EAAC,KAAGH,KAAES,MAAG,KAAGG,KAAE;AAAI,SAAOb,KAAEE;AAAC,GAAE,MAAM,UAAU,YAAU,SAASD,IAAED,IAAEE,IAAE;AAAC,SAAOD,KAAE,CAACA,IAAED,QAAK,GAAEE,MAAG8C,GAAE,MAAK/C,IAAED,IAAE,GAAE,KAAI,IAAI,GAAEC,KAAE,MAAIA,KAAE,MAAIA,KAAE,IAAG,KAAKD,EAAC,IAAE,MAAIC,IAAED,KAAE;AAAC,GAAE,MAAM,UAAU,eAAa,SAASC,IAAED,IAAEE,IAAE;AAAC,SAAOD,KAAE,CAACA,IAAED,QAAK,GAAEE,MAAG8C,GAAE,MAAK/C,IAAED,IAAE,GAAE,OAAM,MAAM,GAAE,KAAKA,EAAC,IAAE,MAAIC,IAAE,KAAKD,KAAE,CAAC,IAAEC,OAAI,GAAED,KAAE;AAAC,GAAE,MAAM,UAAU,eAAa,SAASC,IAAED,IAAEE,IAAE;AAAC,SAAOD,KAAE,CAACA,IAAED,QAAK,GAAEE,MAAG8C,GAAE,MAAK/C,IAAED,IAAE,GAAE,OAAM,MAAM,GAAE,KAAKA,EAAC,IAAEC,OAAI,GAAE,KAAKD,KAAE,CAAC,IAAE,MAAIC,IAAED,KAAE;AAAC,GAAE,MAAM,UAAU,eAAa,SAASC,IAAED,IAAEE,IAAE;AAAC,SAAOD,KAAE,CAACA,IAAED,QAAK,GAAEE,MAAG8C,GAAE,MAAK/C,IAAED,IAAE,GAAE,YAAW,WAAW,GAAE,KAAKA,EAAC,IAAE,MAAIC,IAAE,KAAKD,KAAE,CAAC,IAAEC,OAAI,GAAE,KAAKD,KAAE,CAAC,IAAEC,OAAI,IAAG,KAAKD,KAAE,CAAC,IAAEC,OAAI,IAAGD,KAAE;AAAC,GAAE,MAAM,UAAU,eAAa,SAASC,IAAED,IAAEE,IAAE;AAAC,SAAOD,KAAE,CAACA,IAAED,QAAK,GAAEE,MAAG8C,GAAE,MAAK/C,IAAED,IAAE,GAAE,YAAW,WAAW,GAAEC,KAAE,MAAIA,KAAE,aAAWA,KAAE,IAAG,KAAKD,EAAC,IAAEC,OAAI,IAAG,KAAKD,KAAE,CAAC,IAAEC,OAAI,IAAG,KAAKD,KAAE,CAAC,IAAEC,OAAI,GAAE,KAAKD,KAAE,CAAC,IAAE,MAAIC,IAAED,KAAE;AAAC,GAAE,MAAM,UAAU,eAAa,SAASC,IAAED,IAAEE,IAAE;AAAC,SAAOgD,GAAE,MAAKjD,IAAED,IAAE,MAAGE,EAAC;AAAC,GAAE,MAAM,UAAU,eAAa,SAASD,IAAED,IAAEE,IAAE;AAAC,SAAOgD,GAAE,MAAKjD,IAAED,IAAE,OAAGE,EAAC;AAAC,GAAE,MAAM,UAAU,gBAAc,SAASD,IAAED,IAAEE,IAAE;AAAC,SAAOiB,GAAE,MAAKlB,IAAED,IAAE,MAAGE,EAAC;AAAC,GAAE,MAAM,UAAU,gBAAc,SAASD,IAAED,IAAEE,IAAE;AAAC,SAAOiB,GAAE,MAAKlB,IAAED,IAAE,OAAGE,EAAC;AAAC,GAAE,MAAM,UAAU,OAAK,SAASD,IAAED,IAAEE,IAAEC,IAAE;AAAC,MAAG,CAAC,MAAM,SAASF,EAAC;AAAE,UAAM,IAAI,UAAU,6BAA6B;AAAE,MAAGC,OAAIA,KAAE,IAAGC,MAAG,MAAIA,OAAIA,KAAE,KAAK,SAAQH,MAAGC,GAAE,WAASD,KAAEC,GAAE,SAAQD,OAAIA,KAAE,IAAGG,KAAE,KAAGA,KAAED,OAAIC,KAAED,KAAGC,OAAID;AAAE,WAAO;AAAE,MAAG,MAAID,GAAE,UAAQ,MAAI,KAAK;AAAO,WAAO;AAAE,MAAGD,KAAE;AAAE,UAAM,IAAI,WAAW,2BAA2B;AAAE,MAAGE,KAAE,KAAGA,MAAG,KAAK;AAAO,UAAM,IAAI,WAAW,oBAAoB;AAAE,MAAGC,KAAE;AAAE,UAAM,IAAI,WAAW,yBAAyB;AAAE,EAAAA,KAAE,KAAK,WAASA,KAAE,KAAK,SAAQF,GAAE,SAAOD,KAAEG,KAAED,OAAIC,KAAEF,GAAE,SAAOD,KAAEE;AAAG,MAAIoB,KAAEnB,KAAED;AAAE,MAAG,SAAOD,MAAG,cAAY,OAAO,WAAW,UAAU;AAAW,SAAK,WAAWD,IAAEE,IAAEC,EAAC;AAAA,WAAU,SAAOF,MAAGC,KAAEF,MAAGA,KAAEG;AAAE,aAAQC,KAAEkB,KAAE,GAAElB,MAAG,GAAE,EAAEA;AAAE,MAAAH,GAAEG,KAAEJ,EAAC,IAAE,KAAKI,KAAEF,EAAC;AAAA;AAAO,eAAW,UAAU,IAAI,KAAKD,IAAE,KAAK,SAASC,IAAEC,EAAC,GAAEH,EAAC;AAAE,SAAOsB;AAAC,GAAE,MAAM,UAAU,OAAK,SAASrB,IAAED,IAAEE,IAAEC,IAAE;AAAC,MAAG,YAAU,OAAOF,IAAE;AAAC,QAAG,YAAU,OAAOD,MAAGG,KAAEH,IAAEA,KAAE,GAAEE,KAAE,KAAK,UAAQ,YAAU,OAAOA,OAAIC,KAAED,IAAEA,KAAE,KAAK,SAAQ,WAASC,MAAG,YAAU,OAAOA;AAAE,YAAM,IAAI,UAAU,2BAA2B;AAAE,QAAG,YAAU,OAAOA,MAAG,CAAC,MAAM,WAAWA,EAAC;AAAE,YAAM,IAAI,UAAU,uBAAqBA,EAAC;AAAE,QAAG,MAAIF,GAAE,QAAO;AAAC,UAAIqB,KAAErB,GAAE,WAAW,CAAC;AAAE,OAAC,WAASE,MAAGmB,KAAE,OAAK,aAAWnB,QAAKF,KAAEqB;AAAA,IAAG;AAAA,EAAC;AAAM,gBAAU,OAAOrB,KAAEA,MAAG,MAAI,aAAW,OAAOA,OAAIA,KAAE,OAAOA,EAAC;AAAG,MAAGD,KAAE,KAAG,KAAK,SAAOA,MAAG,KAAK,SAAOE;AAAE,UAAM,IAAI,WAAW,oBAAoB;AAAE,MAAGA,MAAGF;AAAE,WAAO;AAAK,MAAII;AAAE,MAAGJ,QAAK,GAAEE,KAAE,WAASA,KAAE,KAAK,SAAOA,OAAI,GAAED,OAAIA,KAAE,IAAG,YAAU,OAAOA;AAAE,SAAIG,KAAEJ,IAAEI,KAAEF,IAAE,EAAEE;AAAE,WAAKA,EAAC,IAAEH;AAAA,OAAO;AAAC,QAAIS,KAAE,MAAM,SAAST,EAAC,IAAEA,KAAE,MAAM,KAAKA,IAAEE,EAAC,GAAEsB,KAAEf,GAAE;AAAO,QAAG,MAAIe;AAAE,YAAM,IAAI,UAAU,gBAAcxB,KAAE,mCAAmC;AAAE,SAAIG,KAAE,GAAEA,KAAEF,KAAEF,IAAE,EAAEI;AAAE,WAAKA,KAAEJ,EAAC,IAAEU,GAAEN,KAAEqB,EAAC;AAAA,EAAE;AAAC,SAAO;AAAI;AAAE,IAAI0B,KAAE;AAAoB,SAASrB,GAAE7B,IAAED,IAAE;AAAC,MAAIE;AAAE,EAAAF,KAAEA,MAAG,IAAE;AAAE,WAAQG,KAAEF,GAAE,QAAOqB,KAAE,MAAKlB,KAAE,CAAC,GAAEM,KAAE,GAAEA,KAAEP,IAAE,EAAEO,IAAE;AAAC,SAAIR,KAAED,GAAE,WAAWS,EAAC,KAAG,SAAOR,KAAE,OAAM;AAAC,UAAG,CAACoB,IAAE;AAAC,YAAGpB,KAAE,OAAM;AAAC,WAACF,MAAG,KAAG,MAAII,GAAE,KAAK,KAAI,KAAI,GAAG;AAAE;AAAA,QAAQ;AAAC,YAAGM,KAAE,MAAIP,IAAE;AAAC,WAACH,MAAG,KAAG,MAAII,GAAE,KAAK,KAAI,KAAI,GAAG;AAAE;AAAA,QAAQ;AAAC,QAAAkB,KAAEpB;AAAE;AAAA,MAAQ;AAAC,UAAGA,KAAE,OAAM;AAAC,SAACF,MAAG,KAAG,MAAII,GAAE,KAAK,KAAI,KAAI,GAAG,GAAEkB,KAAEpB;AAAE;AAAA,MAAQ;AAAC,MAAAA,KAAE,SAAOoB,KAAE,SAAO,KAAGpB,KAAE;AAAA,IAAO;AAAM,MAAAoB,OAAItB,MAAG,KAAG,MAAII,GAAE,KAAK,KAAI,KAAI,GAAG;AAAE,QAAGkB,KAAE,MAAKpB,KAAE,KAAI;AAAC,WAAIF,MAAG,KAAG;AAAE;AAAM,MAAAI,GAAE,KAAKF,EAAC;AAAA,IAAE,WAASA,KAAE,MAAK;AAAC,WAAIF,MAAG,KAAG;AAAE;AAAM,MAAAI,GAAE,KAAKF,MAAG,IAAE,KAAI,KAAGA,KAAE,GAAG;AAAA,IAAE,WAASA,KAAE,OAAM;AAAC,WAAIF,MAAG,KAAG;AAAE;AAAM,MAAAI,GAAE,KAAKF,MAAG,KAAG,KAAIA,MAAG,IAAE,KAAG,KAAI,KAAGA,KAAE,GAAG;AAAA,IAAE,OAAM;AAAC,UAAG,EAAEA,KAAE;AAAS,cAAM,IAAI,MAAM,oBAAoB;AAAE,WAAIF,MAAG,KAAG;AAAE;AAAM,MAAAI,GAAE,KAAKF,MAAG,KAAG,KAAIA,MAAG,KAAG,KAAG,KAAIA,MAAG,IAAE,KAAG,KAAI,KAAGA,KAAE,GAAG;AAAA,IAAE;AAAA,EAAC;AAAC,SAAOE;AAAC;AAAC,SAAS2B,GAAE9B,IAAE;AAAC,SAAO,MAAM,YAAY,SAASA,IAAE;AAAC,SAAIA,MAAGA,KAAEA,GAAE,MAAM,GAAG,EAAE,CAAC,GAAG,KAAK,EAAE,QAAQkD,IAAE,EAAE,GAAG,SAAO;AAAE,aAAO;AAAG,WAAKlD,GAAE,SAAO,KAAG;AAAG,MAAAA,MAAG;AAAI,WAAOA;AAAA,EAAC,EAAEA,EAAC,CAAC;AAAC;AAAC,SAASyC,GAAEzC,IAAED,IAAEE,IAAEC,IAAE;AAAC,WAAQmB,KAAE,GAAEA,KAAEnB,MAAG,EAAEmB,KAAEpB,MAAGF,GAAE,UAAQsB,MAAGrB,GAAE,SAAQ,EAAEqB;AAAE,IAAAtB,GAAEsB,KAAEpB,EAAC,IAAED,GAAEqB,EAAC;AAAE,SAAOA;AAAC;AAAC,SAASM,GAAE3B,IAAED,IAAE;AAAC,SAAOC,cAAaD,MAAG,QAAMC,MAAG,QAAMA,GAAE,eAAa,QAAMA,GAAE,YAAY,QAAMA,GAAE,YAAY,SAAOD,GAAE;AAAI;AAAC,SAASuB,GAAEtB,IAAE;AAAC,SAAOA,MAAGA;AAAC;AAAC,IAAI6C,KAAE,WAAU;AAAC,WAAQ7C,KAAE,IAAI,MAAM,GAAG,GAAED,KAAE,GAAEA,KAAE,IAAG,EAAEA;AAAE,aAAQE,KAAE,KAAGF,IAAEG,KAAE,GAAEA,KAAE,IAAG,EAAEA;AAAE,MAAAF,GAAEC,KAAEC,EAAC,IAAE,mBAAmBH,EAAC,IAAE,mBAAmBG,EAAC;AAAE,SAAOF;AAAC,EAAE;AAAE,MAAM;AAAO,MAAM;AAAkB,MAAM;AAEr6tB,IAAIC,KAAE,CAAC;AAAP,IAASC,KAAE;AAAX,IAAiBC,KAAED,GAAE;AAAO,SAASF,GAAED,IAAEE,IAAE;AAAC,WAAQC,MAAKH;AAAE,IAAAE,GAAEC,EAAC,IAAEH,GAAEG,EAAC;AAAE;AAAC,SAASO,GAAEV,IAAEE,IAAEC,IAAE;AAAC,SAAOC,GAAEJ,IAAEE,IAAEC,EAAC;AAAC;AAACC,GAAE,QAAMA,GAAE,SAAOA,GAAE,eAAaA,GAAE,kBAAgBF,KAAEC,MAAGF,GAAEE,IAAED,EAAC,GAAEA,GAAE,SAAOQ,KAAGA,GAAE,YAAU,OAAO,OAAON,GAAE,SAAS,GAAEH,GAAEG,IAAEM,EAAC,GAAEA,GAAE,OAAK,SAASV,IAAEE,IAAEC,IAAE;AAAC,MAAG,YAAU,OAAOH;AAAE,UAAM,IAAI,UAAU,+BAA+B;AAAE,SAAOI,GAAEJ,IAAEE,IAAEC,EAAC;AAAC,GAAEO,GAAE,QAAM,SAASV,IAAEE,IAAEC,IAAE;AAAC,MAAG,YAAU,OAAOH;AAAE,UAAM,IAAI,UAAU,2BAA2B;AAAE,MAAIC,KAAEG,GAAEJ,EAAC;AAAE,SAAO,WAASE,KAAE,YAAU,OAAOC,KAAEF,GAAE,KAAKC,IAAEC,EAAC,IAAEF,GAAE,KAAKC,EAAC,IAAED,GAAE,KAAK,CAAC,GAAEA;AAAC,GAAES,GAAE,cAAY,SAASV,IAAE;AAAC,MAAG,YAAU,OAAOA;AAAE,UAAM,IAAI,UAAU,2BAA2B;AAAE,SAAOI,GAAEJ,EAAC;AAAC,GAAEU,GAAE,kBAAgB,SAASV,IAAE;AAAC,MAAG,YAAU,OAAOA;AAAE,UAAM,IAAI,UAAU,2BAA2B;AAAE,SAAOG,GAAE,WAAWH,EAAC;AAAC;AAAE,IAAIa,KAAEX;AAAE,IAAIkD,OAAI,CAAC;AAAT,IAAW3B,KAAEZ,GAAE;AAAf,IAAsBS,KAAEG,GAAE,cAAY,SAASxB,IAAE;AAAC,WAAQA,KAAE,KAAGA,OAAIA,GAAE,YAAY,GAAE;AAAA,IAAC,KAAI;AAAA,IAAM,KAAI;AAAA,IAAO,KAAI;AAAA,IAAQ,KAAI;AAAA,IAAQ,KAAI;AAAA,IAAS,KAAI;AAAA,IAAS,KAAI;AAAA,IAAO,KAAI;AAAA,IAAQ,KAAI;AAAA,IAAU,KAAI;AAAA,IAAW,KAAI;AAAM,aAAO;AAAA,IAAG;AAAQ,aAAO;AAAA,EAAE;AAAC;AAAE,SAASI,GAAEJ,IAAE;AAAC,MAAIC;AAAE,UAAO,KAAK,WAAS,SAASD,IAAE;AAAC,QAAIC,MAAE,SAASD,KAAE;AAAC,UAAG,CAACA;AAAE,eAAO;AAAO,eAAQC;AAAI,gBAAOD,KAAE;AAAA,UAAC,KAAI;AAAA,UAAO,KAAI;AAAQ,mBAAO;AAAA,UAAO,KAAI;AAAA,UAAO,KAAI;AAAA,UAAQ,KAAI;AAAA,UAAU,KAAI;AAAW,mBAAO;AAAA,UAAU,KAAI;AAAA,UAAS,KAAI;AAAS,mBAAO;AAAA,UAAS,KAAI;AAAA,UAAS,KAAI;AAAA,UAAQ,KAAI;AAAM,mBAAOA;AAAA,UAAE;AAAQ,gBAAGC;AAAE;AAAO,YAAAD,OAAG,KAAGA,KAAG,YAAY,GAAEC,MAAE;AAAA,QAAG;AAAA,IAAC,EAAED,EAAC;AAAE,QAAG,YAAU,OAAOC,QAAIuB,GAAE,eAAaH,MAAG,CAACA,GAAErB,EAAC;AAAG,YAAM,IAAI,MAAM,uBAAqBA,EAAC;AAAE,WAAOC,OAAGD;AAAA,EAAC,EAAEA,EAAC,GAAE,KAAK,UAAS;AAAA,IAAC,KAAI;AAAU,WAAK,OAAKK,IAAE,KAAK,MAAIkB,IAAEtB,KAAE;AAAE;AAAA,IAAM,KAAI;AAAO,WAAK,WAASmD,MAAInD,KAAE;AAAE;AAAA,IAAM,KAAI;AAAS,WAAK,OAAKoD,MAAI,KAAK,MAAIC,MAAIrD,KAAE;AAAE;AAAA,IAAM;AAAQ,aAAO,KAAK,QAAM,KAAI,KAAK,MAAIK,IAAE;AAAA,EAAM;AAAC,OAAK,WAAS,GAAE,KAAK,YAAU,GAAE,KAAK,WAASkB,GAAE,YAAYvB,EAAC;AAAE;AAAC,SAASF,GAAEC,IAAE;AAAC,SAAOA,MAAG,MAAI,IAAEA,MAAG,KAAG,IAAE,IAAEA,MAAG,KAAG,KAAG,IAAEA,MAAG,KAAG,KAAG,IAAEA,MAAG,KAAG,IAAE,KAAG;AAAE;AAAC,SAASoD,KAAIpD,IAAE;AAAC,MAAIC,KAAE,KAAK,YAAU,KAAK,UAASuB,KAAE,SAASxB,IAAEC,KAAEuB,IAAE;AAAC,QAAG,QAAM,MAAIvB,IAAE,CAAC;AAAG,aAAOD,GAAE,WAAS,GAAE;AAAI,QAAGA,GAAE,WAAS,KAAGC,IAAE,SAAO,GAAE;AAAC,UAAG,QAAM,MAAIA,IAAE,CAAC;AAAG,eAAOD,GAAE,WAAS,GAAE;AAAI,UAAGA,GAAE,WAAS,KAAGC,IAAE,SAAO,KAAG,QAAM,MAAIA,IAAE,CAAC;AAAG,eAAOD,GAAE,WAAS,GAAE;AAAA,IAAG;AAAA,EAAC,EAAE,MAAKA,EAAC;AAAE,SAAO,WAASwB,KAAEA,KAAE,KAAK,YAAUxB,GAAE,UAAQA,GAAE,KAAK,KAAK,UAASC,IAAE,GAAE,KAAK,QAAQ,GAAE,KAAK,SAAS,SAAS,KAAK,UAAS,GAAE,KAAK,SAAS,MAAID,GAAE,KAAK,KAAK,UAASC,IAAE,GAAED,GAAE,MAAM,GAAE,KAAK,YAAUA,GAAE,QAAO;AAAO;AAAC,SAASK,GAAEL,IAAEC,IAAE;AAAC,OAAID,GAAE,SAAOC,MAAG,KAAG,GAAE;AAAC,QAAIuB,KAAExB,GAAE,SAAS,WAAUC,EAAC;AAAE,QAAGuB,IAAE;AAAC,UAAIH,KAAEG,GAAE,WAAWA,GAAE,SAAO,CAAC;AAAE,UAAGH,MAAG,SAAOA,MAAG;AAAM,eAAO,KAAK,WAAS,GAAE,KAAK,YAAU,GAAE,KAAK,SAAS,CAAC,IAAErB,GAAEA,GAAE,SAAO,CAAC,GAAE,KAAK,SAAS,CAAC,IAAEA,GAAEA,GAAE,SAAO,CAAC,GAAEwB,GAAE,MAAM,GAAE,EAAE;AAAA,IAAC;AAAC,WAAOA;AAAA,EAAC;AAAC,SAAO,KAAK,WAAS,GAAE,KAAK,YAAU,GAAE,KAAK,SAAS,CAAC,IAAExB,GAAEA,GAAE,SAAO,CAAC,GAAEA,GAAE,SAAS,WAAUC,IAAED,GAAE,SAAO,CAAC;AAAC;AAAC,SAASuB,GAAEvB,IAAE;AAAC,MAAIC,KAAED,MAAGA,GAAE,SAAO,KAAK,MAAMA,EAAC,IAAE;AAAG,MAAG,KAAK,UAAS;AAAC,QAAIwB,KAAE,KAAK,YAAU,KAAK;AAAS,WAAOvB,KAAE,KAAK,SAAS,SAAS,WAAU,GAAEuB,EAAC;AAAA,EAAC;AAAC,SAAOvB;AAAC;AAAC,SAASoD,KAAIrD,IAAEC,IAAE;AAAC,MAAIuB,MAAGxB,GAAE,SAAOC,MAAG;AAAE,SAAO,MAAIuB,KAAExB,GAAE,SAAS,UAASC,EAAC,KAAG,KAAK,WAAS,IAAEuB,IAAE,KAAK,YAAU,GAAE,MAAIA,KAAE,KAAK,SAAS,CAAC,IAAExB,GAAEA,GAAE,SAAO,CAAC,KAAG,KAAK,SAAS,CAAC,IAAEA,GAAEA,GAAE,SAAO,CAAC,GAAE,KAAK,SAAS,CAAC,IAAEA,GAAEA,GAAE,SAAO,CAAC,IAAGA,GAAE,SAAS,UAASC,IAAED,GAAE,SAAOwB,EAAC;AAAE;AAAC,SAAS8B,KAAItD,IAAE;AAAC,MAAIC,KAAED,MAAGA,GAAE,SAAO,KAAK,MAAMA,EAAC,IAAE;AAAG,SAAO,KAAK,WAASC,KAAE,KAAK,SAAS,SAAS,UAAS,GAAE,IAAE,KAAK,QAAQ,IAAEA;AAAC;AAAC,SAAS,IAAID,IAAE;AAAC,SAAOA,GAAE,SAAS,KAAK,QAAQ;AAAC;AAAC,SAASM,GAAEN,IAAE;AAAC,SAAOA,MAAGA,GAAE,SAAO,KAAK,MAAMA,EAAC,IAAE;AAAE;AAACmD,KAAI,gBAAc/C,IAAEA,GAAE,UAAU,QAAM,SAASJ,IAAE;AAAC,MAAG,MAAIA,GAAE;AAAO,WAAO;AAAG,MAAIC,IAAEuB;AAAE,MAAG,KAAK,UAAS;AAAC,QAAG,YAAUvB,KAAE,KAAK,SAASD,EAAC;AAAG,aAAO;AAAG,IAAAwB,KAAE,KAAK,UAAS,KAAK,WAAS;AAAA,EAAE;AAAM,IAAAA,KAAE;AAAE,SAAOA,KAAExB,GAAE,SAAOC,KAAEA,KAAE,KAAK,KAAKD,IAAEwB,EAAC,IAAE,KAAK,KAAKxB,IAAEwB,EAAC,IAAEvB,MAAG;AAAE,GAAEG,GAAE,UAAU,MAAI,SAASJ,IAAE;AAAC,MAAIC,KAAED,MAAGA,GAAE,SAAO,KAAK,MAAMA,EAAC,IAAE;AAAG,SAAO,KAAK,WAASC,KAAE,WAAIA;AAAC,GAAEG,GAAE,UAAU,OAAK,SAASJ,IAAEC,IAAE;AAAC,MAAIuB,KAAE,SAASxB,IAAEC,KAAEuB,IAAE;AAAC,QAAIH,KAAEpB,IAAE,SAAO;AAAE,QAAGoB,KAAEG;AAAE,aAAO;AAAE,QAAIpB,KAAEL,GAAEE,IAAEoB,EAAC,CAAC;AAAE,QAAGjB,MAAG;AAAE,aAAOA,KAAE,MAAIJ,GAAE,WAASI,KAAE,IAAGA;AAAE,QAAG,EAAEiB,KAAEG,MAAG,OAAKpB;AAAE,aAAO;AAAE,SAAIA,KAAEL,GAAEE,IAAEoB,EAAC,CAAC,MAAI;AAAE,aAAOjB,KAAE,MAAIJ,GAAE,WAASI,KAAE,IAAGA;AAAE,QAAG,EAAEiB,KAAEG,MAAG,OAAKpB;AAAE,aAAO;AAAE,SAAIA,KAAEL,GAAEE,IAAEoB,EAAC,CAAC,MAAI;AAAE,aAAOjB,KAAE,MAAI,MAAIA,KAAEA,KAAE,IAAEJ,GAAE,WAASI,KAAE,IAAGA;AAAE,WAAO;AAAA,EAAC,EAAE,MAAKJ,IAAEC,EAAC;AAAE,MAAG,CAAC,KAAK;AAAS,WAAOD,GAAE,SAAS,QAAOC,EAAC;AAAE,OAAK,YAAUuB;AAAE,MAAIH,KAAErB,GAAE,UAAQwB,KAAE,KAAK;AAAU,SAAOxB,GAAE,KAAK,KAAK,UAAS,GAAEqB,EAAC,GAAErB,GAAE,SAAS,QAAOC,IAAEoB,EAAC;AAAC,GAAEjB,GAAE,UAAU,WAAS,SAASJ,IAAE;AAAC,MAAG,KAAK,YAAUA,GAAE;AAAO,WAAOA,GAAE,KAAK,KAAK,UAAS,KAAK,YAAU,KAAK,UAAS,GAAE,KAAK,QAAQ,GAAE,KAAK,SAAS,SAAS,KAAK,UAAS,GAAE,KAAK,SAAS;AAAE,EAAAA,GAAE,KAAK,KAAK,UAAS,KAAK,YAAU,KAAK,UAAS,GAAEA,GAAE,MAAM,GAAE,KAAK,YAAUA,GAAE;AAAO;AAEtwImD,KAAI;AAEJA,KAAI;;;ANAJ,IAAI,cAAc,CAAC;AAAnB,IACI,eAAe;AACnB,SAAS,UAAU;AACjB,MAAI;AAAc,WAAO;AACzB,iBAAe;AACf,cAAY,aAAa;AACzB,cAAY,cAAc;AAC1B,cAAY,gBAAgB;AAC5B,MAAI,SAAS,CAAC;AACd,MAAI,YAAY,CAAC;AACjB,MAAI,MAAM,OAAO,eAAe,cAAc,aAAa;AAC3D,MAAI,OAAO;AAEX,WAASI,KAAI,GAAG,MAAM,KAAK,QAAQA,KAAI,KAAK,EAAEA,IAAG;AAC/C,WAAOA,EAAC,IAAI,KAAKA,EAAC;AAClB,cAAU,KAAK,WAAWA,EAAC,CAAC,IAAIA;AAAA,EAClC;AAIA,YAAU,IAAI,WAAW,CAAC,CAAC,IAAI;AAC/B,YAAU,IAAI,WAAW,CAAC,CAAC,IAAI;AAE/B,WAAS,QAAQ,KAAK;AACpB,QAAIC,OAAM,IAAI;AAEd,QAAIA,OAAM,IAAI,GAAG;AACf,YAAM,IAAI,MAAM,gDAAgD;AAAA,IAClE;AAIA,QAAI,WAAW,IAAI,QAAQ,GAAG;AAC9B,QAAI,aAAa;AAAI,iBAAWA;AAChC,QAAI,kBAAkB,aAAaA,OAAM,IAAI,IAAI,WAAW;AAC5D,WAAO,CAAC,UAAU,eAAe;AAAA,EACnC;AAGA,WAAS,WAAW,KAAK;AACvB,QAAI,OAAO,QAAQ,GAAG;AACtB,QAAI,WAAW,KAAK,CAAC;AACrB,QAAI,kBAAkB,KAAK,CAAC;AAC5B,YAAQ,WAAW,mBAAmB,IAAI,IAAI;AAAA,EAChD;AAEA,WAAS,YAAY,KAAK,UAAU,iBAAiB;AACnD,YAAQ,WAAW,mBAAmB,IAAI,IAAI;AAAA,EAChD;AAEA,WAAS,YAAY,KAAK;AACxB,QAAI;AACJ,QAAI,OAAO,QAAQ,GAAG;AACtB,QAAI,WAAW,KAAK,CAAC;AACrB,QAAI,kBAAkB,KAAK,CAAC;AAC5B,QAAI,MAAM,IAAI,IAAI,YAAY,KAAK,UAAU,eAAe,CAAC;AAC7D,QAAI,UAAU;AAEd,QAAIA,OAAM,kBAAkB,IAAI,WAAW,IAAI;AAC/C,QAAID;AAEJ,SAAKA,KAAI,GAAGA,KAAIC,MAAKD,MAAK,GAAG;AAC3B,YAAM,UAAU,IAAI,WAAWA,EAAC,CAAC,KAAK,KAAK,UAAU,IAAI,WAAWA,KAAI,CAAC,CAAC,KAAK,KAAK,UAAU,IAAI,WAAWA,KAAI,CAAC,CAAC,KAAK,IAAI,UAAU,IAAI,WAAWA,KAAI,CAAC,CAAC;AAC3J,UAAI,SAAS,IAAI,OAAO,KAAK;AAC7B,UAAI,SAAS,IAAI,OAAO,IAAI;AAC5B,UAAI,SAAS,IAAI,MAAM;AAAA,IACzB;AAEA,QAAI,oBAAoB,GAAG;AACzB,YAAM,UAAU,IAAI,WAAWA,EAAC,CAAC,KAAK,IAAI,UAAU,IAAI,WAAWA,KAAI,CAAC,CAAC,KAAK;AAC9E,UAAI,SAAS,IAAI,MAAM;AAAA,IACzB;AAEA,QAAI,oBAAoB,GAAG;AACzB,YAAM,UAAU,IAAI,WAAWA,EAAC,CAAC,KAAK,KAAK,UAAU,IAAI,WAAWA,KAAI,CAAC,CAAC,KAAK,IAAI,UAAU,IAAI,WAAWA,KAAI,CAAC,CAAC,KAAK;AACvH,UAAI,SAAS,IAAI,OAAO,IAAI;AAC5B,UAAI,SAAS,IAAI,MAAM;AAAA,IACzB;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,gBAAgB,KAAK;AAC5B,WAAO,OAAO,OAAO,KAAK,EAAE,IAAI,OAAO,OAAO,KAAK,EAAE,IAAI,OAAO,OAAO,IAAI,EAAE,IAAI,OAAO,MAAM,EAAE;AAAA,EAClG;AAEA,WAAS,YAAY,OAAO,OAAO,KAAK;AACtC,QAAI;AACJ,QAAI,SAAS,CAAC;AAEd,aAASA,KAAI,OAAOA,KAAI,KAAKA,MAAK,GAAG;AACnC,aAAO,MAAMA,EAAC,KAAK,KAAK,aAAa,MAAMA,KAAI,CAAC,KAAK,IAAI,UAAU,MAAMA,KAAI,CAAC,IAAI;AAClF,aAAO,KAAK,gBAAgB,GAAG,CAAC;AAAA,IAClC;AAEA,WAAO,OAAO,KAAK,EAAE;AAAA,EACvB;AAEA,WAAS,cAAc,OAAO;AAC5B,QAAI;AACJ,QAAIC,OAAM,MAAM;AAChB,QAAI,aAAaA,OAAM;AAEvB,QAAI,QAAQ,CAAC;AACb,QAAI,iBAAiB;AAGrB,aAASD,KAAI,GAAGE,QAAOD,OAAM,YAAYD,KAAIE,OAAMF,MAAK,gBAAgB;AACtE,YAAM,KAAK,YAAY,OAAOA,IAAGA,KAAI,iBAAiBE,QAAOA,QAAOF,KAAI,cAAc,CAAC;AAAA,IACzF;AAGA,QAAI,eAAe,GAAG;AACpB,YAAM,MAAMC,OAAM,CAAC;AACnB,YAAM,KAAK,OAAO,OAAO,CAAC,IAAI,OAAO,OAAO,IAAI,EAAE,IAAI,IAAI;AAAA,IAC5D,WAAW,eAAe,GAAG;AAC3B,aAAO,MAAMA,OAAM,CAAC,KAAK,KAAK,MAAMA,OAAM,CAAC;AAC3C,YAAM,KAAK,OAAO,OAAO,EAAE,IAAI,OAAO,OAAO,IAAI,EAAE,IAAI,OAAO,OAAO,IAAI,EAAE,IAAI,GAAG;AAAA,IACpF;AAEA,WAAO,MAAM,KAAK,EAAE;AAAA,EACtB;AAEA,SAAO;AACT;AAEA,IAAI,cAAc,CAAC;AAAnB,IACI,eAAe;AACnB,SAAS,UAAU;AACjB,MAAI;AAAc,WAAO;AACzB,iBAAe;AAGf,cAAY,OAAO,SAAUE,SAAQ,QAAQ,MAAM,MAAM,QAAQ;AAC/D,QAAIC,IAAGC;AACP,QAAI,OAAO,SAAS,IAAI,OAAO;AAC/B,QAAI,QAAQ,KAAK,QAAQ;AACzB,QAAI,QAAQ,QAAQ;AACpB,QAAI,QAAQ;AACZ,QAAIL,KAAI,OAAO,SAAS,IAAI;AAC5B,QAAIM,KAAI,OAAO,KAAK;AACpB,QAAIC,KAAIJ,QAAO,SAASH,EAAC;AACzB,IAAAA,MAAKM;AACL,IAAAF,KAAIG,MAAK,KAAK,CAAC,SAAS;AACxB,IAAAA,OAAM,CAAC;AACP,aAAS;AAET,WAAO,QAAQ,GAAGH,KAAIA,KAAI,MAAMD,QAAO,SAASH,EAAC,GAAGA,MAAKM,IAAG,SAAS,GAAG;AAAA,IAAC;AAEzE,IAAAD,KAAID,MAAK,KAAK,CAAC,SAAS;AACxB,IAAAA,OAAM,CAAC;AACP,aAAS;AAET,WAAO,QAAQ,GAAGC,KAAIA,KAAI,MAAMF,QAAO,SAASH,EAAC,GAAGA,MAAKM,IAAG,SAAS,GAAG;AAAA,IAAC;AAEzE,QAAIF,OAAM,GAAG;AACX,MAAAA,KAAI,IAAI;AAAA,IACV,WAAWA,OAAM,MAAM;AACrB,aAAOC,KAAI,OAAOE,KAAI,KAAK,KAAK;AAAA,IAClC,OAAO;AACL,MAAAF,KAAIA,KAAI,KAAK,IAAI,GAAG,IAAI;AACxB,MAAAD,KAAIA,KAAI;AAAA,IACV;AAEA,YAAQG,KAAI,KAAK,KAAKF,KAAI,KAAK,IAAI,GAAGD,KAAI,IAAI;AAAA,EAChD;AAEA,cAAY,QAAQ,SAAUD,SAAQ,OAAO,QAAQ,MAAM,MAAM,QAAQ;AACvE,QAAIC,IAAGC,IAAGG;AACV,QAAI,OAAO,SAAS,IAAI,OAAO;AAC/B,QAAI,QAAQ,KAAK,QAAQ;AACzB,QAAI,QAAQ,QAAQ;AACpB,QAAI,KAAK,SAAS,KAAK,KAAK,IAAI,GAAG,GAAG,IAAI,KAAK,IAAI,GAAG,GAAG,IAAI;AAC7D,QAAIR,KAAI,OAAO,IAAI,SAAS;AAC5B,QAAIM,KAAI,OAAO,IAAI;AACnB,QAAIC,KAAI,QAAQ,KAAK,UAAU,KAAK,IAAI,QAAQ,IAAI,IAAI;AACxD,YAAQ,KAAK,IAAI,KAAK;AAEtB,QAAI,MAAM,KAAK,KAAK,UAAU,UAAU;AACtC,MAAAF,KAAI,MAAM,KAAK,IAAI,IAAI;AACvB,MAAAD,KAAI;AAAA,IACN,OAAO;AACL,MAAAA,KAAI,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG;AAEzC,UAAI,SAASI,KAAI,KAAK,IAAI,GAAG,CAACJ,EAAC,KAAK,GAAG;AACrC,QAAAA;AACA,QAAAI,MAAK;AAAA,MACP;AAEA,UAAIJ,KAAI,SAAS,GAAG;AAClB,iBAAS,KAAKI;AAAA,MAChB,OAAO;AACL,iBAAS,KAAK,KAAK,IAAI,GAAG,IAAI,KAAK;AAAA,MACrC;AAEA,UAAI,QAAQA,MAAK,GAAG;AAClB,QAAAJ;AACA,QAAAI,MAAK;AAAA,MACP;AAEA,UAAIJ,KAAI,SAAS,MAAM;AACrB,QAAAC,KAAI;AACJ,QAAAD,KAAI;AAAA,MACN,WAAWA,KAAI,SAAS,GAAG;AACzB,QAAAC,MAAK,QAAQG,KAAI,KAAK,KAAK,IAAI,GAAG,IAAI;AACtC,QAAAJ,KAAIA,KAAI;AAAA,MACV,OAAO;AACL,QAAAC,KAAI,QAAQ,KAAK,IAAI,GAAG,QAAQ,CAAC,IAAI,KAAK,IAAI,GAAG,IAAI;AACrD,QAAAD,KAAI;AAAA,MACN;AAAA,IACF;AAEA,WAAO,QAAQ,GAAGD,QAAO,SAASH,EAAC,IAAIK,KAAI,KAAKL,MAAKM,IAAGD,MAAK,KAAK,QAAQ,GAAG;AAAA,IAAC;AAE9E,IAAAD,KAAIA,MAAK,OAAOC;AAChB,YAAQ;AAER,WAAO,OAAO,GAAGF,QAAO,SAASH,EAAC,IAAII,KAAI,KAAKJ,MAAKM,IAAGF,MAAK,KAAK,QAAQ,GAAG;AAAA,IAAC;AAE7E,IAAAD,QAAO,SAASH,KAAIM,EAAC,KAAKC,KAAI;AAAA,EAChC;AAEA,SAAO;AACT;AAEA,IAAI,YAAY,CAAC;AAAjB,IACI,aAAa;AACjB,SAAS,QAAQ;AACf,MAAI;AAAY,WAAO;AACvB,eAAa;AAEb,QAAM,SAAS,QAAQ;AAEvB,QAAM,UAAU,QAAQ;AAExB,QAAM,sBAAsB,OAAO,WAAW,cAAc,OAAO,OAAO,KAAK,MAAM,aAAa,OAAO,KAAK,EAAE,4BAA4B,IAC1I;AACF,YAAU,SAASE;AACnB,YAAU,aAAa;AACvB,YAAU,oBAAoB;AAC9B,QAAM,eAAe;AACrB,YAAU,aAAa;AAgBvB,EAAAA,QAAO,sBAAsB,kBAAkB;AAE/C,MAAI,CAACA,QAAO,uBAAuB,OAAO,YAAY,eAAe,OAAO,QAAQ,UAAU,YAAY;AACxG,YAAQ,MAAM,+IAAoJ;AAAA,EACpK;AAEA,WAAS,oBAAoB;AAE3B,QAAI;AACF,YAAM,MAAM,IAAI,WAAW,CAAC;AAC5B,YAAM,QAAQ;AAAA,QACZ,KAAK,WAAY;AACf,iBAAO;AAAA,QACT;AAAA,MACF;AACA,aAAO,eAAe,OAAO,WAAW,SAAS;AACjD,aAAO,eAAe,KAAK,KAAK;AAChC,aAAO,IAAI,IAAI,MAAM;AAAA,IACvB,SAASL,IAAG;AACV,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO,eAAeK,QAAO,WAAW,UAAU;AAAA,IAChD,YAAY;AAAA,IACZ,KAAK,WAAY;AACf,UAAI,CAACA,QAAO,SAAS,IAAI;AAAG,eAAO;AACnC,aAAO,KAAK;AAAA,IACd;AAAA,EACF,CAAC;AACD,SAAO,eAAeA,QAAO,WAAW,UAAU;AAAA,IAChD,YAAY;AAAA,IACZ,KAAK,WAAY;AACf,UAAI,CAACA,QAAO,SAAS,IAAI;AAAG,eAAO;AACnC,aAAO,KAAK;AAAA,IACd;AAAA,EACF,CAAC;AAED,WAAS,aAAaC,SAAQ;AAC5B,QAAIA,UAAS,cAAc;AACzB,YAAM,IAAI,WAAW,gBAAiBA,UAAS,gCAAmC;AAAA,IACpF;AAGA,UAAMC,OAAM,IAAI,WAAWD,OAAM;AACjC,WAAO,eAAeC,MAAKF,QAAO,SAAS;AAC3C,WAAOE;AAAA,EACT;AAYA,WAASF,QAAO,KAAK,kBAAkBC,SAAQ;AAE7C,QAAI,OAAO,QAAQ,UAAU;AAC3B,UAAI,OAAO,qBAAqB,UAAU;AACxC,cAAM,IAAI,UAAU,oEAAsE;AAAA,MAC5F;AAEA,aAAO,YAAY,GAAG;AAAA,IACxB;AAEA,WAAOE,MAAK,KAAK,kBAAkBF,OAAM;AAAA,EAC3C;AAEA,EAAAD,QAAO,WAAW;AAElB,WAASG,MAAK,OAAO,kBAAkBF,SAAQ;AAC7C,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAOG,YAAW,OAAO,gBAAgB;AAAA,IAC3C;AAEA,QAAI,YAAY,OAAO,KAAK,GAAG;AAC7B,aAAO,cAAc,KAAK;AAAA,IAC5B;AAEA,QAAI,SAAS,MAAM;AACjB,YAAM,IAAI,UAAU,oHAAyH,OAAO,KAAK;AAAA,IAC3J;AAEA,QAAI,WAAW,OAAO,WAAW,KAAK,SAAS,WAAW,MAAM,QAAQ,WAAW,GAAG;AACpF,aAAO,gBAAgB,OAAO,kBAAkBH,OAAM;AAAA,IACxD;AAEA,QAAI,OAAO,sBAAsB,gBAAgB,WAAW,OAAO,iBAAiB,KAAK,SAAS,WAAW,MAAM,QAAQ,iBAAiB,IAAI;AAC9I,aAAO,gBAAgB,OAAO,kBAAkBA,OAAM;AAAA,IACxD;AAEA,QAAI,OAAO,UAAU,UAAU;AAC7B,YAAM,IAAI,UAAU,uEAAyE;AAAA,IAC/F;AAEA,UAAM,UAAU,MAAM,WAAW,MAAM,QAAQ;AAE/C,QAAI,WAAW,QAAQ,YAAY,OAAO;AACxC,aAAOD,QAAO,KAAK,SAAS,kBAAkBC,OAAM;AAAA,IACtD;AAEA,UAAMI,KAAI,WAAW,KAAK;AAC1B,QAAIA;AAAG,aAAOA;AAEd,QAAI,OAAO,WAAW,eAAe,OAAO,eAAe,QAAQ,OAAO,MAAM,OAAO,WAAW,MAAM,YAAY;AAClH,aAAOL,QAAO,KAAK,MAAM,OAAO,WAAW,EAAE,QAAQ,GAAG,kBAAkBC,OAAM;AAAA,IAClF;AAEA,UAAM,IAAI,UAAU,oHAAyH,OAAO,KAAK;AAAA,EAC3J;AAWA,EAAAD,QAAO,OAAO,SAAU,OAAO,kBAAkBC,SAAQ;AACvD,WAAOE,MAAK,OAAO,kBAAkBF,OAAM;AAAA,EAC7C;AAIA,SAAO,eAAeD,QAAO,WAAW,WAAW,SAAS;AAC5D,SAAO,eAAeA,SAAQ,UAAU;AAExC,WAAS,WAAW,MAAM;AACxB,QAAI,OAAO,SAAS,UAAU;AAC5B,YAAM,IAAI,UAAU,wCAA0C;AAAA,IAChE,WAAW,OAAO,GAAG;AACnB,YAAM,IAAI,WAAW,gBAAiB,OAAO,gCAAmC;AAAA,IAClF;AAAA,EACF;AAEA,WAASM,OAAM,MAAM,MAAM,UAAU;AACnC,eAAW,IAAI;AAEf,QAAI,QAAQ,GAAG;AACb,aAAO,aAAa,IAAI;AAAA,IAC1B;AAEA,QAAI,SAAS,QAAW;AAItB,aAAO,OAAO,aAAa,WAAW,aAAa,IAAI,EAAE,KAAK,MAAM,QAAQ,IAAI,aAAa,IAAI,EAAE,KAAK,IAAI;AAAA,IAC9G;AAEA,WAAO,aAAa,IAAI;AAAA,EAC1B;AAOA,EAAAN,QAAO,QAAQ,SAAU,MAAM,MAAM,UAAU;AAC7C,WAAOM,OAAM,MAAM,MAAM,QAAQ;AAAA,EACnC;AAEA,WAAS,YAAY,MAAM;AACzB,eAAW,IAAI;AACf,WAAO,aAAa,OAAO,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC;AAAA,EACtD;AAMA,EAAAN,QAAO,cAAc,SAAU,MAAM;AACnC,WAAO,YAAY,IAAI;AAAA,EACzB;AAMA,EAAAA,QAAO,kBAAkB,SAAU,MAAM;AACvC,WAAO,YAAY,IAAI;AAAA,EACzB;AAEA,WAASI,YAAW,QAAQ,UAAU;AACpC,QAAI,OAAO,aAAa,YAAY,aAAa,IAAI;AACnD,iBAAW;AAAA,IACb;AAEA,QAAI,CAACJ,QAAO,WAAW,QAAQ,GAAG;AAChC,YAAM,IAAI,UAAU,uBAAuB,QAAQ;AAAA,IACrD;AAEA,UAAMC,UAAS,WAAW,QAAQ,QAAQ,IAAI;AAC9C,QAAIC,OAAM,aAAaD,OAAM;AAC7B,UAAM,SAASC,KAAI,MAAM,QAAQ,QAAQ;AAEzC,QAAI,WAAWD,SAAQ;AAIrB,MAAAC,OAAMA,KAAI,MAAM,GAAG,MAAM;AAAA,IAC3B;AAEA,WAAOA;AAAA,EACT;AAEA,WAAS,cAAc,OAAO;AAC5B,UAAMD,UAAS,MAAM,SAAS,IAAI,IAAI,QAAQ,MAAM,MAAM,IAAI;AAC9D,UAAMC,OAAM,aAAaD,OAAM;AAE/B,aAASV,KAAI,GAAGA,KAAIU,SAAQV,MAAK,GAAG;AAClC,MAAAW,KAAIX,EAAC,IAAI,MAAMA,EAAC,IAAI;AAAA,IACtB;AAEA,WAAOW;AAAA,EACT;AAEA,WAAS,cAAc,WAAW;AAChC,QAAI,WAAW,WAAW,UAAU,GAAG;AACrC,YAAM,OAAO,IAAI,WAAW,SAAS;AACrC,aAAO,gBAAgB,KAAK,QAAQ,KAAK,YAAY,KAAK,UAAU;AAAA,IACtE;AAEA,WAAO,cAAc,SAAS;AAAA,EAChC;AAEA,WAAS,gBAAgB,OAAO,YAAYD,SAAQ;AAClD,QAAI,aAAa,KAAK,MAAM,aAAa,YAAY;AACnD,YAAM,IAAI,WAAW,sCAAwC;AAAA,IAC/D;AAEA,QAAI,MAAM,aAAa,cAAcA,WAAU,IAAI;AACjD,YAAM,IAAI,WAAW,sCAAwC;AAAA,IAC/D;AAEA,QAAIC;AAEJ,QAAI,eAAe,UAAaD,YAAW,QAAW;AACpD,MAAAC,OAAM,IAAI,WAAW,KAAK;AAAA,IAC5B,WAAWD,YAAW,QAAW;AAC/B,MAAAC,OAAM,IAAI,WAAW,OAAO,UAAU;AAAA,IACxC,OAAO;AACL,MAAAA,OAAM,IAAI,WAAW,OAAO,YAAYD,OAAM;AAAA,IAChD;AAGA,WAAO,eAAeC,MAAKF,QAAO,SAAS;AAC3C,WAAOE;AAAA,EACT;AAEA,WAAS,WAAW,KAAK;AACvB,QAAIF,QAAO,SAAS,GAAG,GAAG;AACxB,YAAM,MAAM,QAAQ,IAAI,MAAM,IAAI;AAClC,YAAME,OAAM,aAAa,GAAG;AAE5B,UAAIA,KAAI,WAAW,GAAG;AACpB,eAAOA;AAAA,MACT;AAEA,UAAI,KAAKA,MAAK,GAAG,GAAG,GAAG;AACvB,aAAOA;AAAA,IACT;AAEA,QAAI,IAAI,WAAW,QAAW;AAC5B,UAAI,OAAO,IAAI,WAAW,YAAY,YAAY,IAAI,MAAM,GAAG;AAC7D,eAAO,aAAa,CAAC;AAAA,MACvB;AAEA,aAAO,cAAc,GAAG;AAAA,IAC1B;AAEA,QAAI,IAAI,SAAS,YAAY,MAAM,QAAQ,IAAI,IAAI,GAAG;AACpD,aAAO,cAAc,IAAI,IAAI;AAAA,IAC/B;AAAA,EACF;AAEA,WAAS,QAAQD,SAAQ;AAGvB,QAAIA,WAAU,cAAc;AAC1B,YAAM,IAAI,WAAW,4DAAiE,aAAa,SAAS,EAAE,IAAI,QAAQ;AAAA,IAC5H;AAEA,WAAOA,UAAS;AAAA,EAClB;AAEA,WAAS,WAAWA,SAAQ;AAC1B,QAAI,CAACA,WAAUA,SAAQ;AAErB,MAAAA,UAAS;AAAA,IACX;AAEA,WAAOD,QAAO,MAAM,CAACC,OAAM;AAAA,EAC7B;AAEA,EAAAD,QAAO,WAAW,SAASO,UAASF,IAAG;AACrC,WAAOA,MAAK,QAAQA,GAAE,cAAc,QAAQA,OAAML,QAAO;AAAA,EAC3D;AAEA,EAAAA,QAAO,UAAU,SAASQ,SAAQC,IAAGJ,IAAG;AACtC,QAAI,WAAWI,IAAG,UAAU;AAAG,MAAAA,KAAIT,QAAO,KAAKS,IAAGA,GAAE,QAAQA,GAAE,UAAU;AACxE,QAAI,WAAWJ,IAAG,UAAU;AAAG,MAAAA,KAAIL,QAAO,KAAKK,IAAGA,GAAE,QAAQA,GAAE,UAAU;AAExE,QAAI,CAACL,QAAO,SAASS,EAAC,KAAK,CAACT,QAAO,SAASK,EAAC,GAAG;AAC9C,YAAM,IAAI,UAAU,uEAA2E;AAAA,IACjG;AAEA,QAAII,OAAMJ;AAAG,aAAO;AACpB,QAAIK,KAAID,GAAE;AACV,QAAIE,KAAIN,GAAE;AAEV,aAASd,KAAI,GAAG,MAAM,KAAK,IAAImB,IAAGC,EAAC,GAAGpB,KAAI,KAAK,EAAEA,IAAG;AAClD,UAAIkB,GAAElB,EAAC,MAAMc,GAAEd,EAAC,GAAG;AACjB,QAAAmB,KAAID,GAAElB,EAAC;AACP,QAAAoB,KAAIN,GAAEd,EAAC;AACP;AAAA,MACF;AAAA,IACF;AAEA,QAAImB,KAAIC;AAAG,aAAO;AAClB,QAAIA,KAAID;AAAG,aAAO;AAClB,WAAO;AAAA,EACT;AAEA,EAAAV,QAAO,aAAa,SAAS,WAAW,UAAU;AAChD,YAAQ,OAAO,QAAQ,EAAE,YAAY,GAAG;AAAA,MACtC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,eAAO;AAAA,MAET;AACE,eAAO;AAAA,IACX;AAAA,EACF;AAEA,EAAAA,QAAO,SAAS,SAASY,QAAO,MAAMX,SAAQ;AAC5C,QAAI,CAAC,MAAM,QAAQ,IAAI,GAAG;AACxB,YAAM,IAAI,UAAU,6CAA+C;AAAA,IACrE;AAEA,QAAI,KAAK,WAAW,GAAG;AACrB,aAAOD,QAAO,MAAM,CAAC;AAAA,IACvB;AAEA,QAAIT;AAEJ,QAAIU,YAAW,QAAW;AACxB,MAAAA,UAAS;AAET,WAAKV,KAAI,GAAGA,KAAI,KAAK,QAAQ,EAAEA,IAAG;AAChC,QAAAU,WAAU,KAAKV,EAAC,EAAE;AAAA,MACpB;AAAA,IACF;AAEA,UAAMG,UAASM,QAAO,YAAYC,OAAM;AACxC,QAAI,MAAM;AAEV,SAAKV,KAAI,GAAGA,KAAI,KAAK,QAAQ,EAAEA,IAAG;AAChC,UAAIW,OAAM,KAAKX,EAAC;AAEhB,UAAI,WAAWW,MAAK,UAAU,GAAG;AAC/B,YAAI,MAAMA,KAAI,SAASR,QAAO,QAAQ;AACpC,cAAI,CAACM,QAAO,SAASE,IAAG;AAAG,YAAAA,OAAMF,QAAO,KAAKE,IAAG;AAChD,UAAAA,KAAI,KAAKR,SAAQ,GAAG;AAAA,QACtB,OAAO;AACL,qBAAW,UAAU,IAAI,KAAKA,SAAQQ,MAAK,GAAG;AAAA,QAChD;AAAA,MACF,WAAW,CAACF,QAAO,SAASE,IAAG,GAAG;AAChC,cAAM,IAAI,UAAU,6CAA+C;AAAA,MACrE,OAAO;AACL,QAAAA,KAAI,KAAKR,SAAQ,GAAG;AAAA,MACtB;AAEA,aAAOQ,KAAI;AAAA,IACb;AAEA,WAAOR;AAAA,EACT;AAEA,WAAS,WAAW,QAAQ,UAAU;AACpC,QAAIM,QAAO,SAAS,MAAM,GAAG;AAC3B,aAAO,OAAO;AAAA,IAChB;AAEA,QAAI,YAAY,OAAO,MAAM,KAAK,WAAW,QAAQ,WAAW,GAAG;AACjE,aAAO,OAAO;AAAA,IAChB;AAEA,QAAI,OAAO,WAAW,UAAU;AAC9B,YAAM,IAAI,UAAU,6FAAoG,OAAO,MAAM;AAAA,IACvI;AAEA,UAAM,MAAM,OAAO;AACnB,UAAM,YAAY,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM;AAC3D,QAAI,CAAC,aAAa,QAAQ;AAAG,aAAO;AAEpC,QAAI,cAAc;AAElB,eAAS;AACP,cAAQ,UAAU;AAAA,QAChB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QAET,KAAK;AAAA,QACL,KAAK;AACH,iBAAOa,aAAY,MAAM,EAAE;AAAA,QAE7B,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,MAAM;AAAA,QAEf,KAAK;AACH,iBAAO,QAAQ;AAAA,QAEjB,KAAK;AACH,iBAAO,cAAc,MAAM,EAAE;AAAA,QAE/B;AACE,cAAI,aAAa;AACf,mBAAO,YAAY,KAAKA,aAAY,MAAM,EAAE;AAAA,UAC9C;AAEA,sBAAY,KAAK,UAAU,YAAY;AACvC,wBAAc;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAEA,EAAAb,QAAO,aAAa;AAEpB,WAAS,aAAa,UAAU,OAAO,KAAK;AAC1C,QAAI,cAAc;AAOlB,QAAI,UAAU,UAAa,QAAQ,GAAG;AACpC,cAAQ;AAAA,IACV;AAIA,QAAI,QAAQ,KAAK,QAAQ;AACvB,aAAO;AAAA,IACT;AAEA,QAAI,QAAQ,UAAa,MAAM,KAAK,QAAQ;AAC1C,YAAM,KAAK;AAAA,IACb;AAEA,QAAI,OAAO,GAAG;AACZ,aAAO;AAAA,IACT;AAGA,aAAS;AACT,eAAW;AAEX,QAAI,OAAO,OAAO;AAChB,aAAO;AAAA,IACT;AAEA,QAAI,CAAC;AAAU,iBAAW;AAE1B,WAAO,MAAM;AACX,cAAQ,UAAU;AAAA,QAChB,KAAK;AACH,iBAAO,SAAS,MAAM,OAAO,GAAG;AAAA,QAElC,KAAK;AAAA,QACL,KAAK;AACH,iBAAOc,WAAU,MAAM,OAAO,GAAG;AAAA,QAEnC,KAAK;AACH,iBAAO,WAAW,MAAM,OAAO,GAAG;AAAA,QAEpC,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,YAAY,MAAM,OAAO,GAAG;AAAA,QAErC,KAAK;AACH,iBAAO,YAAY,MAAM,OAAO,GAAG;AAAA,QAErC,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,aAAa,MAAM,OAAO,GAAG;AAAA,QAEtC;AACE,cAAI;AAAa,kBAAM,IAAI,UAAU,uBAAuB,QAAQ;AACpE,sBAAY,WAAW,IAAI,YAAY;AACvC,wBAAc;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAQA,EAAAd,QAAO,UAAU,YAAY;AAE7B,WAAS,KAAKK,IAAGU,IAAGnB,IAAG;AACrB,UAAML,KAAIc,GAAEU,EAAC;AACb,IAAAV,GAAEU,EAAC,IAAIV,GAAET,EAAC;AACV,IAAAS,GAAET,EAAC,IAAIL;AAAA,EACT;AAEA,EAAAS,QAAO,UAAU,SAAS,SAAS,SAAS;AAC1C,UAAM,MAAM,KAAK;AAEjB,QAAI,MAAM,MAAM,GAAG;AACjB,YAAM,IAAI,WAAW,2CAA2C;AAAA,IAClE;AAEA,aAAST,KAAI,GAAGA,KAAI,KAAKA,MAAK,GAAG;AAC/B,WAAK,MAAMA,IAAGA,KAAI,CAAC;AAAA,IACrB;AAEA,WAAO;AAAA,EACT;AAEA,EAAAS,QAAO,UAAU,SAAS,SAAS,SAAS;AAC1C,UAAM,MAAM,KAAK;AAEjB,QAAI,MAAM,MAAM,GAAG;AACjB,YAAM,IAAI,WAAW,2CAA2C;AAAA,IAClE;AAEA,aAAST,KAAI,GAAGA,KAAI,KAAKA,MAAK,GAAG;AAC/B,WAAK,MAAMA,IAAGA,KAAI,CAAC;AACnB,WAAK,MAAMA,KAAI,GAAGA,KAAI,CAAC;AAAA,IACzB;AAEA,WAAO;AAAA,EACT;AAEA,EAAAS,QAAO,UAAU,SAAS,SAAS,SAAS;AAC1C,UAAM,MAAM,KAAK;AAEjB,QAAI,MAAM,MAAM,GAAG;AACjB,YAAM,IAAI,WAAW,2CAA2C;AAAA,IAClE;AAEA,aAAST,KAAI,GAAGA,KAAI,KAAKA,MAAK,GAAG;AAC/B,WAAK,MAAMA,IAAGA,KAAI,CAAC;AACnB,WAAK,MAAMA,KAAI,GAAGA,KAAI,CAAC;AACvB,WAAK,MAAMA,KAAI,GAAGA,KAAI,CAAC;AACvB,WAAK,MAAMA,KAAI,GAAGA,KAAI,CAAC;AAAA,IACzB;AAEA,WAAO;AAAA,EACT;AAEA,EAAAS,QAAO,UAAU,WAAW,SAASgB,YAAW;AAC9C,UAAMf,UAAS,KAAK;AACpB,QAAIA,YAAW;AAAG,aAAO;AACzB,QAAI,UAAU,WAAW;AAAG,aAAOa,WAAU,MAAM,GAAGb,OAAM;AAC5D,WAAO,aAAa,MAAM,MAAM,SAAS;AAAA,EAC3C;AAEA,EAAAD,QAAO,UAAU,iBAAiBA,QAAO,UAAU;AAEnD,EAAAA,QAAO,UAAU,SAAS,SAASiB,QAAOZ,IAAG;AAC3C,QAAI,CAACL,QAAO,SAASK,EAAC;AAAG,YAAM,IAAI,UAAU,2BAA2B;AACxE,QAAI,SAASA;AAAG,aAAO;AACvB,WAAOL,QAAO,QAAQ,MAAMK,EAAC,MAAM;AAAA,EACrC;AAEA,EAAAL,QAAO,UAAU,UAAU,SAASkB,WAAU;AAC5C,QAAI,MAAM;AACV,UAAM,MAAM,UAAU;AACtB,UAAM,KAAK,SAAS,OAAO,GAAG,GAAG,EAAE,QAAQ,WAAW,KAAK,EAAE,KAAK;AAClE,QAAI,KAAK,SAAS;AAAK,aAAO;AAC9B,WAAO,aAAa,MAAM;AAAA,EAC5B;AAEA,MAAI,qBAAqB;AACvB,IAAAlB,QAAO,UAAU,mBAAmB,IAAIA,QAAO,UAAU;AAAA,EAC3D;AAEA,EAAAA,QAAO,UAAU,UAAU,SAASQ,SAAQ,QAAQ,OAAO,KAAK,WAAW,SAAS;AAClF,QAAI,WAAW,QAAQ,UAAU,GAAG;AAClC,eAASR,QAAO,KAAK,QAAQ,OAAO,QAAQ,OAAO,UAAU;AAAA,IAC/D;AAEA,QAAI,CAACA,QAAO,SAAS,MAAM,GAAG;AAC5B,YAAM,IAAI,UAAU,mFAA0F,OAAO,MAAM;AAAA,IAC7H;AAEA,QAAI,UAAU,QAAW;AACvB,cAAQ;AAAA,IACV;AAEA,QAAI,QAAQ,QAAW;AACrB,YAAM,SAAS,OAAO,SAAS;AAAA,IACjC;AAEA,QAAI,cAAc,QAAW;AAC3B,kBAAY;AAAA,IACd;AAEA,QAAI,YAAY,QAAW;AACzB,gBAAU,KAAK;AAAA,IACjB;AAEA,QAAI,QAAQ,KAAK,MAAM,OAAO,UAAU,YAAY,KAAK,UAAU,KAAK,QAAQ;AAC9E,YAAM,IAAI,WAAW,oBAAoB;AAAA,IAC3C;AAEA,QAAI,aAAa,WAAW,SAAS,KAAK;AACxC,aAAO;AAAA,IACT;AAEA,QAAI,aAAa,SAAS;AACxB,aAAO;AAAA,IACT;AAEA,QAAI,SAAS,KAAK;AAChB,aAAO;AAAA,IACT;AAEA,eAAW;AACX,aAAS;AACT,mBAAe;AACf,iBAAa;AACb,QAAI,SAAS;AAAQ,aAAO;AAC5B,QAAIU,KAAI,UAAU;AAClB,QAAIC,KAAI,MAAM;AACd,UAAM,MAAM,KAAK,IAAID,IAAGC,EAAC;AACzB,UAAM,WAAW,KAAK,MAAM,WAAW,OAAO;AAC9C,UAAM,aAAa,OAAO,MAAM,OAAO,GAAG;AAE1C,aAASpB,KAAI,GAAGA,KAAI,KAAK,EAAEA,IAAG;AAC5B,UAAI,SAASA,EAAC,MAAM,WAAWA,EAAC,GAAG;AACjC,QAAAmB,KAAI,SAASnB,EAAC;AACd,QAAAoB,KAAI,WAAWpB,EAAC;AAChB;AAAA,MACF;AAAA,IACF;AAEA,QAAImB,KAAIC;AAAG,aAAO;AAClB,QAAIA,KAAID;AAAG,aAAO;AAClB,WAAO;AAAA,EACT;AAWA,WAAS,qBAAqBhB,SAAQ,KAAK,YAAY,UAAU,KAAK;AAEpE,QAAIA,QAAO,WAAW;AAAG,aAAO;AAEhC,QAAI,OAAO,eAAe,UAAU;AAClC,iBAAW;AACX,mBAAa;AAAA,IACf,WAAW,aAAa,YAAY;AAClC,mBAAa;AAAA,IACf,WAAW,aAAa,aAAa;AACnC,mBAAa;AAAA,IACf;AAEA,iBAAa,CAAC;AAEd,QAAI,YAAY,UAAU,GAAG;AAE3B,mBAAa,MAAM,IAAIA,QAAO,SAAS;AAAA,IACzC;AAGA,QAAI,aAAa;AAAG,mBAAaA,QAAO,SAAS;AAEjD,QAAI,cAAcA,QAAO,QAAQ;AAC/B,UAAI;AAAK,eAAO;AAAA;AAAQ,qBAAaA,QAAO,SAAS;AAAA,IACvD,WAAW,aAAa,GAAG;AACzB,UAAI;AAAK,qBAAa;AAAA;AAAO,eAAO;AAAA,IACtC;AAGA,QAAI,OAAO,QAAQ,UAAU;AAC3B,YAAMM,QAAO,KAAK,KAAK,QAAQ;AAAA,IACjC;AAGA,QAAIA,QAAO,SAAS,GAAG,GAAG;AAExB,UAAI,IAAI,WAAW,GAAG;AACpB,eAAO;AAAA,MACT;AAEA,aAAO,aAAaN,SAAQ,KAAK,YAAY,UAAU,GAAG;AAAA,IAC5D,WAAW,OAAO,QAAQ,UAAU;AAClC,YAAM,MAAM;AAEZ,UAAI,OAAO,WAAW,UAAU,YAAY,YAAY;AACtD,YAAI,KAAK;AACP,iBAAO,WAAW,UAAU,QAAQ,KAAKA,SAAQ,KAAK,UAAU;AAAA,QAClE,OAAO;AACL,iBAAO,WAAW,UAAU,YAAY,KAAKA,SAAQ,KAAK,UAAU;AAAA,QACtE;AAAA,MACF;AAEA,aAAO,aAAaA,SAAQ,CAAC,GAAG,GAAG,YAAY,UAAU,GAAG;AAAA,IAC9D;AAEA,UAAM,IAAI,UAAU,sCAAsC;AAAA,EAC5D;AAEA,WAAS,aAAa,KAAK,KAAK,YAAY,UAAU,KAAK;AACzD,QAAI,YAAY;AAChB,QAAI,YAAY,IAAI;AACpB,QAAI,YAAY,IAAI;AAEpB,QAAI,aAAa,QAAW;AAC1B,iBAAW,OAAO,QAAQ,EAAE,YAAY;AAExC,UAAI,aAAa,UAAU,aAAa,WAAW,aAAa,aAAa,aAAa,YAAY;AACpG,YAAI,IAAI,SAAS,KAAK,IAAI,SAAS,GAAG;AACpC,iBAAO;AAAA,QACT;AAEA,oBAAY;AACZ,qBAAa;AACb,qBAAa;AACb,sBAAc;AAAA,MAChB;AAAA,IACF;AAEA,aAASyB,MAAKjB,MAAKX,IAAG;AACpB,UAAI,cAAc,GAAG;AACnB,eAAOW,KAAIX,EAAC;AAAA,MACd,OAAO;AACL,eAAOW,KAAI,aAAaX,KAAI,SAAS;AAAA,MACvC;AAAA,IACF;AAEA,QAAIA;AAEJ,QAAI,KAAK;AACP,UAAI,aAAa;AAEjB,WAAKA,KAAI,YAAYA,KAAI,WAAWA,MAAK;AACvC,YAAI4B,MAAK,KAAK5B,EAAC,MAAM4B,MAAK,KAAK,eAAe,KAAK,IAAI5B,KAAI,UAAU,GAAG;AACtE,cAAI,eAAe;AAAI,yBAAaA;AACpC,cAAIA,KAAI,aAAa,MAAM;AAAW,mBAAO,aAAa;AAAA,QAC5D,OAAO;AACL,cAAI,eAAe;AAAI,YAAAA,MAAKA,KAAI;AAChC,uBAAa;AAAA,QACf;AAAA,MACF;AAAA,IACF,OAAO;AACL,UAAI,aAAa,YAAY;AAAW,qBAAa,YAAY;AAEjE,WAAKA,KAAI,YAAYA,MAAK,GAAGA,MAAK;AAChC,YAAI,QAAQ;AAEZ,iBAAS6B,KAAI,GAAGA,KAAI,WAAWA,MAAK;AAClC,cAAID,MAAK,KAAK5B,KAAI6B,EAAC,MAAMD,MAAK,KAAKC,EAAC,GAAG;AACrC,oBAAQ;AACR;AAAA,UACF;AAAA,QACF;AAEA,YAAI;AAAO,iBAAO7B;AAAA,MACpB;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,EAAAS,QAAO,UAAU,WAAW,SAAS,SAAS,KAAK,YAAY,UAAU;AACvE,WAAO,KAAK,QAAQ,KAAK,YAAY,QAAQ,MAAM;AAAA,EACrD;AAEA,EAAAA,QAAO,UAAU,UAAU,SAAS,QAAQ,KAAK,YAAY,UAAU;AACrE,WAAO,qBAAqB,MAAM,KAAK,YAAY,UAAU,IAAI;AAAA,EACnE;AAEA,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAY,KAAK,YAAY,UAAU;AAC7E,WAAO,qBAAqB,MAAM,KAAK,YAAY,UAAU,KAAK;AAAA,EACpE;AAEA,WAAS,SAASE,MAAK,QAAQ,QAAQD,SAAQ;AAC7C,aAAS,OAAO,MAAM,KAAK;AAC3B,UAAM,YAAYC,KAAI,SAAS;AAE/B,QAAI,CAACD,SAAQ;AACX,MAAAA,UAAS;AAAA,IACX,OAAO;AACL,MAAAA,UAAS,OAAOA,OAAM;AAEtB,UAAIA,UAAS,WAAW;AACtB,QAAAA,UAAS;AAAA,MACX;AAAA,IACF;AAEA,UAAM,SAAS,OAAO;AAEtB,QAAIA,UAAS,SAAS,GAAG;AACvB,MAAAA,UAAS,SAAS;AAAA,IACpB;AAEA,QAAIV;AAEJ,SAAKA,KAAI,GAAGA,KAAIU,SAAQ,EAAEV,IAAG;AAC3B,YAAM,SAAS,SAAS,OAAO,OAAOA,KAAI,GAAG,CAAC,GAAG,EAAE;AACnD,UAAI,YAAY,MAAM;AAAG,eAAOA;AAChC,MAAAW,KAAI,SAASX,EAAC,IAAI;AAAA,IACpB;AAEA,WAAOA;AAAA,EACT;AAEA,WAAS,UAAUW,MAAK,QAAQ,QAAQD,SAAQ;AAC9C,WAAO,WAAWY,aAAY,QAAQX,KAAI,SAAS,MAAM,GAAGA,MAAK,QAAQD,OAAM;AAAA,EACjF;AAEA,WAAS,WAAWC,MAAK,QAAQ,QAAQD,SAAQ;AAC/C,WAAO,WAAW,aAAa,MAAM,GAAGC,MAAK,QAAQD,OAAM;AAAA,EAC7D;AAEA,WAAS,YAAYC,MAAK,QAAQ,QAAQD,SAAQ;AAChD,WAAO,WAAW,cAAc,MAAM,GAAGC,MAAK,QAAQD,OAAM;AAAA,EAC9D;AAEA,WAAS,UAAUC,MAAK,QAAQ,QAAQD,SAAQ;AAC9C,WAAO,WAAW,eAAe,QAAQC,KAAI,SAAS,MAAM,GAAGA,MAAK,QAAQD,OAAM;AAAA,EACpF;AAEA,EAAAD,QAAO,UAAU,QAAQ,SAASqB,OAAM,QAAQ,QAAQpB,SAAQ,UAAU;AAExE,QAAI,WAAW,QAAW;AACxB,iBAAW;AACX,MAAAA,UAAS,KAAK;AACd,eAAS;AAAA,IACX,WAAWA,YAAW,UAAa,OAAO,WAAW,UAAU;AAC7D,iBAAW;AACX,MAAAA,UAAS,KAAK;AACd,eAAS;AAAA,IACX,WAAW,SAAS,MAAM,GAAG;AAC3B,eAAS,WAAW;AAEpB,UAAI,SAASA,OAAM,GAAG;AACpB,QAAAA,UAASA,YAAW;AACpB,YAAI,aAAa;AAAW,qBAAW;AAAA,MACzC,OAAO;AACL,mBAAWA;AACX,QAAAA,UAAS;AAAA,MACX;AAAA,IACF,OAAO;AACL,YAAM,IAAI,MAAM,yEAAyE;AAAA,IAC3F;AAEA,UAAM,YAAY,KAAK,SAAS;AAChC,QAAIA,YAAW,UAAaA,UAAS;AAAW,MAAAA,UAAS;AAEzD,QAAI,OAAO,SAAS,MAAMA,UAAS,KAAK,SAAS,MAAM,SAAS,KAAK,QAAQ;AAC3E,YAAM,IAAI,WAAW,wCAAwC;AAAA,IAC/D;AAEA,QAAI,CAAC;AAAU,iBAAW;AAC1B,QAAI,cAAc;AAElB,eAAS;AACP,cAAQ,UAAU;AAAA,QAChB,KAAK;AACH,iBAAO,SAAS,MAAM,QAAQ,QAAQA,OAAM;AAAA,QAE9C,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,UAAU,MAAM,QAAQ,QAAQA,OAAM;AAAA,QAE/C,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,WAAW,MAAM,QAAQ,QAAQA,OAAM;AAAA,QAEhD,KAAK;AAEH,iBAAO,YAAY,MAAM,QAAQ,QAAQA,OAAM;AAAA,QAEjD,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,UAAU,MAAM,QAAQ,QAAQA,OAAM;AAAA,QAE/C;AACE,cAAI;AAAa,kBAAM,IAAI,UAAU,uBAAuB,QAAQ;AACpE,sBAAY,KAAK,UAAU,YAAY;AACvC,wBAAc;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAEA,EAAAD,QAAO,UAAU,SAAS,SAAS,SAAS;AAC1C,WAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM,MAAM,UAAU,MAAM,KAAK,KAAK,QAAQ,MAAM,CAAC;AAAA,IACvD;AAAA,EACF;AAEA,WAAS,YAAYE,MAAK,OAAO,KAAK;AACpC,QAAI,UAAU,KAAK,QAAQA,KAAI,QAAQ;AACrC,aAAO,OAAO,cAAcA,IAAG;AAAA,IACjC,OAAO;AACL,aAAO,OAAO,cAAcA,KAAI,MAAM,OAAO,GAAG,CAAC;AAAA,IACnD;AAAA,EACF;AAEA,WAASY,WAAUZ,MAAK,OAAO,KAAK;AAClC,UAAM,KAAK,IAAIA,KAAI,QAAQ,GAAG;AAC9B,UAAM,MAAM,CAAC;AACb,QAAIX,KAAI;AAER,WAAOA,KAAI,KAAK;AACd,YAAM,YAAYW,KAAIX,EAAC;AACvB,UAAI,YAAY;AAChB,UAAI,mBAAmB,YAAY,MAAM,IAAI,YAAY,MAAM,IAAI,YAAY,MAAM,IAAI;AAEzF,UAAIA,KAAI,oBAAoB,KAAK;AAC/B,YAAI,YAAY,WAAW,YAAY;AAEvC,gBAAQ,kBAAkB;AAAA,UACxB,KAAK;AACH,gBAAI,YAAY,KAAK;AACnB,0BAAY;AAAA,YACd;AAEA;AAAA,UAEF,KAAK;AACH,yBAAaW,KAAIX,KAAI,CAAC;AAEtB,iBAAK,aAAa,SAAS,KAAK;AAC9B,+BAAiB,YAAY,OAAO,IAAI,aAAa;AAErD,kBAAI,gBAAgB,KAAK;AACvB,4BAAY;AAAA,cACd;AAAA,YACF;AAEA;AAAA,UAEF,KAAK;AACH,yBAAaW,KAAIX,KAAI,CAAC;AACtB,wBAAYW,KAAIX,KAAI,CAAC;AAErB,iBAAK,aAAa,SAAS,QAAQ,YAAY,SAAS,KAAK;AAC3D,+BAAiB,YAAY,OAAO,MAAM,aAAa,OAAO,IAAI,YAAY;AAE9E,kBAAI,gBAAgB,SAAS,gBAAgB,SAAS,gBAAgB,QAAQ;AAC5E,4BAAY;AAAA,cACd;AAAA,YACF;AAEA;AAAA,UAEF,KAAK;AACH,yBAAaW,KAAIX,KAAI,CAAC;AACtB,wBAAYW,KAAIX,KAAI,CAAC;AACrB,yBAAaW,KAAIX,KAAI,CAAC;AAEtB,iBAAK,aAAa,SAAS,QAAQ,YAAY,SAAS,QAAQ,aAAa,SAAS,KAAK;AACzF,+BAAiB,YAAY,OAAO,MAAM,aAAa,OAAO,MAAM,YAAY,OAAO,IAAI,aAAa;AAExG,kBAAI,gBAAgB,SAAS,gBAAgB,SAAS;AACpD,4BAAY;AAAA,cACd;AAAA,YACF;AAAA,QAEJ;AAAA,MACF;AAEA,UAAI,cAAc,MAAM;AAGtB,oBAAY;AACZ,2BAAmB;AAAA,MACrB,WAAW,YAAY,OAAO;AAE5B,qBAAa;AACb,YAAI,KAAK,cAAc,KAAK,OAAO,KAAK;AACxC,oBAAY,QAAQ,YAAY;AAAA,MAClC;AAEA,UAAI,KAAK,SAAS;AAClB,MAAAA,MAAK;AAAA,IACP;AAEA,WAAO+B,uBAAsB,GAAG;AAAA,EAClC;AAKA,QAAMC,wBAAuB;AAE7B,WAASD,uBAAsB,YAAY;AACzC,UAAM,MAAM,WAAW;AAEvB,QAAI,OAAOC,uBAAsB;AAC/B,aAAO,OAAO,aAAa,MAAM,QAAQ,UAAU;AAAA,IACrD;AAGA,QAAI,MAAM;AACV,QAAIhC,KAAI;AAER,WAAOA,KAAI,KAAK;AACd,aAAO,OAAO,aAAa,MAAM,QAAQ,WAAW,MAAMA,IAAGA,MAAKgC,qBAAoB,CAAC;AAAA,IACzF;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,WAAWrB,MAAK,OAAO,KAAK;AACnC,QAAI,MAAM;AACV,UAAM,KAAK,IAAIA,KAAI,QAAQ,GAAG;AAE9B,aAASX,KAAI,OAAOA,KAAI,KAAK,EAAEA,IAAG;AAChC,aAAO,OAAO,aAAaW,KAAIX,EAAC,IAAI,GAAG;AAAA,IACzC;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,YAAYW,MAAK,OAAO,KAAK;AACpC,QAAI,MAAM;AACV,UAAM,KAAK,IAAIA,KAAI,QAAQ,GAAG;AAE9B,aAASX,KAAI,OAAOA,KAAI,KAAK,EAAEA,IAAG;AAChC,aAAO,OAAO,aAAaW,KAAIX,EAAC,CAAC;AAAA,IACnC;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,SAASW,MAAK,OAAO,KAAK;AACjC,UAAM,MAAMA,KAAI;AAChB,QAAI,CAAC,SAAS,QAAQ;AAAG,cAAQ;AACjC,QAAI,CAAC,OAAO,MAAM,KAAK,MAAM;AAAK,YAAM;AACxC,QAAI,MAAM;AAEV,aAASX,KAAI,OAAOA,KAAI,KAAK,EAAEA,IAAG;AAChC,aAAO,oBAAoBW,KAAIX,EAAC,CAAC;AAAA,IACnC;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,aAAaW,MAAK,OAAO,KAAK;AACrC,UAAM,QAAQA,KAAI,MAAM,OAAO,GAAG;AAClC,QAAI,MAAM;AAEV,aAASX,KAAI,GAAGA,KAAI,MAAM,SAAS,GAAGA,MAAK,GAAG;AAC5C,aAAO,OAAO,aAAa,MAAMA,EAAC,IAAI,MAAMA,KAAI,CAAC,IAAI,GAAG;AAAA,IAC1D;AAEA,WAAO;AAAA,EACT;AAEA,EAAAS,QAAO,UAAU,QAAQ,SAASwB,OAAM,OAAO,KAAK;AAClD,UAAM,MAAM,KAAK;AACjB,YAAQ,CAAC,CAAC;AACV,UAAM,QAAQ,SAAY,MAAM,CAAC,CAAC;AAElC,QAAI,QAAQ,GAAG;AACb,eAAS;AACT,UAAI,QAAQ;AAAG,gBAAQ;AAAA,IACzB,WAAW,QAAQ,KAAK;AACtB,cAAQ;AAAA,IACV;AAEA,QAAI,MAAM,GAAG;AACX,aAAO;AACP,UAAI,MAAM;AAAG,cAAM;AAAA,IACrB,WAAW,MAAM,KAAK;AACpB,YAAM;AAAA,IACR;AAEA,QAAI,MAAM;AAAO,YAAM;AACvB,UAAM,SAAS,KAAK,SAAS,OAAO,GAAG;AAEvC,WAAO,eAAe,QAAQxB,QAAO,SAAS;AAC9C,WAAO;AAAA,EACT;AAMA,WAAS,YAAY,QAAQ,KAAKC,SAAQ;AACxC,QAAI,SAAS,MAAM,KAAK,SAAS;AAAG,YAAM,IAAI,WAAW,oBAAoB;AAC7E,QAAI,SAAS,MAAMA;AAAQ,YAAM,IAAI,WAAW,uCAAuC;AAAA,EACzF;AAEA,EAAAD,QAAO,UAAU,aAAaA,QAAO,UAAU,aAAa,SAAS,WAAW,QAAQyB,aAAY,UAAU;AAC5G,aAAS,WAAW;AACpB,IAAAA,cAAaA,gBAAe;AAC5B,QAAI,CAAC;AAAU,kBAAY,QAAQA,aAAY,KAAK,MAAM;AAC1D,QAAI,MAAM,KAAK,MAAM;AACrB,QAAI,MAAM;AACV,QAAIlC,KAAI;AAER,WAAO,EAAEA,KAAIkC,gBAAe,OAAO,MAAM;AACvC,aAAO,KAAK,SAASlC,EAAC,IAAI;AAAA,IAC5B;AAEA,WAAO;AAAA,EACT;AAEA,EAAAS,QAAO,UAAU,aAAaA,QAAO,UAAU,aAAa,SAAS,WAAW,QAAQyB,aAAY,UAAU;AAC5G,aAAS,WAAW;AACpB,IAAAA,cAAaA,gBAAe;AAE5B,QAAI,CAAC,UAAU;AACb,kBAAY,QAAQA,aAAY,KAAK,MAAM;AAAA,IAC7C;AAEA,QAAI,MAAM,KAAK,SAAS,EAAEA,WAAU;AACpC,QAAI,MAAM;AAEV,WAAOA,cAAa,MAAM,OAAO,MAAM;AACrC,aAAO,KAAK,SAAS,EAAEA,WAAU,IAAI;AAAA,IACvC;AAEA,WAAO;AAAA,EACT;AAEA,EAAAzB,QAAO,UAAU,YAAYA,QAAO,UAAU,YAAY,SAAS,UAAU,QAAQ,UAAU;AAC7F,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,KAAK,MAAM;AAAA,EACpB;AAEA,EAAAA,QAAO,UAAU,eAAeA,QAAO,UAAU,eAAe,SAAS,aAAa,QAAQ,UAAU;AACtG,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,KAAK,MAAM,IAAI,KAAK,SAAS,CAAC,KAAK;AAAA,EAC5C;AAEA,EAAAA,QAAO,UAAU,eAAeA,QAAO,UAAU,eAAe,SAAS,aAAa,QAAQ,UAAU;AACtG,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,KAAK,MAAM,KAAK,IAAI,KAAK,SAAS,CAAC;AAAA,EAC5C;AAEA,EAAAA,QAAO,UAAU,eAAeA,QAAO,UAAU,eAAe,SAAS,aAAa,QAAQ,UAAU;AACtG,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,YAAQ,KAAK,MAAM,IAAI,KAAK,SAAS,CAAC,KAAK,IAAI,KAAK,SAAS,CAAC,KAAK,MAAM,KAAK,SAAS,CAAC,IAAI;AAAA,EAC9F;AAEA,EAAAA,QAAO,UAAU,eAAeA,QAAO,UAAU,eAAe,SAAS,aAAa,QAAQ,UAAU;AACtG,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,KAAK,MAAM,IAAI,YAAY,KAAK,SAAS,CAAC,KAAK,KAAK,KAAK,SAAS,CAAC,KAAK,IAAI,KAAK,SAAS,CAAC;AAAA,EACpG;AAEA,EAAAA,QAAO,UAAU,kBAAkB,mBAAmB,SAAS,gBAAgB,QAAQ;AACrF,aAAS,WAAW;AACpB,mBAAe,QAAQ,QAAQ;AAC/B,UAAM,QAAQ,KAAK,MAAM;AACzB,UAAM,OAAO,KAAK,SAAS,CAAC;AAE5B,QAAI,UAAU,UAAa,SAAS,QAAW;AAC7C,kBAAY,QAAQ,KAAK,SAAS,CAAC;AAAA,IACrC;AAEA,UAAM,KAAK,QAAQ,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK;AAC9F,UAAM,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,OAAO,KAAK;AAC7F,WAAO,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE;AAAA,EAC9C,CAAC;AACD,EAAAA,QAAO,UAAU,kBAAkB,mBAAmB,SAAS,gBAAgB,QAAQ;AACrF,aAAS,WAAW;AACpB,mBAAe,QAAQ,QAAQ;AAC/B,UAAM,QAAQ,KAAK,MAAM;AACzB,UAAM,OAAO,KAAK,SAAS,CAAC;AAE5B,QAAI,UAAU,UAAa,SAAS,QAAW;AAC7C,kBAAY,QAAQ,KAAK,SAAS,CAAC;AAAA,IACrC;AAEA,UAAM,KAAK,QAAQ,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,KAAK,EAAE,MAAM;AAC/F,UAAM,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI;AAC3F,YAAQ,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE;AAAA,EAC/C,CAAC;AAED,EAAAA,QAAO,UAAU,YAAY,SAAS,UAAU,QAAQyB,aAAY,UAAU;AAC5E,aAAS,WAAW;AACpB,IAAAA,cAAaA,gBAAe;AAC5B,QAAI,CAAC;AAAU,kBAAY,QAAQA,aAAY,KAAK,MAAM;AAC1D,QAAI,MAAM,KAAK,MAAM;AACrB,QAAI,MAAM;AACV,QAAIlC,KAAI;AAER,WAAO,EAAEA,KAAIkC,gBAAe,OAAO,MAAM;AACvC,aAAO,KAAK,SAASlC,EAAC,IAAI;AAAA,IAC5B;AAEA,WAAO;AACP,QAAI,OAAO;AAAK,aAAO,KAAK,IAAI,GAAG,IAAIkC,WAAU;AACjD,WAAO;AAAA,EACT;AAEA,EAAAzB,QAAO,UAAU,YAAY,SAAS,UAAU,QAAQyB,aAAY,UAAU;AAC5E,aAAS,WAAW;AACpB,IAAAA,cAAaA,gBAAe;AAC5B,QAAI,CAAC;AAAU,kBAAY,QAAQA,aAAY,KAAK,MAAM;AAC1D,QAAIlC,KAAIkC;AACR,QAAI,MAAM;AACV,QAAI,MAAM,KAAK,SAAS,EAAElC,EAAC;AAE3B,WAAOA,KAAI,MAAM,OAAO,MAAM;AAC5B,aAAO,KAAK,SAAS,EAAEA,EAAC,IAAI;AAAA,IAC9B;AAEA,WAAO;AACP,QAAI,OAAO;AAAK,aAAO,KAAK,IAAI,GAAG,IAAIkC,WAAU;AACjD,WAAO;AAAA,EACT;AAEA,EAAAzB,QAAO,UAAU,WAAW,SAAS,SAAS,QAAQ,UAAU;AAC9D,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,QAAI,EAAE,KAAK,MAAM,IAAI;AAAM,aAAO,KAAK,MAAM;AAC7C,YAAQ,MAAM,KAAK,MAAM,IAAI,KAAK;AAAA,EACpC;AAEA,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAY,QAAQ,UAAU;AACpE,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,UAAM,MAAM,KAAK,MAAM,IAAI,KAAK,SAAS,CAAC,KAAK;AAC/C,WAAO,MAAM,QAAQ,MAAM,aAAa;AAAA,EAC1C;AAEA,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAY,QAAQ,UAAU;AACpE,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,UAAM,MAAM,KAAK,SAAS,CAAC,IAAI,KAAK,MAAM,KAAK;AAC/C,WAAO,MAAM,QAAQ,MAAM,aAAa;AAAA,EAC1C;AAEA,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAY,QAAQ,UAAU;AACpE,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,KAAK,MAAM,IAAI,KAAK,SAAS,CAAC,KAAK,IAAI,KAAK,SAAS,CAAC,KAAK,KAAK,KAAK,SAAS,CAAC,KAAK;AAAA,EAC7F;AAEA,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAY,QAAQ,UAAU;AACpE,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,KAAK,MAAM,KAAK,KAAK,KAAK,SAAS,CAAC,KAAK,KAAK,KAAK,SAAS,CAAC,KAAK,IAAI,KAAK,SAAS,CAAC;AAAA,EAC9F;AAEA,EAAAA,QAAO,UAAU,iBAAiB,mBAAmB,SAAS,eAAe,QAAQ;AACnF,aAAS,WAAW;AACpB,mBAAe,QAAQ,QAAQ;AAC/B,UAAM,QAAQ,KAAK,MAAM;AACzB,UAAM,OAAO,KAAK,SAAS,CAAC;AAE5B,QAAI,UAAU,UAAa,SAAS,QAAW;AAC7C,kBAAY,QAAQ,KAAK,SAAS,CAAC;AAAA,IACrC;AAEA,UAAM,MAAM,KAAK,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,KAAK,IAAI,KAAK,SAAS,CAAC,IAAI,KAAK,MAAM,QAAQ;AAEjG,YAAQ,OAAO,GAAG,KAAK,OAAO,EAAE,KAAK,OAAO,QAAQ,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,EAAE;AAAA,EACnI,CAAC;AACD,EAAAA,QAAO,UAAU,iBAAiB,mBAAmB,SAAS,eAAe,QAAQ;AACnF,aAAS,WAAW;AACpB,mBAAe,QAAQ,QAAQ;AAC/B,UAAM,QAAQ,KAAK,MAAM;AACzB,UAAM,OAAO,KAAK,SAAS,CAAC;AAE5B,QAAI,UAAU,UAAa,SAAS,QAAW;AAC7C,kBAAY,QAAQ,KAAK,SAAS,CAAC;AAAA,IACrC;AAEA,UAAM,OAAO,SAAS;AAAA,IACtB,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,KAAK,EAAE,MAAM;AAClE,YAAQ,OAAO,GAAG,KAAK,OAAO,EAAE,KAAK,OAAO,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,IAAI;AAAA,EAClI,CAAC;AAED,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAY,QAAQ,UAAU;AACpE,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,QAAQ,KAAK,MAAM,QAAQ,MAAM,IAAI,CAAC;AAAA,EAC/C;AAEA,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAY,QAAQ,UAAU;AACpE,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,QAAQ,KAAK,MAAM,QAAQ,OAAO,IAAI,CAAC;AAAA,EAChD;AAEA,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAa,QAAQ,UAAU;AACtE,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,QAAQ,KAAK,MAAM,QAAQ,MAAM,IAAI,CAAC;AAAA,EAC/C;AAEA,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAa,QAAQ,UAAU;AACtE,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,QAAQ,KAAK,MAAM,QAAQ,OAAO,IAAI,CAAC;AAAA,EAChD;AAEA,WAAS,SAASE,MAAK,OAAO,QAAQ,KAAK,KAAK,KAAK;AACnD,QAAI,CAACF,QAAO,SAASE,IAAG;AAAG,YAAM,IAAI,UAAU,6CAA+C;AAC9F,QAAI,QAAQ,OAAO,QAAQ;AAAK,YAAM,IAAI,WAAW,mCAAqC;AAC1F,QAAI,SAAS,MAAMA,KAAI;AAAQ,YAAM,IAAI,WAAW,oBAAoB;AAAA,EAC1E;AAEA,EAAAF,QAAO,UAAU,cAAcA,QAAO,UAAU,cAAc,SAAS,YAAY,OAAO,QAAQyB,aAAY,UAAU;AACtH,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,IAAAA,cAAaA,gBAAe;AAE5B,QAAI,CAAC,UAAU;AACb,YAAM,WAAW,KAAK,IAAI,GAAG,IAAIA,WAAU,IAAI;AAC/C,eAAS,MAAM,OAAO,QAAQA,aAAY,UAAU,CAAC;AAAA,IACvD;AAEA,QAAI,MAAM;AACV,QAAIlC,KAAI;AACR,SAAK,MAAM,IAAI,QAAQ;AAEvB,WAAO,EAAEA,KAAIkC,gBAAe,OAAO,MAAM;AACvC,WAAK,SAASlC,EAAC,IAAI,QAAQ,MAAM;AAAA,IACnC;AAEA,WAAO,SAASkC;AAAA,EAClB;AAEA,EAAAzB,QAAO,UAAU,cAAcA,QAAO,UAAU,cAAc,SAAS,YAAY,OAAO,QAAQyB,aAAY,UAAU;AACtH,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,IAAAA,cAAaA,gBAAe;AAE5B,QAAI,CAAC,UAAU;AACb,YAAM,WAAW,KAAK,IAAI,GAAG,IAAIA,WAAU,IAAI;AAC/C,eAAS,MAAM,OAAO,QAAQA,aAAY,UAAU,CAAC;AAAA,IACvD;AAEA,QAAIlC,KAAIkC,cAAa;AACrB,QAAI,MAAM;AACV,SAAK,SAASlC,EAAC,IAAI,QAAQ;AAE3B,WAAO,EAAEA,MAAK,MAAM,OAAO,MAAM;AAC/B,WAAK,SAASA,EAAC,IAAI,QAAQ,MAAM;AAAA,IACnC;AAEA,WAAO,SAASkC;AAAA,EAClB;AAEA,EAAAzB,QAAO,UAAU,aAAaA,QAAO,UAAU,aAAa,SAAS,WAAW,OAAO,QAAQ,UAAU;AACvG,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,KAAK,CAAC;AACtD,SAAK,MAAM,IAAI,QAAQ;AACvB,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAA,QAAO,UAAU,gBAAgBA,QAAO,UAAU,gBAAgB,SAAS,cAAc,OAAO,QAAQ,UAAU;AAChH,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,OAAO,CAAC;AACxD,SAAK,MAAM,IAAI,QAAQ;AACvB,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAA,QAAO,UAAU,gBAAgBA,QAAO,UAAU,gBAAgB,SAAS,cAAc,OAAO,QAAQ,UAAU;AAChH,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,OAAO,CAAC;AACxD,SAAK,MAAM,IAAI,UAAU;AACzB,SAAK,SAAS,CAAC,IAAI,QAAQ;AAC3B,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAA,QAAO,UAAU,gBAAgBA,QAAO,UAAU,gBAAgB,SAAS,cAAc,OAAO,QAAQ,UAAU;AAChH,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,YAAY,CAAC;AAC7D,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,SAAK,MAAM,IAAI,QAAQ;AACvB,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAA,QAAO,UAAU,gBAAgBA,QAAO,UAAU,gBAAgB,SAAS,cAAc,OAAO,QAAQ,UAAU;AAChH,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,YAAY,CAAC;AAC7D,SAAK,MAAM,IAAI,UAAU;AACzB,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,SAAK,SAAS,CAAC,IAAI,QAAQ;AAC3B,WAAO,SAAS;AAAA,EAClB;AAEA,WAAS,eAAeE,MAAK,OAAO,QAAQ,KAAK,KAAK;AACpD,eAAW,OAAO,KAAK,KAAKA,MAAK,QAAQ,CAAC;AAC1C,QAAI,KAAK,OAAO,QAAQ,OAAO,UAAU,CAAC;AAC1C,IAAAA,KAAI,QAAQ,IAAI;AAChB,SAAK,MAAM;AACX,IAAAA,KAAI,QAAQ,IAAI;AAChB,SAAK,MAAM;AACX,IAAAA,KAAI,QAAQ,IAAI;AAChB,SAAK,MAAM;AACX,IAAAA,KAAI,QAAQ,IAAI;AAChB,QAAI,KAAK,OAAO,SAAS,OAAO,EAAE,IAAI,OAAO,UAAU,CAAC;AACxD,IAAAA,KAAI,QAAQ,IAAI;AAChB,SAAK,MAAM;AACX,IAAAA,KAAI,QAAQ,IAAI;AAChB,SAAK,MAAM;AACX,IAAAA,KAAI,QAAQ,IAAI;AAChB,SAAK,MAAM;AACX,IAAAA,KAAI,QAAQ,IAAI;AAChB,WAAO;AAAA,EACT;AAEA,WAAS,eAAeA,MAAK,OAAO,QAAQ,KAAK,KAAK;AACpD,eAAW,OAAO,KAAK,KAAKA,MAAK,QAAQ,CAAC;AAC1C,QAAI,KAAK,OAAO,QAAQ,OAAO,UAAU,CAAC;AAC1C,IAAAA,KAAI,SAAS,CAAC,IAAI;AAClB,SAAK,MAAM;AACX,IAAAA,KAAI,SAAS,CAAC,IAAI;AAClB,SAAK,MAAM;AACX,IAAAA,KAAI,SAAS,CAAC,IAAI;AAClB,SAAK,MAAM;AACX,IAAAA,KAAI,SAAS,CAAC,IAAI;AAClB,QAAI,KAAK,OAAO,SAAS,OAAO,EAAE,IAAI,OAAO,UAAU,CAAC;AACxD,IAAAA,KAAI,SAAS,CAAC,IAAI;AAClB,SAAK,MAAM;AACX,IAAAA,KAAI,SAAS,CAAC,IAAI;AAClB,SAAK,MAAM;AACX,IAAAA,KAAI,SAAS,CAAC,IAAI;AAClB,SAAK,MAAM;AACX,IAAAA,KAAI,MAAM,IAAI;AACd,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAF,QAAO,UAAU,mBAAmB,mBAAmB,SAAS,iBAAiB,OAAO,SAAS,GAAG;AAClG,WAAO,eAAe,MAAM,OAAO,QAAQ,OAAO,CAAC,GAAG,OAAO,oBAAoB,CAAC;AAAA,EACpF,CAAC;AACD,EAAAA,QAAO,UAAU,mBAAmB,mBAAmB,SAAS,iBAAiB,OAAO,SAAS,GAAG;AAClG,WAAO,eAAe,MAAM,OAAO,QAAQ,OAAO,CAAC,GAAG,OAAO,oBAAoB,CAAC;AAAA,EACpF,CAAC;AAED,EAAAA,QAAO,UAAU,aAAa,SAAS,WAAW,OAAO,QAAQyB,aAAY,UAAU;AACrF,YAAQ,CAAC;AACT,aAAS,WAAW;AAEpB,QAAI,CAAC,UAAU;AACb,YAAM,QAAQ,KAAK,IAAI,GAAG,IAAIA,cAAa,CAAC;AAC5C,eAAS,MAAM,OAAO,QAAQA,aAAY,QAAQ,GAAG,CAAC,KAAK;AAAA,IAC7D;AAEA,QAAIlC,KAAI;AACR,QAAI,MAAM;AACV,QAAI,MAAM;AACV,SAAK,MAAM,IAAI,QAAQ;AAEvB,WAAO,EAAEA,KAAIkC,gBAAe,OAAO,MAAM;AACvC,UAAI,QAAQ,KAAK,QAAQ,KAAK,KAAK,SAASlC,KAAI,CAAC,MAAM,GAAG;AACxD,cAAM;AAAA,MACR;AAEA,WAAK,SAASA,EAAC,KAAK,QAAQ,OAAO,KAAK,MAAM;AAAA,IAChD;AAEA,WAAO,SAASkC;AAAA,EAClB;AAEA,EAAAzB,QAAO,UAAU,aAAa,SAAS,WAAW,OAAO,QAAQyB,aAAY,UAAU;AACrF,YAAQ,CAAC;AACT,aAAS,WAAW;AAEpB,QAAI,CAAC,UAAU;AACb,YAAM,QAAQ,KAAK,IAAI,GAAG,IAAIA,cAAa,CAAC;AAC5C,eAAS,MAAM,OAAO,QAAQA,aAAY,QAAQ,GAAG,CAAC,KAAK;AAAA,IAC7D;AAEA,QAAIlC,KAAIkC,cAAa;AACrB,QAAI,MAAM;AACV,QAAI,MAAM;AACV,SAAK,SAASlC,EAAC,IAAI,QAAQ;AAE3B,WAAO,EAAEA,MAAK,MAAM,OAAO,MAAM;AAC/B,UAAI,QAAQ,KAAK,QAAQ,KAAK,KAAK,SAASA,KAAI,CAAC,MAAM,GAAG;AACxD,cAAM;AAAA,MACR;AAEA,WAAK,SAASA,EAAC,KAAK,QAAQ,OAAO,KAAK,MAAM;AAAA,IAChD;AAEA,WAAO,SAASkC;AAAA,EAClB;AAEA,EAAAzB,QAAO,UAAU,YAAY,SAAS,UAAU,OAAO,QAAQ,UAAU;AACvE,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,KAAK,IAAI;AACzD,QAAI,QAAQ;AAAG,cAAQ,MAAM,QAAQ;AACrC,SAAK,MAAM,IAAI,QAAQ;AACvB,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAa,OAAO,QAAQ,UAAU;AAC7E,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,OAAO,MAAM;AAC7D,SAAK,MAAM,IAAI,QAAQ;AACvB,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAa,OAAO,QAAQ,UAAU;AAC7E,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,OAAO,MAAM;AAC7D,SAAK,MAAM,IAAI,UAAU;AACzB,SAAK,SAAS,CAAC,IAAI,QAAQ;AAC3B,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAa,OAAO,QAAQ,UAAU;AAC7E,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,YAAY,WAAW;AACvE,SAAK,MAAM,IAAI,QAAQ;AACvB,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAa,OAAO,QAAQ,UAAU;AAC7E,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,YAAY,WAAW;AACvE,QAAI,QAAQ;AAAG,cAAQ,aAAa,QAAQ;AAC5C,SAAK,MAAM,IAAI,UAAU;AACzB,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,SAAK,SAAS,CAAC,IAAI,QAAQ;AAC3B,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAA,QAAO,UAAU,kBAAkB,mBAAmB,SAAS,gBAAgB,OAAO,SAAS,GAAG;AAChG,WAAO,eAAe,MAAM,OAAO,QAAQ,CAAC,OAAO,oBAAoB,GAAG,OAAO,oBAAoB,CAAC;AAAA,EACxG,CAAC;AACD,EAAAA,QAAO,UAAU,kBAAkB,mBAAmB,SAAS,gBAAgB,OAAO,SAAS,GAAG;AAChG,WAAO,eAAe,MAAM,OAAO,QAAQ,CAAC,OAAO,oBAAoB,GAAG,OAAO,oBAAoB,CAAC;AAAA,EACxG,CAAC;AAED,WAAS,aAAaE,MAAK,OAAO,QAAQ,KAAK,KAAK,KAAK;AACvD,QAAI,SAAS,MAAMA,KAAI;AAAQ,YAAM,IAAI,WAAW,oBAAoB;AACxE,QAAI,SAAS;AAAG,YAAM,IAAI,WAAW,oBAAoB;AAAA,EAC3D;AAEA,WAAS,WAAWA,MAAK,OAAO,QAAQ,cAAc,UAAU;AAC9D,YAAQ,CAAC;AACT,aAAS,WAAW;AAEpB,QAAI,CAAC,UAAU;AACb,mBAAaA,MAAK,OAAO,QAAQ,CAAC;AAAA,IACpC;AAEA,YAAQ,MAAMA,MAAK,OAAO,QAAQ,cAAc,IAAI,CAAC;AACrD,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAF,QAAO,UAAU,eAAe,SAAS,aAAa,OAAO,QAAQ,UAAU;AAC7E,WAAO,WAAW,MAAM,OAAO,QAAQ,MAAM,QAAQ;AAAA,EACvD;AAEA,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAa,OAAO,QAAQ,UAAU;AAC7E,WAAO,WAAW,MAAM,OAAO,QAAQ,OAAO,QAAQ;AAAA,EACxD;AAEA,WAAS,YAAYE,MAAK,OAAO,QAAQ,cAAc,UAAU;AAC/D,YAAQ,CAAC;AACT,aAAS,WAAW;AAEpB,QAAI,CAAC,UAAU;AACb,mBAAaA,MAAK,OAAO,QAAQ,CAAC;AAAA,IACpC;AAEA,YAAQ,MAAMA,MAAK,OAAO,QAAQ,cAAc,IAAI,CAAC;AACrD,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAF,QAAO,UAAU,gBAAgB,SAAS,cAAc,OAAO,QAAQ,UAAU;AAC/E,WAAO,YAAY,MAAM,OAAO,QAAQ,MAAM,QAAQ;AAAA,EACxD;AAEA,EAAAA,QAAO,UAAU,gBAAgB,SAAS,cAAc,OAAO,QAAQ,UAAU;AAC/E,WAAO,YAAY,MAAM,OAAO,QAAQ,OAAO,QAAQ;AAAA,EACzD;AAGA,EAAAA,QAAO,UAAU,OAAO,SAAS,KAAK,QAAQ,aAAa,OAAO,KAAK;AACrE,QAAI,CAACA,QAAO,SAAS,MAAM;AAAG,YAAM,IAAI,UAAU,6BAA6B;AAC/E,QAAI,CAAC;AAAO,cAAQ;AACpB,QAAI,CAAC,OAAO,QAAQ;AAAG,YAAM,KAAK;AAClC,QAAI,eAAe,OAAO;AAAQ,oBAAc,OAAO;AACvD,QAAI,CAAC;AAAa,oBAAc;AAChC,QAAI,MAAM,KAAK,MAAM;AAAO,YAAM;AAElC,QAAI,QAAQ;AAAO,aAAO;AAC1B,QAAI,OAAO,WAAW,KAAK,KAAK,WAAW;AAAG,aAAO;AAErD,QAAI,cAAc,GAAG;AACnB,YAAM,IAAI,WAAW,2BAA2B;AAAA,IAClD;AAEA,QAAI,QAAQ,KAAK,SAAS,KAAK;AAAQ,YAAM,IAAI,WAAW,oBAAoB;AAChF,QAAI,MAAM;AAAG,YAAM,IAAI,WAAW,yBAAyB;AAE3D,QAAI,MAAM,KAAK;AAAQ,YAAM,KAAK;AAElC,QAAI,OAAO,SAAS,cAAc,MAAM,OAAO;AAC7C,YAAM,OAAO,SAAS,cAAc;AAAA,IACtC;AAEA,UAAM,MAAM,MAAM;AAElB,QAAI,SAAS,UAAU,OAAO,WAAW,UAAU,eAAe,YAAY;AAE5E,WAAK,WAAW,aAAa,OAAO,GAAG;AAAA,IACzC,OAAO;AACL,iBAAW,UAAU,IAAI,KAAK,QAAQ,KAAK,SAAS,OAAO,GAAG,GAAG,WAAW;AAAA,IAC9E;AAEA,WAAO;AAAA,EACT;AAMA,EAAAA,QAAO,UAAU,OAAO,SAAS,KAAK,KAAK,OAAO,KAAK,UAAU;AAE/D,QAAI,OAAO,QAAQ,UAAU;AAC3B,UAAI,OAAO,UAAU,UAAU;AAC7B,mBAAW;AACX,gBAAQ;AACR,cAAM,KAAK;AAAA,MACb,WAAW,OAAO,QAAQ,UAAU;AAClC,mBAAW;AACX,cAAM,KAAK;AAAA,MACb;AAEA,UAAI,aAAa,UAAa,OAAO,aAAa,UAAU;AAC1D,cAAM,IAAI,UAAU,2BAA2B;AAAA,MACjD;AAEA,UAAI,OAAO,aAAa,YAAY,CAACA,QAAO,WAAW,QAAQ,GAAG;AAChE,cAAM,IAAI,UAAU,uBAAuB,QAAQ;AAAA,MACrD;AAEA,UAAI,IAAI,WAAW,GAAG;AACpB,cAAM,OAAO,IAAI,WAAW,CAAC;AAE7B,YAAI,aAAa,UAAU,OAAO,OAAO,aAAa,UAAU;AAE9D,gBAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF,WAAW,OAAO,QAAQ,UAAU;AAClC,YAAM,MAAM;AAAA,IACd,WAAW,OAAO,QAAQ,WAAW;AACnC,YAAM,OAAO,GAAG;AAAA,IAClB;AAGA,QAAI,QAAQ,KAAK,KAAK,SAAS,SAAS,KAAK,SAAS,KAAK;AACzD,YAAM,IAAI,WAAW,oBAAoB;AAAA,IAC3C;AAEA,QAAI,OAAO,OAAO;AAChB,aAAO;AAAA,IACT;AAEA,YAAQ,UAAU;AAClB,UAAM,QAAQ,SAAY,KAAK,SAAS,QAAQ;AAChD,QAAI,CAAC;AAAK,YAAM;AAChB,QAAIT;AAEJ,QAAI,OAAO,QAAQ,UAAU;AAC3B,WAAKA,KAAI,OAAOA,KAAI,KAAK,EAAEA,IAAG;AAC5B,aAAKA,EAAC,IAAI;AAAA,MACZ;AAAA,IACF,OAAO;AACL,YAAM,QAAQS,QAAO,SAAS,GAAG,IAAI,MAAMA,QAAO,KAAK,KAAK,QAAQ;AACpE,YAAM,MAAM,MAAM;AAElB,UAAI,QAAQ,GAAG;AACb,cAAM,IAAI,UAAU,gBAAiB,MAAM,mCAAsC;AAAA,MACnF;AAEA,WAAKT,KAAI,GAAGA,KAAI,MAAM,OAAO,EAAEA,IAAG;AAChC,aAAKA,KAAI,KAAK,IAAI,MAAMA,KAAI,GAAG;AAAA,MACjC;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAKA,QAAM,SAAS,CAAC;AAEhB,WAASmC,GAAE,KAAK,YAAY,MAAM;AAChC,WAAO,GAAG,IAAI,MAAM,kBAAkB,KAAK;AAAA,MACzC,cAAc;AACZ,cAAM;AACN,eAAO,eAAe,MAAM,WAAW;AAAA,UACrC,OAAO,WAAW,MAAM,MAAM,SAAS;AAAA,UACvC,UAAU;AAAA,UACV,cAAc;AAAA,QAChB,CAAC;AAED,aAAK,OAAO,GAAG,KAAK,IAAI,KAAK,GAAG;AAGhC,aAAK;AAGL,eAAO,KAAK;AAAA,MACd;AAAA,MAEA,IAAI,OAAO;AACT,eAAO;AAAA,MACT;AAAA,MAEA,IAAI,KAAK,OAAO;AACd,eAAO,eAAe,MAAM,QAAQ;AAAA,UAClC,cAAc;AAAA,UACd,YAAY;AAAA,UACZ;AAAA,UACA,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AAAA,MAEA,WAAW;AACT,eAAO,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM,KAAK,OAAO;AAAA,MAC/C;AAAA,IAEF;AAAA,EACF;AAEA,EAAAA,GAAE,4BAA4B,SAAUC,OAAM;AAC5C,QAAIA,OAAM;AACR,aAAO,GAAGA,KAAI;AAAA,IAChB;AAEA,WAAO;AAAA,EACT,GAAG,UAAU;AACb,EAAAD,GAAE,wBAAwB,SAAUC,OAAM,QAAQ;AAChD,WAAO,QAAQA,KAAI,oDAAoD,OAAO,MAAM;AAAA,EACtF,GAAG,SAAS;AACZ,EAAAD,GAAE,oBAAoB,SAAU,KAAK,OAAO,OAAO;AACjD,QAAI,MAAM,iBAAiB,GAAG;AAC9B,QAAI,WAAW;AAEf,QAAI,OAAO,UAAU,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI;AACxD,iBAAW,sBAAsB,OAAO,KAAK,CAAC;AAAA,IAChD,WAAW,OAAO,UAAU,UAAU;AACpC,iBAAW,OAAO,KAAK;AAEvB,UAAI,QAAQ,OAAO,CAAC,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,OAAO,CAAC,KAAK,OAAO,EAAE,IAAI;AACzE,mBAAW,sBAAsB,QAAQ;AAAA,MAC3C;AAEA,kBAAY;AAAA,IACd;AAEA,WAAO,eAAe,KAAK,cAAc,QAAQ;AACjD,WAAO;AAAA,EACT,GAAG,UAAU;AAEb,WAAS,sBAAsB,KAAK;AAClC,QAAI,MAAM;AACV,QAAInC,KAAI,IAAI;AACZ,UAAM,QAAQ,IAAI,CAAC,MAAM,MAAM,IAAI;AAEnC,WAAOA,MAAK,QAAQ,GAAGA,MAAK,GAAG;AAC7B,YAAM,IAAI,IAAI,MAAMA,KAAI,GAAGA,EAAC,CAAC,GAAG,GAAG;AAAA,IACrC;AAEA,WAAO,GAAG,IAAI,MAAM,GAAGA,EAAC,CAAC,GAAG,GAAG;AAAA,EACjC;AAIA,WAAS,YAAYW,MAAK,QAAQuB,aAAY;AAC5C,mBAAe,QAAQ,QAAQ;AAE/B,QAAIvB,KAAI,MAAM,MAAM,UAAaA,KAAI,SAASuB,WAAU,MAAM,QAAW;AACvE,kBAAY,QAAQvB,KAAI,UAAUuB,cAAa,EAAE;AAAA,IACnD;AAAA,EACF;AAEA,WAAS,WAAW,OAAO,KAAK,KAAKvB,MAAK,QAAQuB,aAAY;AAC5D,QAAI,QAAQ,OAAO,QAAQ,KAAK;AAC9B,YAAMV,KAAI,OAAO,QAAQ,WAAW,MAAM;AAC1C,UAAI;AAEJ,UAAIU,cAAa,GAAG;AAClB,YAAI,QAAQ,KAAK,QAAQ,OAAO,CAAC,GAAG;AAClC,kBAAQ,OAAOV,EAAC,WAAWA,EAAC,QAAQU,cAAa,KAAK,CAAC,GAAGV,EAAC;AAAA,QAC7D,OAAO;AACL,kBAAQ,SAASA,EAAC,QAAQU,cAAa,KAAK,IAAI,CAAC,GAAGV,EAAC,iBAAsBU,cAAa,KAAK,IAAI,CAAC,GAAGV,EAAC;AAAA,QACxG;AAAA,MACF,OAAO;AACL,gBAAQ,MAAM,GAAG,GAAGA,EAAC,WAAW,GAAG,GAAGA,EAAC;AAAA,MACzC;AAEA,YAAM,IAAI,OAAO,iBAAiB,SAAS,OAAO,KAAK;AAAA,IACzD;AAEA,gBAAYb,MAAK,QAAQuB,WAAU;AAAA,EACrC;AAEA,WAAS,eAAe,OAAOE,OAAM;AACnC,QAAI,OAAO,UAAU,UAAU;AAC7B,YAAM,IAAI,OAAO,qBAAqBA,OAAM,UAAU,KAAK;AAAA,IAC7D;AAAA,EACF;AAEA,WAAS,YAAY,OAAO1B,SAAQ,MAAM;AACxC,QAAI,KAAK,MAAM,KAAK,MAAM,OAAO;AAC/B,qBAAe,OAAO,IAAI;AAC1B,YAAM,IAAI,OAAO,iBAAiB,QAAQ,UAAU,cAAc,KAAK;AAAA,IACzE;AAEA,QAAIA,UAAS,GAAG;AACd,YAAM,IAAI,OAAO,yBAAyB;AAAA,IAC5C;AAEA,UAAM,IAAI,OAAO,iBAAiB,QAAQ,UAAU,MAAM,OAAO,IAAI,CAAC,WAAWA,OAAM,IAAI,KAAK;AAAA,EAClG;AAIA,QAAM,oBAAoB;AAE1B,WAAS,YAAY,KAAK;AAExB,UAAM,IAAI,MAAM,GAAG,EAAE,CAAC;AAEtB,UAAM,IAAI,KAAK,EAAE,QAAQ,mBAAmB,EAAE;AAE9C,QAAI,IAAI,SAAS;AAAG,aAAO;AAE3B,WAAO,IAAI,SAAS,MAAM,GAAG;AAC3B,YAAM,MAAM;AAAA,IACd;AAEA,WAAO;AAAA,EACT;AAEA,WAASY,aAAY,QAAQ,OAAO;AAClC,YAAQ,SAAS;AACjB,QAAI;AACJ,UAAMZ,UAAS,OAAO;AACtB,QAAI,gBAAgB;AACpB,UAAM,QAAQ,CAAC;AAEf,aAASV,KAAI,GAAGA,KAAIU,SAAQ,EAAEV,IAAG;AAC/B,kBAAY,OAAO,WAAWA,EAAC;AAE/B,UAAI,YAAY,SAAS,YAAY,OAAO;AAE1C,YAAI,CAAC,eAAe;AAElB,cAAI,YAAY,OAAO;AAErB,iBAAK,SAAS,KAAK;AAAI,oBAAM,KAAK,KAAK,KAAK,GAAG;AAC/C;AAAA,UACF,WAAWA,KAAI,MAAMU,SAAQ;AAE3B,iBAAK,SAAS,KAAK;AAAI,oBAAM,KAAK,KAAK,KAAK,GAAG;AAC/C;AAAA,UACF;AAGA,0BAAgB;AAChB;AAAA,QACF;AAGA,YAAI,YAAY,OAAO;AACrB,eAAK,SAAS,KAAK;AAAI,kBAAM,KAAK,KAAK,KAAK,GAAG;AAC/C,0BAAgB;AAChB;AAAA,QACF;AAGA,qBAAa,gBAAgB,SAAS,KAAK,YAAY,SAAS;AAAA,MAClE,WAAW,eAAe;AAExB,aAAK,SAAS,KAAK;AAAI,gBAAM,KAAK,KAAK,KAAK,GAAG;AAAA,MACjD;AAEA,sBAAgB;AAEhB,UAAI,YAAY,KAAK;AACnB,aAAK,SAAS,KAAK;AAAG;AACtB,cAAM,KAAK,SAAS;AAAA,MACtB,WAAW,YAAY,MAAM;AAC3B,aAAK,SAAS,KAAK;AAAG;AACtB,cAAM,KAAK,aAAa,IAAI,KAAK,YAAY,KAAK,GAAG;AAAA,MACvD,WAAW,YAAY,OAAO;AAC5B,aAAK,SAAS,KAAK;AAAG;AACtB,cAAM,KAAK,aAAa,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,YAAY,KAAK,GAAG;AAAA,MACnF,WAAW,YAAY,SAAS;AAC9B,aAAK,SAAS,KAAK;AAAG;AACtB,cAAM,KAAK,aAAa,KAAK,KAAK,aAAa,KAAK,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,YAAY,KAAK,GAAG;AAAA,MAC/G,OAAO;AACL,cAAM,IAAI,MAAM,oBAAoB;AAAA,MACtC;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,aAAa,KAAK;AACzB,UAAM,YAAY,CAAC;AAEnB,aAASV,KAAI,GAAGA,KAAI,IAAI,QAAQ,EAAEA,IAAG;AAEnC,gBAAU,KAAK,IAAI,WAAWA,EAAC,IAAI,GAAG;AAAA,IACxC;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,eAAe,KAAK,OAAO;AAClC,QAAIQ,IAAG,IAAI;AACX,UAAM,YAAY,CAAC;AAEnB,aAASR,KAAI,GAAGA,KAAI,IAAI,QAAQ,EAAEA,IAAG;AACnC,WAAK,SAAS,KAAK;AAAG;AACtB,MAAAQ,KAAI,IAAI,WAAWR,EAAC;AACpB,WAAKQ,MAAK;AACV,WAAKA,KAAI;AACT,gBAAU,KAAK,EAAE;AACjB,gBAAU,KAAK,EAAE;AAAA,IACnB;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,cAAc,KAAK;AAC1B,WAAO,OAAO,YAAY,YAAY,GAAG,CAAC;AAAA,EAC5C;AAEA,WAAS,WAAW6B,MAAK,KAAK,QAAQ3B,SAAQ;AAC5C,QAAIV;AAEJ,SAAKA,KAAI,GAAGA,KAAIU,SAAQ,EAAEV,IAAG;AAC3B,UAAIA,KAAI,UAAU,IAAI,UAAUA,MAAKqC,KAAI;AAAQ;AACjD,UAAIrC,KAAI,MAAM,IAAIqC,KAAIrC,EAAC;AAAA,IACzB;AAEA,WAAOA;AAAA,EACT;AAKA,WAAS,WAAW,KAAK,MAAM;AAC7B,WAAO,eAAe,QAAQ,OAAO,QAAQ,IAAI,eAAe,QAAQ,IAAI,YAAY,QAAQ,QAAQ,IAAI,YAAY,SAAS,KAAK;AAAA,EACxI;AAEA,WAAS,YAAY,KAAK;AAExB,WAAO,QAAQ;AAAA,EACjB;AAIA,QAAM,sBAAsB,WAAY;AACtC,UAAM,WAAW;AACjB,UAAM,QAAQ,IAAI,MAAM,GAAG;AAE3B,aAASA,KAAI,GAAGA,KAAI,IAAI,EAAEA,IAAG;AAC3B,YAAM,MAAMA,KAAI;AAEhB,eAAS6B,KAAI,GAAGA,KAAI,IAAI,EAAEA,IAAG;AAC3B,cAAM,MAAMA,EAAC,IAAI,SAAS7B,EAAC,IAAI,SAAS6B,EAAC;AAAA,MAC3C;AAAA,IACF;AAEA,WAAO;AAAA,EACT,EAAE;AAGF,WAAS,mBAAmB,IAAI;AAC9B,WAAO,OAAO,WAAW,cAAc,yBAAyB;AAAA,EAClE;AAEA,WAAS,yBAAyB;AAChC,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACxC;AAEA,SAAO;AACT;AAEA,IAAI,SAAS,MAAM;AAEnB,OAAO;AACP,OAAO;AACP,OAAO;AAEP,IAAI,YAAY,CAAC;AAAjB,IACI,aAAa;AACjB,SAAS,QAAQ;AACf,MAAI;AAAY,WAAO;AACvB,eAAa;AAEb,MAAI,OAAO,OAAO,WAAW,YAAY;AAEvC,gBAAY,SAASS,UAAS,MAAM,WAAW;AAC7C,UAAI,WAAW;AACb,aAAK,SAAS;AACd,aAAK,YAAY,OAAO,OAAO,UAAU,WAAW;AAAA,UAClD,aAAa;AAAA,YACX,OAAO;AAAA,YACP,YAAY;AAAA,YACZ,UAAU;AAAA,YACV,cAAc;AAAA,UAChB;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,OAAO;AAEL,gBAAY,SAASA,UAAS,MAAM,WAAW;AAC7C,UAAI,WAAW;AACb,aAAK,SAAS;AAEd,YAAI,WAAW,WAAY;AAAA,QAAC;AAE5B,iBAAS,YAAY,UAAU;AAC/B,aAAK,YAAY,IAAI,SAAS;AAC9B,aAAK,UAAU,cAAc;AAAA,MAC/B;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,IAAI,YAAY,CAAC;AAAjB,IACI,aAAa;AACjB,SAAS,QAAQ;AACf,MAAI;AAAY,WAAO;AACvB,eAAa;AACb,cAAY,EAAE;AACd,SAAO;AACT;AAEA,IAAI,YAAY,CAAC;AAAjB,IACI,aAAa;AACjB,SAAS,QAAQ;AACf,MAAI;AAAY,WAAO;AACvB,eAAa;AAEb,WAAS,QAAQ,QAAQ,gBAAgB;AACvC,QAAI,OAAO,OAAO,KAAK,MAAM;AAE7B,QAAI,OAAO,uBAAuB;AAChC,UAAI,UAAU,OAAO,sBAAsB,MAAM;AACjD,UAAI;AAAgB,kBAAU,QAAQ,OAAO,SAAU,KAAK;AAC1D,iBAAO,OAAO,yBAAyB,QAAQ,GAAG,EAAE;AAAA,QACtD,CAAC;AACD,WAAK,KAAK,MAAM,MAAM,OAAO;AAAA,IAC/B;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,cAAc,QAAQ;AAC7B,aAAStC,KAAI,GAAGA,KAAI,UAAU,QAAQA,MAAK;AACzC,UAAI,SAAS,UAAUA,EAAC,KAAK,OAAO,UAAUA,EAAC,IAAI,CAAC;AAEpD,UAAIA,KAAI,GAAG;AACT,gBAAQ,OAAO,MAAM,GAAG,IAAI,EAAE,QAAQ,SAAU,KAAK;AACnD,0BAAgB,QAAQ,KAAK,OAAO,GAAG,CAAC;AAAA,QAC1C,CAAC;AAAA,MACH,WAAW,OAAO,2BAA2B;AAC3C,eAAO,iBAAiB,QAAQ,OAAO,0BAA0B,MAAM,CAAC;AAAA,MAC1E,OAAO;AACL,gBAAQ,OAAO,MAAM,CAAC,EAAE,QAAQ,SAAU,KAAK;AAC7C,iBAAO,eAAe,QAAQ,KAAK,OAAO,yBAAyB,QAAQ,GAAG,CAAC;AAAA,QACjF,CAAC;AAAA,MACH;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,gBAAgB,KAAK,KAAK,OAAO;AACxC,QAAI,OAAO,KAAK;AACd,aAAO,eAAe,KAAK,KAAK;AAAA,QAC9B;AAAA,QACA,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,UAAU;AAAA,MACZ,CAAC;AAAA,IACH,OAAO;AACL,UAAI,GAAG,IAAI;AAAA,IACb;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,gBAAgB,UAAU,aAAa;AAC9C,QAAI,EAAE,oBAAoB,cAAc;AACtC,YAAM,IAAI,UAAU,mCAAmC;AAAA,IACzD;AAAA,EACF;AAEA,WAAS,kBAAkB,QAAQ,OAAO;AACxC,aAASA,KAAI,GAAGA,KAAI,MAAM,QAAQA,MAAK;AACrC,UAAI,aAAa,MAAMA,EAAC;AACxB,iBAAW,aAAa,WAAW,cAAc;AACjD,iBAAW,eAAe;AAC1B,UAAI,WAAW;AAAY,mBAAW,WAAW;AACjD,aAAO,eAAe,QAAQ,WAAW,KAAK,UAAU;AAAA,IAC1D;AAAA,EACF;AAEA,WAAS,aAAa,aAAa,YAAY,aAAa;AAC1D,QAAI;AAAY,wBAAkB,YAAY,WAAW,UAAU;AACnE,QAAI;AAAa,wBAAkB,aAAa,WAAW;AAC3D,WAAO;AAAA,EACT;AAEA,MAAI,WAAW,QACXS,UAAS,SAAS;AACtB,MAAI,YAAY,GACZkB,WAAU,UAAU;AACxB,MAAI,SAASA,YAAWA,SAAQ,UAAU;AAE1C,WAAS,WAAWU,MAAK,QAAQ,QAAQ;AACvC,IAAA5B,QAAO,UAAU,KAAK,KAAK4B,MAAK,QAAQ,MAAM;AAAA,EAChD;AAEA,cAAyB,2BAAY;AACnC,aAAS,aAAa;AACpB,sBAAgB,MAAM,UAAU;AAEhC,WAAK,OAAO;AACZ,WAAK,OAAO;AACZ,WAAK,SAAS;AAAA,IAChB;AAEA,iBAAa,YAAY,CAAC;AAAA,MACxB,KAAK;AAAA,MACL,OAAO,SAAS,KAAKE,IAAG;AACtB,YAAI,QAAQ;AAAA,UACV,MAAMA;AAAA,UACN,MAAM;AAAA,QACR;AACA,YAAI,KAAK,SAAS;AAAG,eAAK,KAAK,OAAO;AAAA;AAAW,eAAK,OAAO;AAC7D,aAAK,OAAO;AACZ,UAAE,KAAK;AAAA,MACT;AAAA,IACF,GAAG;AAAA,MACD,KAAK;AAAA,MACL,OAAO,SAAS,QAAQA,IAAG;AACzB,YAAI,QAAQ;AAAA,UACV,MAAMA;AAAA,UACN,MAAM,KAAK;AAAA,QACb;AACA,YAAI,KAAK,WAAW;AAAG,eAAK,OAAO;AACnC,aAAK,OAAO;AACZ,UAAE,KAAK;AAAA,MACT;AAAA,IACF,GAAG;AAAA,MACD,KAAK;AAAA,MACL,OAAO,SAAS,QAAQ;AACtB,YAAI,KAAK,WAAW;AAAG;AACvB,YAAI,MAAM,KAAK,KAAK;AACpB,YAAI,KAAK,WAAW;AAAG,eAAK,OAAO,KAAK,OAAO;AAAA;AAAU,eAAK,OAAO,KAAK,KAAK;AAC/E,UAAE,KAAK;AACP,eAAO;AAAA,MACT;AAAA,IACF,GAAG;AAAA,MACD,KAAK;AAAA,MACL,OAAO,SAAS,QAAQ;AACtB,aAAK,OAAO,KAAK,OAAO;AACxB,aAAK,SAAS;AAAA,MAChB;AAAA,IACF,GAAG;AAAA,MACD,KAAK;AAAA,MACL,OAAO,SAASC,MAAKjC,IAAG;AACtB,YAAI,KAAK,WAAW;AAAG,iBAAO;AAC9B,YAAIkC,KAAI,KAAK;AACb,YAAI,MAAM,KAAKA,GAAE;AAEjB,eAAOA,KAAIA,GAAE,MAAM;AACjB,iBAAOlC,KAAIkC,GAAE;AAAA,QACf;AAEA,eAAO;AAAA,MACT;AAAA,IACF,GAAG;AAAA,MACD,KAAK;AAAA,MACL,OAAO,SAASpB,QAAOG,IAAG;AACxB,YAAI,KAAK,WAAW;AAAG,iBAAOf,QAAO,MAAM,CAAC;AAC5C,YAAI,MAAMA,QAAO,YAAYe,OAAM,CAAC;AACpC,YAAIiB,KAAI,KAAK;AACb,YAAIzC,KAAI;AAER,eAAOyC,IAAG;AACR,qBAAWA,GAAE,MAAM,KAAKzC,EAAC;AACzB,UAAAA,MAAKyC,GAAE,KAAK;AACZ,UAAAA,KAAIA,GAAE;AAAA,QACR;AAEA,eAAO;AAAA,MACT;AAAA;AAAA,IAEF,GAAG;AAAA,MACD,KAAK;AAAA,MACL,OAAO,SAAS,QAAQjB,IAAG,YAAY;AACrC,YAAI;AAEJ,YAAIA,KAAI,KAAK,KAAK,KAAK,QAAQ;AAE7B,gBAAM,KAAK,KAAK,KAAK,MAAM,GAAGA,EAAC;AAC/B,eAAK,KAAK,OAAO,KAAK,KAAK,KAAK,MAAMA,EAAC;AAAA,QACzC,WAAWA,OAAM,KAAK,KAAK,KAAK,QAAQ;AAEtC,gBAAM,KAAK,MAAM;AAAA,QACnB,OAAO;AAEL,gBAAM,aAAa,KAAK,WAAWA,EAAC,IAAI,KAAK,WAAWA,EAAC;AAAA,QAC3D;AAEA,eAAO;AAAA,MACT;AAAA,IACF,GAAG;AAAA,MACD,KAAK;AAAA,MACL,OAAO,SAAS,QAAQ;AACtB,eAAO,KAAK,KAAK;AAAA,MACnB;AAAA;AAAA,IAEF,GAAG;AAAA,MACD,KAAK;AAAA,MACL,OAAO,SAAS,WAAWA,IAAG;AAC5B,YAAIiB,KAAI,KAAK;AACb,YAAIjC,KAAI;AACR,YAAI,MAAMiC,GAAE;AACZ,QAAAjB,MAAK,IAAI;AAET,eAAOiB,KAAIA,GAAE,MAAM;AACjB,cAAI,MAAMA,GAAE;AACZ,cAAI,KAAKjB,KAAI,IAAI,SAAS,IAAI,SAASA;AACvC,cAAI,OAAO,IAAI;AAAQ,mBAAO;AAAA;AAAS,mBAAO,IAAI,MAAM,GAAGA,EAAC;AAC5D,UAAAA,MAAK;AAEL,cAAIA,OAAM,GAAG;AACX,gBAAI,OAAO,IAAI,QAAQ;AACrB,gBAAEhB;AACF,kBAAIiC,GAAE;AAAM,qBAAK,OAAOA,GAAE;AAAA;AAAU,qBAAK,OAAO,KAAK,OAAO;AAAA,YAC9D,OAAO;AACL,mBAAK,OAAOA;AACZ,cAAAA,GAAE,OAAO,IAAI,MAAM,EAAE;AAAA,YACvB;AAEA;AAAA,UACF;AAEA,YAAEjC;AAAA,QACJ;AAEA,aAAK,UAAUA;AACf,eAAO;AAAA,MACT;AAAA;AAAA,IAEF,GAAG;AAAA,MACD,KAAK;AAAA,MACL,OAAO,SAAS,WAAWgB,IAAG;AAC5B,YAAI,MAAMf,QAAO,YAAYe,EAAC;AAC9B,YAAIiB,KAAI,KAAK;AACb,YAAIjC,KAAI;AACR,QAAAiC,GAAE,KAAK,KAAK,GAAG;AACf,QAAAjB,MAAKiB,GAAE,KAAK;AAEZ,eAAOA,KAAIA,GAAE,MAAM;AACjB,cAAI9B,OAAM8B,GAAE;AACZ,cAAI,KAAKjB,KAAIb,KAAI,SAASA,KAAI,SAASa;AACvC,UAAAb,KAAI,KAAK,KAAK,IAAI,SAASa,IAAG,GAAG,EAAE;AACnC,UAAAA,MAAK;AAEL,cAAIA,OAAM,GAAG;AACX,gBAAI,OAAOb,KAAI,QAAQ;AACrB,gBAAEH;AACF,kBAAIiC,GAAE;AAAM,qBAAK,OAAOA,GAAE;AAAA;AAAU,qBAAK,OAAO,KAAK,OAAO;AAAA,YAC9D,OAAO;AACL,mBAAK,OAAOA;AACZ,cAAAA,GAAE,OAAO9B,KAAI,MAAM,EAAE;AAAA,YACvB;AAEA;AAAA,UACF;AAEA,YAAEH;AAAA,QACJ;AAEA,aAAK,UAAUA;AACf,eAAO;AAAA,MACT;AAAA;AAAA,IAEF,GAAG;AAAA,MACD,KAAK;AAAA,MACL,OAAO,SAAS,MAAMkC,IAAG,SAAS;AAChC,eAAOf,SAAQ,MAAM,cAAc,CAAC,GAAG,SAAS;AAAA;AAAA,UAE9C,OAAO;AAAA;AAAA,UAEP,eAAe;AAAA,QACjB,CAAC,CAAC;AAAA,MACJ;AAAA,IACF,CAAC,CAAC;AAEF,WAAO;AAAA,EACT,EAAE;AAEF,SAAO;AACT;AAEA,IAAI,YAAY,CAAC;AAAjB,IACI,aAAa;AACjB,SAAS,QAAQ;AACf,MAAI;AAAY,WAAO;AACvB,eAAa;AACb,MAAI,YAAYgB;AAGhB,WAAS,QAAQ,KAAK,IAAI;AACxB,QAAI,QAAQ;AAEZ,QAAI,oBAAoB,KAAK,kBAAkB,KAAK,eAAe;AACnE,QAAI,oBAAoB,KAAK,kBAAkB,KAAK,eAAe;AAEnE,QAAI,qBAAqB,mBAAmB;AAC1C,UAAI,IAAI;AACN,WAAG,GAAG;AAAA,MACR,WAAW,KAAK;AACd,YAAI,CAAC,KAAK,gBAAgB;AACxB,oBAAU,SAAS,aAAa,MAAM,GAAG;AAAA,QAC3C,WAAW,CAAC,KAAK,eAAe,cAAc;AAC5C,eAAK,eAAe,eAAe;AACnC,oBAAU,SAAS,aAAa,MAAM,GAAG;AAAA,QAC3C;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAIA,QAAI,KAAK,gBAAgB;AACvB,WAAK,eAAe,YAAY;AAAA,IAClC;AAGA,QAAI,KAAK,gBAAgB;AACvB,WAAK,eAAe,YAAY;AAAA,IAClC;AAEA,SAAK,SAAS,OAAO,MAAM,SAAUC,MAAK;AACxC,UAAI,CAAC,MAAMA,MAAK;AACd,YAAI,CAAC,MAAM,gBAAgB;AACzB,oBAAU,SAAS,qBAAqB,OAAOA,IAAG;AAAA,QACpD,WAAW,CAAC,MAAM,eAAe,cAAc;AAC7C,gBAAM,eAAe,eAAe;AACpC,oBAAU,SAAS,qBAAqB,OAAOA,IAAG;AAAA,QACpD,OAAO;AACL,oBAAU,SAAS,aAAa,KAAK;AAAA,QACvC;AAAA,MACF,WAAW,IAAI;AACb,kBAAU,SAAS,aAAa,KAAK;AACrC,WAAGA,IAAG;AAAA,MACR,OAAO;AACL,kBAAU,SAAS,aAAa,KAAK;AAAA,MACvC;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT;AAEA,WAAS,oBAAoBC,OAAM,KAAK;AACtC,gBAAYA,OAAM,GAAG;AACrB,gBAAYA,KAAI;AAAA,EAClB;AAEA,WAAS,YAAYA,OAAM;AACzB,QAAIA,MAAK,kBAAkB,CAACA,MAAK,eAAe;AAAW;AAC3D,QAAIA,MAAK,kBAAkB,CAACA,MAAK,eAAe;AAAW;AAC3D,IAAAA,MAAK,KAAK,OAAO;AAAA,EACnB;AAEA,WAAS,YAAY;AACnB,QAAI,KAAK,gBAAgB;AACvB,WAAK,eAAe,YAAY;AAChC,WAAK,eAAe,UAAU;AAC9B,WAAK,eAAe,QAAQ;AAC5B,WAAK,eAAe,aAAa;AAAA,IACnC;AAEA,QAAI,KAAK,gBAAgB;AACvB,WAAK,eAAe,YAAY;AAChC,WAAK,eAAe,QAAQ;AAC5B,WAAK,eAAe,SAAS;AAC7B,WAAK,eAAe,cAAc;AAClC,WAAK,eAAe,cAAc;AAClC,WAAK,eAAe,WAAW;AAC/B,WAAK,eAAe,eAAe;AAAA,IACrC;AAAA,EACF;AAEA,WAAS,YAAYA,OAAM,KAAK;AAC9B,IAAAA,MAAK,KAAK,SAAS,GAAG;AAAA,EACxB;AAEA,WAAS,eAAe,QAAQ,KAAK;AAMnC,QAAI,SAAS,OAAO;AACpB,QAAI,SAAS,OAAO;AACpB,QAAI,UAAU,OAAO,eAAe,UAAU,OAAO;AAAa,aAAO,QAAQ,GAAG;AAAA;AAAO,aAAO,KAAK,SAAS,GAAG;AAAA,EACrH;AAEA,cAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAI,YAAY,CAAC;AAAjB,IACI,aAAa;AACjB,SAAS,QAAQ;AACf,MAAI;AAAY,WAAO;AACvB,eAAa;AACb,QAAM,QAAQ,CAAC;AAEf,WAAS,gBAAgB,MAAM,SAAS,MAAM;AAC5C,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AAEA,aAAS,WAAW,MAAM,MAAM,MAAM;AACpC,UAAI,OAAO,YAAY,UAAU;AAC/B,eAAO;AAAA,MACT,OAAO;AACL,eAAO,QAAQ,MAAM,MAAM,IAAI;AAAA,MACjC;AAAA,IACF;AAAA,IAEA,MAAM,kBAAkB,KAAK;AAAA,MAC3B,YAAY,MAAM,MAAM,MAAM;AAC5B,cAAM,WAAW,MAAM,MAAM,IAAI,CAAC;AAAA,MACpC;AAAA,IAEF;AAEA,cAAU,UAAU,OAAO,KAAK;AAChC,cAAU,UAAU,OAAO;AAC3B,UAAM,IAAI,IAAI;AAAA,EAChB;AAGA,WAAS,MAAM,UAAU,OAAO;AAC9B,QAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,YAAM,MAAM,SAAS;AACrB,iBAAW,SAAS,IAAI,CAAA7C,OAAK,OAAOA,EAAC,CAAC;AAEtC,UAAI,MAAM,GAAG;AACX,eAAO,UAAU,KAAK,IAAI,SAAS,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,SAAS,MAAM,CAAC;AAAA,MAC3F,WAAW,QAAQ,GAAG;AACpB,eAAO,UAAU,KAAK,IAAI,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC;AAAA,MACzD,OAAO;AACL,eAAO,MAAM,KAAK,IAAI,SAAS,CAAC,CAAC;AAAA,MACnC;AAAA,IACF,OAAO;AACL,aAAO,MAAM,KAAK,IAAI,OAAO,QAAQ,CAAC;AAAA,IACxC;AAAA,EACF;AAGA,WAAS,WAAW,KAAK,QAAQ,KAAK;AACpC,WAAO,IAAI,OAAO,CAAC,OAAO,MAAM,IAAI,IAAI,CAAC,KAAK,OAAO,MAAM,MAAM;AAAA,EACnE;AAGA,WAAS,SAAS,KAAK,QAAQ,UAAU;AACvC,QAAI,aAAa,UAAa,WAAW,IAAI,QAAQ;AACnD,iBAAW,IAAI;AAAA,IACjB;AAEA,WAAO,IAAI,UAAU,WAAW,OAAO,QAAQ,QAAQ,MAAM;AAAA,EAC/D;AAGA,WAAS,SAAS,KAAK,QAAQ,OAAO;AACpC,QAAI,OAAO,UAAU,UAAU;AAC7B,cAAQ;AAAA,IACV;AAEA,QAAI,QAAQ,OAAO,SAAS,IAAI,QAAQ;AACtC,aAAO;AAAA,IACT,OAAO;AACL,aAAO,IAAI,QAAQ,QAAQ,KAAK,MAAM;AAAA,IACxC;AAAA,EACF;AAEA,kBAAgB,yBAAyB,SAAUoC,OAAM,OAAO;AAC9D,WAAO,gBAAiB,QAAQ,8BAAgCA,QAAO;AAAA,EACzE,GAAG,SAAS;AACZ,kBAAgB,wBAAwB,SAAUA,OAAM,UAAU,QAAQ;AAExE,QAAI;AAEJ,QAAI,OAAO,aAAa,YAAY,WAAW,UAAU,MAAM,GAAG;AAChE,mBAAa;AACb,iBAAW,SAAS,QAAQ,SAAS,EAAE;AAAA,IACzC,OAAO;AACL,mBAAa;AAAA,IACf;AAEA,QAAI;AAEJ,QAAI,SAASA,OAAM,WAAW,GAAG;AAE/B,YAAM,OAAOA,KAAI,IAAI,UAAU,IAAI,MAAM,UAAU,MAAM,CAAC;AAAA,IAC5D,OAAO;AACL,YAAM,OAAO,SAASA,OAAM,GAAG,IAAI,aAAa;AAChD,YAAM,QAAQA,KAAI,KAAK,IAAI,IAAI,UAAU,IAAI,MAAM,UAAU,MAAM,CAAC;AAAA,IACtE;AAEA,WAAO,mBAAmB,OAAO,MAAM;AACvC,WAAO;AAAA,EACT,GAAG,SAAS;AACZ,kBAAgB,6BAA6B,yBAAyB;AACtE,kBAAgB,8BAA8B,SAAUA,OAAM;AAC5D,WAAO,SAASA,QAAO;AAAA,EACzB,CAAC;AACD,kBAAgB,8BAA8B,iBAAiB;AAC/D,kBAAgB,wBAAwB,SAAUA,OAAM;AACtD,WAAO,iBAAiBA,QAAO;AAAA,EACjC,CAAC;AACD,kBAAgB,yBAAyB,gCAAgC;AACzE,kBAAgB,0BAA0B,2BAA2B;AACrE,kBAAgB,8BAA8B,iBAAiB;AAC/D,kBAAgB,0BAA0B,uCAAuC,SAAS;AAC1F,kBAAgB,wBAAwB,SAAU,KAAK;AACrD,WAAO,uBAAuB;AAAA,EAChC,GAAG,SAAS;AACZ,kBAAgB,sCAAsC,kCAAkC;AACxF,YAAU,QAAQ;AAClB,SAAO;AACT;AAEA,IAAI,YAAY,CAAC;AAAjB,IACI,aAAa;AACjB,SAAS,QAAQ;AACf,MAAI;AAAY,WAAO;AACvB,eAAa;AAEb,MAAI,wBAAwB,MAAM,EAAE,MAAM;AAE1C,WAAS,kBAAkB,SAAS,UAAU,WAAW;AACvD,WAAO,QAAQ,iBAAiB,OAAO,QAAQ,gBAAgB,WAAW,QAAQ,SAAS,IAAI;AAAA,EACjG;AAEA,WAAS,iBAAiB,OAAO,SAAS,WAAW,UAAU;AAC7D,QAAI,MAAM,kBAAkB,SAAS,UAAU,SAAS;AAExD,QAAI,OAAO,MAAM;AACf,UAAI,EAAE,SAAS,GAAG,KAAK,KAAK,MAAM,GAAG,MAAM,QAAQ,MAAM,GAAG;AAC1D,YAAIA,QAAO,WAAW,YAAY;AAClC,cAAM,IAAI,sBAAsBA,OAAM,GAAG;AAAA,MAC3C;AAEA,aAAO,KAAK,MAAM,GAAG;AAAA,IACvB;AAGA,WAAO,MAAM,aAAa,KAAK,KAAK;AAAA,EACtC;AAEA,cAAY;AAAA,IACV;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAI,YAAY,CAAC;AAAjB,IACI,aAAa;AAEjB,IAAI,YAAY,OAAO,eAAe,cAAc,aAAa,OAAO,SAAS,cAAc,OAAO;AAEtG,SAAS,QAAQ;AACf,MAAI;AAAY,WAAO;AACvB,eAAa;AAKb,cAAYU;AAmBZ,WAASA,WAAU,IAAI,KAAK;AAC1B,QAAI,OAAO,eAAe,GAAG;AAC3B,aAAO;AAAA,IACT;AAEA,QAAI,SAAS;AAEb,aAAS,aAAa;AACpB,UAAI,CAAC,QAAQ;AACX,YAAI,OAAO,kBAAkB,GAAG;AAC9B,gBAAM,IAAI,MAAM,GAAG;AAAA,QACrB,WAAW,OAAO,kBAAkB,GAAG;AACrC,kBAAQ,MAAM,GAAG;AAAA,QACnB,OAAO;AACL,kBAAQ,KAAK,GAAG;AAAA,QAClB;AAEA,iBAAS;AAAA,MACX;AAEA,aAAO,GAAG,MAAM,QAAQ,WAAW,SAAS;AAAA,IAC9C;AAEA,WAAO;AAAA,EACT;AAUA,WAAS,OAAOV,OAAM;AAEpB,QAAI;AACF,UAAI,CAAC,UAAU;AAAc,eAAO;AAAA,IACtC,SAASM,IAAG;AACV,aAAO;AAAA,IACT;AAEA,QAAI,MAAM,UAAU,aAAaN,KAAI;AACrC,QAAI,QAAQ;AAAK,aAAO;AACxB,WAAO,OAAO,GAAG,EAAE,YAAY,MAAM;AAAA,EACvC;AAEA,SAAO;AACT;AAEA,IAAI,YAAY,CAAC;AAAjB,IACI,aAAa;AAEjB,IAAI,YAAY,OAAO,eAAe,cAAc,aAAa,OAAO,SAAS,cAAc,OAAO;AAEtG,SAAS,QAAQ;AACf,MAAI;AAAY,WAAO;AACvB,eAAa;AACb,MAAI,YAAYO;AAChB,cAAYI;AAIZ,WAAS,cAAc,OAAO;AAC5B,QAAI,QAAQ;AAEZ,SAAK,OAAO;AACZ,SAAK,QAAQ;AAEb,SAAK,SAAS,WAAY;AACxB,qBAAe,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAMA,MAAIC;AAGJ,EAAAD,UAAS,gBAAgB;AAGzB,MAAI,eAAe;AAAA,IACjB,WAAW,MAAM;AAAA,EACnB;AAKA,MAAIE,UAAS,MAAM;AAInB,MAAIxC,UAAS,OAAO;AAEpB,MAAI,gBAAgB,UAAU,cAAc,WAAY;AAAA,EAAC;AAEzD,WAAS,oBAAoB,OAAO;AAClC,WAAOA,QAAO,KAAK,KAAK;AAAA,EAC1B;AAEA,WAAS,cAAc,KAAK;AAC1B,WAAOA,QAAO,SAAS,GAAG,KAAK,eAAe;AAAA,EAChD;AAEA,MAAI,cAAc,MAAM;AAExB,MAAI,WAAW,MAAM,GACjB,mBAAmB,SAAS;AAEhC,MAAI,iBAAiB,MAAM,EAAE,OACzB,uBAAuB,eAAe,sBACtC,6BAA6B,eAAe,4BAC5C,wBAAwB,eAAe,uBACvC,yBAAyB,eAAe,wBACxC,uBAAuB,eAAe,sBACtC,yBAAyB,eAAe,wBACxC,6BAA6B,eAAe,4BAC5C,uBAAuB,eAAe;AAE1C,MAAI,iBAAiB,YAAY;AAEjC,QAAM,EAAEsC,WAAUE,OAAM;AAExB,WAAS,MAAM;AAAA,EAAC;AAEhB,WAAS,cAAc,SAAS,QAAQ,UAAU;AAChD,IAAAD,UAASA,WAAU,MAAM;AACzB,cAAU,WAAW,CAAC;AAMtB,QAAI,OAAO,aAAa;AAAW,iBAAW,kBAAkBA;AAGhE,SAAK,aAAa,CAAC,CAAC,QAAQ;AAC5B,QAAI;AAAU,WAAK,aAAa,KAAK,cAAc,CAAC,CAAC,QAAQ;AAI7D,SAAK,gBAAgB,iBAAiB,MAAM,SAAS,yBAAyB,QAAQ;AAEtF,SAAK,cAAc;AAEnB,SAAK,YAAY;AAEjB,SAAK,SAAS;AAEd,SAAK,QAAQ;AAEb,SAAK,WAAW;AAEhB,SAAK,YAAY;AAIjB,QAAI,WAAW,QAAQ,kBAAkB;AACzC,SAAK,gBAAgB,CAAC;AAItB,SAAK,kBAAkB,QAAQ,mBAAmB;AAIlD,SAAK,SAAS;AAEd,SAAK,UAAU;AAEf,SAAK,SAAS;AAKd,SAAK,OAAO;AAIZ,SAAK,mBAAmB;AAExB,SAAK,UAAU,SAAU,IAAI;AAC3B,cAAQ,QAAQ,EAAE;AAAA,IACpB;AAGA,SAAK,UAAU;AAEf,SAAK,WAAW;AAChB,SAAK,kBAAkB;AACvB,SAAK,sBAAsB;AAG3B,SAAK,YAAY;AAGjB,SAAK,cAAc;AAEnB,SAAK,eAAe;AAEpB,SAAK,YAAY,QAAQ,cAAc;AAEvC,SAAK,cAAc,CAAC,CAAC,QAAQ;AAE7B,SAAK,uBAAuB;AAG5B,SAAK,qBAAqB,IAAI,cAAc,IAAI;AAAA,EAClD;AAEA,gBAAc,UAAU,YAAY,SAAS,YAAY;AACvD,QAAI,UAAU,KAAK;AACnB,QAAI,MAAM,CAAC;AAEX,WAAO,SAAS;AACd,UAAI,KAAK,OAAO;AAChB,gBAAU,QAAQ;AAAA,IACpB;AAEA,WAAO;AAAA,EACT;AAEA,GAAC,WAAY;AACX,QAAI;AACF,aAAO,eAAe,cAAc,WAAW,UAAU;AAAA,QACvD,KAAK,aAAa,UAAU,SAAS,4BAA4B;AAC/D,iBAAO,KAAK,UAAU;AAAA,QACxB,GAAG,8EAAmF,SAAS;AAAA,MACjG,CAAC;AAAA,IACH,SAASN,IAAG;AAAA,IAAC;AAAA,EACf,GAAG;AAIH,MAAI;AAEJ,MAAI,OAAO,WAAW,cAAc,OAAO,eAAe,OAAO,SAAS,UAAU,OAAO,WAAW,MAAM,YAAY;AACtH,sBAAkB,SAAS,UAAU,OAAO,WAAW;AACvD,WAAO,eAAeK,WAAU,OAAO,aAAa;AAAA,MAClD,OAAO,SAAS,MAAM,QAAQ;AAC5B,YAAI,gBAAgB,KAAK,MAAM,MAAM;AAAG,iBAAO;AAC/C,YAAI,SAASA;AAAU,iBAAO;AAC9B,eAAO,UAAU,OAAO,0BAA0B;AAAA,MACpD;AAAA,IACF,CAAC;AAAA,EACH,OAAO;AACL,sBAAkB,SAASG,iBAAgB,QAAQ;AACjD,aAAO,kBAAkB;AAAA,IAC3B;AAAA,EACF;AAEA,WAASH,UAAS,SAAS;AACzB,IAAAC,UAASA,WAAU,MAAM;AASzB,QAAI,WAAW,gBAAgBA;AAC/B,QAAI,CAAC,YAAY,CAAC,gBAAgB,KAAKD,WAAU,IAAI;AAAG,aAAO,IAAIA,UAAS,OAAO;AACnF,SAAK,iBAAiB,IAAI,cAAc,SAAS,MAAM,QAAQ;AAE/D,SAAK,WAAW;AAEhB,QAAI,SAAS;AACX,UAAI,OAAO,QAAQ,UAAU;AAAY,aAAK,SAAS,QAAQ;AAC/D,UAAI,OAAO,QAAQ,WAAW;AAAY,aAAK,UAAU,QAAQ;AACjE,UAAI,OAAO,QAAQ,YAAY;AAAY,aAAK,WAAW,QAAQ;AACnE,UAAI,OAAO,QAAQ,UAAU;AAAY,aAAK,SAAS,QAAQ;AAAA,IACjE;AAEA,IAAAE,QAAO,KAAK,IAAI;AAAA,EAClB;AAGA,EAAAF,UAAS,UAAU,OAAO,WAAY;AACpC,mBAAe,MAAM,IAAI,uBAAuB,CAAC;AAAA,EACnD;AAEA,WAAS,cAAc,QAAQ,IAAI;AACjC,QAAI,KAAK,IAAI,2BAA2B;AAExC,mBAAe,QAAQ,EAAE;AACzB,cAAU,SAAS,IAAI,EAAE;AAAA,EAC3B;AAKA,WAAS,WAAW,QAAQ,OAAO,OAAO,IAAI;AAC5C,QAAI;AAEJ,QAAI,UAAU,MAAM;AAClB,WAAK,IAAI,uBAAuB;AAAA,IAClC,WAAW,OAAO,UAAU,YAAY,CAAC,MAAM,YAAY;AACzD,WAAK,IAAI,qBAAqB,SAAS,CAAC,UAAU,QAAQ,GAAG,KAAK;AAAA,IACpE;AAEA,QAAI,IAAI;AACN,qBAAe,QAAQ,EAAE;AACzB,gBAAU,SAAS,IAAI,EAAE;AACzB,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAEA,EAAAA,UAAS,UAAU,QAAQ,SAAU,OAAO,UAAU,IAAI;AACxD,QAAI,QAAQ,KAAK;AACjB,QAAI,MAAM;AAEV,QAAI,QAAQ,CAAC,MAAM,cAAc,cAAc,KAAK;AAEpD,QAAI,SAAS,CAACtC,QAAO,SAAS,KAAK,GAAG;AACpC,cAAQ,oBAAoB,KAAK;AAAA,IACnC;AAEA,QAAI,OAAO,aAAa,YAAY;AAClC,WAAK;AACL,iBAAW;AAAA,IACb;AAEA,QAAI;AAAO,iBAAW;AAAA,aAAkB,CAAC;AAAU,iBAAW,MAAM;AACpE,QAAI,OAAO,OAAO;AAAY,WAAK;AACnC,QAAI,MAAM;AAAQ,oBAAc,MAAM,EAAE;AAAA,aAAW,SAAS,WAAW,MAAM,OAAO,OAAO,EAAE,GAAG;AAC9F,YAAM;AACN,YAAM,cAAc,MAAM,OAAO,OAAO,OAAO,UAAU,EAAE;AAAA,IAC7D;AACA,WAAO;AAAA,EACT;AAEA,EAAAsC,UAAS,UAAU,OAAO,WAAY;AACpC,SAAK,eAAe;AAAA,EACtB;AAEA,EAAAA,UAAS,UAAU,SAAS,WAAY;AACtC,QAAI,QAAQ,KAAK;AAEjB,QAAI,MAAM,QAAQ;AAChB,YAAM;AACN,UAAI,CAAC,MAAM,WAAW,CAAC,MAAM,UAAU,CAAC,MAAM,oBAAoB,MAAM;AAAiB,oBAAY,MAAM,KAAK;AAAA,IAClH;AAAA,EACF;AAEA,EAAAA,UAAS,UAAU,qBAAqB,SAAS,mBAAmB,UAAU;AAE5E,QAAI,OAAO,aAAa;AAAU,iBAAW,SAAS,YAAY;AAClE,QAAI,EAAE,CAAC,OAAO,QAAQ,SAAS,SAAS,UAAU,UAAU,QAAQ,SAAS,WAAW,YAAY,KAAK,EAAE,SAAS,WAAW,IAAI,YAAY,CAAC,IAAI;AAAK,YAAM,IAAI,qBAAqB,QAAQ;AAChM,SAAK,eAAe,kBAAkB;AACtC,WAAO;AAAA,EACT;AAEA,SAAO,eAAeA,UAAS,WAAW,kBAAkB;AAAA;AAAA;AAAA;AAAA,IAI1D,YAAY;AAAA,IACZ,KAAK,SAAS,MAAM;AAClB,aAAO,KAAK,kBAAkB,KAAK,eAAe,UAAU;AAAA,IAC9D;AAAA,EACF,CAAC;AAED,WAAS,YAAY,OAAO,OAAO,UAAU;AAC3C,QAAI,CAAC,MAAM,cAAc,MAAM,kBAAkB,SAAS,OAAO,UAAU,UAAU;AACnF,cAAQtC,QAAO,KAAK,OAAO,QAAQ;AAAA,IACrC;AAEA,WAAO;AAAA,EACT;AAEA,SAAO,eAAesC,UAAS,WAAW,yBAAyB;AAAA;AAAA;AAAA;AAAA,IAIjE,YAAY;AAAA,IACZ,KAAK,SAAS,MAAM;AAClB,aAAO,KAAK,eAAe;AAAA,IAC7B;AAAA,EACF,CAAC;AAID,WAAS,cAAc,QAAQ,OAAO,OAAO,OAAO,UAAU,IAAI;AAChE,QAAI,CAAC,OAAO;AACV,UAAI,WAAW,YAAY,OAAO,OAAO,QAAQ;AAEjD,UAAI,UAAU,UAAU;AACtB,gBAAQ;AACR,mBAAW;AACX,gBAAQ;AAAA,MACV;AAAA,IACF;AAEA,QAAI,MAAM,MAAM,aAAa,IAAI,MAAM;AACvC,UAAM,UAAU;AAChB,QAAI,MAAM,MAAM,SAAS,MAAM;AAE/B,QAAI,CAAC;AAAK,YAAM,YAAY;AAE5B,QAAI,MAAM,WAAW,MAAM,QAAQ;AACjC,UAAI,OAAO,MAAM;AACjB,YAAM,sBAAsB;AAAA,QAC1B;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU;AAAA,QACV,MAAM;AAAA,MACR;AAEA,UAAI,MAAM;AACR,aAAK,OAAO,MAAM;AAAA,MACpB,OAAO;AACL,cAAM,kBAAkB,MAAM;AAAA,MAChC;AAEA,YAAM,wBAAwB;AAAA,IAChC,OAAO;AACL,cAAQ,QAAQ,OAAO,OAAO,KAAK,OAAO,UAAU,EAAE;AAAA,IACxD;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,QAAQ,QAAQ,OAAOI,SAAQ,KAAK,OAAO,UAAU,IAAI;AAChE,UAAM,WAAW;AACjB,UAAM,UAAU;AAChB,UAAM,UAAU;AAChB,UAAM,OAAO;AACb,QAAI,MAAM;AAAW,YAAM,QAAQ,IAAI,qBAAqB,OAAO,CAAC;AAAA,aAAWA;AAAQ,aAAO,QAAQ,OAAO,MAAM,OAAO;AAAA;AAAO,aAAO,OAAO,OAAO,UAAU,MAAM,OAAO;AAC7K,UAAM,OAAO;AAAA,EACf;AAEA,WAAS,aAAa,QAAQ,OAAO,MAAM,IAAI,IAAI;AACjD,MAAE,MAAM;AAER,QAAI,MAAM;AAGR,gBAAU,SAAS,IAAI,EAAE;AAGzB,gBAAU,SAAS,aAAa,QAAQ,KAAK;AAC7C,aAAO,eAAe,eAAe;AACrC,qBAAe,QAAQ,EAAE;AAAA,IAC3B,OAAO;AAGL,SAAG,EAAE;AACL,aAAO,eAAe,eAAe;AACrC,qBAAe,QAAQ,EAAE;AAGzB,kBAAY,QAAQ,KAAK;AAAA,IAC3B;AAAA,EACF;AAEA,WAAS,mBAAmB,OAAO;AACjC,UAAM,UAAU;AAChB,UAAM,UAAU;AAChB,UAAM,UAAU,MAAM;AACtB,UAAM,WAAW;AAAA,EACnB;AAEA,WAAS,QAAQ,QAAQ,IAAI;AAC3B,QAAI,QAAQ,OAAO;AACnB,QAAI,OAAO,MAAM;AACjB,QAAI,KAAK,MAAM;AACf,QAAI,OAAO,OAAO;AAAY,YAAM,IAAI,sBAAsB;AAC9D,uBAAmB,KAAK;AACxB,QAAI;AAAI,mBAAa,QAAQ,OAAO,MAAM,IAAI,EAAE;AAAA,SAAO;AAErD,UAAIC,YAAW,WAAW,KAAK,KAAK,OAAO;AAE3C,UAAI,CAACA,aAAY,CAAC,MAAM,UAAU,CAAC,MAAM,oBAAoB,MAAM,iBAAiB;AAClF,oBAAY,QAAQ,KAAK;AAAA,MAC3B;AAEA,UAAI,MAAM;AACR,kBAAU,SAAS,YAAY,QAAQ,OAAOA,WAAU,EAAE;AAAA,MAC5D,OAAO;AACL,mBAAW,QAAQ,OAAOA,WAAU,EAAE;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AAEA,WAAS,WAAW,QAAQ,OAAOA,WAAU,IAAI;AAC/C,QAAI,CAACA;AAAU,mBAAa,QAAQ,KAAK;AACzC,UAAM;AACN,OAAG;AACH,gBAAY,QAAQ,KAAK;AAAA,EAC3B;AAKA,WAAS,aAAa,QAAQ,OAAO;AACnC,QAAI,MAAM,WAAW,KAAK,MAAM,WAAW;AACzC,YAAM,YAAY;AAClB,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,EACF;AAGA,WAAS,YAAY,QAAQ,OAAO;AAClC,UAAM,mBAAmB;AACzB,QAAI,QAAQ,MAAM;AAElB,QAAI,OAAO,WAAW,SAAS,MAAM,MAAM;AAEzC,UAAIC,KAAI,MAAM;AACd,UAAIlD,UAAS,IAAI,MAAMkD,EAAC;AACxB,UAAI,SAAS,MAAM;AACnB,aAAO,QAAQ;AACf,UAAI,QAAQ;AACZ,UAAI,aAAa;AAEjB,aAAO,OAAO;AACZ,QAAAlD,QAAO,KAAK,IAAI;AAChB,YAAI,CAAC,MAAM;AAAO,uBAAa;AAC/B,gBAAQ,MAAM;AACd,iBAAS;AAAA,MACX;AAEA,MAAAA,QAAO,aAAa;AACpB,cAAQ,QAAQ,OAAO,MAAM,MAAM,QAAQA,SAAQ,IAAI,OAAO,MAAM;AAGpE,YAAM;AACN,YAAM,sBAAsB;AAE5B,UAAI,OAAO,MAAM;AACf,cAAM,qBAAqB,OAAO;AAClC,eAAO,OAAO;AAAA,MAChB,OAAO;AACL,cAAM,qBAAqB,IAAI,cAAc,KAAK;AAAA,MACpD;AAEA,YAAM,uBAAuB;AAAA,IAC/B,OAAO;AAEL,aAAO,OAAO;AACZ,YAAI,QAAQ,MAAM;AAClB,YAAI,WAAW,MAAM;AACrB,YAAI,KAAK,MAAM;AACf,YAAI,MAAM,MAAM,aAAa,IAAI,MAAM;AACvC,gBAAQ,QAAQ,OAAO,OAAO,KAAK,OAAO,UAAU,EAAE;AACtD,gBAAQ,MAAM;AACd,cAAM;AAKN,YAAI,MAAM,SAAS;AACjB;AAAA,QACF;AAAA,MACF;AAEA,UAAI,UAAU;AAAM,cAAM,sBAAsB;AAAA,IAClD;AAEA,UAAM,kBAAkB;AACxB,UAAM,mBAAmB;AAAA,EAC3B;AAEA,EAAA4C,UAAS,UAAU,SAAS,SAAU,OAAO,UAAU,IAAI;AACzD,OAAG,IAAI,2BAA2B,UAAU,CAAC;AAAA,EAC/C;AAEA,EAAAA,UAAS,UAAU,UAAU;AAE7B,EAAAA,UAAS,UAAU,MAAM,SAAU,OAAO,UAAU,IAAI;AACtD,QAAI,QAAQ,KAAK;AAEjB,QAAI,OAAO,UAAU,YAAY;AAC/B,WAAK;AACL,cAAQ;AACR,iBAAW;AAAA,IACb,WAAW,OAAO,aAAa,YAAY;AACzC,WAAK;AACL,iBAAW;AAAA,IACb;AAEA,QAAI,UAAU,QAAQ,UAAU;AAAW,WAAK,MAAM,OAAO,QAAQ;AAErE,QAAI,MAAM,QAAQ;AAChB,YAAM,SAAS;AACf,WAAK,OAAO;AAAA,IACd;AAGA,QAAI,CAAC,MAAM;AAAQ,kBAAY,MAAM,OAAO,EAAE;AAC9C,WAAO;AAAA,EACT;AAEA,SAAO,eAAeA,UAAS,WAAW,kBAAkB;AAAA;AAAA;AAAA;AAAA,IAI1D,YAAY;AAAA,IACZ,KAAK,SAAS,MAAM;AAClB,aAAO,KAAK,eAAe;AAAA,IAC7B;AAAA,EACF,CAAC;AAED,WAAS,WAAW,OAAO;AACzB,WAAO,MAAM,UAAU,MAAM,WAAW,KAAK,MAAM,oBAAoB,QAAQ,CAAC,MAAM,YAAY,CAAC,MAAM;AAAA,EAC3G;AAEA,WAAS,UAAU,QAAQ,OAAO;AAChC,WAAO,OAAO,SAAU,KAAK;AAC3B,YAAM;AAEN,UAAI,KAAK;AACP,uBAAe,QAAQ,GAAG;AAAA,MAC5B;AAEA,YAAM,cAAc;AACpB,aAAO,KAAK,WAAW;AACvB,kBAAY,QAAQ,KAAK;AAAA,IAC3B,CAAC;AAAA,EACH;AAEA,WAAS,UAAU,QAAQ,OAAO;AAChC,QAAI,CAAC,MAAM,eAAe,CAAC,MAAM,aAAa;AAC5C,UAAI,OAAO,OAAO,WAAW,cAAc,CAAC,MAAM,WAAW;AAC3D,cAAM;AACN,cAAM,cAAc;AACpB,kBAAU,SAAS,WAAW,QAAQ,KAAK;AAAA,MAC7C,OAAO;AACL,cAAM,cAAc;AACpB,eAAO,KAAK,WAAW;AAAA,MACzB;AAAA,IACF;AAAA,EACF;AAEA,WAAS,YAAY,QAAQ,OAAO;AAClC,QAAI,OAAO,WAAW,KAAK;AAE3B,QAAI,MAAM;AACR,gBAAU,QAAQ,KAAK;AAEvB,UAAI,MAAM,cAAc,GAAG;AACzB,cAAM,WAAW;AACjB,eAAO,KAAK,QAAQ;AAEpB,YAAI,MAAM,aAAa;AAGrB,cAAI,SAAS,OAAO;AAEpB,cAAI,CAAC,UAAU,OAAO,eAAe,OAAO,YAAY;AACtD,mBAAO,QAAQ;AAAA,UACjB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,YAAY,QAAQ,OAAO,IAAI;AACtC,UAAM,SAAS;AACf,gBAAY,QAAQ,KAAK;AAEzB,QAAI,IAAI;AACN,UAAI,MAAM;AAAU,kBAAU,SAAS,EAAE;AAAA;AAAO,eAAO,KAAK,UAAU,EAAE;AAAA,IAC1E;AAEA,UAAM,QAAQ;AACd,WAAO,WAAW;AAAA,EACpB;AAEA,WAAS,eAAe,SAAS,OAAO,KAAK;AAC3C,QAAI,QAAQ,QAAQ;AACpB,YAAQ,QAAQ;AAEhB,WAAO,OAAO;AACZ,UAAI,KAAK,MAAM;AACf,YAAM;AACN,SAAG,GAAG;AACN,cAAQ,MAAM;AAAA,IAChB;AAGA,UAAM,mBAAmB,OAAO;AAAA,EAClC;AAEA,SAAO,eAAeA,UAAS,WAAW,aAAa;AAAA;AAAA;AAAA;AAAA,IAIrD,YAAY;AAAA,IACZ,KAAK,SAAS,MAAM;AAClB,UAAI,KAAK,mBAAmB,QAAW;AACrC,eAAO;AAAA,MACT;AAEA,aAAO,KAAK,eAAe;AAAA,IAC7B;AAAA,IACA,KAAK,SAAS,IAAI,OAAO;AAGvB,UAAI,CAAC,KAAK,gBAAgB;AACxB;AAAA,MACF;AAIA,WAAK,eAAe,YAAY;AAAA,IAClC;AAAA,EACF,CAAC;AACD,EAAAA,UAAS,UAAU,UAAU,YAAY;AACzC,EAAAA,UAAS,UAAU,aAAa,YAAY;AAE5C,EAAAA,UAAS,UAAU,WAAW,SAAU,KAAK,IAAI;AAC/C,OAAG,GAAG;AAAA,EACR;AAEA,SAAO;AACT;AAEA,IAAI,YAAY,CAAC;AAAjB,IACI,aAAa;AACjB,SAAS,QAAQ;AACf,MAAI;AAAY,WAAO;AACvB,eAAa;AACb,MAAI,YAAYJ;AAGhB,MAAI,aAAa,OAAO,QAAQ,SAAU,KAAK;AAC7C,QAAIW,QAAO,CAAC;AAEZ,aAAS,OAAO,KAAK;AACnB,MAAAA,MAAK,KAAK,GAAG;AAAA,IACf;AAEA,WAAOA;AAAA,EACT;AAIA,cAAYN;AAEZ,MAAIO,YAAW,MAAM;AAErB,MAAIR,YAAW,MAAM;AAErB,QAAM,EAAEC,SAAQO,SAAQ;AAExB;AAEE,QAAI,OAAO,WAAWR,UAAS,SAAS;AAExC,aAASR,KAAI,GAAGA,KAAI,KAAK,QAAQA,MAAK;AACpC,UAAI,SAAS,KAAKA,EAAC;AACnB,UAAI,CAACS,QAAO,UAAU,MAAM;AAAG,QAAAA,QAAO,UAAU,MAAM,IAAID,UAAS,UAAU,MAAM;AAAA,IACrF;AAAA,EACF;AAEA,WAASC,QAAO,SAAS;AACvB,QAAI,EAAE,gBAAgBA;AAAS,aAAO,IAAIA,QAAO,OAAO;AACxD,IAAAO,UAAS,KAAK,MAAM,OAAO;AAC3B,IAAAR,UAAS,KAAK,MAAM,OAAO;AAC3B,SAAK,gBAAgB;AAErB,QAAI,SAAS;AACX,UAAI,QAAQ,aAAa;AAAO,aAAK,WAAW;AAChD,UAAI,QAAQ,aAAa;AAAO,aAAK,WAAW;AAEhD,UAAI,QAAQ,kBAAkB,OAAO;AACnC,aAAK,gBAAgB;AACrB,aAAK,KAAK,OAAO,KAAK;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AAEA,SAAO,eAAeC,QAAO,WAAW,yBAAyB;AAAA;AAAA;AAAA;AAAA,IAI/D,YAAY;AAAA,IACZ,KAAK,SAAS,MAAM;AAClB,aAAO,KAAK,eAAe;AAAA,IAC7B;AAAA,EACF,CAAC;AACD,SAAO,eAAeA,QAAO,WAAW,kBAAkB;AAAA;AAAA;AAAA;AAAA,IAIxD,YAAY;AAAA,IACZ,KAAK,SAAS,MAAM;AAClB,aAAO,KAAK,kBAAkB,KAAK,eAAe,UAAU;AAAA,IAC9D;AAAA,EACF,CAAC;AACD,SAAO,eAAeA,QAAO,WAAW,kBAAkB;AAAA;AAAA;AAAA;AAAA,IAIxD,YAAY;AAAA,IACZ,KAAK,SAAS,MAAM;AAClB,aAAO,KAAK,eAAe;AAAA,IAC7B;AAAA,EACF,CAAC;AAED,WAAS,QAAQ;AAEf,QAAI,KAAK,eAAe;AAAO;AAG/B,cAAU,SAAS,SAAS,IAAI;AAAA,EAClC;AAEA,WAAS,QAAQH,OAAM;AACrB,IAAAA,MAAK,IAAI;AAAA,EACX;AAEA,SAAO,eAAeG,QAAO,WAAW,aAAa;AAAA;AAAA;AAAA;AAAA,IAInD,YAAY;AAAA,IACZ,KAAK,SAAS,MAAM;AAClB,UAAI,KAAK,mBAAmB,UAAa,KAAK,mBAAmB,QAAW;AAC1E,eAAO;AAAA,MACT;AAEA,aAAO,KAAK,eAAe,aAAa,KAAK,eAAe;AAAA,IAC9D;AAAA,IACA,KAAK,SAAS,IAAI,OAAO;AAGvB,UAAI,KAAK,mBAAmB,UAAa,KAAK,mBAAmB,QAAW;AAC1E;AAAA,MACF;AAIA,WAAK,eAAe,YAAY;AAChC,WAAK,eAAe,YAAY;AAAA,IAClC;AAAA,EACF,CAAC;AACD,SAAO;AACT;AAEA,IAAI,YAAY,CAAC;AAAjB,IACI,aAAa;AACjB,SAAS,QAAQ;AACf,MAAI;AAAY,WAAO;AACvB,eAAa;AAEb,MAAI,6BAA6B,MAAM,EAAE,MAAM;AAE/C,WAASQ,MAAK,UAAU;AACtB,QAAI,SAAS;AACb,WAAO,WAAY;AACjB,UAAI;AAAQ;AACZ,eAAS;AAET,eAAS,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AACvF,aAAK,IAAI,IAAI,UAAU,IAAI;AAAA,MAC7B;AAEA,eAAS,MAAM,MAAM,IAAI;AAAA,IAC3B;AAAA,EACF;AAEA,WAAS,OAAO;AAAA,EAAC;AAEjB,WAAS,UAAU,QAAQ;AACzB,WAAO,OAAO,aAAa,OAAO,OAAO,UAAU;AAAA,EACrD;AAEA,WAAS,IAAI,QAAQ,MAAM,UAAU;AACnC,QAAI,OAAO,SAAS;AAAY,aAAO,IAAI,QAAQ,MAAM,IAAI;AAC7D,QAAI,CAAC;AAAM,aAAO,CAAC;AACnB,eAAWA,MAAK,YAAY,IAAI;AAChC,QAAI,WAAW,KAAK,YAAY,KAAK,aAAa,SAAS,OAAO;AAClE,QAAI,WAAW,KAAK,YAAY,KAAK,aAAa,SAAS,OAAO;AAElE,QAAI,iBAAiB,SAASC,kBAAiB;AAC7C,UAAI,CAAC,OAAO;AAAU,iBAAS;AAAA,IACjC;AAEA,QAAI,gBAAgB,OAAO,kBAAkB,OAAO,eAAe;AAEnE,QAAI,WAAW,SAASC,YAAW;AACjC,iBAAW;AACX,sBAAgB;AAChB,UAAI,CAAC;AAAU,iBAAS,KAAK,MAAM;AAAA,IACrC;AAEA,QAAI,gBAAgB,OAAO,kBAAkB,OAAO,eAAe;AAEnE,QAAI,QAAQ,SAASC,SAAQ;AAC3B,iBAAW;AACX,sBAAgB;AAChB,UAAI,CAAC;AAAU,iBAAS,KAAK,MAAM;AAAA,IACrC;AAEA,QAAI,UAAU,SAASC,SAAQ,KAAK;AAClC,eAAS,KAAK,QAAQ,GAAG;AAAA,IAC3B;AAEA,QAAI,UAAU,SAASC,WAAU;AAC/B,UAAI;AAEJ,UAAI,YAAY,CAAC,eAAe;AAC9B,YAAI,CAAC,OAAO,kBAAkB,CAAC,OAAO,eAAe;AAAO,gBAAM,IAAI,2BAA2B;AACjG,eAAO,SAAS,KAAK,QAAQ,GAAG;AAAA,MAClC;AAEA,UAAI,YAAY,CAAC,eAAe;AAC9B,YAAI,CAAC,OAAO,kBAAkB,CAAC,OAAO,eAAe;AAAO,gBAAM,IAAI,2BAA2B;AACjG,eAAO,SAAS,KAAK,QAAQ,GAAG;AAAA,MAClC;AAAA,IACF;AAEA,QAAI,YAAY,SAASC,aAAY;AACnC,aAAO,IAAI,GAAG,UAAU,QAAQ;AAAA,IAClC;AAEA,QAAI,UAAU,MAAM,GAAG;AACrB,aAAO,GAAG,YAAY,QAAQ;AAC9B,aAAO,GAAG,SAAS,OAAO;AAC1B,UAAI,OAAO;AAAK,kBAAU;AAAA;AAAO,eAAO,GAAG,WAAW,SAAS;AAAA,IACjE,WAAW,YAAY,CAAC,OAAO,gBAAgB;AAE7C,aAAO,GAAG,OAAO,cAAc;AAC/B,aAAO,GAAG,SAAS,cAAc;AAAA,IACnC;AAEA,WAAO,GAAG,OAAO,KAAK;AACtB,WAAO,GAAG,UAAU,QAAQ;AAC5B,QAAI,KAAK,UAAU;AAAO,aAAO,GAAG,SAAS,OAAO;AACpD,WAAO,GAAG,SAAS,OAAO;AAC1B,WAAO,WAAY;AACjB,aAAO,eAAe,YAAY,QAAQ;AAC1C,aAAO,eAAe,SAAS,OAAO;AACtC,aAAO,eAAe,WAAW,SAAS;AAC1C,UAAI,OAAO;AAAK,eAAO,IAAI,eAAe,UAAU,QAAQ;AAC5D,aAAO,eAAe,OAAO,cAAc;AAC3C,aAAO,eAAe,SAAS,cAAc;AAC7C,aAAO,eAAe,UAAU,QAAQ;AACxC,aAAO,eAAe,OAAO,KAAK;AAClC,aAAO,eAAe,SAAS,OAAO;AACtC,aAAO,eAAe,SAAS,OAAO;AAAA,IACxC;AAAA,EACF;AAEA,cAAY;AACZ,SAAO;AACT;AAEA,IAAI,YAAY,CAAC;AAAjB,IACI,aAAa;AACjB,SAAS,QAAQ;AACf,MAAI;AAAY,WAAO;AACvB,eAAa;AACb,MAAI,YAAYnB;AAEhB,MAAI;AAEJ,WAAS,gBAAgB,KAAK,KAAK,OAAO;AACxC,QAAI,OAAO,KAAK;AACd,aAAO,eAAe,KAAK,KAAK;AAAA,QAC9B;AAAA,QACA,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,UAAU;AAAA,MACZ,CAAC;AAAA,IACH,OAAO;AACL,UAAI,GAAG,IAAI;AAAA,IACb;AAEA,WAAO;AAAA,EACT;AAEA,MAAIS,YAAW,MAAM;AAErB,MAAI,eAAe,OAAO,aAAa;AACvC,MAAI,cAAc,OAAO,YAAY;AACrC,MAAI,SAAS,OAAO,OAAO;AAC3B,MAAI,SAAS,OAAO,OAAO;AAC3B,MAAI,eAAe,OAAO,aAAa;AACvC,MAAI,iBAAiB,OAAO,eAAe;AAC3C,MAAI,UAAU,OAAO,QAAQ;AAE7B,WAASW,kBAAiB,OAAO,MAAM;AACrC,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,WAAS,eAAe,MAAM;AAC5B,QAAIC,WAAU,KAAK,YAAY;AAE/B,QAAIA,aAAY,MAAM;AACpB,UAAI,OAAO,KAAK,OAAO,EAAE,KAAK;AAI9B,UAAI,SAAS,MAAM;AACjB,aAAK,YAAY,IAAI;AACrB,aAAK,YAAY,IAAI;AACrB,aAAK,WAAW,IAAI;AACpB,QAAAA,SAAQD,kBAAiB,MAAM,KAAK,CAAC;AAAA,MACvC;AAAA,IACF;AAAA,EACF;AAEA,WAAS,WAAW,MAAM;AAGxB,cAAU,SAAS,gBAAgB,IAAI;AAAA,EACzC;AAEA,WAAS,YAAY,aAAa,MAAM;AACtC,WAAO,SAAUC,UAAS,QAAQ;AAChC,kBAAY,KAAK,WAAY;AAC3B,YAAI,KAAK,MAAM,GAAG;AAChB,UAAAA,SAAQD,kBAAiB,QAAW,IAAI,CAAC;AACzC;AAAA,QACF;AAEA,aAAK,cAAc,EAAEC,UAAS,MAAM;AAAA,MACtC,GAAG,MAAM;AAAA,IACX;AAAA,EACF;AAEA,MAAI,yBAAyB,OAAO,eAAe,WAAY;AAAA,EAAC,CAAC;AACjE,MAAI,uCAAuC,OAAO,gBAAgB,wBAAwB;AAAA,IACxF,IAAI,SAAS;AACX,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,IAEA,MAAM,SAAS,OAAO;AACpB,UAAI,QAAQ;AAIZ,UAAI,QAAQ,KAAK,MAAM;AAEvB,UAAI,UAAU,MAAM;AAClB,eAAO,QAAQ,OAAO,KAAK;AAAA,MAC7B;AAEA,UAAI,KAAK,MAAM,GAAG;AAChB,eAAO,QAAQ,QAAQD,kBAAiB,QAAW,IAAI,CAAC;AAAA,MAC1D;AAEA,UAAI,KAAK,OAAO,EAAE,WAAW;AAK3B,eAAO,IAAI,QAAQ,SAAUC,UAAS,QAAQ;AAC5C,oBAAU,SAAS,WAAY;AAC7B,gBAAI,MAAM,MAAM,GAAG;AACjB,qBAAO,MAAM,MAAM,CAAC;AAAA,YACtB,OAAO;AACL,cAAAA,SAAQD,kBAAiB,QAAW,IAAI,CAAC;AAAA,YAC3C;AAAA,UACF,CAAC;AAAA,QACH,CAAC;AAAA,MACH;AAMA,UAAI,cAAc,KAAK,YAAY;AACnC,UAAI;AAEJ,UAAI,aAAa;AACf,kBAAU,IAAI,QAAQ,YAAY,aAAa,IAAI,CAAC;AAAA,MACtD,OAAO;AAGL,YAAI,OAAO,KAAK,OAAO,EAAE,KAAK;AAE9B,YAAI,SAAS,MAAM;AACjB,iBAAO,QAAQ,QAAQA,kBAAiB,MAAM,KAAK,CAAC;AAAA,QACtD;AAEA,kBAAU,IAAI,QAAQ,KAAK,cAAc,CAAC;AAAA,MAC5C;AAEA,WAAK,YAAY,IAAI;AACrB,aAAO;AAAA,IACT;AAAA,EACF,GAAG,gBAAgB,uBAAuB,OAAO,eAAe,WAAY;AAC1E,WAAO;AAAA,EACT,CAAC,GAAG,gBAAgB,uBAAuB,UAAU,SAAS,UAAU;AACtE,QAAI,SAAS;AAKb,WAAO,IAAI,QAAQ,SAAUC,UAAS,QAAQ;AAC5C,aAAO,OAAO,EAAE,QAAQ,MAAM,SAAU,KAAK;AAC3C,YAAI,KAAK;AACP,iBAAO,GAAG;AACV;AAAA,QACF;AAEA,QAAAA,SAAQD,kBAAiB,QAAW,IAAI,CAAC;AAAA,MAC3C,CAAC;AAAA,IACH,CAAC;AAAA,EACH,CAAC,GAAG,wBAAwB,sBAAsB;AAElD,MAAI,oCAAoC,SAASE,mCAAkC,QAAQ;AACzF,QAAI;AAEJ,QAAI,WAAW,OAAO,OAAO,uCAAuC,iBAAiB,CAAC,GAAG,gBAAgB,gBAAgB,SAAS;AAAA,MAChI,OAAO;AAAA,MACP,UAAU;AAAA,IACZ,CAAC,GAAG,gBAAgB,gBAAgB,cAAc;AAAA,MAChD,OAAO;AAAA,MACP,UAAU;AAAA,IACZ,CAAC,GAAG,gBAAgB,gBAAgB,aAAa;AAAA,MAC/C,OAAO;AAAA,MACP,UAAU;AAAA,IACZ,CAAC,GAAG,gBAAgB,gBAAgB,QAAQ;AAAA,MAC1C,OAAO;AAAA,MACP,UAAU;AAAA,IACZ,CAAC,GAAG,gBAAgB,gBAAgB,QAAQ;AAAA,MAC1C,OAAO,OAAO,eAAe;AAAA,MAC7B,UAAU;AAAA,IACZ,CAAC,GAAG,gBAAgB,gBAAgB,gBAAgB;AAAA,MAClD,OAAO,SAAS,MAAMD,UAAS,QAAQ;AACrC,YAAI,OAAO,SAAS,OAAO,EAAE,KAAK;AAElC,YAAI,MAAM;AACR,mBAAS,YAAY,IAAI;AACzB,mBAAS,YAAY,IAAI;AACzB,mBAAS,WAAW,IAAI;AACxB,UAAAA,SAAQD,kBAAiB,MAAM,KAAK,CAAC;AAAA,QACvC,OAAO;AACL,mBAAS,YAAY,IAAIC;AACzB,mBAAS,WAAW,IAAI;AAAA,QAC1B;AAAA,MACF;AAAA,MACA,UAAU;AAAA,IACZ,CAAC,GAAG,eAAe;AACnB,aAAS,YAAY,IAAI;AACzB,IAAAZ,UAAS,QAAQ,SAAU,KAAK;AAC9B,UAAI,OAAO,IAAI,SAAS,8BAA8B;AACpD,YAAI,SAAS,SAAS,WAAW;AAGjC,YAAI,WAAW,MAAM;AACnB,mBAAS,YAAY,IAAI;AACzB,mBAAS,YAAY,IAAI;AACzB,mBAAS,WAAW,IAAI;AACxB,iBAAO,GAAG;AAAA,QACZ;AAEA,iBAAS,MAAM,IAAI;AACnB;AAAA,MACF;AAEA,UAAIY,WAAU,SAAS,YAAY;AAEnC,UAAIA,aAAY,MAAM;AACpB,iBAAS,YAAY,IAAI;AACzB,iBAAS,YAAY,IAAI;AACzB,iBAAS,WAAW,IAAI;AACxB,QAAAA,SAAQD,kBAAiB,QAAW,IAAI,CAAC;AAAA,MAC3C;AAEA,eAAS,MAAM,IAAI;AAAA,IACrB,CAAC;AACD,WAAO,GAAG,YAAY,WAAW,KAAK,MAAM,QAAQ,CAAC;AACrD,WAAO;AAAA,EACT;AAEA,cAAY;AACZ,SAAO;AACT;AAEA,IAAI,YAAY,CAAC;AAAjB,IACI,aAAa;AACjB,SAAS,QAAQ;AACf,MAAI;AAAY,WAAO;AACvB,eAAa;AAEb,cAAY,WAAY;AACtB,UAAM,IAAI,MAAM,+CAA+C;AAAA,EACjE;AAEA,SAAO;AACT;AAEA,IAAI,YAAY,CAAC;AAAjB,IACI,aAAa;AAEjB,IAAIG,WAAU,OAAO,eAAe,cAAc,aAAa,OAAO,SAAS,cAAc,OAAO;AAEpG,SAAS,QAAQ;AACf,MAAI;AAAY,WAAO;AACvB,eAAa;AACb,MAAI,YAAYvB;AAChB,cAAYY;AAGZ,MAAIP;AAGJ,EAAAO,UAAS,gBAAgB;AAGzB,IAAE;AAEF,MAAI,kBAAkB,SAASY,iBAAgB,SAAS,MAAM;AAC5D,WAAO,QAAQ,UAAU,IAAI,EAAE;AAAA,EACjC;AAMA,MAAIlB,UAAS,MAAM;AAInB,MAAIxC,UAAS,OAAO;AAEpB,MAAI,gBAAgByD,SAAQ,cAAc,WAAY;AAAA,EAAC;AAEvD,WAAS,oBAAoB,OAAO;AAClC,WAAOzD,QAAO,KAAK,KAAK;AAAA,EAC1B;AAEA,WAAS,cAAc,KAAK;AAC1B,WAAOA,QAAO,SAAS,GAAG,KAAK,eAAe;AAAA,EAChD;AAIA,MAAI,YAAY;AAChB,MAAI;AAEJ,MAAI,aAAa,UAAU,UAAU;AACnC,YAAQ,UAAU,SAAS,QAAQ;AAAA,EACrC,OAAO;AACL,YAAQ,SAAS2D,SAAQ;AAAA,IAAC;AAAA,EAC5B;AAIA,MAAI,aAAa,MAAM;AAEvB,MAAI,cAAc,MAAM;AAExB,MAAI,WAAW,MAAM,GACjB,mBAAmB,SAAS;AAEhC,MAAI,iBAAiB,MAAM,EAAE,OACzB,uBAAuB,eAAe,sBACtC,4BAA4B,eAAe,2BAC3C,6BAA6B,eAAe,4BAC5C,qCAAqC,eAAe;AAGxD,MAAI;AACJ,MAAI;AACJ,MAAIxD;AAEJ,QAAM,EAAE2C,WAAUN,OAAM;AAExB,MAAI,iBAAiB,YAAY;AACjC,MAAI,eAAe,CAAC,SAAS,SAAS,WAAW,SAAS,QAAQ;AAElE,WAAS,gBAAgB,SAAS,OAAO,IAAI;AAG3C,QAAI,OAAO,QAAQ,oBAAoB;AAAY,aAAO,QAAQ,gBAAgB,OAAO,EAAE;AAK3F,QAAI,CAAC,QAAQ,WAAW,CAAC,QAAQ,QAAQ,KAAK;AAAG,cAAQ,GAAG,OAAO,EAAE;AAAA,aAAW,MAAM,QAAQ,QAAQ,QAAQ,KAAK,CAAC;AAAG,cAAQ,QAAQ,KAAK,EAAE,QAAQ,EAAE;AAAA;AAAO,cAAQ,QAAQ,KAAK,IAAI,CAAC,IAAI,QAAQ,QAAQ,KAAK,CAAC;AAAA,EACrN;AAEA,WAAS,cAAc,SAAS,QAAQ,UAAU;AAChD,IAAAD,UAASA,WAAU,MAAM;AACzB,cAAU,WAAW,CAAC;AAMtB,QAAI,OAAO,aAAa;AAAW,iBAAW,kBAAkBA;AAGhE,SAAK,aAAa,CAAC,CAAC,QAAQ;AAC5B,QAAI;AAAU,WAAK,aAAa,KAAK,cAAc,CAAC,CAAC,QAAQ;AAG7D,SAAK,gBAAgB,iBAAiB,MAAM,SAAS,yBAAyB,QAAQ;AAItF,SAAK,SAAS,IAAI,WAAW;AAC7B,SAAK,SAAS;AACd,SAAK,QAAQ;AACb,SAAK,aAAa;AAClB,SAAK,UAAU;AACf,SAAK,QAAQ;AACb,SAAK,aAAa;AAClB,SAAK,UAAU;AAKf,SAAK,OAAO;AAGZ,SAAK,eAAe;AACpB,SAAK,kBAAkB;AACvB,SAAK,oBAAoB;AACzB,SAAK,kBAAkB;AACvB,SAAK,SAAS;AAEd,SAAK,YAAY,QAAQ,cAAc;AAEvC,SAAK,cAAc,CAAC,CAAC,QAAQ;AAE7B,SAAK,YAAY;AAIjB,SAAK,kBAAkB,QAAQ,mBAAmB;AAElD,SAAK,aAAa;AAElB,SAAK,cAAc;AACnB,SAAK,UAAU;AACf,SAAK,WAAW;AAEhB,QAAI,QAAQ,UAAU;AACpB,UAAI,CAAC;AAAe,wBAAgBqB,KAAI;AACxC,WAAK,UAAU,IAAI,cAAc,QAAQ,QAAQ;AACjD,WAAK,WAAW,QAAQ;AAAA,IAC1B;AAAA,EACF;AAEA,WAASd,UAAS,SAAS;AACzB,IAAAP,UAASA,WAAU,MAAM;AACzB,QAAI,EAAE,gBAAgBO;AAAW,aAAO,IAAIA,UAAS,OAAO;AAG5D,QAAI,WAAW,gBAAgBP;AAC/B,SAAK,iBAAiB,IAAI,cAAc,SAAS,MAAM,QAAQ;AAE/D,SAAK,WAAW;AAEhB,QAAI,SAAS;AACX,UAAI,OAAO,QAAQ,SAAS;AAAY,aAAK,QAAQ,QAAQ;AAC7D,UAAI,OAAO,QAAQ,YAAY;AAAY,aAAK,WAAW,QAAQ;AAAA,IACrE;AAEA,IAAAC,QAAO,KAAK,IAAI;AAAA,EAClB;AAEA,SAAO,eAAeM,UAAS,WAAW,aAAa;AAAA;AAAA;AAAA;AAAA,IAIrD,YAAY;AAAA,IACZ,KAAK,SAAS,MAAM;AAClB,UAAI,KAAK,mBAAmB,QAAW;AACrC,eAAO;AAAA,MACT;AAEA,aAAO,KAAK,eAAe;AAAA,IAC7B;AAAA,IACA,KAAK,SAAS,IAAI,OAAO;AAGvB,UAAI,CAAC,KAAK,gBAAgB;AACxB;AAAA,MACF;AAIA,WAAK,eAAe,YAAY;AAAA,IAClC;AAAA,EACF,CAAC;AACD,EAAAA,UAAS,UAAU,UAAU,YAAY;AACzC,EAAAA,UAAS,UAAU,aAAa,YAAY;AAE5C,EAAAA,UAAS,UAAU,WAAW,SAAU,KAAK,IAAI;AAC/C,OAAG,GAAG;AAAA,EACR;AAMA,EAAAA,UAAS,UAAU,OAAO,SAAU,OAAO,UAAU;AACnD,QAAI,QAAQ,KAAK;AACjB,QAAI;AAEJ,QAAI,CAAC,MAAM,YAAY;AACrB,UAAI,OAAO,UAAU,UAAU;AAC7B,mBAAW,YAAY,MAAM;AAE7B,YAAI,aAAa,MAAM,UAAU;AAC/B,kBAAQ9C,QAAO,KAAK,OAAO,QAAQ;AACnC,qBAAW;AAAA,QACb;AAEA,yBAAiB;AAAA,MACnB;AAAA,IACF,OAAO;AACL,uBAAiB;AAAA,IACnB;AAEA,WAAO,iBAAiB,MAAM,OAAO,UAAU,OAAO,cAAc;AAAA,EACtE;AAGA,EAAA8C,UAAS,UAAU,UAAU,SAAU,OAAO;AAC5C,WAAO,iBAAiB,MAAM,OAAO,MAAM,MAAM,KAAK;AAAA,EACxD;AAEA,WAAS,iBAAiB,QAAQ,OAAO,UAAU,YAAY,gBAAgB;AAC7E,UAAM,oBAAoB,KAAK;AAC/B,QAAI,QAAQ,OAAO;AAEnB,QAAI,UAAU,MAAM;AAClB,YAAM,UAAU;AAChB,iBAAW,QAAQ,KAAK;AAAA,IAC1B,OAAO;AACL,UAAI;AACJ,UAAI,CAAC;AAAgB,aAAK,aAAa,OAAO,KAAK;AAEnD,UAAI,IAAI;AACN,uBAAe,QAAQ,EAAE;AAAA,MAC3B,WAAW,MAAM,cAAc,SAAS,MAAM,SAAS,GAAG;AACxD,YAAI,OAAO,UAAU,YAAY,CAAC,MAAM,cAAc,OAAO,eAAe,KAAK,MAAM9C,QAAO,WAAW;AACvG,kBAAQ,oBAAoB,KAAK;AAAA,QACnC;AAEA,YAAI,YAAY;AACd,cAAI,MAAM;AAAY,2BAAe,QAAQ,IAAI,mCAAmC,CAAC;AAAA;AAAO,qBAAS,QAAQ,OAAO,OAAO,IAAI;AAAA,QACjI,WAAW,MAAM,OAAO;AACtB,yBAAe,QAAQ,IAAI,0BAA0B,CAAC;AAAA,QACxD,WAAW,MAAM,WAAW;AAC1B,iBAAO;AAAA,QACT,OAAO;AACL,gBAAM,UAAU;AAEhB,cAAI,MAAM,WAAW,CAAC,UAAU;AAC9B,oBAAQ,MAAM,QAAQ,MAAM,KAAK;AACjC,gBAAI,MAAM,cAAc,MAAM,WAAW;AAAG,uBAAS,QAAQ,OAAO,OAAO,KAAK;AAAA;AAAO,4BAAc,QAAQ,KAAK;AAAA,UACpH,OAAO;AACL,qBAAS,QAAQ,OAAO,OAAO,KAAK;AAAA,UACtC;AAAA,QACF;AAAA,MACF,WAAW,CAAC,YAAY;AACtB,cAAM,UAAU;AAChB,sBAAc,QAAQ,KAAK;AAAA,MAC7B;AAAA,IACF;AAKA,WAAO,CAAC,MAAM,UAAU,MAAM,SAAS,MAAM,iBAAiB,MAAM,WAAW;AAAA,EACjF;AAEA,WAAS,SAAS,QAAQ,OAAO,OAAO,YAAY;AAClD,QAAI,MAAM,WAAW,MAAM,WAAW,KAAK,CAAC,MAAM,MAAM;AACtD,YAAM,aAAa;AACnB,aAAO,KAAK,QAAQ,KAAK;AAAA,IAC3B,OAAO;AAEL,YAAM,UAAU,MAAM,aAAa,IAAI,MAAM;AAC7C,UAAI;AAAY,cAAM,OAAO,QAAQ,KAAK;AAAA;AAAO,cAAM,OAAO,KAAK,KAAK;AACxE,UAAI,MAAM;AAAc,qBAAa,MAAM;AAAA,IAC7C;AAEA,kBAAc,QAAQ,KAAK;AAAA,EAC7B;AAEA,WAAS,aAAa,OAAO,OAAO;AAClC,QAAI;AAEJ,QAAI,CAAC,cAAc,KAAK,KAAK,OAAO,UAAU,YAAY,UAAU,UAAa,CAAC,MAAM,YAAY;AAClG,WAAK,IAAI,qBAAqB,SAAS,CAAC,UAAU,UAAU,YAAY,GAAG,KAAK;AAAA,IAClF;AAEA,WAAO;AAAA,EACT;AAEA,EAAA8C,UAAS,UAAU,WAAW,WAAY;AACxC,WAAO,KAAK,eAAe,YAAY;AAAA,EACzC;AAGA,EAAAA,UAAS,UAAU,cAAc,SAAU,KAAK;AAC9C,QAAI,CAAC;AAAe,sBAAgBc,KAAI;AACxC,QAAI,UAAU,IAAI,cAAc,GAAG;AACnC,SAAK,eAAe,UAAU;AAE9B,SAAK,eAAe,WAAW,KAAK,eAAe,QAAQ;AAE3D,QAAI5B,KAAI,KAAK,eAAe,OAAO;AACnC,QAAI,UAAU;AAEd,WAAOA,OAAM,MAAM;AACjB,iBAAW,QAAQ,MAAMA,GAAE,IAAI;AAC/B,MAAAA,KAAIA,GAAE;AAAA,IACR;AAEA,SAAK,eAAe,OAAO,MAAM;AAEjC,QAAI,YAAY;AAAI,WAAK,eAAe,OAAO,KAAK,OAAO;AAC3D,SAAK,eAAe,SAAS,QAAQ;AACrC,WAAO;AAAA,EACT;AAGA,MAAI,UAAU;AAEd,WAAS,wBAAwBjB,IAAG;AAClC,QAAIA,MAAK,SAAS;AAEhB,MAAAA,KAAI;AAAA,IACN,OAAO;AAGL,MAAAA;AACA,MAAAA,MAAKA,OAAM;AACX,MAAAA,MAAKA,OAAM;AACX,MAAAA,MAAKA,OAAM;AACX,MAAAA,MAAKA,OAAM;AACX,MAAAA,MAAKA,OAAM;AACX,MAAAA;AAAA,IACF;AAEA,WAAOA;AAAA,EACT;AAIA,WAAS,cAAcA,IAAG,OAAO;AAC/B,QAAIA,MAAK,KAAK,MAAM,WAAW,KAAK,MAAM;AAAO,aAAO;AACxD,QAAI,MAAM;AAAY,aAAO;AAE7B,QAAIA,OAAMA,IAAG;AAEX,UAAI,MAAM,WAAW,MAAM;AAAQ,eAAO,MAAM,OAAO,KAAK,KAAK;AAAA;AAAY,eAAO,MAAM;AAAA,IAC5F;AAGA,QAAIA,KAAI,MAAM;AAAe,YAAM,gBAAgB,wBAAwBA,EAAC;AAC5E,QAAIA,MAAK,MAAM;AAAQ,aAAOA;AAE9B,QAAI,CAAC,MAAM,OAAO;AAChB,YAAM,eAAe;AACrB,aAAO;AAAA,IACT;AAEA,WAAO,MAAM;AAAA,EACf;AAGA,EAAA+B,UAAS,UAAU,OAAO,SAAU/B,IAAG;AACrC,UAAM,QAAQA,EAAC;AACf,IAAAA,KAAI,SAASA,IAAG,EAAE;AAClB,QAAI,QAAQ,KAAK;AACjB,QAAI,QAAQA;AACZ,QAAIA,OAAM;AAAG,YAAM,kBAAkB;AAIrC,QAAIA,OAAM,KAAK,MAAM,kBAAkB,MAAM,kBAAkB,IAAI,MAAM,UAAU,MAAM,gBAAgB,MAAM,SAAS,MAAM,MAAM,QAAQ;AAC1I,YAAM,sBAAsB,MAAM,QAAQ,MAAM,KAAK;AACrD,UAAI,MAAM,WAAW,KAAK,MAAM;AAAO,oBAAY,IAAI;AAAA;AAAO,qBAAa,IAAI;AAC/E,aAAO;AAAA,IACT;AAEA,IAAAA,KAAI,cAAcA,IAAG,KAAK;AAE1B,QAAIA,OAAM,KAAK,MAAM,OAAO;AAC1B,UAAI,MAAM,WAAW;AAAG,oBAAY,IAAI;AACxC,aAAO;AAAA,IACT;AAwBA,QAAI,SAAS,MAAM;AACnB,UAAM,iBAAiB,MAAM;AAE7B,QAAI,MAAM,WAAW,KAAK,MAAM,SAASA,KAAI,MAAM,eAAe;AAChE,eAAS;AACT,YAAM,8BAA8B,MAAM;AAAA,IAC5C;AAIA,QAAI,MAAM,SAAS,MAAM,SAAS;AAChC,eAAS;AACT,YAAM,oBAAoB,MAAM;AAAA,IAClC,WAAW,QAAQ;AACjB,YAAM,SAAS;AACf,YAAM,UAAU;AAChB,YAAM,OAAO;AAEb,UAAI,MAAM,WAAW;AAAG,cAAM,eAAe;AAE7C,WAAK,MAAM,MAAM,aAAa;AAE9B,YAAM,OAAO;AAGb,UAAI,CAAC,MAAM;AAAS,QAAAA,KAAI,cAAc,OAAO,KAAK;AAAA,IACpD;AAEA,QAAI;AACJ,QAAIA,KAAI;AAAG,YAAM,SAASA,IAAG,KAAK;AAAA;AAAO,YAAM;AAE/C,QAAI,QAAQ,MAAM;AAChB,YAAM,eAAe,MAAM,UAAU,MAAM;AAC3C,MAAAA,KAAI;AAAA,IACN,OAAO;AACL,YAAM,UAAUA;AAChB,YAAM,aAAa;AAAA,IACrB;AAEA,QAAI,MAAM,WAAW,GAAG;AAGtB,UAAI,CAAC,MAAM;AAAO,cAAM,eAAe;AAEvC,UAAI,UAAUA,MAAK,MAAM;AAAO,oBAAY,IAAI;AAAA,IAClD;AAEA,QAAI,QAAQ;AAAM,WAAK,KAAK,QAAQ,GAAG;AACvC,WAAO;AAAA,EACT;AAEA,WAAS,WAAW,QAAQ,OAAO;AACjC,UAAM,YAAY;AAClB,QAAI,MAAM;AAAO;AAEjB,QAAI,MAAM,SAAS;AACjB,UAAI,QAAQ,MAAM,QAAQ,IAAI;AAE9B,UAAI,SAAS,MAAM,QAAQ;AACzB,cAAM,OAAO,KAAK,KAAK;AACvB,cAAM,UAAU,MAAM,aAAa,IAAI,MAAM;AAAA,MAC/C;AAAA,IACF;AAEA,UAAM,QAAQ;AAEd,QAAI,MAAM,MAAM;AAId,mBAAa,MAAM;AAAA,IACrB,OAAO;AAEL,YAAM,eAAe;AAErB,UAAI,CAAC,MAAM,iBAAiB;AAC1B,cAAM,kBAAkB;AACxB,sBAAc,MAAM;AAAA,MACtB;AAAA,IACF;AAAA,EACF;AAKA,WAAS,aAAa,QAAQ;AAC5B,QAAI,QAAQ,OAAO;AACnB,UAAM,gBAAgB,MAAM,cAAc,MAAM,eAAe;AAC/D,UAAM,eAAe;AAErB,QAAI,CAAC,MAAM,iBAAiB;AAC1B,YAAM,gBAAgB,MAAM,OAAO;AACnC,YAAM,kBAAkB;AACxB,gBAAU,SAAS,eAAe,MAAM;AAAA,IAC1C;AAAA,EACF;AAEA,WAAS,cAAc,QAAQ;AAC7B,QAAI,QAAQ,OAAO;AACnB,UAAM,iBAAiB,MAAM,WAAW,MAAM,QAAQ,MAAM,KAAK;AAEjE,QAAI,CAAC,MAAM,cAAc,MAAM,UAAU,MAAM,QAAQ;AACrD,aAAO,KAAK,UAAU;AACtB,YAAM,kBAAkB;AAAA,IAC1B;AAQA,UAAM,eAAe,CAAC,MAAM,WAAW,CAAC,MAAM,SAAS,MAAM,UAAU,MAAM;AAC7E,SAAK,MAAM;AAAA,EACb;AAQA,WAAS,cAAc,QAAQ,OAAO;AACpC,QAAI,CAAC,MAAM,aAAa;AACtB,YAAM,cAAc;AACpB,gBAAU,SAAS,gBAAgB,QAAQ,KAAK;AAAA,IAClD;AAAA,EACF;AAEA,WAAS,eAAe,QAAQ,OAAO;AAwBrC,WAAO,CAAC,MAAM,WAAW,CAAC,MAAM,UAAU,MAAM,SAAS,MAAM,iBAAiB,MAAM,WAAW,MAAM,WAAW,IAAI;AACpH,UAAI,MAAM,MAAM;AAChB,YAAM,sBAAsB;AAC5B,aAAO,KAAK,CAAC;AACb,UAAI,QAAQ,MAAM;AAChB;AAAA,IACJ;AAEA,UAAM,cAAc;AAAA,EACtB;AAMA,EAAA+B,UAAS,UAAU,QAAQ,SAAU/B,IAAG;AACtC,mBAAe,MAAM,IAAI,2BAA2B,SAAS,CAAC;AAAA,EAChE;AAEA,EAAA+B,UAAS,UAAU,OAAO,SAAU,MAAM,UAAU;AAClD,QAAIlB,OAAM;AACV,QAAI,QAAQ,KAAK;AAEjB,YAAQ,MAAM,YAAY;AAAA,MACxB,KAAK;AACH,cAAM,QAAQ;AACd;AAAA,MAEF,KAAK;AACH,cAAM,QAAQ,CAAC,MAAM,OAAO,IAAI;AAChC;AAAA,MAEF;AACE,cAAM,MAAM,KAAK,IAAI;AACrB;AAAA,IACJ;AAEA,UAAM,cAAc;AACpB,UAAM,yBAAyB,MAAM,YAAY,QAAQ;AACzD,QAAI,SAAS,CAAC,YAAY,SAAS,QAAQ,UAAU,SAAS,UAAU,UAAU,SAAS,UAAU;AACrG,QAAI,QAAQ,QAAQ,QAAQ;AAC5B,QAAI,MAAM;AAAY,gBAAU,SAAS,KAAK;AAAA;AAAO,MAAAA,KAAI,KAAK,OAAO,KAAK;AAC1E,SAAK,GAAG,UAAU,QAAQ;AAE1B,aAAS,SAAS,UAAU,YAAY;AACtC,YAAM,UAAU;AAEhB,UAAI,aAAaA,MAAK;AACpB,YAAI,cAAc,WAAW,eAAe,OAAO;AACjD,qBAAW,aAAa;AACxB,kBAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAEA,aAAS,QAAQ;AACf,YAAM,OAAO;AACb,WAAK,IAAI;AAAA,IACX;AAMA,QAAI,UAAU,YAAYA,IAAG;AAC7B,SAAK,GAAG,SAAS,OAAO;AACxB,QAAI,YAAY;AAEhB,aAAS,UAAU;AACjB,YAAM,SAAS;AAEf,WAAK,eAAe,SAAS,OAAO;AACpC,WAAK,eAAe,UAAU,QAAQ;AACtC,WAAK,eAAe,SAAS,OAAO;AACpC,WAAK,eAAe,SAAS,OAAO;AACpC,WAAK,eAAe,UAAU,QAAQ;AACtC,MAAAA,KAAI,eAAe,OAAO,KAAK;AAC/B,MAAAA,KAAI,eAAe,OAAO,MAAM;AAChC,MAAAA,KAAI,eAAe,QAAQ,MAAM;AACjC,kBAAY;AAMZ,UAAI,MAAM,eAAe,CAAC,KAAK,kBAAkB,KAAK,eAAe;AAAY,gBAAQ;AAAA,IAC3F;AAEA,IAAAA,KAAI,GAAG,QAAQ,MAAM;AAErB,aAAS,OAAO,OAAO;AACrB,YAAM,QAAQ;AACd,UAAI,MAAM,KAAK,MAAM,KAAK;AAC1B,YAAM,cAAc,GAAG;AAEvB,UAAI,QAAQ,OAAO;AAKjB,aAAK,MAAM,eAAe,KAAK,MAAM,UAAU,QAAQ,MAAM,aAAa,KAAK,QAAQ,MAAM,OAAO,IAAI,MAAM,OAAO,CAAC,WAAW;AAC/H,gBAAM,+BAA+B,MAAM,UAAU;AACrD,gBAAM;AAAA,QACR;AAEA,QAAAA,KAAI,MAAM;AAAA,MACZ;AAAA,IACF;AAIA,aAAS,QAAQ,IAAI;AACnB,YAAM,WAAW,EAAE;AACnB,aAAO;AACP,WAAK,eAAe,SAAS,OAAO;AACpC,UAAI,gBAAgB,MAAM,OAAO,MAAM;AAAG,uBAAe,MAAM,EAAE;AAAA,IACnE;AAGA,oBAAgB,MAAM,SAAS,OAAO;AAEtC,aAAS,UAAU;AACjB,WAAK,eAAe,UAAU,QAAQ;AACtC,aAAO;AAAA,IACT;AAEA,SAAK,KAAK,SAAS,OAAO;AAE1B,aAAS,WAAW;AAClB,YAAM,UAAU;AAChB,WAAK,eAAe,SAAS,OAAO;AACpC,aAAO;AAAA,IACT;AAEA,SAAK,KAAK,UAAU,QAAQ;AAE5B,aAAS,SAAS;AAChB,YAAM,QAAQ;AACd,MAAAA,KAAI,OAAO,IAAI;AAAA,IACjB;AAGA,SAAK,KAAK,QAAQA,IAAG;AAErB,QAAI,CAAC,MAAM,SAAS;AAClB,YAAM,aAAa;AACnB,MAAAA,KAAI,OAAO;AAAA,IACb;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,YAAYA,MAAK;AACxB,WAAO,SAAS,4BAA4B;AAC1C,UAAI,QAAQA,KAAI;AAChB,YAAM,eAAe,MAAM,UAAU;AACrC,UAAI,MAAM;AAAY,cAAM;AAE5B,UAAI,MAAM,eAAe,KAAK,gBAAgBA,MAAK,MAAM,GAAG;AAC1D,cAAM,UAAU;AAChB,aAAKA,IAAG;AAAA,MACV;AAAA,IACF;AAAA,EACF;AAEA,EAAAkB,UAAS,UAAU,SAAS,SAAU,MAAM;AAC1C,QAAI,QAAQ,KAAK;AACjB,QAAI,aAAa;AAAA,MACf,YAAY;AAAA,IACd;AAEA,QAAI,MAAM,eAAe;AAAG,aAAO;AAEnC,QAAI,MAAM,eAAe,GAAG;AAE1B,UAAI,QAAQ,SAAS,MAAM;AAAO,eAAO;AACzC,UAAI,CAAC;AAAM,eAAO,MAAM;AAExB,YAAM,QAAQ;AACd,YAAM,aAAa;AACnB,YAAM,UAAU;AAChB,UAAI;AAAM,aAAK,KAAK,UAAU,MAAM,UAAU;AAC9C,aAAO;AAAA,IACT;AAGA,QAAI,CAAC,MAAM;AAET,UAAI,QAAQ,MAAM;AAClB,UAAI,MAAM,MAAM;AAChB,YAAM,QAAQ;AACd,YAAM,aAAa;AACnB,YAAM,UAAU;AAEhB,eAASvD,KAAI,GAAGA,KAAI,KAAKA,MAAK;AAC5B,cAAMA,EAAC,EAAE,KAAK,UAAU,MAAM;AAAA,UAC5B,YAAY;AAAA,QACd,CAAC;AAAA,MACH;AAEA,aAAO;AAAA,IACT;AAGA,QAAI,QAAQ,QAAQ,MAAM,OAAO,IAAI;AACrC,QAAI,UAAU;AAAI,aAAO;AACzB,UAAM,MAAM,OAAO,OAAO,CAAC;AAC3B,UAAM,cAAc;AACpB,QAAI,MAAM,eAAe;AAAG,YAAM,QAAQ,MAAM,MAAM,CAAC;AACvD,SAAK,KAAK,UAAU,MAAM,UAAU;AACpC,WAAO;AAAA,EACT;AAIA,EAAAuD,UAAS,UAAU,KAAK,SAAU,IAAI,IAAI;AACxC,QAAI,MAAMN,QAAO,UAAU,GAAG,KAAK,MAAM,IAAI,EAAE;AAC/C,QAAI,QAAQ,KAAK;AAEjB,QAAI,OAAO,QAAQ;AAGjB,YAAM,oBAAoB,KAAK,cAAc,UAAU,IAAI;AAE3D,UAAI,MAAM,YAAY;AAAO,aAAK,OAAO;AAAA,IAC3C,WAAW,OAAO,YAAY;AAC5B,UAAI,CAAC,MAAM,cAAc,CAAC,MAAM,mBAAmB;AACjD,cAAM,oBAAoB,MAAM,eAAe;AAC/C,cAAM,UAAU;AAChB,cAAM,kBAAkB;AACxB,cAAM,eAAe,MAAM,QAAQ,MAAM,OAAO;AAEhD,YAAI,MAAM,QAAQ;AAChB,uBAAa,IAAI;AAAA,QACnB,WAAW,CAAC,MAAM,SAAS;AACzB,oBAAU,SAAS,kBAAkB,IAAI;AAAA,QAC3C;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,EAAAM,UAAS,UAAU,cAAcA,UAAS,UAAU;AAEpD,EAAAA,UAAS,UAAU,iBAAiB,SAAU,IAAI,IAAI;AACpD,QAAI,MAAMN,QAAO,UAAU,eAAe,KAAK,MAAM,IAAI,EAAE;AAE3D,QAAI,OAAO,YAAY;AAOrB,gBAAU,SAAS,yBAAyB,IAAI;AAAA,IAClD;AAEA,WAAO;AAAA,EACT;AAEA,EAAAM,UAAS,UAAU,qBAAqB,SAAU,IAAI;AACpD,QAAI,MAAMN,QAAO,UAAU,mBAAmB,MAAM,MAAM,SAAS;AAEnE,QAAI,OAAO,cAAc,OAAO,QAAW;AAOzC,gBAAU,SAAS,yBAAyB,IAAI;AAAA,IAClD;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,wBAAwBJ,OAAM;AACrC,QAAI,QAAQA,MAAK;AACjB,UAAM,oBAAoBA,MAAK,cAAc,UAAU,IAAI;AAE3D,QAAI,MAAM,mBAAmB,CAAC,MAAM,QAAQ;AAG1C,YAAM,UAAU;AAAA,IAClB,WAAWA,MAAK,cAAc,MAAM,IAAI,GAAG;AACzC,MAAAA,MAAK,OAAO;AAAA,IACd;AAAA,EACF;AAEA,WAAS,iBAAiBA,OAAM;AAC9B,UAAM,0BAA0B;AAChC,IAAAA,MAAK,KAAK,CAAC;AAAA,EACb;AAIA,EAAAU,UAAS,UAAU,SAAS,WAAY;AACtC,QAAI,QAAQ,KAAK;AAEjB,QAAI,CAAC,MAAM,SAAS;AAClB,YAAM,QAAQ;AAId,YAAM,UAAU,CAAC,MAAM;AACvB,aAAO,MAAM,KAAK;AAAA,IACpB;AAEA,UAAM,SAAS;AACf,WAAO;AAAA,EACT;AAEA,WAAS,OAAO,QAAQ,OAAO;AAC7B,QAAI,CAAC,MAAM,iBAAiB;AAC1B,YAAM,kBAAkB;AACxB,gBAAU,SAAS,SAAS,QAAQ,KAAK;AAAA,IAC3C;AAAA,EACF;AAEA,WAAS,QAAQ,QAAQ,OAAO;AAC9B,UAAM,UAAU,MAAM,OAAO;AAE7B,QAAI,CAAC,MAAM,SAAS;AAClB,aAAO,KAAK,CAAC;AAAA,IACf;AAEA,UAAM,kBAAkB;AACxB,WAAO,KAAK,QAAQ;AACpB,SAAK,MAAM;AACX,QAAI,MAAM,WAAW,CAAC,MAAM;AAAS,aAAO,KAAK,CAAC;AAAA,EACpD;AAEA,EAAAA,UAAS,UAAU,QAAQ,WAAY;AACrC,UAAM,yBAAyB,KAAK,eAAe,OAAO;AAE1D,QAAI,KAAK,eAAe,YAAY,OAAO;AACzC,YAAM,OAAO;AACb,WAAK,eAAe,UAAU;AAC9B,WAAK,KAAK,OAAO;AAAA,IACnB;AAEA,SAAK,eAAe,SAAS;AAC7B,WAAO;AAAA,EACT;AAEA,WAAS,KAAK,QAAQ;AACpB,QAAI,QAAQ,OAAO;AACnB,UAAM,QAAQ,MAAM,OAAO;AAE3B,WAAO,MAAM,WAAW,OAAO,KAAK,MAAM,MAAM;AAAA,IAChD;AAAA,EACF;AAKA,EAAAA,UAAS,UAAU,OAAO,SAAU,QAAQ;AAC1C,QAAI,QAAQ;AAEZ,QAAI,QAAQ,KAAK;AACjB,QAAI,SAAS;AACb,WAAO,GAAG,OAAO,WAAY;AAC3B,YAAM,aAAa;AAEnB,UAAI,MAAM,WAAW,CAAC,MAAM,OAAO;AACjC,YAAI,QAAQ,MAAM,QAAQ,IAAI;AAC9B,YAAI,SAAS,MAAM;AAAQ,gBAAM,KAAK,KAAK;AAAA,MAC7C;AAEA,YAAM,KAAK,IAAI;AAAA,IACjB,CAAC;AACD,WAAO,GAAG,QAAQ,SAAU,OAAO;AACjC,YAAM,cAAc;AACpB,UAAI,MAAM;AAAS,gBAAQ,MAAM,QAAQ,MAAM,KAAK;AAEpD,UAAI,MAAM,eAAe,UAAU,QAAQ,UAAU;AAAY;AAAA,eAAgB,CAAC,MAAM,eAAe,CAAC,SAAS,CAAC,MAAM;AAAS;AAEjI,UAAI,MAAM,MAAM,KAAK,KAAK;AAE1B,UAAI,CAAC,KAAK;AACR,iBAAS;AACT,eAAO,MAAM;AAAA,MACf;AAAA,IACF,CAAC;AAGD,aAASvD,MAAK,QAAQ;AACpB,UAAI,KAAKA,EAAC,MAAM,UAAa,OAAO,OAAOA,EAAC,MAAM,YAAY;AAC5D,aAAKA,EAAC,IAAI,yBAAS,WAAW,QAAQ;AACpC,iBAAO,SAAS,2BAA2B;AACzC,mBAAO,OAAO,MAAM,EAAE,MAAM,QAAQ,SAAS;AAAA,UAC/C;AAAA,QACF,EAAEA,EAAC;AAAA,MACL;AAAA,IACF;AAGA,aAASwB,KAAI,GAAGA,KAAI,aAAa,QAAQA,MAAK;AAC5C,aAAO,GAAG,aAAaA,EAAC,GAAG,KAAK,KAAK,KAAK,MAAM,aAAaA,EAAC,CAAC,CAAC;AAAA,IAClE;AAIA,SAAK,QAAQ,SAAUA,IAAG;AACxB,YAAM,iBAAiBA,EAAC;AAExB,UAAI,QAAQ;AACV,iBAAS;AACT,eAAO,OAAO;AAAA,MAChB;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,WAAW,YAAY;AAChC,IAAA+B,UAAS,UAAU,OAAO,aAAa,IAAI,WAAY;AACrD,UAAI,sCAAsC,QAAW;AACnD,4CAAoC,MAAM;AAAA,MAC5C;AAEA,aAAO,kCAAkC,IAAI;AAAA,IAC/C;AAAA,EACF;AAEA,SAAO,eAAeA,UAAS,WAAW,yBAAyB;AAAA;AAAA;AAAA;AAAA,IAIjE,YAAY;AAAA,IACZ,KAAK,SAAS,MAAM;AAClB,aAAO,KAAK,eAAe;AAAA,IAC7B;AAAA,EACF,CAAC;AACD,SAAO,eAAeA,UAAS,WAAW,kBAAkB;AAAA;AAAA;AAAA;AAAA,IAI1D,YAAY;AAAA,IACZ,KAAK,SAAS,MAAM;AAClB,aAAO,KAAK,kBAAkB,KAAK,eAAe;AAAA,IACpD;AAAA,EACF,CAAC;AACD,SAAO,eAAeA,UAAS,WAAW,mBAAmB;AAAA;AAAA;AAAA;AAAA,IAI3D,YAAY;AAAA,IACZ,KAAK,SAAS,MAAM;AAClB,aAAO,KAAK,eAAe;AAAA,IAC7B;AAAA,IACA,KAAK,SAAS,IAAI,OAAO;AACvB,UAAI,KAAK,gBAAgB;AACvB,aAAK,eAAe,UAAU;AAAA,MAChC;AAAA,IACF;AAAA,EACF,CAAC;AAED,EAAAA,UAAS,YAAY;AACrB,SAAO,eAAeA,UAAS,WAAW,kBAAkB;AAAA;AAAA;AAAA;AAAA,IAI1D,YAAY;AAAA,IACZ,KAAK,SAAS,MAAM;AAClB,aAAO,KAAK,eAAe;AAAA,IAC7B;AAAA,EACF,CAAC;AAKD,WAAS,SAAS/B,IAAG,OAAO;AAE1B,QAAI,MAAM,WAAW;AAAG,aAAO;AAC/B,QAAI;AACJ,QAAI,MAAM;AAAY,YAAM,MAAM,OAAO,MAAM;AAAA,aAAW,CAACA,MAAKA,MAAK,MAAM,QAAQ;AAEjF,UAAI,MAAM;AAAS,cAAM,MAAM,OAAO,KAAK,EAAE;AAAA,eAAW,MAAM,OAAO,WAAW;AAAG,cAAM,MAAM,OAAO,MAAM;AAAA;AAAO,cAAM,MAAM,OAAO,OAAO,MAAM,MAAM;AACzJ,YAAM,OAAO,MAAM;AAAA,IACrB,OAAO;AAEL,YAAM,MAAM,OAAO,QAAQA,IAAG,MAAM,OAAO;AAAA,IAC7C;AACA,WAAO;AAAA,EACT;AAEA,WAAS,YAAY,QAAQ;AAC3B,QAAI,QAAQ,OAAO;AACnB,UAAM,eAAe,MAAM,UAAU;AAErC,QAAI,CAAC,MAAM,YAAY;AACrB,YAAM,QAAQ;AACd,gBAAU,SAAS,eAAe,OAAO,MAAM;AAAA,IACjD;AAAA,EACF;AAEA,WAAS,cAAc,OAAO,QAAQ;AACpC,UAAM,iBAAiB,MAAM,YAAY,MAAM,MAAM;AAErD,QAAI,CAAC,MAAM,cAAc,MAAM,WAAW,GAAG;AAC3C,YAAM,aAAa;AACnB,aAAO,WAAW;AAClB,aAAO,KAAK,KAAK;AAEjB,UAAI,MAAM,aAAa;AAGrB,YAAI,SAAS,OAAO;AAEpB,YAAI,CAAC,UAAU,OAAO,eAAe,OAAO,UAAU;AACpD,iBAAO,QAAQ;AAAA,QACjB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO,WAAW,YAAY;AAChC,IAAA+B,UAAS,OAAO,SAAU,UAAU,MAAM;AACxC,UAAI3C,UAAS,QAAW;AACtB,QAAAA,QAAO,MAAM;AAAA,MACf;AAEA,aAAOA,MAAK2C,WAAU,UAAU,IAAI;AAAA,IACtC;AAAA,EACF;AAEA,WAAS,QAAQ,IAAIpC,IAAG;AACtB,aAASnB,KAAI,GAAGqD,KAAI,GAAG,QAAQrD,KAAIqD,IAAGrD,MAAK;AACzC,UAAI,GAAGA,EAAC,MAAMmB;AAAG,eAAOnB;AAAA,IAC1B;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,IAAI,YAAY,CAAC;AAAjB,IACI,aAAa;AACjB,SAAS,QAAQ;AACf,MAAI;AAAY,WAAO;AACvB,eAAa;AACb,cAAYsE;AAEZ,MAAI,iBAAiB,MAAM,EAAE,OACzB,6BAA6B,eAAe,4BAC5C,wBAAwB,eAAe,uBACvC,qCAAqC,eAAe,oCACpD,8BAA8B,eAAe;AAEjD,MAAItB,UAAS,MAAM;AAEnB,QAAM,EAAEsB,YAAWtB,OAAM;AAEzB,WAAS,eAAe,IAAI,MAAM;AAChC,QAAI,KAAK,KAAK;AACd,OAAG,eAAe;AAClB,QAAI,KAAK,GAAG;AAEZ,QAAI,OAAO,MAAM;AACf,aAAO,KAAK,KAAK,SAAS,IAAI,sBAAsB,CAAC;AAAA,IACvD;AAEA,OAAG,aAAa;AAChB,OAAG,UAAU;AACb,QAAI,QAAQ;AACV,WAAK,KAAK,IAAI;AAChB,OAAG,EAAE;AACL,QAAI,KAAK,KAAK;AACd,OAAG,UAAU;AAEb,QAAI,GAAG,gBAAgB,GAAG,SAAS,GAAG,eAAe;AACnD,WAAK,MAAM,GAAG,aAAa;AAAA,IAC7B;AAAA,EACF;AAEA,WAASsB,WAAU,SAAS;AAC1B,QAAI,EAAE,gBAAgBA;AAAY,aAAO,IAAIA,WAAU,OAAO;AAC9D,IAAAtB,QAAO,KAAK,MAAM,OAAO;AACzB,SAAK,kBAAkB;AAAA,MACrB,gBAAgB,eAAe,KAAK,IAAI;AAAA,MACxC,eAAe;AAAA,MACf,cAAc;AAAA,MACd,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,eAAe;AAAA,IACjB;AAEA,SAAK,eAAe,eAAe;AAInC,SAAK,eAAe,OAAO;AAE3B,QAAI,SAAS;AACX,UAAI,OAAO,QAAQ,cAAc;AAAY,aAAK,aAAa,QAAQ;AACvE,UAAI,OAAO,QAAQ,UAAU;AAAY,aAAK,SAAS,QAAQ;AAAA,IACjE;AAGA,SAAK,GAAG,aAAa,SAAS;AAAA,EAChC;AAEA,WAAS,YAAY;AACnB,QAAI,QAAQ;AAEZ,QAAI,OAAO,KAAK,WAAW,cAAc,CAAC,KAAK,eAAe,WAAW;AACvE,WAAK,OAAO,SAAU,IAAI,MAAM;AAC9B,aAAK,OAAO,IAAI,IAAI;AAAA,MACtB,CAAC;AAAA,IACH,OAAO;AACL,WAAK,MAAM,MAAM,IAAI;AAAA,IACvB;AAAA,EACF;AAEA,EAAAsB,WAAU,UAAU,OAAO,SAAU,OAAO,UAAU;AACpD,SAAK,gBAAgB,gBAAgB;AACrC,WAAOtB,QAAO,UAAU,KAAK,KAAK,MAAM,OAAO,QAAQ;AAAA,EACzD;AAYA,EAAAsB,WAAU,UAAU,aAAa,SAAU,OAAO,UAAU,IAAI;AAC9D,OAAG,IAAI,2BAA2B,cAAc,CAAC;AAAA,EACnD;AAEA,EAAAA,WAAU,UAAU,SAAS,SAAU,OAAO,UAAU,IAAI;AAC1D,QAAI,KAAK,KAAK;AACd,OAAG,UAAU;AACb,OAAG,aAAa;AAChB,OAAG,gBAAgB;AAEnB,QAAI,CAAC,GAAG,cAAc;AACpB,UAAI,KAAK,KAAK;AACd,UAAI,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,SAAS,GAAG;AAAe,aAAK,MAAM,GAAG,aAAa;AAAA,IACtG;AAAA,EACF;AAKA,EAAAA,WAAU,UAAU,QAAQ,SAAU9C,IAAG;AACvC,QAAI,KAAK,KAAK;AAEd,QAAI,GAAG,eAAe,QAAQ,CAAC,GAAG,cAAc;AAC9C,SAAG,eAAe;AAElB,WAAK,WAAW,GAAG,YAAY,GAAG,eAAe,GAAG,cAAc;AAAA,IACpE,OAAO;AAGL,SAAG,gBAAgB;AAAA,IACrB;AAAA,EACF;AAEA,EAAA8C,WAAU,UAAU,WAAW,SAAU,KAAK,IAAI;AAChD,IAAAtB,QAAO,UAAU,SAAS,KAAK,MAAM,KAAK,SAAU,MAAM;AACxD,SAAG,IAAI;AAAA,IACT,CAAC;AAAA,EACH;AAEA,WAAS,KAAK,QAAQ,IAAI,MAAM;AAC9B,QAAI;AAAI,aAAO,OAAO,KAAK,SAAS,EAAE;AACtC,QAAI,QAAQ;AACV,aAAO,KAAK,IAAI;AAIlB,QAAI,OAAO,eAAe;AAAQ,YAAM,IAAI,4BAA4B;AACxE,QAAI,OAAO,gBAAgB;AAAc,YAAM,IAAI,mCAAmC;AACtF,WAAO,OAAO,KAAK,IAAI;AAAA,EACzB;AAEA,SAAO;AACT;AAEA,IAAI,YAAY,CAAC;AAAjB,IACI,aAAa;AACjB,SAAS,QAAQ;AACf,MAAI;AAAY,WAAO;AACvB,eAAa;AACb,cAAYuB;AAEZ,MAAID,aAAY,MAAM;AAEtB,QAAM,EAAEC,cAAaD,UAAS;AAE9B,WAASC,aAAY,SAAS;AAC5B,QAAI,EAAE,gBAAgBA;AAAc,aAAO,IAAIA,aAAY,OAAO;AAClE,IAAAD,WAAU,KAAK,MAAM,OAAO;AAAA,EAC9B;AAEA,EAAAC,aAAY,UAAU,aAAa,SAAU,OAAO,UAAU,IAAI;AAChE,OAAG,MAAM,KAAK;AAAA,EAChB;AAEA,SAAO;AACT;AAEA,IAAIC,WAAU,CAAC;AAAf,IACIC,YAAW;AACf,SAASC,OAAM;AACb,MAAID;AAAU,WAAOD;AACrB,EAAAC,YAAW;AACX,MAAI;AAEJ,WAASjB,MAAK,UAAU;AACtB,QAAI,SAAS;AACb,WAAO,WAAY;AACjB,UAAI;AAAQ;AACZ,eAAS;AACT,eAAS,MAAM,QAAQ,SAAS;AAAA,IAClC;AAAA,EACF;AAEA,MAAI,iBAAiB,MAAM,EAAE,OACzB,mBAAmB,eAAe,kBAClC,uBAAuB,eAAe;AAE1C,WAAS,KAAK,KAAK;AAEjB,QAAI;AAAK,YAAM;AAAA,EACjB;AAEA,WAAS,UAAU,QAAQ;AACzB,WAAO,OAAO,aAAa,OAAO,OAAO,UAAU;AAAA,EACrD;AAEA,WAAS,UAAU,QAAQ,SAAS,SAAS,UAAU;AACrD,eAAWA,MAAK,QAAQ;AACxB,QAAI,SAAS;AACb,WAAO,GAAG,SAAS,WAAY;AAC7B,eAAS;AAAA,IACX,CAAC;AACD,QAAI,QAAQ;AAAW,YAAM,MAAM;AACnC,QAAI,QAAQ;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,IACZ,GAAG,SAAU,KAAK;AAChB,UAAI;AAAK,eAAO,SAAS,GAAG;AAC5B,eAAS;AACT,eAAS;AAAA,IACX,CAAC;AACD,QAAI,YAAY;AAChB,WAAO,SAAU,KAAK;AACpB,UAAI;AAAQ;AACZ,UAAI;AAAW;AACf,kBAAY;AAEZ,UAAI,UAAU,MAAM;AAAG,eAAO,OAAO,MAAM;AAC3C,UAAI,OAAO,OAAO,YAAY;AAAY,eAAO,OAAO,QAAQ;AAChE,eAAS,OAAO,IAAI,qBAAqB,MAAM,CAAC;AAAA,IAClD;AAAA,EACF;AAEA,WAAS,KAAK,IAAI;AAChB,OAAG;AAAA,EACL;AAEA,WAAS,KAAK5C,OAAM,IAAI;AACtB,WAAOA,MAAK,KAAK,EAAE;AAAA,EACrB;AAEA,WAAS,YAAY,SAAS;AAC5B,QAAI,CAAC,QAAQ;AAAQ,aAAO;AAC5B,QAAI,OAAO,QAAQ,QAAQ,SAAS,CAAC,MAAM;AAAY,aAAO;AAC9D,WAAO,QAAQ,IAAI;AAAA,EACrB;AAEA,WAAS+D,YAAW;AAClB,aAAS,OAAO,UAAU,QAAQ,UAAU,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AAC1F,cAAQ,IAAI,IAAI,UAAU,IAAI;AAAA,IAChC;AAEA,QAAI,WAAW,YAAY,OAAO;AAClC,QAAI,MAAM,QAAQ,QAAQ,CAAC,CAAC;AAAG,gBAAU,QAAQ,CAAC;AAElD,QAAI,QAAQ,SAAS,GAAG;AACtB,YAAM,IAAI,iBAAiB,SAAS;AAAA,IACtC;AAEA,QAAI;AACJ,QAAI,WAAW,QAAQ,IAAI,SAAU,QAAQ3E,IAAG;AAC9C,UAAI,UAAUA,KAAI,QAAQ,SAAS;AACnC,UAAI,UAAUA,KAAI;AAClB,aAAO,UAAU,QAAQ,SAAS,SAAS,SAAU,KAAK;AACxD,YAAI,CAAC;AAAO,kBAAQ;AACpB,YAAI;AAAK,mBAAS,QAAQ,IAAI;AAC9B,YAAI;AAAS;AACb,iBAAS,QAAQ,IAAI;AACrB,iBAAS,KAAK;AAAA,MAChB,CAAC;AAAA,IACH,CAAC;AACD,WAAO,QAAQ,OAAO,IAAI;AAAA,EAC5B;AAEA,EAAAwE,WAAUG;AACV,SAAOH;AACT;;;AOl5KA;AAGA,SAASI,GAAEA,IAAEC,IAAE;AAAC,MAAG,QAAMD;AAAE,UAAM,IAAI,UAAU,yCAAyC;AAAE,WAAQE,KAAE,OAAOF,EAAC,GAAEG,KAAE,GAAEA,KAAE,UAAU,QAAOA,MAAI;AAAC,QAAIC,KAAE,UAAUD,EAAC;AAAE,QAAG,QAAMC;AAAE,eAAQC,KAAE,OAAO,KAAK,OAAOD,EAAC,CAAC,GAAEE,KAAE,GAAEC,KAAEF,GAAE,QAAOC,KAAEC,IAAED,MAAI;AAAC,YAAIE,KAAEH,GAAEC,EAAC,GAAEG,KAAE,OAAO,yBAAyBL,IAAEI,EAAC;AAAE,mBAASC,MAAGA,GAAE,eAAaP,GAAEM,EAAC,IAAEJ,GAAEI,EAAC;AAAA,MAAG;AAAA,EAAC;AAAC,SAAON;AAAC;AAAC,IAAID,KAAE,EAAC,QAAOD,IAAE,UAAS,WAAU;AAAC,SAAO,UAAQ,OAAO,eAAe,QAAO,UAAS,EAAC,YAAW,OAAG,cAAa,MAAG,UAAS,MAAG,OAAMA,GAAC,CAAC;AAAE,EAAC;AAAE,IAAIE;AAAJ,IAAMQ,OAAI,OAAO,UAAU;AAA3B,IAAoCC,OAAI,SAAST,IAAE;AAAC,MAAID,KAAES,KAAI,KAAKR,EAAC,GAAEC,KAAE,yBAAuBF;AAAE,SAAOE,OAAIA,KAAE,qBAAmBF,MAAG,SAAOC,MAAG,YAAU,OAAOA,MAAG,YAAU,OAAOA,GAAE,UAAQA,GAAE,UAAQ,KAAG,wBAAsBQ,KAAI,KAAKR,GAAE,MAAM,IAAGC;AAAC;AAAE,IAAG,CAAC,OAAO,MAAK;AAAK,EAAAA,KAAE,OAAO,UAAU,gBAAeC,KAAE,OAAO,UAAU,UAASI,KAAEG,MAAIL,KAAE,OAAO,UAAU,sBAAqBC,KAAE,CAACD,GAAE,KAAK,EAAC,UAAS,KAAI,GAAE,UAAU,GAAED,KAAEC,GAAE,KAAM,WAAU;AAAA,EAAC,GAAG,WAAW,GAAEM,KAAE,CAAC,YAAW,kBAAiB,WAAU,kBAAiB,iBAAgB,wBAAuB,aAAa,GAAEC,KAAE,SAASX,IAAE;AAAC,QAAIF,KAAEE,GAAE;AAAY,WAAOF,MAAGA,GAAE,cAAYE;AAAA,EAAC,GAAEY,KAAE,EAAC,mBAAkB,MAAG,UAAS,MAAG,WAAU,MAAG,QAAO,MAAG,eAAc,MAAG,SAAQ,MAAG,cAAa,MAAG,aAAY,MAAG,wBAAuB,MAAG,uBAAsB,MAAG,cAAa,MAAG,aAAY,MAAG,cAAa,MAAG,cAAa,MAAG,SAAQ,MAAG,aAAY,MAAG,YAAW,MAAG,UAAS,MAAG,UAAS,MAAG,OAAM,MAAG,kBAAiB,MAAG,oBAAmB,MAAG,SAAQ,KAAE,GAAEC,KAAE,WAAU;AAAC,QAAG,eAAa,OAAO;AAAO,aAAO;AAAG,aAAQb,MAAK;AAAO,UAAG;AAAC,YAAG,CAACY,GAAE,MAAIZ,EAAC,KAAGC,GAAE,KAAK,QAAOD,EAAC,KAAG,SAAO,OAAOA,EAAC,KAAG,YAAU,OAAO,OAAOA,EAAC;AAAE,cAAG;AAAC,YAAAW,GAAE,OAAOX,EAAC,CAAC;AAAA,UAAE,SAAOA,IAAE;AAAC,mBAAO;AAAA,UAAE;AAAA,MAAC,SAAOA,IAAE;AAAC,eAAO;AAAA,MAAE;AAAC,WAAO;AAAA,EAAE,EAAE;AAAE,EAAAA,KAAE,SAASA,IAAE;AAAC,QAAIF,KAAE,SAAOE,MAAG,YAAU,OAAOA,IAAED,KAAE,wBAAsBG,GAAE,KAAKF,EAAC,GAAEI,KAAEE,GAAEN,EAAC,GAAEY,KAAEd,MAAG,sBAAoBI,GAAE,KAAKF,EAAC,GAAEc,KAAE,CAAC;AAAE,QAAG,CAAChB,MAAG,CAACC,MAAG,CAACK;AAAE,YAAM,IAAI,UAAU,oCAAoC;AAAE,QAAIG,KAAEJ,MAAGJ;AAAE,QAAGa,MAAGZ,GAAE,SAAO,KAAG,CAACC,GAAE,KAAKD,IAAE,CAAC;AAAE,eAAQe,KAAE,GAAEA,KAAEf,GAAE,QAAO,EAAEe;AAAE,QAAAD,GAAE,KAAK,OAAOC,EAAC,CAAC;AAAE,QAAGX,MAAGJ,GAAE,SAAO;AAAE,eAAQgB,KAAE,GAAEA,KAAEhB,GAAE,QAAO,EAAEgB;AAAE,QAAAF,GAAE,KAAK,OAAOE,EAAC,CAAC;AAAA;AAAO,eAAQC,MAAKjB;AAAE,QAAAO,MAAG,gBAAcU,MAAG,CAAChB,GAAE,KAAKD,IAAEiB,EAAC,KAAGH,GAAE,KAAK,OAAOG,EAAC,CAAC;AAAE,QAAGZ;AAAE,eAAQa,KAAE,SAASlB,IAAE;AAAC,YAAG,eAAa,OAAO,UAAQ,CAACa;AAAE,iBAAOF,GAAEX,EAAC;AAAE,YAAG;AAAC,iBAAOW,GAAEX,EAAC;AAAA,QAAC,SAAOA,KAAE;AAAC,iBAAO;AAAA,QAAE;AAAA,MAAC,EAAEA,EAAC,GAAEmB,KAAE,GAAEA,KAAET,GAAE,QAAO,EAAES;AAAE,QAAAD,MAAG,kBAAgBR,GAAES,EAAC,KAAG,CAAClB,GAAE,KAAKD,IAAEU,GAAES,EAAC,CAAC,KAAGL,GAAE,KAAKJ,GAAES,EAAC,CAAC;AAAE,WAAOL;AAAA,EAAC;AAAE;AAAvhD,IAAAb;AAAkC,IAAAC;AAA4B,IAAAI;AAAM,IAAAF;AAAwC,IAAAC;AAAsC,IAAAF;AAAqC,IAAAO;AAAgH,IAAAC;AAA6D,IAAAC;AAAuW,IAAAC;AAA60B,IAAIC,KAAEd;AAAN,IAAQO,KAAE,MAAM,UAAU;AAA1B,IAAgCQ,KAAEN;AAAlC,IAAsCO,KAAE,OAAO;AAA/C,IAAoDC,KAAED,KAAE,SAAShB,IAAE;AAAC,SAAOgB,GAAEhB,EAAC;AAAC,IAAEc;AAAjF,IAAmFI,KAAE,OAAO;AAAKD,GAAE,OAAK,WAAU;AAAC,SAAO,OAAK,WAAU;AAAC,QAAIjB,KAAE,OAAO,KAAK,SAAS;AAAE,WAAOA,MAAGA,GAAE,WAAS,UAAU;AAAA,EAAM,EAAE,GAAE,CAAC,MAAI,OAAO,OAAK,SAASA,IAAE;AAAC,WAAOe,GAAEf,EAAC,IAAEkB,GAAEX,GAAE,KAAKP,EAAC,CAAC,IAAEkB,GAAElB,EAAC;AAAA,EAAC,KAAG,OAAO,OAAKiB;AAAE,SAAO,OAAO,QAAMA;AAAC;AAAE,IAAIE,KAAEF;AAAE,IAAI,MAAIE;AAAR,IAAU,MAAI,cAAY,OAAO,UAAQ,YAAU,OAAO,OAAO,KAAK;AAAtE,IAAwEC,OAAI,OAAO,UAAU;AAA7F,IAAsGC,OAAI,MAAM,UAAU;AAA1H,IAAiI,MAAI,OAAO;AAA5I,IAA2JC,OAAI,OAAK,WAAU;AAAC,MAAItB,KAAE,CAAC;AAAE,MAAG;AAAC,aAAQD,MAAK,IAAIC,IAAE,KAAI,EAAC,YAAW,OAAG,OAAMA,GAAC,CAAC,GAAEA;AAAE,aAAO;AAAG,WAAOA,GAAE,MAAIA;AAAA,EAAC,SAAOA,IAAE;AAAC,WAAO;AAAA,EAAE;AAAC,EAAE;AAA5R,IAA8RuB,OAAI,SAASvB,IAAED,IAAED,IAAEG,IAAE;AAAC,MAAIG;AAAE,GAAC,EAAEL,MAAKC,OAAI,cAAY,QAAOI,KAAEH,OAAI,wBAAsBmB,KAAI,KAAKhB,EAAC,KAAGH,GAAE,OAAKqB,OAAI,IAAItB,IAAED,IAAE,EAAC,cAAa,MAAG,YAAW,OAAG,OAAMD,IAAE,UAAS,KAAE,CAAC,IAAEE,GAAED,EAAC,IAAED;AAAG;AAAld,IAAod0B,OAAI,SAASxB,IAAEE,IAAE;AAAC,MAAIC,KAAE,UAAU,SAAO,IAAE,UAAU,CAAC,IAAE,CAAC,GAAEG,KAAE,IAAIJ,EAAC;AAAE,UAAMI,KAAEe,KAAI,KAAKf,IAAE,OAAO,sBAAsBJ,EAAC,CAAC;AAAG,WAAQQ,KAAE,GAAEA,KAAEJ,GAAE,QAAOI,MAAG;AAAE,IAAAa,KAAIvB,IAAEM,GAAEI,EAAC,GAAER,GAAEI,GAAEI,EAAC,CAAC,GAAEP,GAAEG,GAAEI,EAAC,CAAC,CAAC;AAAE;AAAEc,KAAI,sBAAoB,CAAC,CAACF;AAAI,IAAIG,OAAID;AAAI,IAAIE,OAAI,WAAU;AAAC,MAAG,cAAY,OAAO,UAAQ,cAAY,OAAO,OAAO;AAAsB,WAAO;AAAG,MAAG,YAAU,OAAO,OAAO;AAAS,WAAO;AAAG,MAAI1B,KAAE,CAAC,GAAEF,KAAE,OAAO,MAAM,GAAEC,KAAE,OAAOD,EAAC;AAAE,MAAG,YAAU,OAAOA;AAAE,WAAO;AAAG,MAAG,sBAAoB,OAAO,UAAU,SAAS,KAAKA,EAAC;AAAE,WAAO;AAAG,MAAG,sBAAoB,OAAO,UAAU,SAAS,KAAKC,EAAC;AAAE,WAAO;AAAG,OAAID,MAAKE,GAAEF,EAAC,IAAE,IAAGE;AAAE,WAAO;AAAG,MAAG,cAAY,OAAO,OAAO,QAAM,MAAI,OAAO,KAAKA,EAAC,EAAE;AAAO,WAAO;AAAG,MAAG,cAAY,OAAO,OAAO,uBAAqB,MAAI,OAAO,oBAAoBA,EAAC,EAAE;AAAO,WAAO;AAAG,MAAIE,KAAE,OAAO,sBAAsBF,EAAC;AAAE,MAAG,MAAIE,GAAE,UAAQA,GAAE,CAAC,MAAIJ;AAAE,WAAO;AAAG,MAAG,CAAC,OAAO,UAAU,qBAAqB,KAAKE,IAAEF,EAAC;AAAE,WAAO;AAAG,MAAG,cAAY,OAAO,OAAO,0BAAyB;AAAC,QAAIG,KAAE,OAAO,yBAAyBD,IAAEF,EAAC;AAAE,QAAG,OAAKG,GAAE,SAAO,SAAKA,GAAE;AAAW,aAAO;AAAA,EAAE;AAAC,SAAO;AAAE;AAAE,IAAI0B,QAAK,eAAa,OAAO,aAAW,aAAW,eAAa,OAAO,OAAK,OAAK,QAAQ;AAAzF,IAAgG,MAAID;AAApG,IAAwG,MAAI,WAAU;AAAC,SAAO,cAAY,OAAOC,SAAM,cAAY,OAAO,WAAS,YAAU,OAAOA,KAAI,KAAK,MAAI,YAAU,OAAO,OAAO,KAAK,KAAG,IAAI;AAAI;AAAE,IAAIC,OAAI;AAAR,IAA0D,MAAI,MAAM,UAAU;AAA9E,IAAoFC,OAAI,OAAO,UAAU;AAAzG,IAAkH,MAAI,SAAS9B,IAAE;AAAC,MAAID,KAAE;AAAK,MAAG,cAAY,OAAOA,MAAG,wBAAsB+B,KAAI,KAAK/B,EAAC;AAAE,UAAM,IAAI,UAAU8B,OAAI9B,EAAC;AAAE,WAAQc,IAAEP,KAAE,IAAI,KAAK,WAAU,CAAC,GAAEC,KAAE,WAAU;AAAC,QAAG,gBAAgBM,IAAE;AAAC,UAAIZ,KAAEF,GAAE,MAAM,MAAKO,GAAE,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC;AAAE,aAAO,OAAOL,EAAC,MAAIA,KAAEA,KAAE;AAAA,IAAI;AAAC,WAAOF,GAAE,MAAMC,IAAEM,GAAE,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC;AAAA,EAAC,GAAEF,KAAE,KAAK,IAAI,GAAEL,GAAE,SAAOO,GAAE,MAAM,GAAED,KAAE,CAAC,GAAEM,KAAE,GAAEA,KAAEP,IAAEO;AAAI,IAAAN,GAAE,KAAK,MAAIM,EAAC;AAAE,MAAGE,KAAE,SAAS,UAAS,sBAAoBR,GAAE,KAAK,GAAG,IAAE,2CAA2C,EAAEE,EAAC,GAAER,GAAE,WAAU;AAAC,QAAIgB,KAAE,WAAU;AAAA,IAAC;AAAE,IAAAA,GAAE,YAAUhB,GAAE,WAAUc,GAAE,YAAU,IAAIE,MAAEA,GAAE,YAAU;AAAA,EAAK;AAAC,SAAOF;AAAC;AAAjrB,IAAmrB,MAAI,SAAS,UAAU,QAAM;AAAI,IAAI,MAAI;AAAR,IAAkB,MAAI,OAAO;AAAyB,IAAG;AAAI,MAAG;AAAC,QAAI,CAAC,GAAE,EAAE;AAAA,EAAE,SAAOb,IAAE;AAAC,UAAI;AAAA,EAAK;AAAC,IAAI,MAAI,WAAU;AAAC,QAAM,IAAI;AAAG;AAAhC,IAAkC,MAAI,MAAI,WAAU;AAAC,MAAG;AAAC,WAAO,UAAU,QAAO;AAAA,EAAG,SAAOA,IAAE;AAAC,QAAG;AAAC,aAAO,IAAI,WAAU,QAAQ,EAAE;AAAA,IAAG,SAAOA,KAAE;AAAC,aAAO;AAAA,IAAG;AAAA,EAAC;AAAC,EAAE,IAAE;AAA9J,IAAkK+B,OAAI,IAAI;AAA1K,IAA4KC,OAAI,OAAO,kBAAgB,SAAShC,IAAE;AAAC,SAAOA,GAAE;AAAS;AAArO,IAAuOiC,KAAE,eAAa,OAAO,aAAW,SAAOD,KAAI,UAAU;AAA7R,IAA+R,MAAI,EAAC,WAAU,OAAM,iBAAgB,eAAa,OAAO,cAAY,SAAO,aAAY,0BAAyB,eAAa,OAAO,cAAY,SAAO,YAAY,WAAU,4BAA2BD,OAAIC,KAAI,CAAC,EAAE,OAAO,QAAQ,EAAE,CAAC,IAAE,QAAO,oBAAmB,MAAM,WAAU,wBAAuB,MAAM,UAAU,SAAQ,wBAAuB,MAAM,UAAU,SAAQ,qBAAoB,MAAM,UAAU,MAAK,uBAAsB,MAAM,UAAU,QAAO,oCAAmC,QAAO,mBAAkB,QAAO,4BAA2B,QAAO,oBAAmB,QAAO,4BAA2B,QAAO,6BAA4B,QAAO,4BAA2B,QAAO,aAAY,eAAa,OAAO,UAAQ,SAAO,SAAQ,aAAY,SAAQ,sBAAqB,QAAQ,WAAU,cAAa,eAAa,OAAO,WAAS,SAAO,UAAS,uBAAsB,eAAa,OAAO,WAAS,SAAO,SAAS,WAAU,UAAS,MAAK,mBAAkB,KAAK,WAAU,eAAc,WAAU,wBAAuB,oBAAmB,eAAc,WAAU,wBAAuB,oBAAmB,WAAU,OAAM,oBAAmB,MAAM,WAAU,UAAS,MAAK,eAAc,WAAU,wBAAuB,UAAU,WAAU,kBAAiB,eAAa,OAAO,eAAa,SAAO,cAAa,2BAA0B,eAAa,OAAO,eAAa,SAAO,aAAa,WAAU,kBAAiB,eAAa,OAAO,eAAa,SAAO,cAAa,2BAA0B,eAAa,OAAO,eAAa,SAAO,aAAa,WAAU,cAAa,UAAS,uBAAsB,SAAS,WAAU,eAAc,QAAO,uBAAsB,QAAO,wBAAuB,QAAO,eAAc,eAAa,OAAO,YAAU,SAAO,WAAU,wBAAuB,eAAa,OAAO,YAAU,SAAO,UAAU,WAAU,gBAAe,eAAa,OAAO,aAAW,SAAO,YAAW,yBAAwB,eAAa,OAAO,aAAW,SAAO,UAAU,WAAU,gBAAe,eAAa,OAAO,aAAW,SAAO,YAAW,yBAAwB,eAAa,OAAO,aAAW,SAAO,WAAW,WAAU,cAAa,UAAS,WAAU,OAAM,uBAAsBD,OAAIC,KAAIA,KAAI,CAAC,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAC,IAAE,QAAO,UAAS,YAAU,OAAO,OAAK,OAAK,QAAO,eAAc,YAAU,OAAO,OAAK,KAAK,QAAM,QAAO,SAAQ,eAAa,OAAO,MAAI,SAAO,KAAI,0BAAyB,eAAa,OAAO,OAAKD,OAAIC,MAAK,oBAAI,OAAK,OAAO,QAAQ,EAAE,CAAC,IAAE,QAAO,kBAAiB,eAAa,OAAO,MAAI,SAAO,IAAI,WAAU,UAAS,MAAK,YAAW,QAAO,qBAAoB,OAAO,WAAU,YAAW,QAAO,qBAAoB,OAAO,WAAU,uBAAsB,OAAO,UAAU,UAAS,sBAAqB,OAAO,UAAU,SAAQ,gBAAe,YAAW,cAAa,UAAS,aAAY,eAAa,OAAO,UAAQ,SAAO,SAAQ,sBAAqB,eAAa,OAAO,UAAQ,SAAO,QAAQ,WAAU,uBAAsB,eAAa,OAAO,UAAQ,SAAO,QAAQ,UAAU,MAAK,iBAAgB,eAAa,OAAO,UAAQ,SAAO,QAAQ,KAAI,oBAAmB,eAAa,OAAO,UAAQ,SAAO,QAAQ,QAAO,qBAAoB,eAAa,OAAO,UAAQ,SAAO,QAAQ,SAAQ,WAAU,eAAa,OAAO,QAAM,SAAO,OAAM,gBAAe,YAAW,yBAAwB,WAAW,WAAU,oBAAmB,gBAAe,6BAA4B,eAAe,WAAU,aAAY,eAAa,OAAO,UAAQ,SAAO,SAAQ,YAAW,QAAO,qBAAoB,OAAO,WAAU,SAAQ,eAAa,OAAO,MAAI,SAAO,KAAI,0BAAyB,eAAa,OAAO,OAAKD,OAAIC,MAAK,oBAAI,OAAK,OAAO,QAAQ,EAAE,CAAC,IAAE,QAAO,kBAAiB,eAAa,OAAO,MAAI,SAAO,IAAI,WAAU,uBAAsB,eAAa,OAAO,oBAAkB,SAAO,mBAAkB,gCAA+B,eAAa,OAAO,oBAAkB,SAAO,kBAAkB,WAAU,YAAW,QAAO,6BAA4BD,OAAIC,KAAI,GAAG,OAAO,QAAQ,EAAE,CAAC,IAAE,QAAO,qBAAoB,OAAO,WAAU,YAAWD,OAAI,SAAO,QAAO,qBAAoBA,OAAI,OAAO,YAAU,QAAO,iBAAgB,aAAY,0BAAyB,YAAY,WAAU,oBAAmB,KAAI,gBAAeE,IAAE,yBAAwBA,KAAEA,GAAE,YAAU,QAAO,eAAc,KAAI,wBAAuB,IAAI,WAAU,gBAAe,eAAa,OAAO,aAAW,SAAO,YAAW,yBAAwB,eAAa,OAAO,aAAW,SAAO,WAAW,WAAU,uBAAsB,eAAa,OAAO,oBAAkB,SAAO,mBAAkB,gCAA+B,eAAa,OAAO,oBAAkB,SAAO,kBAAkB,WAAU,iBAAgB,eAAa,OAAO,cAAY,SAAO,aAAY,0BAAyB,eAAa,OAAO,cAAY,SAAO,YAAY,WAAU,iBAAgB,eAAa,OAAO,cAAY,SAAO,aAAY,0BAAyB,eAAa,OAAO,cAAY,SAAO,YAAY,WAAU,cAAa,UAAS,uBAAsB,SAAS,WAAU,aAAY,eAAa,OAAO,UAAQ,SAAO,SAAQ,sBAAqB,eAAa,OAAO,UAAQ,SAAO,QAAQ,WAAU,aAAY,eAAa,OAAO,UAAQ,SAAO,SAAQ,sBAAqB,eAAa,OAAO,UAAQ,SAAO,QAAQ,UAAS;AAAj9K,IAAm9KC,OAAI,IAAI,KAAK,SAAS,MAAK,OAAO,UAAU,OAAO;AAAtgL,IAAwgLC,KAAE;AAA1gL,IAA+mL,MAAI;AAAnnL,IAA8nLC,KAAE,SAASpC,IAAE;AAAC,MAAID,KAAE,CAAC;AAAE,SAAOmC,KAAIlC,IAAEmC,IAAG,SAASnC,KAAEG,IAAEF,IAAEC,IAAE;AAAC,IAAAH,GAAEA,GAAE,MAAM,IAAEE,KAAEiC,KAAIhC,IAAE,KAAI,IAAI,IAAEC,MAAGH;AAAA,EAAE,CAAE,GAAED;AAAC;AAA/tL,IAAiuLsC,KAAE,SAASrC,IAAED,IAAE;AAAC,MAAG,EAAEC,MAAK;AAAK,UAAM,IAAI,YAAY,eAAaA,KAAE,kBAAkB;AAAE,MAAG,WAAS,IAAIA,EAAC,KAAG,CAACD;AAAE,UAAM,IAAI,IAAI,eAAaC,KAAE,sDAAsD;AAAE,SAAO,IAAIA,EAAC;AAAC;AAAl7L,IAAo7L,MAAI,SAASA,IAAED,IAAE;AAAC,MAAG,YAAU,OAAOC,MAAG,MAAIA,GAAE;AAAO,UAAM,IAAI,UAAU,2CAA2C;AAAE,MAAG,UAAU,SAAO,KAAG,aAAW,OAAOD;AAAE,UAAM,IAAI,UAAU,2CAA2C;AAAE,WAAQG,KAAEkC,GAAEpC,EAAC,GAAEe,KAAEsB,GAAE,OAAKnC,GAAE,SAAO,IAAEA,GAAE,CAAC,IAAE,MAAI,KAAIH,EAAC,GAAEK,KAAE,GAAEA,KAAEF,GAAE,QAAOE,MAAG;AAAE,QAAG,QAAMW;AAAE,UAAG,OAAKX,KAAE,KAAGF,GAAE,QAAO;AAAC,YAAII,KAAE,IAAIS,IAAEb,GAAEE,EAAC,CAAC;AAAE,YAAG,CAACL,MAAG,EAAEG,GAAEE,EAAC,KAAIW;AAAG,gBAAM,IAAI,IAAI,wBAAsBf,KAAE,6CAA6C;AAAE,QAAAe,KAAET,KAAEA,GAAE,OAAKA,GAAE,QAAMS,GAAEb,GAAEE,EAAC,CAAC;AAAA,MAAE;AAAM,QAAAW,KAAEA,GAAEb,GAAEE,EAAC,CAAC;AAAE,SAAOW;AAAC;AAAE,IAAI;AAAJ,IAAQ,MAAI;AAAZ,IAAgB,MAAI,IAAI,YAAY;AAApC,IAAsC,MAAI,IAAI;AAA9C,IAAoD,MAAI,IAAI;AAAA,CAAM,MAAI,WAAU;AAAC,SAAO,IAAI,MAAM,KAAI,SAAS;AAAC,GAAG,QAAM,WAAU;AAAC,SAAO,IAAI,MAAM,KAAI,SAAS;AAAC;AAAE,IAAI,MAAI;AAAI,IAAI;AAAJ,IAAQ;AAAR,IAAY,MAAI,SAASd,IAAE;AAAC,SAAOA,MAAGA;AAAC;AAAvC,IAAyC,OAAK,MAAI,SAASA,IAAEF,IAAE;AAAC,SAAO,MAAIE,MAAG,MAAIF,KAAE,IAAEE,MAAG,IAAEF,KAAEE,OAAIF,MAAG,EAAE,CAAC,IAAIE,EAAC,KAAG,CAAC,IAAIF,EAAC;AAAE,GAAE;AAAzH,IAA8H,OAAK,MAAI,WAAU;AAAC,SAAO,cAAY,OAAO,OAAO,KAAG,OAAO,KAAG;AAAG,GAAE;AAArM,IAA0M,MAAI2B;AAA9M,IAAkN,MAAIA;AAAtN,IAA0NY,OAAI;AAA9N,IAAkO,MAAI;AAAtO,IAA0O,MAAI,WAAU;AAAC,MAAIrC,KAAE,IAAI;AAAE,SAAO,IAAI,QAAO,EAAC,IAAGA,GAAC,GAAE,EAAC,IAAG,WAAU;AAAC,WAAO,OAAO,OAAKA;AAAA,EAAC,EAAC,CAAC,GAAEA;AAAC;AAAtU,IAAwU,MAAI,IAAI,IAAI,GAAE,MAAM;AAAE,IAAI,KAAI,EAAC,aAAY,KAAI,gBAAeqC,MAAI,MAAK,IAAG,CAAC;AAAE,IAAIC,KAAE;AAAIC,KAAE,SAASxC,IAAE;AAAC,SAAOA,MAAGA;AAAC;AAAE,IAAIwC;AAAJ,IAAM;AAAN,IAAU,MAAIA;AAAd,IAAgB,OAAK,MAAI,WAAU;AAAC,SAAO,OAAO,SAAO,OAAO,MAAM,GAAG,KAAG,CAAC,OAAO,MAAM,GAAG,IAAE,OAAO,QAAM;AAAG,GAAEd;AAAjH,IAAsH,MAAI;AAA1H,IAA8H,MAAIA;AAAlI,IAAsI,MAAIc;AAA1I,IAA4I,MAAI;AAAhJ,IAAoJ,MAAI,WAAU;AAAC,MAAIxC,KAAE,IAAI;AAAE,SAAO,IAAI,QAAO,EAAC,OAAMA,GAAC,GAAE,EAAC,OAAM,WAAU;AAAC,WAAO,OAAO,UAAQA;AAAA,EAAC,EAAC,CAAC,GAAEA;AAAC;AAAzP,IAA2P,MAAI,IAAI;AAAE,IAAI,KAAI,EAAC,aAAY,KAAI,gBAAe,KAAI,MAAK,IAAG,CAAC;AAAE,IAAI,MAAI;AAAI,IAAI,MAAI,CAAC;AAAT,IAAW,MAAI;AAAG,SAAS,MAAK;AAAC,MAAG;AAAI,WAAO;AAAI,WAASD,GAAEE,IAAE;AAAC,YAAQF,KAAE,cAAY,OAAO,UAAQ,YAAU,OAAO,OAAO,WAAS,SAASE,IAAE;AAAC,aAAO,OAAOA;AAAA,IAAC,IAAE,SAASA,IAAE;AAAC,aAAOA,MAAG,cAAY,OAAO,UAAQA,GAAE,gBAAc,UAAQA,OAAI,OAAO,YAAU,WAAS,OAAOA;AAAA,IAAC,GAAGA,EAAC;AAAA,EAAC;AAAC,WAASC,GAAED,IAAEC,IAAE;AAAC,WAAO,CAACA,MAAG,aAAWH,GAAEG,EAAC,KAAG,cAAY,OAAOA,KAAE,SAASD,IAAE;AAAC,UAAG,WAASA;AAAE,cAAM,IAAI,eAAe,2DAA2D;AAAE,aAAOA;AAAA,IAAC,EAAEA,EAAC,IAAEC;AAAA,EAAC;AAAC,WAASF,GAAEC,IAAE;AAAC,YAAQD,KAAE,OAAO,iBAAe,OAAO,iBAAe,SAASC,IAAE;AAAC,aAAOA,GAAE,aAAW,OAAO,eAAeA,EAAC;AAAA,IAAC,GAAGA,EAAC;AAAA,EAAC;AAAC,WAASE,GAAEF,IAAEF,KAAE;AAAC,YAAQI,KAAE,OAAO,kBAAgB,SAASF,IAAEF,KAAE;AAAC,aAAOE,GAAE,YAAUF,KAAEE;AAAA,IAAC,GAAGA,IAAEF,GAAC;AAAA,EAAC;AAAC,QAAI;AAAG,MAAIO,IAAEK,IAAEN,KAAE,CAAC;AAAE,WAASO,GAAEX,IAAEF,KAAEQ,IAAE;AAAC,IAAAA,OAAIA,KAAE;AAAO,QAAIH,KAAE,SAASG,IAAE;AAAC,eAASH,GAAED,IAAEI,IAAED,IAAE;AAAC,YAAIK;AAAE,eAAO,CAAC,SAASV,IAAEF,KAAE;AAAC,cAAG,EAAEE,cAAaF;AAAG,kBAAM,IAAI,UAAU,mCAAmC;AAAA,QAAC,EAAE,MAAKK,EAAC,IAAGO,KAAET,GAAE,MAAKF,GAAEI,EAAC,EAAE,KAAK,MAAK,SAASH,IAAEC,IAAEF,KAAE;AAAC,iBAAO,YAAU,OAAOD,MAAEA,MAAEA,IAAEE,IAAEC,IAAEF,GAAC;AAAA,QAAC,EAAEG,IAAEI,IAAED,EAAC,CAAC,CAAC,GAAG,OAAKL,IAAEU;AAAA,MAAC;AAAC,aAAO,CAAC,SAASV,IAAEF,KAAE;AAAC,YAAG,cAAY,OAAOA,OAAG,SAAOA;AAAE,gBAAM,IAAI,UAAU,oDAAoD;AAAE,QAAAE,GAAE,YAAU,OAAO,OAAOF,OAAGA,IAAE,WAAU,EAAC,aAAY,EAAC,OAAME,IAAE,UAAS,MAAG,cAAa,KAAE,EAAC,CAAC,GAAEF,OAAGI,GAAEF,IAAEF,GAAC;AAAA,MAAE,EAAEK,IAAEG,EAAC,GAAEH;AAAA,IAAC,EAAEG,EAAC;AAAE,IAAAF,GAAEJ,EAAC,IAAEG;AAAA,EAAE;AAAC,WAASU,GAAEb,IAAEF,KAAE;AAAC,QAAG,MAAM,QAAQE,EAAC,GAAE;AAAC,UAAIC,KAAED,GAAE;AAAO,aAAOA,KAAEA,GAAE,IAAK,SAASA,IAAE;AAAC,eAAO,OAAOA,EAAC;AAAA,MAAC,CAAE,GAAEC,KAAE,IAAE,UAAU,OAAOH,KAAE,GAAG,EAAE,OAAOE,GAAE,MAAM,GAAEC,KAAE,CAAC,EAAE,KAAK,IAAI,GAAE,OAAO,IAAED,GAAEC,KAAE,CAAC,IAAE,MAAIA,KAAE,UAAU,OAAOH,KAAE,GAAG,EAAE,OAAOE,GAAE,CAAC,GAAE,MAAM,EAAE,OAAOA,GAAE,CAAC,CAAC,IAAE,MAAM,OAAOF,KAAE,GAAG,EAAE,OAAOE,GAAE,CAAC,CAAC;AAAA,IAAC;AAAC,WAAO,MAAM,OAAOF,KAAE,GAAG,EAAE,OAAO,OAAOE,EAAC,CAAC;AAAA,EAAC;AAAC,SAAOW,GAAE,0BAAyB,sCAAqC,SAAS,GAAEA,GAAE,wBAAwB,SAASX,IAAEC,IAAEF,KAAE;AAAC,QAAIG,IAAEI,IAAEI;AAAE,QAAG,WAASL,OAAIA,KAAE,GAAG,IAAGA,GAAE,YAAU,OAAOL,IAAE,yBAAyB,GAAE,YAAU,OAAOC,OAAIK,KAAE,QAAOL,GAAE,OAAO,GAAEK,GAAE,MAAM,MAAIA,OAAIJ,KAAE,eAAcD,KAAEA,GAAE,QAAQ,SAAQ,EAAE,KAAGC,KAAE,WAAU,SAASF,IAAEF,KAAEG,KAAE;AAAC,cAAQ,WAASA,OAAGA,MAAED,GAAE,YAAUC,MAAED,GAAE,SAAQA,GAAE,UAAUC,MAAEH,IAAE,QAAOG,GAAC,MAAIH;AAAA,IAAC,EAAEE,IAAE,WAAW;AAAE,MAAAU,KAAE,OAAO,OAAOV,IAAE,GAAG,EAAE,OAAOE,IAAE,GAAG,EAAE,OAAOW,GAAEZ,IAAE,MAAM,CAAC;AAAA,SAAO;AAAC,UAAIG,KAAE,SAASJ,IAAEF,KAAEG,KAAE;AAAC,eAAO,YAAU,OAAOA,QAAIA,MAAE,IAAG,EAAEA,MAAEH,IAAE,SAAOE,GAAE,WAAS,OAAKA,GAAE,QAAQF,KAAEG,GAAC;AAAA,MAAC,EAAED,IAAE,GAAG,IAAE,aAAW;AAAW,MAAAU,KAAE,QAAQ,OAAOV,IAAE,IAAI,EAAE,OAAOI,IAAE,GAAG,EAAE,OAAOF,IAAE,GAAG,EAAE,OAAOW,GAAEZ,IAAE,MAAM,CAAC;AAAA,IAAE;AAAC,WAAOS,MAAG,mBAAmB,OAAOZ,GAAEC,GAAC,CAAC;AAAA,EAAC,GAAG,SAAS,GAAEY,GAAE,yBAAyB,SAASb,KAAEG,IAAE;AAAC,QAAIF,MAAE,UAAU,SAAO,KAAG,WAAS,UAAU,CAAC,IAAE,UAAU,CAAC,IAAE;AAAa,eAASW,OAAIA,KAAE;AAAK,QAAIR,KAAEQ,GAAE,QAAQT,EAAC;AAAE,WAAOC,GAAE,SAAO,QAAMA,KAAE,GAAG,OAAOA,GAAE,MAAM,GAAE,GAAG,GAAE,KAAK,IAAG,iBAAiB,OAAOJ,KAAE,IAAI,EAAE,OAAOC,KAAE,aAAa,EAAE,OAAOG,EAAC;AAAA,EAAC,GAAG,SAAS,GAAES,GAAE,4BAA4B,SAASX,IAAEC,IAAEF,KAAE;AAAC,QAAIG;AAAE,WAAOA,KAAEH,OAAGA,IAAE,eAAaA,IAAE,YAAY,OAAK,eAAe,OAAOA,IAAE,YAAY,IAAI,IAAE,QAAQ,OAAOD,GAAEC,GAAC,CAAC,GAAE,YAAY,OAAOC,IAAE,4BAA4B,EAAE,OAAOC,IAAE,GAAG,IAAE,qBAAqB,OAAOC,IAAE,GAAG;AAAA,EAAC,GAAG,SAAS,GAAES,GAAE,oBAAoB,WAAU;AAAC,aAAQX,KAAE,UAAU,QAAOF,MAAE,IAAI,MAAME,EAAC,GAAEC,KAAE,GAAEA,KAAED,IAAEC;AAAI,MAAAH,IAAEG,EAAC,IAAE,UAAUA,EAAC;AAAE,eAASI,OAAIA,KAAE,GAAG,IAAGA,GAAEP,IAAE,SAAO,GAAE,wCAAwC;AAAE,QAAIC,MAAE,QAAOG,KAAEJ,IAAE;AAAO,YAAOA,MAAEA,IAAE,IAAK,SAASE,IAAE;AAAC,aAAO,IAAI,OAAOA,IAAE,GAAG;AAAA,IAAC,CAAE,GAAEE,IAAE;AAAA,MAAC,KAAK;AAAE,QAAAH,OAAG,GAAG,OAAOD,IAAE,CAAC,GAAE,WAAW;AAAE;AAAA,MAAM,KAAK;AAAE,QAAAC,OAAG,GAAG,OAAOD,IAAE,CAAC,GAAE,OAAO,EAAE,OAAOA,IAAE,CAAC,GAAE,YAAY;AAAE;AAAA,MAAM;AAAQ,QAAAC,OAAGD,IAAE,MAAM,GAAEI,KAAE,CAAC,EAAE,KAAK,IAAI,GAAEH,OAAG,SAAS,OAAOD,IAAEI,KAAE,CAAC,GAAE,YAAY;AAAA,IAAE;AAAC,WAAO,GAAG,OAAOH,KAAE,oBAAoB;AAAA,EAAC,GAAG,SAAS,GAAE,IAAI,QAAMK,IAAE;AAAG;AAAC,IAAI,MAAI,CAAC;AAAT,IAAW,MAAI;AAAG,SAAS,MAAK;AAAC,MAAG;AAAI,WAAO;AAAI,QAAI;AAAG,MAAIH,KAAE;AAAI,WAASF,GAAEC,IAAEF,IAAEG,IAAE;AAAC,WAAOH,MAAKE,KAAE,OAAO,eAAeA,IAAEF,IAAE,EAAC,OAAMG,IAAE,YAAW,MAAG,cAAa,MAAG,UAAS,KAAE,CAAC,IAAED,GAAEF,EAAC,IAAEG,IAAED;AAAA,EAAC;AAAC,WAASE,GAAEF,IAAEF,IAAE;AAAC,aAAQG,KAAE,GAAEA,KAAEH,GAAE,QAAOG,MAAI;AAAC,UAAIF,MAAED,GAAEG,EAAC;AAAE,MAAAF,IAAE,aAAWA,IAAE,cAAY,OAAGA,IAAE,eAAa,MAAG,WAAUA,QAAIA,IAAE,WAAS,OAAI,OAAO,eAAeC,IAAED,IAAE,KAAIA,GAAC;AAAA,IAAE;AAAA,EAAC;AAAC,WAASO,GAAEN,IAAEF,IAAE;AAAC,WAAO,CAACA,MAAG,aAAWgB,GAAEhB,EAAC,KAAG,cAAY,OAAOA,KAAEK,GAAEH,EAAC,IAAEF;AAAA,EAAC;AAAC,WAASK,GAAEH,IAAE;AAAC,QAAG,WAASA;AAAE,YAAM,IAAI,eAAe,2DAA2D;AAAE,WAAOA;AAAA,EAAC;AAAC,WAASW,GAAEX,IAAE;AAAC,QAAIF,KAAE,cAAY,OAAO,MAAI,oBAAI,QAAI;AAAO,YAAQa,KAAE,SAASX,IAAE;AAAC,UAAG,SAAOA,OAAIC,KAAED,IAAE,OAAK,SAAS,SAAS,KAAKC,EAAC,EAAE,QAAQ,eAAe;AAAG,eAAOD;AAAE,UAAIC;AAAE,UAAG,cAAY,OAAOD;AAAE,cAAM,IAAI,UAAU,oDAAoD;AAAE,UAAG,WAASF,IAAE;AAAC,YAAGA,GAAE,IAAIE,EAAC;AAAE,iBAAOF,GAAE,IAAIE,EAAC;AAAE,QAAAF,GAAE,IAAIE,IAAED,GAAC;AAAA,MAAE;AAAC,eAASA,MAAG;AAAC,eAAOa,GAAEZ,IAAE,WAAUgB,GAAE,IAAI,EAAE,WAAW;AAAA,MAAC;AAAC,aAAOjB,IAAE,YAAU,OAAO,OAAOC,GAAE,WAAU,EAAC,aAAY,EAAC,OAAMD,KAAE,YAAW,OAAG,UAAS,MAAG,cAAa,KAAE,EAAC,CAAC,GAAEgB,GAAEhB,KAAEC,EAAC;AAAA,IAAC,GAAGA,EAAC;AAAA,EAAC;AAAC,WAASa,KAAG;AAAC,QAAG,eAAa,OAAO,WAAS,CAAC,QAAQ;AAAU,aAAO;AAAG,QAAG,QAAQ,UAAU;AAAK,aAAO;AAAG,QAAG,cAAY,OAAO;AAAM,aAAO;AAAG,QAAG;AAAC,aAAO,KAAK,UAAU,SAAS,KAAK,QAAQ,UAAU,MAAK,CAAC,GAAG,WAAU;AAAA,MAAC,CAAE,CAAC,GAAE;AAAA,IAAE,SAAOb,IAAE;AAAC,aAAO;AAAA,IAAE;AAAA,EAAC;AAAC,WAASY,GAAEZ,IAAEF,IAAEG,IAAE;AAAC,YAAQW,KAAEC,GAAE,IAAE,QAAQ,YAAU,SAASb,IAAEF,KAAEG,KAAE;AAAC,UAAIF,MAAE,CAAC,IAAI;AAAE,MAAAA,IAAE,KAAK,MAAMA,KAAED,GAAC;AAAE,UAAII,KAAE,KAAI,SAAS,KAAK,MAAMF,IAAED,GAAC;AAAG,aAAOE,OAAGc,GAAEb,IAAED,IAAE,SAAS,GAAEC;AAAA,IAAC,GAAG,MAAM,MAAK,SAAS;AAAA,EAAC;AAAC,WAASa,GAAEf,IAAEF,IAAE;AAAC,YAAQiB,KAAE,OAAO,kBAAgB,SAASf,IAAEF,KAAE;AAAC,aAAOE,GAAE,YAAUF,KAAEE;AAAA,IAAC,GAAGA,IAAEF,EAAC;AAAA,EAAC;AAAC,WAASkB,GAAEhB,IAAE;AAAC,YAAQgB,KAAE,OAAO,iBAAe,OAAO,iBAAe,SAAShB,IAAE;AAAC,aAAOA,GAAE,aAAW,OAAO,eAAeA,EAAC;AAAA,IAAC,GAAGA,EAAC;AAAA,EAAC;AAAC,WAASc,GAAEd,IAAE;AAAC,YAAQc,KAAE,cAAY,OAAO,UAAQ,YAAU,OAAO,OAAO,WAAS,SAASd,IAAE;AAAC,aAAO,OAAOA;AAAA,IAAC,IAAE,SAASA,IAAE;AAAC,aAAOA,MAAG,cAAY,OAAO,UAAQA,GAAE,gBAAc,UAAQA,OAAI,OAAO,YAAU,WAAS,OAAOA;AAAA,IAAC,GAAGA,EAAC;AAAA,EAAC;AAAC,MAAIO,KAAE,EAAI,SAAQ4B,KAAE,IAAI,EAAE,MAAM;AAAqB,WAASH,GAAEhC,IAAEF,IAAEG,IAAE;AAAC,YAAQ,WAASA,MAAGA,KAAED,GAAE,YAAUC,KAAED,GAAE,SAAQA,GAAE,UAAUC,KAAEH,GAAE,QAAOG,EAAC,MAAIH;AAAA,EAAC;AAAC,MAAIwC,KAAE,IAAGE,KAAE,IAAGrB,KAAE,IAAGsB,KAAE,IAAGvB,KAAE,EAAC,iBAAgB,8CAA6C,aAAY,yCAAwC,mBAAkB,0DAAyD,WAAU,6CAA4C,OAAM,wCAAuC,oBAAmB,uDAAsD,gBAAe,gDAA+C,sBAAqB,8DAA6D,cAAa,sDAAqD,UAAS,+CAA8C,cAAa,4CAA2C;AAAE,WAASwB,GAAE1C,IAAE;AAAC,QAAIF,KAAE,OAAO,KAAKE,EAAC,GAAEC,KAAE,OAAO,OAAO,OAAO,eAAeD,EAAC,CAAC;AAAE,WAAOF,GAAE,QAAS,SAASA,KAAE;AAAC,MAAAG,GAAEH,GAAC,IAAEE,GAAEF,GAAC;AAAA,IAAE,CAAE,GAAE,OAAO,eAAeG,IAAE,WAAU,EAAC,OAAMD,GAAE,QAAO,CAAC,GAAEC;AAAA,EAAC;AAAC,WAAS0C,GAAE3C,IAAE;AAAC,WAAOO,GAAEP,IAAE,EAAC,SAAQ,OAAG,eAAc,OAAG,OAAM,KAAI,gBAAe,IAAE,GAAE,YAAW,OAAG,aAAY,IAAE,GAAE,WAAU,OAAG,QAAO,MAAG,SAAQ,KAAE,CAAC;AAAA,EAAC;AAAC,WAAS4C,GAAE5C,IAAEF,IAAEC,KAAE;AAAC,QAAIG,KAAE,IAAGI,KAAE,IAAGH,KAAE,GAAEE,KAAE,IAAGK,KAAE,OAAGN,KAAEuC,GAAE3C,EAAC,GAAEW,KAAEP,GAAE,MAAM,IAAI,GAAES,KAAE8B,GAAE7C,EAAC,EAAE,MAAM,IAAI,GAAEc,KAAE,GAAEG,KAAE;AAAG,QAAG,kBAAgBhB,OAAG,aAAWe,GAAEd,EAAC,KAAG,aAAWc,GAAEhB,EAAC,KAAG,SAAOE,MAAG,SAAOF,OAAIC,MAAE,sBAAqB,MAAIY,GAAE,UAAQ,MAAIE,GAAE,UAAQF,GAAE,CAAC,MAAIE,GAAE,CAAC,GAAE;AAAC,UAAIG,KAAEL,GAAE,CAAC,EAAE,SAAOE,GAAE,CAAC,EAAE;AAAO,UAAGG,MAAG,IAAG;AAAC,YAAG,EAAE,aAAWF,GAAEd,EAAC,KAAG,SAAOA,MAAG,aAAWc,GAAEhB,EAAC,KAAG,SAAOA,MAAG,MAAIE,MAAG,MAAIF;AAAG,iBAAO,GAAG,OAAOoB,GAAEnB,GAAC,GAAE,MAAM,IAAE,GAAG,OAAOY,GAAE,CAAC,GAAE,OAAO,EAAE,OAAOE,GAAE,CAAC,GAAE,IAAI;AAAA,MAAC,WAAS,wBAAsBd,KAAE;AAAC,YAAGiB,MAAGf,GAAE,UAAQA,GAAE,OAAO,QAAMA,GAAE,OAAO,UAAQ,KAAI;AAAC,iBAAKU,GAAE,CAAC,EAAEC,EAAC,MAAIC,GAAE,CAAC,EAAED,EAAC;AAAG,YAAAA;AAAI,UAAAA,KAAE,MAAIG,KAAE,OAAO,OAAO,SAASf,IAAEF,KAAE;AAAC,gBAAGA,MAAE,KAAK,MAAMA,GAAC,GAAE,KAAGE,GAAE,UAAQ,KAAGF;AAAE,qBAAO;AAAG,gBAAIG,KAAED,GAAE,SAAOF;AAAE,iBAAIA,MAAE,KAAK,MAAM,KAAK,IAAIA,GAAC,IAAE,KAAK,IAAI,CAAC,CAAC,GAAEA;AAAG,cAAAE,MAAGA,IAAEF;AAAI,mBAAOE,MAAGA,GAAE,UAAU,GAAEC,KAAED,GAAE,MAAM;AAAA,UAAC,EAAE,KAAIY,EAAC,GAAE,GAAG,GAAEA,KAAE;AAAA,QAAG;AAAA,MAAC;AAAA,IAAC;AAAC,aAAQL,KAAEI,GAAEA,GAAE,SAAO,CAAC,GAAEwB,KAAEtB,GAAEA,GAAE,SAAO,CAAC,GAAEN,OAAI4B,OAAIvB,OAAI,IAAEP,KAAE,OAAO,OAAOE,EAAC,EAAE,OAAOF,EAAC,IAAEH,KAAEK,IAAEI,GAAE,IAAI,GAAEE,GAAE,IAAI,GAAE,MAAIF,GAAE,UAAQ,MAAIE,GAAE;AAAS,MAAAN,KAAEI,GAAEA,GAAE,SAAO,CAAC,GAAEwB,KAAEtB,GAAEA,GAAE,SAAO,CAAC;AAAE,QAAI6B,KAAE,KAAK,IAAI/B,GAAE,QAAOE,GAAE,MAAM;AAAE,QAAG,MAAI6B,IAAE;AAAC,UAAIE,KAAExC,GAAE,MAAM,IAAI;AAAE,UAAGwC,GAAE,SAAO;AAAG,aAAIA,GAAE,EAAE,IAAE,GAAG,OAAON,IAAE,KAAK,EAAE,OAAOG,EAAC,GAAEG,GAAE,SAAO;AAAI,UAAAA,GAAE,IAAI;AAAE,aAAO,GAAG,OAAO1B,GAAE,cAAa,MAAM,EAAE,OAAO0B,GAAE,KAAK,IAAI,GAAE,IAAI;AAAA,IAAC;AAAC,IAAAhC,KAAE,MAAIP,KAAE,KAAK,OAAOiC,IAAE,KAAK,EAAE,OAAOG,EAAC,EAAE,OAAOpC,EAAC,GAAEK,KAAE,OAAI,OAAKR,OAAIG,KAAE,OAAO,OAAOH,EAAC,EAAE,OAAOG,EAAC,GAAEH,KAAE;AAAI,QAAI2C,KAAE,GAAEX,KAAEhB,GAAEnB,GAAC,IAAE,KAAK,OAAOyC,IAAE,UAAU,EAAE,OAAOC,IAAE,GAAG,EAAE,OAAOtB,IAAE,YAAY,EAAE,OAAOsB,EAAC,GAAEK,KAAE,IAAI,OAAOR,IAAE,KAAK,EAAE,OAAOG,IAAE,gBAAgB;AAAE,SAAI7B,KAAE,GAAEA,KAAE8B,IAAE9B,MAAI;AAAC,UAAImC,KAAEnC,KAAET;AAAE,UAAGQ,GAAE,SAAOC,KAAE;AAAE,QAAAmC,KAAE,KAAGnC,KAAE,MAAImC,KAAE,KAAGzC,MAAG,KAAK,OAAOgC,IAAE,KAAK,EAAE,OAAOG,EAAC,GAAE/B,KAAE,QAAIqC,KAAE,MAAIzC,MAAG,OAAO,OAAOO,GAAED,KAAE,CAAC,CAAC,GAAEiC,OAAKvC,MAAG,OAAO,OAAOO,GAAED,KAAE,CAAC,CAAC,GAAEiC,OAAK1C,KAAES,IAAEV,MAAG,KAAK,OAAOiB,IAAE,GAAG,EAAE,OAAOsB,IAAE,GAAG,EAAE,OAAO5B,GAAED,EAAC,CAAC,GAAEiC;AAAA,eAAYhC,GAAE,SAAOD,KAAE;AAAE,QAAAmC,KAAE,KAAGnC,KAAE,MAAImC,KAAE,KAAGzC,MAAG,KAAK,OAAOgC,IAAE,KAAK,EAAE,OAAOG,EAAC,GAAE/B,KAAE,QAAIqC,KAAE,MAAIzC,MAAG,OAAO,OAAOK,GAAEC,KAAE,CAAC,CAAC,GAAEiC,OAAKvC,MAAG,OAAO,OAAOK,GAAEC,KAAE,CAAC,CAAC,GAAEiC,OAAK1C,KAAES,IAAEN,MAAG,KAAK,OAAOkC,IAAE,GAAG,EAAE,OAAOC,IAAE,GAAG,EAAE,OAAO9B,GAAEC,EAAC,CAAC,GAAEiC;AAAA,WAAS;AAAC,YAAIG,KAAEnC,GAAED,EAAC,GAAEwB,KAAEzB,GAAEC,EAAC,GAAEqC,KAAEb,OAAIY,OAAI,CAAChB,GAAEI,IAAE,GAAG,KAAGA,GAAE,MAAM,GAAE,EAAE,MAAIY;AAAG,QAAAC,MAAGjB,GAAEgB,IAAE,GAAG,KAAGA,GAAE,MAAM,GAAE,EAAE,MAAIZ,OAAIa,KAAE,OAAGb,MAAG,MAAKa,MAAGF,KAAE,KAAGnC,KAAE,MAAImC,KAAE,KAAGzC,MAAG,KAAK,OAAOgC,IAAE,KAAK,EAAE,OAAOG,EAAC,GAAE/B,KAAE,QAAIqC,KAAE,MAAIzC,MAAG,OAAO,OAAOK,GAAEC,KAAE,CAAC,CAAC,GAAEiC,OAAKvC,MAAG,OAAO,OAAOK,GAAEC,KAAE,CAAC,CAAC,GAAEiC,OAAK1C,KAAES,IAAEN,MAAG,KAAK,OAAOkC,IAAE,GAAG,EAAE,OAAOC,IAAE,GAAG,EAAE,OAAOL,EAAC,GAAElC,MAAG,KAAK,OAAOiB,IAAE,GAAG,EAAE,OAAOsB,IAAE,GAAG,EAAE,OAAOO,EAAC,GAAEH,MAAG,MAAIvC,MAAGJ,IAAEA,KAAE,IAAG,MAAI6C,MAAG,MAAInC,OAAIN,MAAG,OAAO,OAAO8B,EAAC,GAAES;AAAA,MAAM;AAAC,UAAGA,KAAE,MAAIjC,KAAE8B,KAAE;AAAE,eAAO,GAAG,OAAOR,EAAC,EAAE,OAAOY,IAAE,IAAI,EAAE,OAAOxC,IAAE,IAAI,EAAE,OAAOgC,IAAE,KAAK,EAAE,OAAOG,EAAC,EAAE,OAAOvC,IAAE,IAAI,IAAE,GAAG,OAAOoC,IAAE,KAAK,EAAE,OAAOG,EAAC;AAAA,IAAC;AAAC,WAAO,GAAG,OAAOP,EAAC,EAAE,OAAOxB,KAAEoC,KAAE,IAAG,IAAI,EAAE,OAAOxC,EAAC,EAAE,OAAOJ,EAAC,EAAE,OAAOG,EAAC,EAAE,OAAOU,EAAC;AAAA,EAAC;AAAC,MAAI8B,KAAE,SAAS7C,IAAE;AAAC,aAASF,GAAEE,IAAE;AAAC,UAAID;AAAE,UAAG,CAAC,SAASC,KAAEF,KAAE;AAAC,YAAG,EAAEE,eAAaF;AAAG,gBAAM,IAAI,UAAU,mCAAmC;AAAA,MAAC,EAAE,MAAKA,EAAC,GAAE,aAAWgB,GAAEd,EAAC,KAAG,SAAOA;AAAE,cAAM,IAAImC,GAAE,WAAU,UAASnC,EAAC;AAAE,UAAIE,KAAEF,GAAE,SAAQK,KAAEL,GAAE,UAASU,KAAEV,GAAE,cAAaI,KAAEJ,GAAE,QAAOW,KAAEX,GAAE,UAASa,KAAE,MAAM;AAAgB,UAAG,MAAM,kBAAgB,GAAE,QAAMX;AAAE,QAAAH,MAAEO,GAAE,MAAKU,GAAElB,EAAC,EAAE,KAAK,MAAK,OAAOI,EAAC,CAAC,CAAC;AAAA,eAAUD,GAAE,UAAQA,GAAE,OAAO,UAAQA,GAAE,UAAQA,GAAE,OAAO,iBAAe,MAAIA,GAAE,OAAO,cAAc,KAAGqC,KAAE,YAAQE,KAAE,YAAQC,KAAE,YAAQtB,KAAE,eAAUmB,KAAE,IAAGE,KAAE,IAAGC,KAAE,IAAGtB,KAAE,MAAK,aAAWL,GAAEV,EAAC,KAAG,SAAOA,MAAG,aAAWU,GAAEH,EAAC,KAAG,SAAOA,MAAG,WAAUP,MAAGA,cAAa,SAAO,WAAUO,MAAGA,cAAa,UAAQP,KAAEsC,GAAEtC,EAAC,GAAEO,KAAE+B,GAAE/B,EAAC,IAAG,sBAAoBN,MAAG,kBAAgBA;AAAE,QAAAN,MAAEO,GAAE,MAAKU,GAAElB,EAAC,EAAE,KAAK,MAAK8C,GAAExC,IAAEO,IAAEN,EAAC,CAAC,CAAC;AAAA,eAAU,yBAAuBA,MAAG,qBAAmBA,IAAE;AAAC,YAAIO,KAAEM,GAAEb,EAAC,GAAEU,KAAE4B,GAAEvC,EAAC,EAAE,MAAM,IAAI;AAAE,YAAG,qBAAmBC,MAAG,aAAWS,GAAEV,EAAC,KAAG,SAAOA,OAAIQ,KAAEM,GAAE,uBAAsBH,GAAE,SAAO;AAAG,eAAIA,GAAE,EAAE,IAAE,GAAG,OAAOuB,IAAE,KAAK,EAAE,OAAOG,EAAC,GAAE1B,GAAE,SAAO;AAAI,YAAAA,GAAE,IAAI;AAAE,QAAAhB,MAAE,MAAIgB,GAAE,SAAOT,GAAE,MAAKU,GAAElB,EAAC,EAAE,KAAK,MAAK,GAAG,OAAOc,IAAE,GAAG,EAAE,OAAOG,GAAE,CAAC,CAAC,CAAC,CAAC,IAAET,GAAE,MAAKU,GAAElB,EAAC,EAAE,KAAK,MAAK,GAAG,OAAOc,IAAE,MAAM,EAAE,OAAOG,GAAE,KAAK,IAAI,GAAE,IAAI,CAAC,CAAC;AAAA,MAAE,OAAM;AAAC,YAAIR,KAAEoC,GAAEvC,EAAC,GAAE4B,KAAE,IAAGa,KAAE3B,GAAEb,EAAC;AAAE,2BAAiBA,MAAG,eAAaA,MAAGE,KAAE,GAAG,OAAOW,GAAEb,EAAC,GAAE,MAAM,EAAE,OAAOE,EAAC,GAAG,SAAO,SAAOA,KAAE,GAAG,OAAOA,GAAE,MAAM,GAAE,IAAI,GAAE,KAAK,MAAIyB,KAAE,GAAG,OAAOW,GAAEhC,EAAC,CAAC,GAAEJ,GAAE,SAAO,QAAMA,KAAE,GAAG,OAAOA,GAAE,MAAM,GAAE,GAAG,GAAE,KAAK,IAAGyB,GAAE,SAAO,QAAMA,KAAE,GAAG,OAAOA,GAAE,MAAM,GAAE,GAAG,GAAE,KAAK,IAAG,gBAAc3B,MAAG,YAAUA,KAAEE,KAAE,GAAG,OAAOsC,IAAE,MAAM,EAAE,OAAOtC,IAAE,sBAAsB,IAAEyB,KAAE,IAAI,OAAO3B,IAAE,GAAG,EAAE,OAAO2B,EAAC,IAAGjC,MAAEO,GAAE,MAAKU,GAAElB,EAAC,EAAE,KAAK,MAAK,GAAG,OAAOS,EAAC,EAAE,OAAOyB,EAAC,CAAC,CAAC;AAAA,MAAE;AAAC,aAAO,MAAM,kBAAgBnB,IAAEd,IAAE,mBAAiB,CAACG,IAAE,OAAO,eAAeC,GAAEJ,GAAC,GAAE,QAAO,EAAC,OAAM,kCAAiC,YAAW,OAAG,UAAS,MAAG,cAAa,KAAE,CAAC,GAAEA,IAAE,OAAK,iBAAgBA,IAAE,SAAOK,IAAEL,IAAE,WAASY,IAAEZ,IAAE,WAASM,IAAE,MAAM,qBAAmB,MAAM,kBAAkBF,GAAEJ,GAAC,GAAEW,EAAC,GAAEX,IAAE,OAAMA,IAAE,OAAK,kBAAiBO,GAAEP,GAAC;AAAA,IAAC;AAAC,QAAIM,IAAEK;AAAE,WAAO,CAAC,SAASV,IAAEF,KAAE;AAAC,UAAG,cAAY,OAAOA,OAAG,SAAOA;AAAE,cAAM,IAAI,UAAU,oDAAoD;AAAE,MAAAE,GAAE,YAAU,OAAO,OAAOF,OAAGA,IAAE,WAAU,EAAC,aAAY,EAAC,OAAME,IAAE,UAAS,MAAG,cAAa,KAAE,EAAC,CAAC,GAAEF,OAAGiB,GAAEf,IAAEF,GAAC;AAAA,IAAE,EAAEA,IAAEE,EAAC,GAAEK,KAAEP,KAAGY,KAAE,CAAC,EAAC,KAAI,YAAW,OAAM,WAAU;AAAC,aAAO,GAAG,OAAO,KAAK,MAAK,IAAI,EAAE,OAAO,KAAK,MAAK,KAAK,EAAE,OAAO,KAAK,OAAO;AAAA,IAAC,EAAC,GAAE,EAAC,KAAIH,GAAE,QAAO,OAAM,SAASP,IAAEF,KAAE;AAAC,aAAOS,GAAE,MAAK,SAASP,KAAE;AAAC,iBAAQF,MAAE,GAAEA,MAAE,UAAU,QAAOA,OAAI;AAAC,cAAIG,KAAE,QAAM,UAAUH,GAAC,IAAE,UAAUA,GAAC,IAAE,CAAC,GAAEI,KAAE,OAAO,KAAKD,EAAC;AAAE,wBAAY,OAAO,OAAO,0BAAwBC,KAAEA,GAAE,OAAO,OAAO,sBAAsBD,EAAC,EAAE,OAAQ,SAASD,KAAE;AAAC,mBAAO,OAAO,yBAAyBC,IAAED,GAAC,EAAE;AAAA,UAAU,CAAE,CAAC,IAAGE,GAAE,QAAS,SAASJ,KAAE;AAAC,YAAAC,GAAEC,KAAEF,KAAEG,GAAEH,GAAC,CAAC;AAAA,UAAE,CAAE;AAAA,QAAE;AAAC,eAAOE;AAAA,MAAC,EAAE,CAAC,GAAEF,KAAE,EAAC,eAAc,OAAG,OAAM,EAAC,CAAC,CAAC;AAAA,IAAC,EAAC,CAAC,MAAII,GAAEG,GAAE,WAAUK,EAAC,GAAEZ;AAAA,EAAC,EAAEa,GAAE,KAAK,CAAC;AAAE,SAAO,MAAIkC;AAAC;AAAC,SAAS,IAAI7C,IAAEF,IAAE;AAAC,SAAO,SAASE,IAAE;AAAC,QAAG,MAAM,QAAQA,EAAC;AAAE,aAAOA;AAAA,EAAC,EAAEA,EAAC,KAAG,SAASA,IAAEF,KAAE;AAAC,QAAIG,KAAE,CAAC,GAAEF,KAAE,MAAGG,KAAE,OAAGI,KAAE;AAAO,QAAG;AAAC,eAAQH,IAAEE,KAAEL,GAAE,OAAO,QAAQ,EAAE,GAAE,EAAED,MAAGI,KAAEE,GAAE,KAAK,GAAG,UAAQJ,GAAE,KAAKE,GAAE,KAAK,GAAE,CAACL,OAAGG,GAAE,WAASH,MAAGC,KAAE;AAAG;AAAA,IAAC,SAAOC,KAAE;AAAC,MAAAE,KAAE,MAAGI,KAAEN;AAAA,IAAE,UAAC;AAAQ,UAAG;AAAC,QAAAD,MAAG,QAAMM,GAAE,UAAQA,GAAE,OAAO;AAAA,MAAE,UAAC;AAAQ,YAAGH;AAAE,gBAAMI;AAAA,MAAC;AAAA,IAAC;AAAC,WAAOL;AAAA,EAAC,EAAED,IAAEF,EAAC,KAAG,WAAU;AAAC,UAAM,IAAI,UAAU,sDAAsD;AAAA,EAAC,EAAE;AAAC;AAAC,SAAS,IAAIE,IAAE;AAAC,UAAQ,MAAI,cAAY,OAAO,UAAQ,YAAU,OAAO,OAAO,WAAS,SAASA,IAAE;AAAC,WAAO,OAAOA;AAAA,EAAC,IAAE,SAASA,IAAE;AAAC,WAAOA,MAAG,cAAY,OAAO,UAAQA,GAAE,gBAAc,UAAQA,OAAI,OAAO,YAAU,WAAS,OAAOA;AAAA,EAAC,GAAGA,EAAC;AAAC;AAAC,IAAI,MAAI,WAAS,KAAK;AAAtB,IAA4B,MAAI,SAASA,IAAE;AAAC,MAAIF,KAAE,CAAC;AAAE,SAAOE,GAAE,QAAS,SAASA,IAAE;AAAC,WAAOF,GAAE,KAAKE,EAAC;AAAA,EAAC,CAAE,GAAEF;AAAC;AAAxG,IAA0G,MAAI,SAASE,IAAE;AAAC,MAAIF,KAAE,CAAC;AAAE,SAAOE,GAAE,QAAS,SAASA,IAAEC,IAAE;AAAC,WAAOH,GAAE,KAAK,CAACG,IAAED,EAAC,CAAC;AAAA,EAAC,CAAE,GAAEF;AAAC;AAA5L,IAA8L,MAAI,OAAO,KAAG,OAAO,KAAGwC;AAAtN,IAAwN,MAAI,OAAO,wBAAsB,OAAO,wBAAsB,WAAU;AAAC,SAAO,CAAC;AAAC;AAA1S,IAA4S,MAAI,OAAO,QAAM,OAAO,QAAM;AAAI,SAAS,IAAItC,IAAE;AAAC,SAAOA,GAAE,KAAK,KAAKA,EAAC;AAAC;AAAC,IAAIwC,KAAE,IAAI,OAAO,UAAU,cAAc;AAAzC,IAA2C,MAAI,IAAI,OAAO,UAAU,oBAAoB;AAAxF,IAA0FC,KAAE,IAAI,OAAO,UAAU,QAAQ;AAAzH,IAA2H,MAAI,EAAI;AAAnI,IAAyIC,KAAE,IAAI;AAA/I,IAAgKC,KAAE,IAAI;AAAtK,IAAwLC,KAAE,IAAI;AAA9L,IAAqMC,KAAE,IAAI;AAA3M,IAAiN,MAAI,IAAI;AAAzN,IAAkOC,KAAE,IAAI;AAAxO,IAA8OC,KAAE,IAAI;AAApP,IAAkQC,KAAE,IAAI;AAAxQ,IAAyR,MAAI,IAAI;AAAjS,IAAgTC,KAAE,IAAI;AAAtT,IAAqUC,KAAE,IAAI;AAA3U,IAA2VC,KAAE,IAAI;AAAjW,IAAgX,MAAI,IAAI;AAAxX,IAAuYC,KAAE,IAAI;AAA7Y,IAA4ZC,KAAE,IAAI;AAAe,SAASC,GAAEtD,IAAE;AAAC,MAAG,MAAIA,GAAE,UAAQA,GAAE,SAAO;AAAG,WAAO;AAAG,WAAQF,KAAE,GAAEA,KAAEE,GAAE,QAAOF,MAAI;AAAC,QAAIG,KAAED,GAAE,WAAWF,EAAC;AAAE,QAAGG,KAAE,MAAIA,KAAE;AAAG,aAAO;AAAA,EAAE;AAAC,SAAO,OAAKD,GAAE,UAAQA,MAAG,KAAK,IAAI,GAAE,EAAE;AAAC;AAAC,SAASuD,GAAEvD,IAAE;AAAC,SAAO,OAAO,KAAKA,EAAC,EAAE,OAAOsD,EAAC,EAAE,OAAO,IAAItD,EAAC,EAAE,OAAO,OAAO,UAAU,qBAAqB,KAAKA,EAAC,CAAC,CAAC;AAAC;AAMh+yB,SAASwD,GAAExD,IAAEF,IAAE;AAAC,MAAGE,OAAIF;AAAE,WAAO;AAAE,WAAQG,KAAED,GAAE,QAAOD,KAAED,GAAE,QAAOI,KAAE,GAAEI,KAAE,KAAK,IAAIL,IAAEF,EAAC,GAAEG,KAAEI,IAAE,EAAEJ;AAAE,QAAGF,GAAEE,EAAC,MAAIJ,GAAEI,EAAC,GAAE;AAAC,MAAAD,KAAED,GAAEE,EAAC,GAAEH,KAAED,GAAEI,EAAC;AAAE;AAAA,IAAK;AAAC,SAAOD,KAAEF,KAAE,KAAGA,KAAEE,KAAE,IAAE;AAAC;AAAC,SAASwD,GAAEzD,IAAEF,IAAEG,IAAEF,IAAE;AAAC,MAAGC,OAAIF;AAAE,WAAO,MAAIE,OAAI,CAACC,MAAG,IAAID,IAAEF,EAAC;AAAG,MAAGG,IAAE;AAAC,QAAG,aAAW,IAAID,EAAC;AAAE,aAAO,YAAU,OAAOA,MAAG,IAAIA,EAAC,KAAG,IAAIF,EAAC;AAAE,QAAG,aAAW,IAAIA,EAAC,KAAG,SAAOE,MAAG,SAAOF;AAAE,aAAO;AAAG,QAAG,OAAO,eAAeE,EAAC,MAAI,OAAO,eAAeF,EAAC;AAAE,aAAO;AAAA,EAAE,OAAM;AAAC,QAAG,SAAOE,MAAG,aAAW,IAAIA,EAAC;AAAE,cAAQ,SAAOF,MAAG,aAAW,IAAIA,EAAC,MAAIE,MAAGF;AAAE,QAAG,SAAOA,MAAG,aAAW,IAAIA,EAAC;AAAE,aAAO;AAAA,EAAE;AAAC,MAAII,IAAEI,IAAEH,IAAEE,IAAEK,KAAE+B,GAAEzC,EAAC;AAAE,MAAGU,OAAI+B,GAAE3C,EAAC;AAAE,WAAO;AAAG,MAAG,MAAM,QAAQE,EAAC,GAAE;AAAC,QAAGA,GAAE,WAASF,GAAE;AAAO,aAAO;AAAG,QAAIM,KAAEmD,GAAEvD,EAAC,GAAEW,KAAE4C,GAAEzD,EAAC;AAAE,WAAOM,GAAE,WAASO,GAAE,UAAQ+C,GAAE1D,IAAEF,IAAEG,IAAEF,IAAE,GAAEK,EAAC;AAAA,EAAC;AAAC,MAAG,sBAAoBM,OAAI,CAACmC,GAAE7C,EAAC,KAAG6C,GAAE/C,EAAC,KAAG,CAACgD,GAAE9C,EAAC,KAAG8C,GAAEhD,EAAC;AAAG,WAAO;AAAG,MAAG8C,GAAE5C,EAAC,GAAE;AAAC,QAAG,CAAC4C,GAAE9C,EAAC,KAAG,KAAK,UAAU,QAAQ,KAAKE,EAAC,MAAI,KAAK,UAAU,QAAQ,KAAKF,EAAC;AAAE,aAAO;AAAA,EAAE,WAAS,IAAIE,EAAC,GAAE;AAAC,QAAG,CAAC,IAAIF,EAAC,MAAIK,KAAEH,IAAEK,KAAEP,IAAE,EAAE,MAAIK,GAAE,WAASE,GAAE,UAAQF,GAAE,UAAQE,GAAE,QAAM,OAAO,UAAU,SAAS,KAAKF,EAAC,MAAI,OAAO,UAAU,SAAS,KAAKE,EAAC;AAAI,aAAO;AAAA,EAAE,WAAS0C,GAAE/C,EAAC,KAAGA,cAAa,OAAM;AAAC,QAAGA,GAAE,YAAUF,GAAE,WAASE,GAAE,SAAOF,GAAE;AAAK,aAAO;AAAA,EAAE,OAAM;AAAC,QAAG6C,GAAE3C,EAAC,GAAE;AAAC,UAAGC,MAAG,CAACmD,GAAEpD,EAAC,KAAG,CAACqD,GAAErD,EAAC,GAAE;AAAC,YAAG,CAAC,SAASA,IAAEF,KAAE;AAAC,iBAAOE,GAAE,eAAaF,IAAE,cAAY,MAAI0D,GAAE,IAAI,WAAWxD,GAAE,QAAOA,GAAE,YAAWA,GAAE,UAAU,GAAE,IAAI,WAAWF,IAAE,QAAOA,IAAE,YAAWA,IAAE,UAAU,CAAC;AAAA,QAAC,EAAEE,IAAEF,EAAC;AAAE,iBAAO;AAAA,MAAE,WAAS,CAAC,SAASE,IAAEF,KAAE;AAAC,YAAGE,GAAE,eAAaF,IAAE;AAAW,iBAAO;AAAG,iBAAQG,KAAE,GAAEA,KAAED,GAAE,YAAWC;AAAI,cAAGD,GAAEC,EAAC,MAAIH,IAAEG,EAAC;AAAE,mBAAO;AAAG,eAAO;AAAA,MAAE,EAAED,IAAEF,EAAC;AAAE,eAAO;AAAG,UAAIe,KAAE0C,GAAEvD,EAAC,GAAEgB,KAAEuC,GAAEzD,EAAC;AAAE,aAAOe,GAAE,WAASG,GAAE,UAAQ0C,GAAE1D,IAAEF,IAAEG,IAAEF,IAAE,GAAEc,EAAC;AAAA,IAAC;AAAC,QAAGiC,GAAE9C,EAAC;AAAE,aAAO,EAAE,CAAC8C,GAAEhD,EAAC,KAAGE,GAAE,SAAOF,GAAE,SAAO4D,GAAE1D,IAAEF,IAAEG,IAAEF,IAAE,CAAC;AAAE,QAAG8C,GAAE7C,EAAC;AAAE,aAAO,EAAE,CAAC6C,GAAE/C,EAAC,KAAGE,GAAE,SAAOF,GAAE,SAAO4D,GAAE1D,IAAEF,IAAEG,IAAEF,IAAE,CAAC;AAAE,QAAG2C,GAAE1C,EAAC,GAAE;AAAC,UAAGM,KAAER,KAAGI,KAAEF,IAAG,eAAaM,GAAE,cAAY,MAAIkD,GAAE,IAAI,WAAWtD,EAAC,GAAE,IAAI,WAAWI,EAAC,CAAC;AAAE,eAAO;AAAA,IAAE,WAAS0C,GAAEhD,EAAC,KAAG,CAAC,SAASA,IAAEF,KAAE;AAAC,aAAO,IAAIE,EAAC,IAAE,IAAIF,GAAC,KAAG,IAAI,OAAO,UAAU,QAAQ,KAAKE,EAAC,GAAE,OAAO,UAAU,QAAQ,KAAKF,GAAC,CAAC,IAAEmD,GAAEjD,EAAC,IAAEiD,GAAEnD,GAAC,KAAG,OAAO,UAAU,QAAQ,KAAKE,EAAC,MAAI,OAAO,UAAU,QAAQ,KAAKF,GAAC,IAAEoD,GAAElD,EAAC,IAAEkD,GAAEpD,GAAC,KAAG,QAAQ,UAAU,QAAQ,KAAKE,EAAC,MAAI,QAAQ,UAAU,QAAQ,KAAKF,GAAC,IAAEqD,GAAEnD,EAAC,IAAEmD,GAAErD,GAAC,KAAG,OAAO,UAAU,QAAQ,KAAKE,EAAC,MAAI,OAAO,UAAU,QAAQ,KAAKF,GAAC,IAAE,IAAIA,GAAC,KAAG,OAAO,UAAU,QAAQ,KAAKE,EAAC,MAAI,OAAO,UAAU,QAAQ,KAAKF,GAAC;AAAA,IAAC,EAAEE,IAAEF,EAAC;AAAE,aAAO;AAAA,EAAE;AAAC,SAAO4D,GAAE1D,IAAEF,IAAEG,IAAEF,IAAE,CAAC;AAAC;AAAC,SAAS4D,GAAE3D,IAAEF,IAAE;AAAC,SAAOA,GAAE,OAAQ,SAASA,KAAE;AAAC,WAAO,IAAIE,IAAEF,GAAC;AAAA,EAAC,CAAE;AAAC;AAAC,SAAS4D,GAAE1D,IAAEF,IAAEG,IAAEF,IAAEG,IAAEI,IAAE;AAAC,MAAG,MAAI,UAAU,QAAO;AAAC,IAAAA,KAAE,OAAO,KAAKN,EAAC;AAAE,QAAIG,KAAE,OAAO,KAAKL,EAAC;AAAE,QAAGQ,GAAE,WAASH,GAAE;AAAO,aAAO;AAAA,EAAE;AAAC,WAAQE,KAAE,GAAEA,KAAEC,GAAE,QAAOD;AAAI,QAAG,CAACmC,GAAE1C,IAAEQ,GAAED,EAAC,CAAC;AAAE,aAAO;AAAG,MAAGJ,MAAG,MAAI,UAAU,QAAO;AAAC,QAAIS,KAAE,IAAIV,EAAC;AAAE,QAAG,MAAIU,GAAE,QAAO;AAAC,UAAIN,KAAE;AAAE,WAAIC,KAAE,GAAEA,KAAEK,GAAE,QAAOL,MAAI;AAAC,YAAIM,KAAED,GAAEL,EAAC;AAAE,YAAG,IAAIL,IAAEW,EAAC,GAAE;AAAC,cAAG,CAAC,IAAIb,IAAEa,EAAC;AAAE,mBAAO;AAAG,UAAAL,GAAE,KAAKK,EAAC,GAAEP;AAAA,QAAI,WAAS,IAAIN,IAAEa,EAAC;AAAE,iBAAO;AAAA,MAAE;AAAC,UAAIE,KAAE,IAAIf,EAAC;AAAE,UAAGY,GAAE,WAASG,GAAE,UAAQ8C,GAAE7D,IAAEe,EAAC,EAAE,WAAST;AAAE,eAAO;AAAA,IAAE,OAAM;AAAC,UAAIQ,KAAE,IAAId,EAAC;AAAE,UAAG,MAAIc,GAAE,UAAQ,MAAI+C,GAAE7D,IAAEc,EAAC,EAAE;AAAO,eAAO;AAAA,IAAE;AAAA,EAAC;AAAC,MAAG,MAAIN,GAAE,WAAS,MAAIJ,MAAG,MAAIA,MAAG,MAAIF,GAAE,UAAQ,MAAIA,GAAE;AAAM,WAAO;AAAG,MAAG,WAASD;AAAE,IAAAA,KAAE,EAAC,MAAK,oBAAI,OAAI,MAAK,oBAAI,OAAI,UAAS,EAAC;AAAA,OAAO;AAAC,QAAIgB,KAAEhB,GAAE,KAAK,IAAIC,EAAC;AAAE,QAAG,WAASe,IAAE;AAAC,UAAIC,KAAEjB,GAAE,KAAK,IAAID,EAAC;AAAE,UAAG,WAASkB;AAAE,eAAOD,OAAIC;AAAA,IAAC;AAAC,IAAAjB,GAAE;AAAA,EAAW;AAAC,EAAAA,GAAE,KAAK,IAAIC,IAAED,GAAE,QAAQ,GAAEA,GAAE,KAAK,IAAID,IAAEC,GAAE,QAAQ;AAAE,MAAIe,KAAE8C,GAAE5D,IAAEF,IAAEG,IAAEK,IAAEP,IAAEG,EAAC;AAAE,SAAOH,GAAE,KAAK,OAAOC,EAAC,GAAED,GAAE,KAAK,OAAOD,EAAC,GAAEgB;AAAC;AAAC,SAAS+C,GAAE7D,IAAEF,IAAEG,IAAEF,IAAE;AAAC,WAAQG,KAAE,IAAIF,EAAC,GAAEM,KAAE,GAAEA,KAAEJ,GAAE,QAAOI,MAAI;AAAC,QAAIH,KAAED,GAAEI,EAAC;AAAE,QAAGmD,GAAE3D,IAAEK,IAAEF,IAAEF,EAAC;AAAE,aAAOC,GAAE,OAAOG,EAAC,GAAE;AAAA,EAAE;AAAC,SAAO;AAAE;AAAC,SAAS2D,GAAE9D,IAAE;AAAC,UAAO,IAAIA,EAAC,GAAE;AAAA,IAAC,KAAI;AAAY,aAAO;AAAA,IAAK,KAAI;AAAS;AAAA,IAAO,KAAI;AAAS,aAAO;AAAA,IAAG,KAAI;AAAS,MAAAA,KAAE,CAACA;AAAA,IAAE,KAAI;AAAS,UAAG,IAAIA,EAAC;AAAE,eAAO;AAAA,EAAE;AAAC,SAAO;AAAE;AAAC,SAAS+D,GAAE/D,IAAEF,IAAEG,IAAE;AAAC,MAAIF,KAAE+D,GAAE7D,EAAC;AAAE,SAAO,QAAMF,KAAEA,KAAED,GAAE,IAAIC,EAAC,KAAG,CAACC,GAAE,IAAID,EAAC;AAAC;AAAC,SAASiE,GAAEhE,IAAEF,IAAEG,IAAEF,IAAEG,IAAE;AAAC,MAAII,KAAEwD,GAAE7D,EAAC;AAAE,MAAG,QAAMK;AAAE,WAAOA;AAAE,MAAIH,KAAEL,GAAE,IAAIQ,EAAC;AAAE,SAAO,EAAE,WAASH,MAAG,CAACL,GAAE,IAAIQ,EAAC,KAAG,CAACmD,GAAE1D,IAAEI,IAAE,OAAGD,EAAC,OAAK,CAACF,GAAE,IAAIM,EAAC,KAAGmD,GAAE1D,IAAEI,IAAE,OAAGD,EAAC;AAAE;AAAC,SAAS+D,GAAEjE,IAAEF,IAAEG,IAAEF,IAAEG,IAAEI,IAAE;AAAC,WAAQH,KAAE,IAAIH,EAAC,GAAEK,KAAE,GAAEA,KAAEF,GAAE,QAAOE,MAAI;AAAC,QAAIK,KAAEP,GAAEE,EAAC;AAAE,QAAGoD,GAAExD,IAAES,IAAER,IAAEI,EAAC,KAAGmD,GAAE1D,IAAED,GAAE,IAAIY,EAAC,GAAER,IAAEI,EAAC;AAAE,aAAON,GAAE,OAAOU,EAAC,GAAE;AAAA,EAAE;AAAC,SAAO;AAAE;AAAC,SAASkD,GAAE5D,IAAEF,IAAEG,IAAEF,IAAEG,IAAEI,IAAE;AAAC,MAAIH,KAAE;AAAE,MAAG,MAAIG,IAAE;AAAC,QAAG,CAAC,SAASN,IAAEF,KAAEG,IAAEF,KAAE;AAAC,eAAQG,KAAE,MAAKI,KAAE,IAAIN,EAAC,GAAEG,KAAE,GAAEA,KAAEG,GAAE,QAAOH,MAAI;AAAC,YAAIE,KAAEC,GAAEH,EAAC;AAAE,YAAG,aAAW,IAAIE,EAAC,KAAG,SAAOA;AAAE,mBAAOH,OAAIA,KAAE,oBAAI,QAAKA,GAAE,IAAIG,EAAC;AAAA,iBAAU,CAACP,IAAE,IAAIO,EAAC,GAAE;AAAC,cAAGJ;AAAE,mBAAO;AAAG,cAAG,CAAC8D,GAAE/D,IAAEF,KAAEO,EAAC;AAAE,mBAAO;AAAG,mBAAOH,OAAIA,KAAE,oBAAI,QAAKA,GAAE,IAAIG,EAAC;AAAA,QAAE;AAAA,MAAC;AAAC,UAAG,SAAOH,IAAE;AAAC,iBAAQQ,KAAE,IAAIZ,GAAC,GAAEM,KAAE,GAAEA,KAAEM,GAAE,QAAON,MAAI;AAAC,cAAIO,KAAED,GAAEN,EAAC;AAAE,cAAG,aAAW,IAAIO,EAAC,KAAG,SAAOA,IAAE;AAAC,gBAAG,CAACkD,GAAE3D,IAAES,IAAEV,IAAEF,GAAC;AAAE,qBAAO;AAAA,UAAE,WAAS,CAACE,MAAG,CAACD,GAAE,IAAIW,EAAC,KAAG,CAACkD,GAAE3D,IAAES,IAAEV,IAAEF,GAAC;AAAE,mBAAO;AAAA,QAAE;AAAC,eAAO,MAAIG,GAAE;AAAA,MAAI;AAAC,aAAO;AAAA,IAAE,EAAEF,IAAEF,IAAEG,IAAEC,EAAC;AAAE,aAAO;AAAA,EAAE,WAAS,MAAII,IAAE;AAAC,QAAG,CAAC,SAASN,IAAEF,KAAEG,IAAEF,KAAE;AAAC,eAAQG,KAAE,MAAKI,KAAE,IAAIN,EAAC,GAAEG,KAAE,GAAEA,KAAEG,GAAE,QAAOH,MAAI;AAAC,YAAIE,KAAE,IAAIC,GAAEH,EAAC,GAAE,CAAC,GAAEO,KAAEL,GAAE,CAAC,GAAED,KAAEC,GAAE,CAAC;AAAE,YAAG,aAAW,IAAIK,EAAC,KAAG,SAAOA;AAAE,mBAAOR,OAAIA,KAAE,oBAAI,QAAKA,GAAE,IAAIQ,EAAC;AAAA,aAAO;AAAC,cAAIC,KAAEb,IAAE,IAAIY,EAAC;AAAE,cAAG,WAASC,MAAG,CAACb,IAAE,IAAIY,EAAC,KAAG,CAAC+C,GAAErD,IAAEO,IAAEV,IAAEF,GAAC,GAAE;AAAC,gBAAGE;AAAE,qBAAO;AAAG,gBAAG,CAAC+D,GAAEhE,IAAEF,KAAEY,IAAEN,IAAEL,GAAC;AAAE,qBAAO;AAAG,qBAAOG,OAAIA,KAAE,oBAAI,QAAKA,GAAE,IAAIQ,EAAC;AAAA,UAAE;AAAA,QAAC;AAAA,MAAC;AAAC,UAAG,SAAOR,IAAE;AAAC,iBAAQa,KAAE,IAAIjB,GAAC,GAAEkB,KAAE,GAAEA,KAAED,GAAE,QAAOC,MAAI;AAAC,cAAIT,KAAE,IAAIQ,GAAEC,EAAC,GAAE,CAAC,GAAEmB,MAAGzB,KAAEH,GAAE,CAAC,GAAEA,GAAE,CAAC;AAAG,cAAG,aAAW,IAAIG,EAAC,KAAG,SAAOA,IAAE;AAAC,gBAAG,CAACuD,GAAE/D,IAAEF,IAAEU,IAAEyB,IAAElC,IAAEF,GAAC;AAAE,qBAAO;AAAA,UAAE,WAAS,EAAEE,MAAGD,GAAE,IAAIU,EAAC,KAAG+C,GAAEzD,GAAE,IAAIU,EAAC,GAAEyB,IAAE,OAAGpC,GAAC,KAAGkE,GAAE/D,IAAEF,IAAEU,IAAEyB,IAAE,OAAGpC,GAAC;AAAG,mBAAO;AAAA,QAAE;AAAC,eAAO,MAAIG,GAAE;AAAA,MAAI;AAAC,aAAO;AAAA,IAAE,EAAEF,IAAEF,IAAEG,IAAEC,EAAC;AAAE,aAAO;AAAA,EAAE,WAAS,MAAII;AAAE,WAAKH,KAAEH,GAAE,QAAOG,MAAI;AAAC,UAAG,CAACqC,GAAExC,IAAEG,EAAC,GAAE;AAAC,YAAGqC,GAAE1C,IAAEK,EAAC;AAAE,iBAAO;AAAG,iBAAQE,KAAE,OAAO,KAAKL,EAAC,GAAEG,KAAEE,GAAE,QAAOF,MAAI;AAAC,cAAIO,KAAEL,GAAEF,EAAC;AAAE,cAAG,CAACqC,GAAE1C,IAAEY,EAAC,KAAG,CAAC+C,GAAEzD,GAAEU,EAAC,GAAEZ,GAAEY,EAAC,GAAET,IAAEC,EAAC;AAAE,mBAAO;AAAA,QAAE;AAAC,eAAOG,GAAE,WAAS,OAAO,KAAKP,EAAC,EAAE;AAAA,MAAM;AAAC,UAAG,CAAC0C,GAAE1C,IAAEK,EAAC,KAAG,CAACsD,GAAEzD,GAAEG,EAAC,GAAEL,GAAEK,EAAC,GAAEF,IAAEC,EAAC;AAAE,eAAO;AAAA,IAAE;AAAC,OAAIC,KAAE,GAAEA,KAAEJ,GAAE,QAAOI,MAAI;AAAC,QAAIC,KAAEL,GAAEI,EAAC;AAAE,QAAG,CAACsD,GAAEzD,GAAEI,EAAC,GAAEN,GAAEM,EAAC,GAAEH,IAAEC,EAAC;AAAE,aAAO;AAAA,EAAE;AAAC,SAAO;AAAE;AAAC,IAAIgE,KAAE,EAAC,aAAY,SAASlE,IAAEF,IAAE;AAAC,SAAO2D,GAAEzD,IAAEF,IAAE,KAAE;AAAC,GAAE,mBAAkB,SAASE,IAAEF,IAAE;AAAC,SAAO2D,GAAEzD,IAAEF,IAAE,IAAE;AAAC,EAAC;AAApG,IAAsGqE,KAAE,CAAC;AAAzG,IAA2G,MAAI;AAAG,SAAS,KAAI;AAAC,MAAG;AAAI,WAAOA;AAAE,QAAI;AAAG,MAAIjE,KAAE;AAAI,WAASI,GAAEN,IAAE;AAAC,YAAQM,KAAE,cAAY,OAAO,UAAQ,YAAU,OAAO,OAAO,WAAS,SAASN,IAAE;AAAC,aAAO,OAAOA;AAAA,IAAC,IAAE,SAASA,IAAE;AAAC,aAAOA,MAAG,cAAY,OAAO,UAAQA,GAAE,gBAAc,UAAQA,OAAI,OAAO,YAAU,WAAS,OAAOA;AAAA,IAAC,GAAGA,EAAC;AAAA,EAAC;AAAC,MAAIG,IAAEO,IAAEN,KAAE,IAAI,EAAE,OAAMS,KAAET,GAAE,wBAAuBQ,KAAER,GAAE,sBAAqBW,KAAEX,GAAE,uBAAsBY,KAAEZ,GAAE,0BAAyBU,KAAEV,GAAE,kBAAiBG,KAAE,IAAI,GAAE4B,KAAE,EAAI,SAAQH,KAAE,EAAI,OAAMoC,OAAIpC,GAAE,WAAUQ,KAAER,GAAE,UAASb,KAAE,OAAO,SAAO,OAAO,SAAOpB,GAAE,QAAO0C,KAAE,OAAO,KAAG,OAAO,KAAGH;AAAE,WAASpB,KAAG;AAAC,IAAAf,KAAE+D,GAAE,aAAYxD,KAAEwD,GAAE;AAAA,EAAkB;AAAC,MAAIxB,KAAE,OAAGC,KAAEwB,KAAErB,IAAEF,KAAE,CAAC;AAAE,WAASC,GAAE7C,IAAE;AAAC,QAAGA,GAAE,mBAAmB;AAAM,YAAMA,GAAE;AAAQ,UAAM,IAAIO,GAAEP,EAAC;AAAA,EAAC;AAAC,WAASkC,GAAElC,IAAEF,IAAEG,IAAEF,IAAE;AAAC,QAAG,CAACE,IAAE;AAAC,UAAIC,KAAE;AAAG,UAAG,MAAIJ;AAAE,QAAAI,KAAE,MAAGH,KAAE;AAAA,eAAoDA,cAAa;AAAM,cAAMA;AAAE,UAAIO,KAAE,IAAIC,GAAE,EAAC,QAAON,IAAE,UAAS,MAAG,SAAQF,IAAE,UAAS,MAAK,cAAaC,GAAC,CAAC;AAAE,YAAMM,GAAE,mBAAiBJ,IAAEI;AAAA,IAAC;AAAA,EAAC;AAAC,WAASwC,KAAG;AAAC,aAAQ9C,KAAE,UAAU,QAAOF,KAAE,IAAI,MAAME,EAAC,GAAEC,KAAE,GAAEA,KAAED,IAAEC;AAAI,MAAAH,GAAEG,EAAC,IAAE,UAAUA,EAAC;AAAE,IAAAiC,GAAE,MAAM,QAAO,CAACY,IAAEhD,GAAE,MAAM,EAAE,OAAOA,EAAC,CAAC;AAAA,EAAE;AAAC,EAAA6C,GAAE,OAAK,SAAS3C,GAAEF,IAAEG,IAAEF,IAAEO,IAAEH,IAAE;AAAC,QAAIE,IAAEK,KAAE,UAAU;AAAO,QAAG,MAAIA;AAAE,MAAAL,KAAE;AAAA,aAAiB,MAAIK;AAAE,MAAAX,KAAED,IAAEA,KAAE;AAAA,SAAY;AAAC,UAAG,UAAK4C,IAAE;AAAC,QAAAA,KAAE;AAAG,YAAItC,KAAEF,GAAE,cAAYA,GAAE,cAAY,QAAQ,KAAK,KAAK,OAAO;AAAE,QAAAE,GAAE,4HAA2H,sBAAqB,SAAS;AAAA,MAAE;AAAC,YAAIM,OAAIJ,KAAE;AAAA,IAAM;AAAC,QAAGP,cAAa;AAAM,YAAMA;AAAE,QAAIY,KAAE,EAAC,QAAOb,IAAE,UAASG,IAAE,UAAS,WAASK,KAAE,SAAOA,IAAE,cAAaH,MAAGH,GAAC;AAAE,eAASD,OAAIY,GAAE,UAAQZ;AAAG,QAAIc,KAAE,IAAIN,GAAEI,EAAC;AAAE,UAAMN,OAAIQ,GAAE,UAAQR,IAAEQ,GAAE,mBAAiB,OAAIA;AAAA,EAAC,GAAE8B,GAAE,iBAAepC,IAAEoC,GAAE,KAAGG,IAAEH,GAAE,QAAM,SAAS3C,GAAEF,IAAEG,IAAEF,IAAE;AAAC,QAAG,UAAU,SAAO;AAAE,YAAM,IAAIe,GAAE,UAAS,UAAU;AAAE,IAAAhB,MAAGG,MAAG4C,GAAE,EAAC,QAAO/C,IAAE,UAASG,IAAE,SAAQF,IAAE,UAAS,MAAK,cAAaC,GAAC,CAAC;AAAA,EAAE,GAAE2C,GAAE,WAAS,SAAS3C,GAAEF,IAAEG,IAAEF,IAAE;AAAC,QAAG,UAAU,SAAO;AAAE,YAAM,IAAIe,GAAE,UAAS,UAAU;AAAE,IAAAhB,MAAGG,MAAG4C,GAAE,EAAC,QAAO/C,IAAE,UAASG,IAAE,SAAQF,IAAE,UAAS,MAAK,cAAaC,GAAC,CAAC;AAAA,EAAE,GAAE2C,GAAE,YAAU,SAAS3C,GAAEF,IAAEG,IAAEF,IAAE;AAAC,QAAG,UAAU,SAAO;AAAE,YAAM,IAAIe,GAAE,UAAS,UAAU;AAAE,eAASX,MAAGe,GAAE,GAAEf,GAAEL,IAAEG,EAAC,KAAG4C,GAAE,EAAC,QAAO/C,IAAE,UAASG,IAAE,SAAQF,IAAE,UAAS,aAAY,cAAaC,GAAC,CAAC;AAAA,EAAE,GAAE2C,GAAE,eAAa,SAAS3C,GAAEF,IAAEG,IAAEF,IAAE;AAAC,QAAG,UAAU,SAAO;AAAE,YAAM,IAAIe,GAAE,UAAS,UAAU;AAAE,eAASX,MAAGe,GAAE,GAAEf,GAAEL,IAAEG,EAAC,KAAG4C,GAAE,EAAC,QAAO/C,IAAE,UAASG,IAAE,SAAQF,IAAE,UAAS,gBAAe,cAAaC,GAAC,CAAC;AAAA,EAAE,GAAE2C,GAAE,kBAAgB,SAAS3C,GAAEF,IAAEG,IAAEF,IAAE;AAAC,QAAG,UAAU,SAAO;AAAE,YAAM,IAAIe,GAAE,UAAS,UAAU;AAAE,eAASX,MAAGe,GAAE,GAAER,GAAEZ,IAAEG,EAAC,KAAG4C,GAAE,EAAC,QAAO/C,IAAE,UAASG,IAAE,SAAQF,IAAE,UAAS,mBAAkB,cAAaC,GAAC,CAAC;AAAA,EAAE,GAAE2C,GAAE,qBAAmB,SAAS3C,GAAEF,IAAEG,IAAEF,IAAE;AAAC,QAAG,UAAU,SAAO;AAAE,YAAM,IAAIe,GAAE,UAAS,UAAU;AAAE,eAASX,MAAGe,GAAE;AAAE,IAAAR,GAAEZ,IAAEG,EAAC,KAAG4C,GAAE,EAAC,QAAO/C,IAAE,UAASG,IAAE,SAAQF,IAAE,UAAS,sBAAqB,cAAaC,GAAC,CAAC;AAAA,EAAE,GAAE2C,GAAE,cAAY,SAAS3C,GAAEF,IAAEG,IAAEF,IAAE;AAAC,QAAG,UAAU,SAAO;AAAE,YAAM,IAAIe,GAAE,UAAS,UAAU;AAAE,IAAA2B,GAAE3C,IAAEG,EAAC,KAAG4C,GAAE,EAAC,QAAO/C,IAAE,UAASG,IAAE,SAAQF,IAAE,UAAS,eAAc,cAAaC,GAAC,CAAC;AAAA,EAAE,GAAE2C,GAAE,iBAAe,SAAS3C,GAAEF,IAAEG,IAAEF,IAAE;AAAC,QAAG,UAAU,SAAO;AAAE,YAAM,IAAIe,GAAE,UAAS,UAAU;AAAE,IAAA2B,GAAE3C,IAAEG,EAAC,KAAG4C,GAAE,EAAC,QAAO/C,IAAE,UAASG,IAAE,SAAQF,IAAE,UAAS,kBAAiB,cAAaC,GAAC,CAAC;AAAA,EAAE;AAAE,MAAI+C,KAAE,SAAS/C,GAAEF,IAAEG,IAAEF,IAAE;AAAC,QAAIG,KAAE;AAAK,KAAC,SAASF,IAAEF,KAAE;AAAC,UAAG,EAAEE,cAAaF;AAAG,cAAM,IAAI,UAAU,mCAAmC;AAAA,IAAC,EAAE,MAAKE,EAAC,GAAEC,GAAE,QAAS,SAASD,IAAE;AAAC,MAAAA,MAAKF,OAAI,WAASC,MAAG,YAAU,OAAOA,GAAEC,EAAC,KAAGwC,GAAE1C,GAAEE,EAAC,CAAC,KAAGF,GAAEE,EAAC,EAAE,KAAKD,GAAEC,EAAC,CAAC,IAAEE,GAAEF,EAAC,IAAED,GAAEC,EAAC,IAAEE,GAAEF,EAAC,IAAEF,GAAEE,EAAC;AAAA,IAAG,CAAE;AAAA,EAAE;AAAE,WAASgD,GAAEhD,IAAEF,IAAEG,IAAEF,IAAEG,IAAEI,IAAE;AAAC,QAAG,EAAEL,MAAKD,OAAI,CAACU,GAAEV,GAAEC,EAAC,GAAEH,GAAEG,EAAC,CAAC,GAAE;AAAC,UAAG,CAACF,IAAE;AAAC,YAAII,KAAE,IAAI4C,GAAE/C,IAAEE,EAAC,GAAEG,KAAE,IAAI0C,GAAEjD,IAAEI,IAAEF,EAAC,GAAEI,KAAE,IAAIG,GAAE,EAAC,QAAOJ,IAAE,UAASE,IAAE,UAAS,mBAAkB,cAAaC,GAAC,CAAC;AAAE,cAAMF,GAAE,SAAOJ,IAAEI,GAAE,WAASN,IAAEM,GAAE,WAASE,GAAE,MAAKF;AAAA,MAAC;AAAC,MAAAyC,GAAE,EAAC,QAAO7C,IAAE,UAASF,IAAE,SAAQC,IAAE,UAASO,GAAE,MAAK,cAAaA,GAAC,CAAC;AAAA,IAAE;AAAA,EAAC;AAAC,WAAS8B,GAAEpC,IAAEF,IAAEG,IAAEF,IAAE;AAAC,QAAG,cAAY,OAAOD,IAAE;AAAC,UAAG0C,GAAE1C,EAAC;AAAE,eAAOA,GAAE,KAAKE,EAAC;AAAE,UAAG,MAAI,UAAU;AAAO,cAAM,IAAIY,GAAE,YAAW,CAAC,YAAW,QAAQ,GAAEd,EAAC;AAAE,UAAG,aAAWQ,GAAEN,EAAC,KAAG,SAAOA,IAAE;AAAC,YAAIE,KAAE,IAAIK,GAAE,EAAC,QAAOP,IAAE,UAASF,IAAE,SAAQG,IAAE,UAAS,mBAAkB,cAAaF,GAAC,CAAC;AAAE,cAAMG,GAAE,WAASH,GAAE,MAAKG;AAAA,MAAC;AAAC,UAAIG,KAAE,OAAO,KAAKP,EAAC;AAAE,UAAGA,cAAa;AAAM,QAAAO,GAAE,KAAK,QAAO,SAAS;AAAA,eAAU,MAAIA,GAAE;AAAO,cAAM,IAAIU,GAAE,SAAQjB,IAAE,4BAA4B;AAAE,aAAO,WAASK,MAAGe,GAAE,GAAEb,GAAE,QAAS,SAASH,KAAE;AAAC,oBAAU,OAAOF,GAAEE,GAAC,KAAGsC,GAAE1C,GAAEI,GAAC,CAAC,KAAGJ,GAAEI,GAAC,EAAE,KAAKF,GAAEE,GAAC,CAAC,KAAG8C,GAAEhD,IAAEF,IAAEI,KAAED,IAAEI,IAAEN,EAAC;AAAA,MAAE,CAAE,GAAE;AAAA,IAAE;AAAC,WAAO,WAASD,GAAE,aAAWE,cAAaF,MAAG,CAAC,MAAM,cAAcA,EAAC,KAAG,SAAKA,GAAE,KAAK,CAAC,GAAEE,EAAC;AAAA,EAAC;AAAC,WAASiD,GAAEjD,IAAE;AAAC,QAAG,cAAY,OAAOA;AAAE,YAAM,IAAIY,GAAE,MAAK,YAAWZ,EAAC;AAAE,QAAG;AAAC,MAAAA,GAAE;AAAA,IAAE,SAAOA,IAAE;AAAC,aAAOA;AAAA,IAAC;AAAC,WAAO4C;AAAA,EAAC;AAAC,WAASM,GAAElD,IAAE;AAAC,WAAOoE,KAAIpE,EAAC,KAAG,SAAOA,MAAG,aAAWM,GAAEN,EAAC,KAAG,cAAY,OAAOA,GAAE,QAAM,cAAY,OAAOA,GAAE;AAAA,EAAK;AAAC,WAASmD,GAAEnD,IAAE;AAAC,WAAO,QAAQ,QAAQ,EAAE,KAAM,WAAU;AAAC,UAAIF;AAAE,UAAG,cAAY,OAAOE,IAAE;AAAC,YAAG,CAACkD,GAAEpD,KAAEE,GAAE,CAAC;AAAE,gBAAM,IAAIgB,GAAE,uBAAsB,aAAYlB,EAAC;AAAA,MAAC,OAAM;AAAC,YAAG,CAACoD,GAAElD,EAAC;AAAE,gBAAM,IAAIY,GAAE,aAAY,CAAC,YAAW,SAAS,GAAEZ,EAAC;AAAE,QAAAF,KAAEE;AAAA,MAAE;AAAC,aAAO,QAAQ,QAAQ,EAAE,KAAM,WAAU;AAAC,eAAOF;AAAA,MAAC,CAAE,EAAE,KAAM,WAAU;AAAC,eAAO8C;AAAA,MAAC,CAAE,EAAE,MAAO,SAAS5C,IAAE;AAAC,eAAOA;AAAA,MAAC,CAAE;AAAA,IAAC,CAAE;AAAA,EAAC;AAAC,WAASuC,IAAEvC,IAAEF,IAAEG,IAAEF,IAAE;AAAC,QAAG,YAAU,OAAOE,IAAE;AAAC,UAAG,MAAI,UAAU;AAAO,cAAM,IAAIW,GAAE,SAAQ,CAAC,UAAS,SAAQ,YAAW,QAAQ,GAAEX,EAAC;AAAE,UAAG,aAAWK,GAAER,EAAC,KAAG,SAAOA,IAAE;AAAC,YAAGA,GAAE,YAAUG;AAAE,gBAAM,IAAIY,GAAE,iBAAgB,sBAAsB,OAAOf,GAAE,SAAQ,gCAAgC,CAAC;AAAA,MAAC,WAASA,OAAIG;AAAE,cAAM,IAAIY,GAAE,iBAAgB,cAAc,OAAOf,IAAE,gCAAgC,CAAC;AAAE,MAAAC,KAAEE,IAAEA,KAAE;AAAA,IAAO,WAAS,QAAMA,MAAG,aAAWK,GAAEL,EAAC,KAAG,cAAY,OAAOA;AAAE,YAAM,IAAIW,GAAE,SAAQ,CAAC,UAAS,SAAQ,YAAW,QAAQ,GAAEX,EAAC;AAAE,QAAGH,OAAI8C,IAAE;AAAC,UAAI1C,KAAE;AAAG,MAAAD,MAAGA,GAAE,SAAOC,MAAG,KAAK,OAAOD,GAAE,MAAK,GAAG,IAAGC,MAAGH,KAAE,KAAK,OAAOA,EAAC,IAAE;AAAI,UAAII,KAAE,cAAYH,GAAE,OAAK,cAAY;AAAY,MAAA6C,GAAE,EAAC,QAAO,QAAO,UAAS5C,IAAE,UAASD,GAAE,MAAK,SAAQ,oBAAoB,OAAOG,EAAC,EAAE,OAAOD,EAAC,GAAE,cAAaF,GAAC,CAAC;AAAA,IAAE;AAAC,QAAGC,MAAG,CAACmC,GAAEtC,IAAEG,IAAEF,IAAEC,EAAC;AAAE,YAAMF;AAAA,EAAC;AAAC,WAASsD,GAAEpD,IAAEF,IAAEG,IAAEF,IAAE;AAAC,QAAGD,OAAI8C,IAAE;AAAC,UAAG,YAAU,OAAO3C,OAAIF,KAAEE,IAAEA,KAAE,SAAQ,CAACA,MAAGmC,GAAEtC,IAAEG,EAAC,GAAE;AAAC,YAAIC,KAAEH,KAAE,KAAK,OAAOA,EAAC,IAAE,KAAIO,KAAE,oBAAkBN,GAAE,OAAK,cAAY;AAAY,QAAA6C,GAAE,EAAC,QAAO/C,IAAE,UAASG,IAAE,UAASD,GAAE,MAAK,SAAQ,gBAAgB,OAAOM,EAAC,EAAE,OAAOJ,IAAE,IAAI,IAAE,oBAAoB,OAAOJ,MAAGA,GAAE,SAAQ,GAAG,GAAE,cAAaE,GAAC,CAAC;AAAA,MAAE;AAAC,YAAMF;AAAA,IAAC;AAAA,EAAC;AAAC,WAASuD,KAAG;AAAC,aAAQrD,KAAE,UAAU,QAAOF,KAAE,IAAI,MAAME,EAAC,GAAEC,KAAE,GAAEA,KAAED,IAAEC;AAAI,MAAAH,GAAEG,EAAC,IAAE,UAAUA,EAAC;AAAE,IAAAiC,GAAE,MAAM,QAAO,CAACmB,IAAEvD,GAAE,MAAM,EAAE,OAAOA,EAAC,CAAC;AAAA,EAAE;AAAC,SAAO6C,GAAE,SAAO,SAAS3C,GAAEF,IAAE;AAAC,aAAQG,KAAE,UAAU,QAAOF,KAAE,IAAI,MAAME,KAAE,IAAEA,KAAE,IAAE,CAAC,GAAEC,KAAE,GAAEA,KAAED,IAAEC;AAAI,MAAAH,GAAEG,KAAE,CAAC,IAAE,UAAUA,EAAC;AAAE,IAAAqC,IAAE,MAAM,QAAO,CAACvC,IAAEiD,GAAEnD,EAAC,CAAC,EAAE,OAAOC,EAAC,CAAC;AAAA,EAAE,GAAE4C,GAAE,UAAQ,SAAS3C,GAAEF,IAAE;AAAC,aAAQG,KAAE,UAAU,QAAOF,KAAE,IAAI,MAAME,KAAE,IAAEA,KAAE,IAAE,CAAC,GAAEC,KAAE,GAAEA,KAAED,IAAEC;AAAI,MAAAH,GAAEG,KAAE,CAAC,IAAE,UAAUA,EAAC;AAAE,WAAOiD,GAAErD,EAAC,EAAE,KAAM,SAASA,KAAE;AAAC,aAAOyC,IAAE,MAAM,QAAO,CAACvC,IAAEF,GAAC,EAAE,OAAOC,EAAC,CAAC;AAAA,IAAC,CAAE;AAAA,EAAC,GAAE4C,GAAE,eAAa,SAAS3C,GAAEF,IAAE;AAAC,aAAQG,KAAE,UAAU,QAAOF,KAAE,IAAI,MAAME,KAAE,IAAEA,KAAE,IAAE,CAAC,GAAEC,KAAE,GAAEA,KAAED,IAAEC;AAAI,MAAAH,GAAEG,KAAE,CAAC,IAAE,UAAUA,EAAC;AAAE,IAAAkD,GAAE,MAAM,QAAO,CAACpD,IAAEiD,GAAEnD,EAAC,CAAC,EAAE,OAAOC,EAAC,CAAC;AAAA,EAAE,GAAE4C,GAAE,gBAAc,SAAS3C,GAAEF,IAAE;AAAC,aAAQG,KAAE,UAAU,QAAOF,KAAE,IAAI,MAAME,KAAE,IAAEA,KAAE,IAAE,CAAC,GAAEC,KAAE,GAAEA,KAAED,IAAEC;AAAI,MAAAH,GAAEG,KAAE,CAAC,IAAE,UAAUA,EAAC;AAAE,WAAOiD,GAAErD,EAAC,EAAE,KAAM,SAASA,KAAE;AAAC,aAAOsD,GAAE,MAAM,QAAO,CAACpD,IAAEF,GAAC,EAAE,OAAOC,EAAC,CAAC;AAAA,IAAC,CAAE;AAAA,EAAC,GAAE4C,GAAE,UAAQ,SAAS3C,GAAEF,IAAE;AAAC,QAAG,QAAMA,IAAE;AAAC,UAAIG,KAAE;AAAmC,mBAAWK,GAAER,EAAC,KAAG,YAAU,OAAOA,GAAE,UAAQ,MAAIA,GAAE,QAAQ,UAAQA,GAAE,cAAYG,MAAGH,GAAE,YAAY,OAAKG,MAAGH,GAAE,UAAQG,MAAGkC,GAAErC,EAAC;AAAE,UAAIC,KAAE,IAAIQ,GAAE,EAAC,QAAOT,IAAE,UAAS,MAAK,UAAS,WAAU,SAAQG,IAAE,cAAaD,GAAC,CAAC,GAAEE,KAAEJ,GAAE;AAAM,UAAG,YAAU,OAAOI,IAAE;AAAC,YAAIC,KAAED,GAAE,MAAM,IAAI;AAAE,QAAAC,GAAE,MAAM;AAAE,iBAAQE,KAAEN,GAAE,MAAM,MAAM,IAAI,GAAEW,KAAE,GAAEA,KAAEP,GAAE,QAAOO,MAAI;AAAC,cAAIN,KAAEC,GAAE,QAAQF,GAAEO,EAAC,CAAC;AAAE,cAAG,OAAKN,IAAE;AAAC,YAAAC,KAAEA,GAAE,MAAM,GAAED,EAAC;AAAE;AAAA,UAAK;AAAA,QAAC;AAAC,QAAAL,GAAE,QAAM,GAAG,OAAOM,GAAE,KAAK,IAAI,GAAE,IAAI,EAAE,OAAOF,GAAE,KAAK,IAAI,CAAC;AAAA,MAAE;AAAC,YAAMJ;AAAA,IAAC;AAAA,EAAC,GAAE4C,GAAE,SAAOxB,GAAEkC,IAAEV,IAAE,EAAC,OAAMA,GAAE,aAAY,WAAUA,GAAE,iBAAgB,UAASA,GAAE,gBAAe,cAAaA,GAAE,mBAAkB,CAAC,GAAEA,GAAE,OAAO,SAAOA,GAAE,QAAOwB;AAAC;AAAC,IAAI,KAAG,GAAG;AAAE,GAAG;AAAe,GAAG;AAAU,GAAG;AAAgB,GAAG;AAAc,GAAG;AAAa,GAAG;AAAM,GAAG;AAAK,GAAG;AAAQ,GAAG;AAAa,GAAG;AAAmB,GAAG;AAAS,GAAG;AAAe,GAAG;AAAG,GAAG;AAAQ,GAAG;AAAO,GAAG;AAAY,GAAG;AAEp8Y,GAAG;AACH,GAAG;AACH,GAAG;AACH,GAAG;AACH,GAAG;AACH,GAAG;AACH,GAAG;AACH,GAAG;AACH,GAAG;AACH,GAAG;AACH,GAAG;AACH,GAAG;AACH,GAAG;AACH,GAAG;AACH,GAAG;AACH,GAAG;AACH,GAAG;AAEH,IAAI,iBAAiB,GAAG;AACxB,IAAI,YAAY,GAAG;AACnB,IAAI,kBAAkB,GAAG;AACzB,IAAI,gBAAgB,GAAG;AACvB,IAAI,eAAe,GAAG;AACtB,IAAI,QAAQ,GAAG;AACf,IAAI,OAAO,GAAG;AACd,IAAI,UAAU,GAAG;AACjB,IAAI,eAAe,GAAG;AACtB,IAAI,qBAAqB,GAAG;AAC5B,IAAI,WAAW,GAAG;AAClB,IAAI,iBAAiB,GAAG;AACxB,IAAI,KAAK,GAAG;AACZ,IAAI,UAAU,GAAG;AACjB,IAAI,SAAS,GAAG;AAChB,IAAI,cAAc,GAAG;AACrB,IAAI,SAAS,GAAG;;;AC7ChB;AAKA,IAAIE,WAAU,EAAE;AAChB,IAAIC,eAAc,EAAE;AACpB,IAAIC,YAAW,EAAE;AACjB,IAAIC,aAAY,EAAE;AAClB,IAAIC,UAAS,EAAE;AACf,IAAIC,YAAW,EAAE;AACjB,IAAIC,WAAU,EAAE;AAChB,IAAIC,WAAU,EAAE;AAChB,IAAIC,aAAY,EAAE;AAClB,IAAIC,YAAW,EAAE;AACjB,IAAIC,UAAS,EAAE;AACf,IAAIC,WAAU,EAAE;AAChB,IAAIC,cAAa,EAAE;AACnB,IAAIC,UAAS,EAAE;AACf,IAAIC,qBAAoB,EAAE;AAC1B,IAAIC,YAAW,EAAE;AACjB,IAAIC,YAAW,EAAE;AACjB,IAAIC,eAAc,EAAE;AACpB,IAAIC,YAAW,EAAE;AACjB,IAAIC,YAAW,EAAE;AACjB,IAAIC,YAAW,EAAE;AACjB,IAAIC,eAAc,EAAE;AACpB,IAAIC,OAAM,EAAE;AACZ,IAAIC,aAAY,EAAE;AAClB,IAAIC,SAAQ,EAAE;AAEd,IAAMC,eAAc,EAAE,cAAc,WAAW;AAC/C,IAAMC,eAAc,EAAE,cAAc,WAAW;;;AChC/C;;;ACAA;AAEA,IAAIC,aAAY,CAAC;AAAjB,IACIC,YAAW;AACf,SAASC,OAAM;AACb,MAAID;AAAU,WAAOD;AACrB,EAAAC,YAAW;AACX,MAAI,YAAYE;AAEhB,WAAS,WAAWC,OAAM;AACxB,QAAI,OAAOA,UAAS,UAAU;AAC5B,YAAM,IAAI,UAAU,qCAAqC,KAAK,UAAUA,KAAI,CAAC;AAAA,IAC/E;AAAA,EACF;AAGA,WAAS,qBAAqBA,OAAM,gBAAgB;AAClD,QAAI,MAAM;AACV,QAAI,oBAAoB;AACxB,QAAI,YAAY;AAChB,QAAI,OAAO;AACX,QAAI;AAEJ,aAASC,KAAI,GAAGA,MAAKD,MAAK,QAAQ,EAAEC,IAAG;AACrC,UAAIA,KAAID,MAAK;AAAQ,eAAOA,MAAK,WAAWC,EAAC;AAAA,eAAW,SAAS;AAE/D;AAAA;AAAW,eAAO;AAIpB,UAAI,SAAS,IAEX;AACA,YAAI,cAAcA,KAAI,KAAK,SAAS;AAAG;AAAA,iBAAW,cAAcA,KAAI,KAAK,SAAS,GAAG;AACnF,cAAI,IAAI,SAAS,KAAK,sBAAsB,KAAK,IAAI,WAAW,IAAI,SAAS,CAAC,MAAM,MAEjF,IAAI,WAAW,IAAI,SAAS,CAAC,MAAM,IAEpC;AACA,gBAAI,IAAI,SAAS,GAAG;AAClB,kBAAI,iBAAiB,IAAI,YAAY,GAAG;AAExC,kBAAI,mBAAmB,IAAI,SAAS,GAAG;AACrC,oBAAI,mBAAmB,IAAI;AACzB,wBAAM;AACN,sCAAoB;AAAA,gBACtB,OAAO;AACL,wBAAM,IAAI,MAAM,GAAG,cAAc;AACjC,sCAAoB,IAAI,SAAS,IAAI,IAAI,YAAY,GAAG;AAAA,gBAC1D;AAEA,4BAAYA;AACZ,uBAAO;AACP;AAAA,cACF;AAAA,YACF,WAAW,IAAI,WAAW,KAAK,IAAI,WAAW,GAAG;AAC/C,oBAAM;AACN,kCAAoB;AACpB,0BAAYA;AACZ,qBAAO;AACP;AAAA,YACF;AAAA,UACF;AAEA,cAAI,gBAAgB;AAClB,gBAAI,IAAI,SAAS;AAAG,qBAAO;AAAA;AAAW,oBAAM;AAC5C,gCAAoB;AAAA,UACtB;AAAA,QACF,OAAO;AACL,cAAI,IAAI,SAAS;AAAG,mBAAO,MAAMD,MAAK,MAAM,YAAY,GAAGC,EAAC;AAAA;AAAO,kBAAMD,MAAK,MAAM,YAAY,GAAGC,EAAC;AACpG,8BAAoBA,KAAI,YAAY;AAAA,QACtC;AAEA,oBAAYA;AACZ,eAAO;AAAA,MACT,WAAW,SAAS,MAEjB,SAAS,IAAI;AACd,UAAE;AAAA,MACJ,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,QAAQC,MAAK,YAAY;AAChC,QAAI,MAAM,WAAW,OAAO,WAAW;AACvC,QAAIC,QAAO,WAAW,SAAS,WAAW,QAAQ,OAAO,WAAW,OAAO;AAE3E,QAAI,CAAC,KAAK;AACR,aAAOA;AAAA,IACT;AAEA,QAAI,QAAQ,WAAW,MAAM;AAC3B,aAAO,MAAMA;AAAA,IACf;AAEA,WAAO,MAAMD,OAAMC;AAAA,EACrB;AAEA,MAAIC,SAAQ;AAAA;AAAA,IAEV,SAAS,SAASC,WAAU;AAC1B,UAAI,eAAe;AACnB,UAAI,mBAAmB;AACvB,UAAI;AAEJ,eAASJ,KAAI,UAAU,SAAS,GAAGA,MAAK,MAAM,CAAC,kBAAkBA,MAAK;AACpE,YAAID;AACJ,YAAIC,MAAK;AAAG,UAAAD,QAAO,UAAUC,EAAC;AAAA,aAAO;AACnC,cAAI,QAAQ;AAAW,kBAAM,UAAU,IAAI;AAC3C,UAAAD,QAAO;AAAA,QACT;AACA,mBAAWA,KAAI;AAEf,YAAIA,MAAK,WAAW,GAAG;AACrB;AAAA,QACF;AAEA,uBAAeA,QAAO,MAAM;AAC5B,2BAAmBA,MAAK,WAAW,CAAC,MAAM;AAAA,MAG5C;AAKA,qBAAe,qBAAqB,cAAc,CAAC,gBAAgB;AAEnE,UAAI,kBAAkB;AACpB,YAAI,aAAa,SAAS;AAAG,iBAAO,MAAM;AAAA;AAAkB,iBAAO;AAAA,MACrE,WAAW,aAAa,SAAS,GAAG;AAClC,eAAO;AAAA,MACT,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,WAAW,SAASM,WAAUN,OAAM;AAClC,iBAAWA,KAAI;AACf,UAAIA,MAAK,WAAW;AAAG,eAAO;AAC9B,UAAIO,cAAaP,MAAK,WAAW,CAAC,MAAM;AAGxC,UAAI,oBAAoBA,MAAK,WAAWA,MAAK,SAAS,CAAC,MAAM;AAI7D,MAAAA,QAAO,qBAAqBA,OAAM,CAACO,WAAU;AAC7C,UAAIP,MAAK,WAAW,KAAK,CAACO;AAAY,QAAAP,QAAO;AAC7C,UAAIA,MAAK,SAAS,KAAK;AAAmB,QAAAA,SAAQ;AAClD,UAAIO;AAAY,eAAO,MAAMP;AAC7B,aAAOA;AAAA,IACT;AAAA,IACA,YAAY,SAASO,YAAWP,OAAM;AACpC,iBAAWA,KAAI;AACf,aAAOA,MAAK,SAAS,KAAKA,MAAK,WAAW,CAAC,MAAM;AAAA,IAGnD;AAAA,IACA,MAAM,SAASQ,QAAO;AACpB,UAAI,UAAU,WAAW;AAAG,eAAO;AACnC,UAAI;AAEJ,eAASP,KAAI,GAAGA,KAAI,UAAU,QAAQ,EAAEA,IAAG;AACzC,YAAI,MAAM,UAAUA,EAAC;AACrB,mBAAW,GAAG;AAEd,YAAI,IAAI,SAAS,GAAG;AAClB,cAAI,WAAW;AAAW,qBAAS;AAAA;AAAS,sBAAU,MAAM;AAAA,QAC9D;AAAA,MACF;AAEA,UAAI,WAAW;AAAW,eAAO;AACjC,aAAOG,OAAM,UAAU,MAAM;AAAA,IAC/B;AAAA,IACA,UAAU,SAASK,UAASC,OAAM,IAAI;AACpC,iBAAWA,KAAI;AACf,iBAAW,EAAE;AACb,UAAIA,UAAS;AAAI,eAAO;AACxB,MAAAA,QAAON,OAAM,QAAQM,KAAI;AACzB,WAAKN,OAAM,QAAQ,EAAE;AACrB,UAAIM,UAAS;AAAI,eAAO;AAExB,UAAI,YAAY;AAEhB,aAAO,YAAYA,MAAK,QAAQ,EAAE,WAAW;AAC3C,YAAIA,MAAK,WAAW,SAAS,MAAM;AAEjC;AAAA,MACJ;AAEA,UAAI,UAAUA,MAAK;AACnB,UAAI,UAAU,UAAU;AAExB,UAAI,UAAU;AAEd,aAAO,UAAU,GAAG,QAAQ,EAAE,SAAS;AACrC,YAAI,GAAG,WAAW,OAAO,MAAM;AAE7B;AAAA,MACJ;AAEA,UAAI,QAAQ,GAAG;AACf,UAAI,QAAQ,QAAQ;AAEpB,UAAIC,UAAS,UAAU,QAAQ,UAAU;AACzC,UAAI,gBAAgB;AACpB,UAAIV,KAAI;AAER,aAAOA,MAAKU,SAAQ,EAAEV,IAAG;AACvB,YAAIA,OAAMU,SAAQ;AAChB,cAAI,QAAQA,SAAQ;AAClB,gBAAI,GAAG,WAAW,UAAUV,EAAC,MAAM,IAEjC;AAGA,qBAAO,GAAG,MAAM,UAAUA,KAAI,CAAC;AAAA,YACjC,WAAWA,OAAM,GAAG;AAGlB,qBAAO,GAAG,MAAM,UAAUA,EAAC;AAAA,YAC7B;AAAA,UACF,WAAW,UAAUU,SAAQ;AAC3B,gBAAID,MAAK,WAAW,YAAYT,EAAC,MAAM,IAErC;AAGA,8BAAgBA;AAAA,YAClB,WAAWA,OAAM,GAAG;AAGlB,8BAAgB;AAAA,YAClB;AAAA,UACF;AAEA;AAAA,QACF;AAEA,YAAI,WAAWS,MAAK,WAAW,YAAYT,EAAC;AAC5C,YAAI,SAAS,GAAG,WAAW,UAAUA,EAAC;AACtC,YAAI,aAAa;AAAQ;AAAA,iBAAe,aAAa;AAEnD,0BAAgBA;AAAA,MACpB;AAEA,UAAI,MAAM;AAGV,WAAKA,KAAI,YAAY,gBAAgB,GAAGA,MAAK,SAAS,EAAEA,IAAG;AACzD,YAAIA,OAAM,WAAWS,MAAK,WAAWT,EAAC,MAAM,IAE1C;AACA,cAAI,IAAI,WAAW;AAAG,mBAAO;AAAA;AAAU,mBAAO;AAAA,QAChD;AAAA,MACF;AAIA,UAAI,IAAI,SAAS;AAAG,eAAO,MAAM,GAAG,MAAM,UAAU,aAAa;AAAA,WAAO;AACtE,mBAAW;AACX,YAAI,GAAG,WAAW,OAAO,MAAM;AAE7B,YAAE;AACJ,eAAO,GAAG,MAAM,OAAO;AAAA,MACzB;AAAA,IACF;AAAA,IACA,WAAW,SAASW,WAAUZ,OAAM;AAClC,aAAOA;AAAA,IACT;AAAA,IACA,SAAS,SAASa,SAAQb,OAAM;AAC9B,iBAAWA,KAAI;AACf,UAAIA,MAAK,WAAW;AAAG,eAAO;AAC9B,UAAI,OAAOA,MAAK,WAAW,CAAC;AAC5B,UAAI,UAAU,SAAS;AAGvB,UAAI,MAAM;AACV,UAAI,eAAe;AAEnB,eAASC,KAAID,MAAK,SAAS,GAAGC,MAAK,GAAG,EAAEA,IAAG;AACzC,eAAOD,MAAK,WAAWC,EAAC;AAExB,YAAI,SAAS,IAEX;AACA,cAAI,CAAC,cAAc;AACjB,kBAAMA;AACN;AAAA,UACF;AAAA,QACF,OAAO;AAEL,yBAAe;AAAA,QACjB;AAAA,MACF;AAEA,UAAI,QAAQ;AAAI,eAAO,UAAU,MAAM;AACvC,UAAI,WAAW,QAAQ;AAAG,eAAO;AACjC,aAAOD,MAAK,MAAM,GAAG,GAAG;AAAA,IAC1B;AAAA,IACA,UAAU,SAASc,UAASd,OAAM,KAAK;AACrC,UAAI,QAAQ,UAAa,OAAO,QAAQ;AAAU,cAAM,IAAI,UAAU,iCAAmC;AACzG,iBAAWA,KAAI;AACf,UAAI,QAAQ;AACZ,UAAI,MAAM;AACV,UAAI,eAAe;AACnB,UAAIC;AAEJ,UAAI,QAAQ,UAAa,IAAI,SAAS,KAAK,IAAI,UAAUD,MAAK,QAAQ;AACpE,YAAI,IAAI,WAAWA,MAAK,UAAU,QAAQA;AAAM,iBAAO;AACvD,YAAI,SAAS,IAAI,SAAS;AAC1B,YAAI,mBAAmB;AAEvB,aAAKC,KAAID,MAAK,SAAS,GAAGC,MAAK,GAAG,EAAEA,IAAG;AACrC,cAAI,OAAOD,MAAK,WAAWC,EAAC;AAE5B,cAAI,SAAS,IAEX;AAGA,gBAAI,CAAC,cAAc;AACjB,sBAAQA,KAAI;AACZ;AAAA,YACF;AAAA,UACF,OAAO;AACL,gBAAI,qBAAqB,IAAI;AAG3B,6BAAe;AACf,iCAAmBA,KAAI;AAAA,YACzB;AAEA,gBAAI,UAAU,GAAG;AAEf,kBAAI,SAAS,IAAI,WAAW,MAAM,GAAG;AACnC,oBAAI,EAAE,WAAW,IAAI;AAGnB,wBAAMA;AAAA,gBACR;AAAA,cACF,OAAO;AAGL,yBAAS;AACT,sBAAM;AAAA,cACR;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAEA,YAAI,UAAU;AAAK,gBAAM;AAAA,iBAA0B,QAAQ;AAAI,gBAAMD,MAAK;AAC1E,eAAOA,MAAK,MAAM,OAAO,GAAG;AAAA,MAC9B,OAAO;AACL,aAAKC,KAAID,MAAK,SAAS,GAAGC,MAAK,GAAG,EAAEA,IAAG;AACrC,cAAID,MAAK,WAAWC,EAAC,MAAM,IAEzB;AAGA,gBAAI,CAAC,cAAc;AACjB,sBAAQA,KAAI;AACZ;AAAA,YACF;AAAA,UACF,WAAW,QAAQ,IAAI;AAGrB,2BAAe;AACf,kBAAMA,KAAI;AAAA,UACZ;AAAA,QACF;AAEA,YAAI,QAAQ;AAAI,iBAAO;AACvB,eAAOD,MAAK,MAAM,OAAO,GAAG;AAAA,MAC9B;AAAA,IACF;AAAA,IACA,SAAS,SAASe,SAAQf,OAAM;AAC9B,iBAAWA,KAAI;AACf,UAAI,WAAW;AACf,UAAI,YAAY;AAChB,UAAI,MAAM;AACV,UAAI,eAAe;AAGnB,UAAI,cAAc;AAElB,eAASC,KAAID,MAAK,SAAS,GAAGC,MAAK,GAAG,EAAEA,IAAG;AACzC,YAAI,OAAOD,MAAK,WAAWC,EAAC;AAE5B,YAAI,SAAS,IAEX;AAGA,cAAI,CAAC,cAAc;AACjB,wBAAYA,KAAI;AAChB;AAAA,UACF;AAEA;AAAA,QACF;AAEA,YAAI,QAAQ,IAAI;AAGd,yBAAe;AACf,gBAAMA,KAAI;AAAA,QACZ;AAEA,YAAI,SAAS,IAEX;AAEA,cAAI,aAAa;AAAI,uBAAWA;AAAA,mBAAW,gBAAgB;AAAG,0BAAc;AAAA,QAC9E,WAAW,aAAa,IAAI;AAG1B,wBAAc;AAAA,QAChB;AAAA,MACF;AAEA,UAAI,aAAa,MAAM,QAAQ;AAAA,MAC/B,gBAAgB;AAAA,MAChB,gBAAgB,KAAK,aAAa,MAAM,KAAK,aAAa,YAAY,GAAG;AACvE,eAAO;AAAA,MACT;AAEA,aAAOD,MAAK,MAAM,UAAU,GAAG;AAAA,IACjC;AAAA,IACA,QAAQ,SAASgB,QAAO,YAAY;AAClC,UAAI,eAAe,QAAQ,OAAO,eAAe,UAAU;AACzD,cAAM,IAAI,UAAU,qEAAuE,OAAO,UAAU;AAAA,MAC9G;AAEA,aAAO,QAAQ,KAAK,UAAU;AAAA,IAChC;AAAA,IACA,OAAO,SAASC,OAAMjB,OAAM;AAC1B,iBAAWA,KAAI;AACf,UAAI,MAAM;AAAA,QACR,MAAM;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACR;AACA,UAAIA,MAAK,WAAW;AAAG,eAAO;AAC9B,UAAI,OAAOA,MAAK,WAAW,CAAC;AAC5B,UAAIO,cAAa,SAAS;AAG1B,UAAI;AAEJ,UAAIA,aAAY;AACd,YAAI,OAAO;AACX,gBAAQ;AAAA,MACV,OAAO;AACL,gBAAQ;AAAA,MACV;AAEA,UAAI,WAAW;AACf,UAAI,YAAY;AAChB,UAAI,MAAM;AACV,UAAI,eAAe;AACnB,UAAIN,KAAID,MAAK,SAAS;AAGtB,UAAI,cAAc;AAElB,aAAOC,MAAK,OAAO,EAAEA,IAAG;AACtB,eAAOD,MAAK,WAAWC,EAAC;AAExB,YAAI,SAAS,IAEX;AAGA,cAAI,CAAC,cAAc;AACjB,wBAAYA,KAAI;AAChB;AAAA,UACF;AAEA;AAAA,QACF;AAEA,YAAI,QAAQ,IAAI;AAGd,yBAAe;AACf,gBAAMA,KAAI;AAAA,QACZ;AAEA,YAAI,SAAS,IAEX;AAEA,cAAI,aAAa;AAAI,uBAAWA;AAAA,mBAAW,gBAAgB;AAAG,0BAAc;AAAA,QAC9E,WAAW,aAAa,IAAI;AAG1B,wBAAc;AAAA,QAChB;AAAA,MACF;AAEA,UAAI,aAAa,MAAM,QAAQ;AAAA,MAC/B,gBAAgB;AAAA,MAChB,gBAAgB,KAAK,aAAa,MAAM,KAAK,aAAa,YAAY,GAAG;AACvE,YAAI,QAAQ,IAAI;AACd,cAAI,cAAc,KAAKM;AAAY,gBAAI,OAAO,IAAI,OAAOP,MAAK,MAAM,GAAG,GAAG;AAAA;AAAO,gBAAI,OAAO,IAAI,OAAOA,MAAK,MAAM,WAAW,GAAG;AAAA,QAClI;AAAA,MACF,OAAO;AACL,YAAI,cAAc,KAAKO,aAAY;AACjC,cAAI,OAAOP,MAAK,MAAM,GAAG,QAAQ;AACjC,cAAI,OAAOA,MAAK,MAAM,GAAG,GAAG;AAAA,QAC9B,OAAO;AACL,cAAI,OAAOA,MAAK,MAAM,WAAW,QAAQ;AACzC,cAAI,OAAOA,MAAK,MAAM,WAAW,GAAG;AAAA,QACtC;AAEA,YAAI,MAAMA,MAAK,MAAM,UAAU,GAAG;AAAA,MACpC;AAEA,UAAI,YAAY;AAAG,YAAI,MAAMA,MAAK,MAAM,GAAG,YAAY,CAAC;AAAA,eAAWO;AAAY,YAAI,MAAM;AACzF,aAAO;AAAA,IACT;AAAA,IACA,KAAK;AAAA,IACL,WAAW;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AACA,EAAAH,OAAM,QAAQA;AACd,EAAAR,aAAYQ;AACZ,SAAOR;AACT;AAEA,IAAMsB,WAAUpB,KAAI;;;ADthBpB,IAAI,YAAYqB,SAAQ;AACxB,IAAI,WAAWA,SAAQ;AACvB,IAAI,YAAYA,SAAQ;AACxB,IAAI,UAAUA,SAAQ;AACtB,IAAI,UAAUA,SAAQ;AACtB,IAAIC,UAASD,SAAQ;AACrB,IAAI,aAAaA,SAAQ;AACzB,IAAI,OAAOA,SAAQ;AACnB,IAAI,YAAYA,SAAQ;AACxB,IAAI,QAAQA,SAAQ;AACpB,IAAI,QAAQA,SAAQ;AACpB,IAAI,WAAWA,SAAQ;AACvB,IAAI,UAAUA,SAAQ;AACtB,IAAI,MAAMA,SAAQ;AAClB,IAAI,QAAQA,SAAQ;;;AElBpB;AAIA,EAAE,OAAO,SAAU,SAAS,OAAO;AACjC,SAAO,IAAI,QAAQ,CAACE,UAAS,WAAW;AACtC,aAAS,iBAAiB,MAAM;AAC9B,UAAI,kBAAkB,QAAW;AAC/B,gBAAQ,eAAe,SAAS,aAAa;AAAA,MAC/C;AACA,MAAAA,SAAQ,IAAI;AAAA,IACd;AACA,QAAI;AACJ,QAAI,UAAU,SAAS;AAErB,sBAAgB,CAAC,QAAQ;AACvB,gBAAQ,eAAe,MAAM,aAAa;AAC1C,eAAO,GAAG;AAAA,MACZ;AAEA,cAAQ,KAAK,SAAS,aAAa;AAAA,IACrC;AAEA,YAAQ,KAAK,OAAO,aAAa;AAAA,EACnC,CAAC;AACH;AACA,EAAE,KAAK,SAAU,SAAS,OAAO;AAC/B,QAAM,wBAAwB,CAAC;AAC/B,QAAM,qBAAqB,CAAC;AAC5B,MAAI,QAAQ;AACZ,MAAIC,YAAW;AAEf,QAAM,WAAW;AAAA,IACf,MAAM,OAAO;AACX,YAAM,QAAQ,sBAAsB,MAAM;AAC1C,UAAI,OAAO;AACT,eAAO,iBAAiB,OAAO,KAAK;AAAA,MACtC;AAEA,UAAI,OAAO;AACT,cAAMC,KAAI,QAAQ,OAAO,KAAK;AAC9B,gBAAQ;AACR,eAAOA;AAAA,MACT;AAEA,UAAID,WAAU;AACZ,eAAO,iBAAiB,QAAW,IAAI;AAAA,MACzC;AAEA,aAAO,IAAI,QAAQ,CAACD,UAAS,WAAW,mBAAmB,KAAK,EAAE,SAAAA,UAAS,OAAO,CAAC,CAAC;AAAA,IACtF;AAAA,IACA,MAAM,SAAS;AACb,cAAQ,eAAe,OAAO,YAAY;AAC1C,cAAQ,eAAe,SAAS,YAAY;AAC5C,MAAAC,YAAW;AAEX,iBAAW,WAAW,oBAAoB;AACxC,gBAAQ,QAAQ,iBAAiB,QAAW,IAAI,CAAC;AAAA,MACnD;AAEA,aAAO,iBAAiB,QAAW,IAAI;AAAA,IACzC;AAAA,IACA,MAAM,KAAK;AACT,cAAQ;AACR,cAAQ,eAAe,OAAO,YAAY;AAC1C,cAAQ,eAAe,SAAS,YAAY;AAAA,IAC9C;AAAA,IACA,CAAC,OAAO,aAAa,IAAI;AACvB,aAAO;AAAA,IACT;AAAA,EACF;AAEA,UAAQ,GAAG,OAAO,YAAY;AAC9B,UAAQ,GAAG,SAAS,YAAY;AAEhC,SAAO;AAEP,WAAS,gBAAgB,MAAM;AAC7B,UAAM,UAAU,mBAAmB,MAAM;AACzC,QAAI,SAAS;AACX,cAAQ,QAAQ,iBAAiB,MAAM,KAAK,CAAC;AAAA,IAC/C,OAAO;AACL,4BAAsB,KAAK,IAAI;AAAA,IACjC;AAAA,EACF;AAEA,WAAS,aAAa,KAAK;AACzB,IAAAA,YAAW;AACX,UAAM,UAAU,mBAAmB,MAAM;AACzC,QAAI,SAAS;AACX,cAAQ,OAAO,GAAG;AAAA,IACpB,OAAO;AACL,cAAQ;AAAA,IACV;AACA,aAAS,OAAO;AAAA,EAClB;AACF;AACA,IAAM;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAI;;;ACxGJ;;;ACAA;AAIA,IAAIE,aAAY,CAAC;AAAjB,IACIC,YAAW;AAEf,IAAIC,WAAU,OAAO,eAAe,cAAc,aAAa,OAAO,SAAS,cAAc,OAAO;AAEpG,SAASC,OAAM;AACb,MAAIF;AAAU,WAAOD;AACrB,EAAAC,YAAW;AAqBX,EAAAD,aAAYI;AACZ,MAAI,KAAK,EAAE;AAEX,MAAIC,YAAW,MAAM;AAErB,EAAAA,UAASD,SAAQ,EAAE;AACnB,EAAAA,QAAO,WAAW,MAAM;AACxB,EAAAA,QAAO,WAAW,MAAM;AACxB,EAAAA,QAAO,SAAS,MAAM;AACtB,EAAAA,QAAO,YAAY,MAAM;AACzB,EAAAA,QAAO,cAAc,MAAM;AAC3B,EAAAA,QAAO,WAAW,MAAM;AACxB,EAAAA,QAAO,WAAWD,KAAM;AAExB,EAAAC,QAAO,SAASA;AAGhB,WAASA,UAAS;AAChB,OAAG,KAAK,QAAQF,QAAO;AAAA,EACzB;AAEA,EAAAE,QAAO,UAAU,OAAO,SAAU,MAAM,SAAS;AAC/C,QAAI,SAAS,QAAQF;AAErB,aAAS,OAAO,OAAO;AACrB,UAAI,KAAK,UAAU;AACjB,YAAI,UAAU,KAAK,MAAM,KAAK,KAAK,OAAO,OAAO;AAC/C,iBAAO,MAAM;AAAA,QACf;AAAA,MACF;AAAA,IACF;AAEA,WAAO,GAAG,QAAQ,MAAM;AAExB,aAAS,UAAU;AACjB,UAAI,OAAO,YAAY,OAAO,QAAQ;AACpC,eAAO,OAAO;AAAA,MAChB;AAAA,IACF;AAEA,SAAK,GAAG,SAAS,OAAO;AAGxB,QAAI,CAAC,KAAK,aAAa,CAAC,WAAW,QAAQ,QAAQ,QAAQ;AACzD,aAAO,GAAG,OAAO,KAAK;AACtB,aAAO,GAAG,SAAS,OAAO;AAAA,IAC5B;AAEA,QAAI,WAAW;AAEf,aAAS,QAAQ;AACf,UAAI;AAAU;AACd,iBAAW;AACX,WAAK,IAAI;AAAA,IACX;AAEA,aAAS,UAAU;AACjB,UAAI;AAAU;AACd,iBAAW;AACX,UAAI,OAAO,KAAK,YAAY;AAAY,aAAK,QAAQ;AAAA,IACvD;AAGA,aAAS,QAAQ,IAAI;AACnB,cAAQ;AAER,UAAI,GAAG,cAAc,QAAQA,UAAS,OAAO,MAAM,GAAG;AACpD,cAAM;AAAA,MACR;AAAA,IACF;AAEA,WAAO,GAAG,SAAS,OAAO;AAC1B,SAAK,GAAG,SAAS,OAAO;AAExB,aAAS,UAAU;AACjB,aAAO,eAAe,QAAQ,MAAM;AACpC,WAAK,eAAe,SAAS,OAAO;AACpC,aAAO,eAAe,OAAO,KAAK;AAClC,aAAO,eAAe,SAAS,OAAO;AACtC,aAAO,eAAe,SAAS,OAAO;AACtC,WAAK,eAAe,SAAS,OAAO;AACpC,aAAO,eAAe,OAAO,OAAO;AACpC,aAAO,eAAe,SAAS,OAAO;AACtC,WAAK,eAAe,SAAS,OAAO;AAAA,IACtC;AAEA,WAAO,GAAG,OAAO,OAAO;AACxB,WAAO,GAAG,SAAS,OAAO;AAC1B,SAAK,GAAG,SAAS,OAAO;AACxB,SAAK,KAAK,QAAQ,MAAM;AAExB,WAAO;AAAA,EACT;AAEA,SAAOF;AACT;AAEA,IAAMM,WAAUH,KAAI;;;ADrHpB,IAAI,WAAWI,SAAQ;AACvB,SAAS,OAAO,SAASC,MAAK,SAAS;AACrC,YAAU,OAAO,OAAO,EAAE,YAAYA,KAAI,sBAAsB,QAAQA,KAAI,cAAc,QAAQ,KAAK,GAAG,OAAO;AACjH,UAAQ,UAAU,SAAS,KAAK,UAAU;AACxC,IAAAA,KAAI,QAAQ,GAAG;AACf,aAAS,GAAG;AAAA,EACd;AACA,SAAO,IAAI,SAAS,OAAO,EAAE,KAAKA,IAAG;AACvC;AAEA,IAAI,WAAWD,SAAQ;AACvB,IAAI,SAASA,SAAQ;AACrB,IAAI,YAAYA,SAAQ;AACxB,IAAI,cAAcA,SAAQ;AAC1B,IAAI,WAAWA,SAAQ;AACvB,IAAI,WAAWA,SAAQ;AACvB,IAAI,SAASA,SAAQ;AAErB,IAAM,WAAW;AAAA,EACf,UAAUE,WAAUF,SAAQ,QAAQ;AAAA,EACpC,UAAUE,WAAUF,SAAQ,QAAQ;AACtC;;;AEjCA;;;ACAA;AAAA,IAAMG,KAAE;AAAR,IAAmBC,KAAE;AAArB,IAA6BC,KAAE;AAA/B,IAA4CC,KAAE;AAA9C,IAA0EC,KAAE,EAAC,UAAS,mDAAkD,aAAY,kDAAiD,iBAAgB,gBAAe;AAApO,IAAsOC,KAAE,KAAK;AAA7O,IAAmPC,KAAE,OAAO;AAAa,SAASC,GAAEP,IAAE;AAAC,QAAM,IAAI,WAAWI,GAAEJ,EAAC,CAAC;AAAC;AAAC,SAASQ,GAAER,IAAEC,IAAE;AAAC,QAAMC,KAAEF,GAAE,MAAM,GAAG;AAAE,MAAII,KAAE;AAAG,EAAAF,GAAE,SAAO,MAAIE,KAAEF,GAAE,CAAC,IAAE,KAAIF,KAAEE,GAAE,CAAC;AAAG,QAAMG,KAAE,SAASL,IAAEC,IAAE;AAAC,UAAMC,KAAE,CAAC;AAAE,QAAIC,KAAEH,GAAE;AAAO,WAAKG;AAAK,MAAAD,GAAEC,EAAC,IAAEF,GAAED,GAAEG,EAAC,CAAC;AAAE,WAAOD;AAAA,EAAC,GAAGF,KAAEA,GAAE,QAAQG,IAAE,GAAG,GAAG,MAAM,GAAG,GAAEF,EAAC,EAAE,KAAK,GAAG;AAAE,SAAOG,KAAEC;AAAC;AAAC,SAASI,GAAET,IAAE;AAAC,QAAMC,KAAE,CAAC;AAAE,MAAIC,KAAE;AAAE,QAAMC,KAAEH,GAAE;AAAO,SAAKE,KAAEC,MAAG;AAAC,UAAMC,KAAEJ,GAAE,WAAWE,IAAG;AAAE,QAAGE,MAAG,SAAOA,MAAG,SAAOF,KAAEC,IAAE;AAAC,YAAMA,MAAEH,GAAE,WAAWE,IAAG;AAAE,gBAAQ,QAAMC,OAAGF,GAAE,OAAO,OAAKG,OAAI,OAAK,OAAKD,OAAG,KAAK,KAAGF,GAAE,KAAKG,EAAC,GAAEF;AAAA,IAAK;AAAM,MAAAD,GAAE,KAAKG,EAAC;AAAA,EAAE;AAAC,SAAOH;AAAC;AAAC,IAAMS,KAAE,SAASV,IAAEC,IAAE;AAAC,SAAOD,KAAE,KAAG,MAAIA,KAAE,QAAM,KAAGC,OAAI;AAAE;AAAvD,IAAyDU,KAAE,SAASX,IAAEC,IAAEC,IAAE;AAAC,MAAIC,KAAE;AAAE,OAAIH,KAAEE,KAAEG,GAAEL,KAAE,GAAG,IAAEA,MAAG,GAAEA,MAAGK,GAAEL,KAAEC,EAAC,GAAED,KAAE,KAAIG,MAAG;AAAG,IAAAH,KAAEK,GAAEL,KAAE,EAAE;AAAE,SAAOK,GAAEF,KAAE,KAAGH,MAAGA,KAAE,GAAG;AAAC;AAAhK,IAAkKY,KAAE,SAASX,IAAE;AAAC,QAAMC,KAAE,CAAC,GAAEC,KAAEF,GAAE;AAAO,MAAIG,KAAE,GAAEE,KAAE,KAAIE,KAAE,IAAGC,KAAER,GAAE,YAAY,GAAG;AAAE,EAAAQ,KAAE,MAAIA,KAAE;AAAG,WAAQT,KAAE,GAAEA,KAAES,IAAE,EAAET;AAAE,IAAAC,GAAE,WAAWD,EAAC,KAAG,OAAKO,GAAE,WAAW,GAAEL,GAAE,KAAKD,GAAE,WAAWD,EAAC,CAAC;AAAE,WAAQY,KAAEH,KAAE,IAAEA,KAAE,IAAE,GAAEG,KAAET,MAAG;AAAC,QAAIM,KAAEL;AAAE,aAAQF,KAAE,GAAEI,KAAE,MAAIA,MAAG,IAAG;AAAC,MAAAM,MAAGT,MAAGI,GAAE,eAAe;AAAE,YAAME,MAAGC,KAAET,GAAE,WAAWW,IAAG,KAAG,KAAG,KAAGF,KAAE,KAAGA,KAAE,KAAG,KAAGA,KAAE,KAAGA,KAAE,KAAG,KAAGA,KAAE,KAAG;AAAG,OAACD,MAAG,MAAIA,KAAEJ,IAAGL,KAAEI,MAAGF,EAAC,MAAIK,GAAE,UAAU,GAAEH,MAAGK,KAAEP;AAAE,YAAMS,KAAEL,MAAGE,KAAE,IAAEF,MAAGE,KAAE,KAAG,KAAGF,KAAEE;AAAE,UAAGC,KAAEE;AAAE;AAAM,YAAME,KAAE,KAAGF;AAAE,MAAAT,KAAEG,GAAEL,KAAEa,EAAC,KAAGN,GAAE,UAAU,GAAEL,MAAGW;AAAA,IAAE;AAAC,UAAMA,KAAEX,GAAE,SAAO;AAAE,IAAAM,KAAEG,GAAEP,KAAEK,IAAEI,IAAE,KAAGJ,EAAC,GAAEJ,GAAED,KAAES,EAAC,IAAEb,KAAEM,MAAGC,GAAE,UAAU,GAAED,MAAGD,GAAED,KAAES,EAAC,GAAET,MAAGS,IAAEX,GAAE,OAAOE,MAAI,GAAEE,EAAC;AAAA,EAAE;AAAC,MAAII;AAAE,SAAO,OAAO,cAAc,GAAGR,EAAC;AAAC;AAA5uB,IAA8uBW,KAAE,SAASZ,IAAE;AAAC,QAAMC,KAAE,CAAC;AAAE,MAAIC,MAAGF,KAAEQ,GAAER,EAAC,GAAG,QAAOG,KAAE,KAAII,KAAE,GAAEI,KAAE;AAAG,aAAUZ,MAAKC;AAAE,IAAAD,KAAE,OAAKE,GAAE,KAAKI,GAAEN,EAAC,CAAC;AAAE,MAAIa,KAAEX,GAAE,QAAOY,KAAED;AAAE,OAAIA,MAAGX,GAAE,KAAK,GAAG,GAAEY,KAAEX,MAAG;AAAC,QAAIA,MAAEH;AAAE,eAAUA,MAAKC;AAAE,MAAAD,MAAGI,MAAGJ,KAAEG,QAAIA,MAAEH;AAAG,UAAMS,KAAEK,KAAE;AAAE,IAAAX,MAAEC,KAAEC,IAAGL,KAAEQ,MAAGC,EAAC,KAAGF,GAAE,UAAU,GAAEC,OAAIL,MAAEC,MAAGK,IAAEL,KAAED;AAAE,eAAUA,OAAKF;AAAE,UAAGE,MAAEC,MAAG,EAAEI,KAAER,MAAGO,GAAE,UAAU,GAAEJ,OAAGC,IAAE;AAAC,YAAIJ,KAAEQ;AAAE,iBAAQP,KAAE,MAAIA,MAAG,IAAG;AAAC,gBAAME,MAAEF,MAAGW,KAAE,IAAEX,MAAGW,KAAE,KAAG,KAAGX,KAAEW;AAAE,cAAGZ,KAAEG;AAAE;AAAM,gBAAMC,MAAEJ,KAAEG,KAAEI,KAAE,KAAGJ;AAAE,UAAAD,GAAE,KAAKI,GAAEI,GAAEP,MAAEC,MAAEG,IAAE,CAAC,CAAC,CAAC,GAAEP,KAAEK,GAAED,MAAEG,EAAC;AAAA,QAAE;AAAC,QAAAL,GAAE,KAAKI,GAAEI,GAAEV,IAAE,CAAC,CAAC,CAAC,GAAEY,KAAED,GAAEH,IAAEC,IAAEK,MAAGD,EAAC,GAAEL,KAAE,GAAE,EAAEM;AAAA,MAAE;AAAC,MAAEN,IAAE,EAAEJ;AAAA,EAAE;AAAC,SAAOF,GAAE,KAAK,EAAE;AAAC;AAAE,IAAIY,KAAE,EAAC,SAAQ,SAAQ,MAAK,EAAC,QAAOL,IAAE,QAAO,CAAAT,OAAG,OAAO,cAAc,GAAGA,EAAC,EAAC,GAAE,QAAOY,IAAE,QAAOC,IAAE,SAAQ,SAASb,IAAE;AAAC,SAAOQ,GAAER,IAAG,SAASA,IAAE;AAAC,WAAOE,GAAE,KAAKF,EAAC,IAAE,SAAOa,GAAEb,EAAC,IAAEA;AAAA,EAAC,CAAE;AAAC,GAAE,WAAU,SAASA,IAAE;AAAC,SAAOQ,GAAER,IAAG,SAASA,IAAE;AAAC,WAAOC,GAAE,KAAKD,EAAC,IAAEY,GAAEZ,GAAE,MAAM,CAAC,EAAE,YAAY,CAAC,IAAEA;AAAA,EAAC,CAAE;AAAC,EAAC;AAAEc,GAAE;AAAOA,GAAE;AAAOA,GAAE;AAAQA,GAAE;AAAUA,GAAE;AAAKA,GAAE;;;ACA3wE;AAAA,SAASC,GAAEA,IAAEC,IAAE;AAAC,SAAO,OAAO,UAAU,eAAe,KAAKD,IAAEC,EAAC;AAAC;AAAC,IAAIA,KAAE,SAASA,IAAEC,IAAEC,IAAEC,IAAE;AAAC,EAAAF,KAAEA,MAAG,KAAIC,KAAEA,MAAG;AAAI,MAAIE,KAAE,CAAC;AAAE,MAAG,YAAU,OAAOJ,MAAG,MAAIA,GAAE;AAAO,WAAOI;AAAE,MAAIC,KAAE;AAAM,EAAAL,KAAEA,GAAE,MAAMC,EAAC;AAAE,MAAIK,KAAE;AAAI,EAAAH,MAAG,YAAU,OAAOA,GAAE,YAAUG,KAAEH,GAAE;AAAS,MAAII,KAAEP,GAAE;AAAO,EAAAM,KAAE,KAAGC,KAAED,OAAIC,KAAED;AAAG,WAAQE,KAAE,GAAEA,KAAED,IAAE,EAAEC,IAAE;AAAC,QAAIC,IAAEC,IAAEC,IAAEC,IAAEC,KAAEb,GAAEQ,EAAC,EAAE,QAAQH,IAAE,KAAK,GAAES,KAAED,GAAE,QAAQX,EAAC;AAAE,IAAAY,MAAG,KAAGL,KAAEI,GAAE,OAAO,GAAEC,EAAC,GAAEJ,KAAEG,GAAE,OAAOC,KAAE,CAAC,MAAIL,KAAEI,IAAEH,KAAE,KAAIC,KAAE,mBAAmBF,EAAC,GAAEG,KAAE,mBAAmBF,EAAC,GAAEX,GAAEK,IAAEO,EAAC,IAAE,MAAM,QAAQP,GAAEO,EAAC,CAAC,IAAEP,GAAEO,EAAC,EAAE,KAAKC,EAAC,IAAER,GAAEO,EAAC,IAAE,CAACP,GAAEO,EAAC,GAAEC,EAAC,IAAER,GAAEO,EAAC,IAAEC;AAAA,EAAE;AAAC,SAAOR;AAAC;AAA/b,IAAicH,KAAE,SAASF,IAAE;AAAC,UAAO,OAAOA,IAAE;AAAA,IAAC,KAAI;AAAS,aAAOA;AAAA,IAAE,KAAI;AAAU,aAAOA,KAAE,SAAO;AAAA,IAAQ,KAAI;AAAS,aAAO,SAASA,EAAC,IAAEA,KAAE;AAAA,IAAG;AAAQ,aAAO;AAAA,EAAE;AAAC;AAAnlB,IAAqlBG,KAAE,SAASH,IAAEC,IAAEE,IAAEC,IAAE;AAAC,SAAOH,KAAEA,MAAG,KAAIE,KAAEA,MAAG,KAAI,SAAOH,OAAIA,KAAE,SAAQ,YAAU,OAAOA,KAAE,OAAO,KAAKA,EAAC,EAAE,IAAK,SAASI,IAAE;AAAC,QAAIC,KAAE,mBAAmBH,GAAEE,EAAC,CAAC,IAAED;AAAE,WAAO,MAAM,QAAQH,GAAEI,EAAC,CAAC,IAAEJ,GAAEI,EAAC,EAAE,IAAK,SAASJ,KAAE;AAAC,aAAOK,KAAE,mBAAmBH,GAAEF,GAAC,CAAC;AAAA,IAAC,CAAE,EAAE,KAAKC,EAAC,IAAEI,KAAE,mBAAmBH,GAAEF,GAAEI,EAAC,CAAC,CAAC;AAAA,EAAC,CAAE,EAAE,KAAKH,EAAC,IAAEG,KAAE,mBAAmBF,GAAEE,EAAC,CAAC,IAAED,KAAE,mBAAmBD,GAAEF,EAAC,CAAC,IAAE;AAAE;AAA16B,IAA46BI,KAAE,CAAC;AAAEA,GAAE,SAAOA,GAAE,QAAMH,IAAEG,GAAE,SAAOA,GAAE,YAAUD;AAAEC,GAAE;AAAOA,GAAE;AAAOA,GAAE;AAAMA,GAAE;;;AFMxjC,IAAIY,KAAE,CAAC;AAAP,IAASC,KAAEC;AAAX,IAAeC,KAAE,EAAC,UAAS,SAASC,IAAE;AAAC,SAAO,YAAU,OAAOA;AAAC,GAAE,UAAS,SAASA,IAAE;AAAC,SAAO,YAAU,OAAOA,MAAG,SAAOA;AAAC,GAAE,QAAO,SAASA,IAAE;AAAC,SAAO,SAAOA;AAAC,GAAE,mBAAkB,SAASA,IAAE;AAAC,SAAO,QAAMA;AAAC,EAAC;AAAE,SAASC,KAAG;AAAC,OAAK,WAAS,MAAK,KAAK,UAAQ,MAAK,KAAK,OAAK,MAAK,KAAK,OAAK,MAAK,KAAK,OAAK,MAAK,KAAK,WAAS,MAAK,KAAK,OAAK,MAAK,KAAK,SAAO,MAAK,KAAK,QAAM,MAAK,KAAK,WAAS,MAAK,KAAK,OAAK,MAAK,KAAK,OAAK;AAAK;AAACL,GAAE,QAAMM,IAAEN,GAAE,UAAQ,SAASI,IAAEG,IAAE;AAAC,SAAOD,GAAEF,IAAE,OAAG,IAAE,EAAE,QAAQG,EAAC;AAAC,GAAEP,GAAE,gBAAc,SAASI,IAAEG,IAAE;AAAC,SAAOH,KAAEE,GAAEF,IAAE,OAAG,IAAE,EAAE,cAAcG,EAAC,IAAEA;AAAC,GAAEP,GAAE,SAAO,SAASI,IAAE;AAAC,EAAAD,GAAE,SAASC,EAAC,MAAIA,KAAEE,GAAEF,EAAC;AAAG,SAAOA,cAAaC,KAAED,GAAE,OAAO,IAAEC,GAAE,UAAU,OAAO,KAAKD,EAAC;AAAC,GAAEJ,GAAE,MAAIK;AAAE,IAAIG,KAAE;AAAN,IAA0BC,KAAE;AAA5B,IAAuCC,KAAE;AAAzC,IAA8EC,KAAE,CAAC,KAAI,KAAI,KAAI,MAAK,KAAI,GAAG,EAAE,OAAO,CAAC,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,MAAK,GAAI,CAAC;AAAtJ,IAAwJT,KAAE,CAAC,GAAG,EAAE,OAAOS,EAAC;AAAxK,IAA0KC,KAAE,CAAC,KAAI,KAAI,KAAI,KAAI,GAAG,EAAE,OAAOV,EAAC;AAA1M,IAA4MW,KAAE,CAAC,KAAI,KAAI,GAAG;AAA1N,IAA4NC,KAAE;AAA9N,IAAuPC,KAAE;AAAzP,IAAwRC,KAAE,EAAC,YAAW,MAAG,eAAc,KAAE;AAAzT,IAA2TC,KAAE,EAAC,YAAW,MAAG,eAAc,KAAE;AAA5V,IAA8VC,KAAE,EAAC,MAAK,MAAG,OAAM,MAAG,KAAI,MAAG,QAAO,MAAG,MAAK,MAAG,SAAQ,MAAG,UAAS,MAAG,QAAO,MAAG,WAAU,MAAG,SAAQ,KAAE;AAAnc,IAAqcC,KAAEX;AAAI,SAASF,GAAEF,IAAEG,IAAEP,IAAE;AAAC,MAAGI,MAAGD,GAAE,SAASC,EAAC,KAAGA,cAAaC;AAAE,WAAOD;AAAE,MAAIH,KAAE,IAAII;AAAE,SAAOJ,GAAE,MAAMG,IAAEG,IAAEP,EAAC,GAAEC;AAAC;AAACI,GAAE,UAAU,QAAM,SAASD,IAAEG,IAAEP,IAAE;AAAC,MAAG,CAACG,GAAE,SAASC,EAAC;AAAE,UAAM,IAAI,UAAU,2CAAyC,OAAOA,EAAC;AAAE,MAAIC,KAAED,GAAE,QAAQ,GAAG,GAAEK,KAAE,OAAKJ,MAAGA,KAAED,GAAE,QAAQ,GAAG,IAAE,MAAI,KAAIO,KAAEP,GAAE,MAAMK,EAAC;AAAE,EAAAE,GAAE,CAAC,IAAEA,GAAE,CAAC,EAAE,QAAQ,OAAM,GAAG;AAAE,MAAIL,KAAEF,KAAEO,GAAE,KAAKF,EAAC;AAAE,MAAGH,KAAEA,GAAE,KAAK,GAAE,CAACN,MAAG,MAAII,GAAE,MAAM,GAAG,EAAE,QAAO;AAAC,QAAIgB,KAAEV,GAAE,KAAKJ,EAAC;AAAE,QAAGc;AAAE,aAAO,KAAK,OAAKd,IAAE,KAAK,OAAKA,IAAE,KAAK,WAASc,GAAE,CAAC,GAAEA,GAAE,CAAC,KAAG,KAAK,SAAOA,GAAE,CAAC,GAAE,KAAK,QAAMb,KAAEY,GAAE,MAAM,KAAK,OAAO,OAAO,CAAC,CAAC,IAAE,KAAK,OAAO,OAAO,CAAC,KAAGZ,OAAI,KAAK,SAAO,IAAG,KAAK,QAAM,CAAC,IAAG;AAAA,EAAI;AAAC,MAAIc,KAAEb,GAAE,KAAKF,EAAC;AAAE,MAAGe,IAAE;AAAC,QAAIC,MAAGD,KAAEA,GAAE,CAAC,GAAG,YAAY;AAAE,SAAK,WAASC,IAAEhB,KAAEA,GAAE,OAAOe,GAAE,MAAM;AAAA,EAAE;AAAC,MAAGrB,MAAGqB,MAAGf,GAAE,MAAM,sBAAsB,GAAE;AAAC,QAAIiB,KAAE,SAAOjB,GAAE,OAAO,GAAE,CAAC;AAAE,KAACiB,MAAGF,MAAGJ,GAAEI,EAAC,MAAIf,KAAEA,GAAE,OAAO,CAAC,GAAE,KAAK,UAAQ;AAAA,EAAI;AAAC,MAAG,CAACW,GAAEI,EAAC,MAAIE,MAAGF,MAAG,CAACH,GAAEG,EAAC,IAAG;AAAC,aAAQG,IAAEC,IAAEC,KAAE,IAAGC,KAAE,GAAEA,KAAEd,GAAE,QAAOc,MAAI;AAAC,cAAMC,MAAEtB,GAAE,QAAQO,GAAEc,EAAC,CAAC,OAAK,OAAKD,MAAGE,MAAEF,QAAKA,KAAEE;AAAA,IAAG;AAAC,YAAMH,KAAE,OAAKC,KAAEpB,GAAE,YAAY,GAAG,IAAEA,GAAE,YAAY,KAAIoB,EAAC,OAAKF,KAAElB,GAAE,MAAM,GAAEmB,EAAC,GAAEnB,KAAEA,GAAE,MAAMmB,KAAE,CAAC,GAAE,KAAK,OAAK,mBAAmBD,EAAC,IAAGE,KAAE;AAAG,SAAIC,KAAE,GAAEA,KAAEf,GAAE,QAAOe,MAAI;AAAC,UAAIC;AAAE,cAAMA,MAAEtB,GAAE,QAAQM,GAAEe,EAAC,CAAC,OAAK,OAAKD,MAAGE,MAAEF,QAAKA,KAAEE;AAAA,IAAG;AAAC,WAAKF,OAAIA,KAAEpB,GAAE,SAAQ,KAAK,OAAKA,GAAE,MAAM,GAAEoB,EAAC,GAAEpB,KAAEA,GAAE,MAAMoB,EAAC,GAAE,KAAK,UAAU,GAAE,KAAK,WAAS,KAAK,YAAU;AAAG,QAAIG,KAAE,QAAM,KAAK,SAAS,CAAC,KAAG,QAAM,KAAK,SAAS,KAAK,SAAS,SAAO,CAAC;AAAE,QAAG,CAACA;AAAE,eAAQC,KAAE,KAAK,SAAS,MAAM,IAAI,GAAEC,MAAGJ,KAAE,GAAEG,GAAE,SAAQH,KAAEI,IAAEJ,MAAI;AAAC,YAAIK,KAAEF,GAAEH,EAAC;AAAE,YAAGK,MAAG,CAACA,GAAE,MAAMlB,EAAC,GAAE;AAAC,mBAAQmB,KAAE,IAAGC,KAAE,GAAEC,KAAEH,GAAE,QAAOE,KAAEC,IAAED;AAAI,YAAAF,GAAE,WAAWE,EAAC,IAAE,MAAID,MAAG,MAAIA,MAAGD,GAAEE,EAAC;AAAE,cAAG,CAACD,GAAE,MAAMnB,EAAC,GAAE;AAAC,gBAAIsB,KAAEN,GAAE,MAAM,GAAEH,EAAC,GAAEU,KAAEP,GAAE,MAAMH,KAAE,CAAC,GAAEW,KAAEN,GAAE,MAAMjB,EAAC;AAAE,YAAAuB,OAAIF,GAAE,KAAKE,GAAE,CAAC,CAAC,GAAED,GAAE,QAAQC,GAAE,CAAC,CAAC,IAAGD,GAAE,WAAS/B,KAAE,MAAI+B,GAAE,KAAK,GAAG,IAAE/B,KAAG,KAAK,WAAS8B,GAAE,KAAK,GAAG;AAAE;AAAA,UAAK;AAAA,QAAC;AAAA,MAAC;AAAC,SAAK,SAAS,SAAO,MAAI,KAAK,WAAS,KAAG,KAAK,WAAS,KAAK,SAAS,YAAY,GAAEP,OAAI,KAAK,WAAS5B,GAAE,QAAQ,KAAK,QAAQ;AAAG,QAAIsC,KAAE,KAAK,OAAK,MAAI,KAAK,OAAK,IAAGC,KAAE,KAAK,YAAU;AAAG,SAAK,OAAKA,KAAED,IAAE,KAAK,QAAM,KAAK,MAAKV,OAAI,KAAK,WAAS,KAAK,SAAS,OAAO,GAAE,KAAK,SAAS,SAAO,CAAC,GAAE,QAAMvB,GAAE,CAAC,MAAIA,KAAE,MAAIA;AAAA,EAAI;AAAC,MAAG,CAACU,GAAEM,EAAC;AAAE,SAAIK,KAAE,GAAEI,KAAE7B,GAAE,QAAOyB,KAAEI,IAAEJ,MAAI;AAAC,UAAIc,KAAEvC,GAAEyB,EAAC;AAAE,UAAG,OAAKrB,GAAE,QAAQmC,EAAC,GAAE;AAAC,YAAIC,KAAE,mBAAmBD,EAAC;AAAE,QAAAC,OAAID,OAAIC,KAAE,OAAOD,EAAC,IAAGnC,KAAEA,GAAE,MAAMmC,EAAC,EAAE,KAAKC,EAAC;AAAA,MAAE;AAAA,IAAC;AAAC,MAAIC,KAAErC,GAAE,QAAQ,GAAG;AAAE,SAAKqC,OAAI,KAAK,OAAKrC,GAAE,OAAOqC,EAAC,GAAErC,KAAEA,GAAE,MAAM,GAAEqC,EAAC;AAAG,MAAIC,KAAEtC,GAAE,QAAQ,GAAG;AAAE,MAAG,OAAKsC,MAAG,KAAK,SAAOtC,GAAE,OAAOsC,EAAC,GAAE,KAAK,QAAMtC,GAAE,OAAOsC,KAAE,CAAC,GAAErC,OAAI,KAAK,QAAMY,GAAE,MAAM,KAAK,KAAK,IAAGb,KAAEA,GAAE,MAAM,GAAEsC,EAAC,KAAGrC,OAAI,KAAK,SAAO,IAAG,KAAK,QAAM,CAAC,IAAGD,OAAI,KAAK,WAASA,KAAGY,GAAEI,EAAC,KAAG,KAAK,YAAU,CAAC,KAAK,aAAW,KAAK,WAAS,MAAK,KAAK,YAAU,KAAK,QAAO;AAAC,IAAAiB,KAAE,KAAK,YAAU;AAAG,QAAIM,KAAE,KAAK,UAAQ;AAAG,SAAK,OAAKN,KAAEM;AAAA,EAAE;AAAC,SAAO,KAAK,OAAK,KAAK,OAAO,GAAE;AAAI,GAAExC,GAAE,UAAU,SAAO,WAAU;AAAC,MAAID,KAAE,KAAK,QAAM;AAAG,EAAAA,OAAIA,MAAGA,KAAE,mBAAmBA,EAAC,GAAG,QAAQ,QAAO,GAAG,GAAEA,MAAG;AAAK,MAAIG,KAAE,KAAK,YAAU,IAAGP,KAAE,KAAK,YAAU,IAAGC,KAAE,KAAK,QAAM,IAAGI,KAAE,OAAGG,KAAE;AAAG,OAAK,OAAKH,KAAED,KAAE,KAAK,OAAK,KAAK,aAAWC,KAAED,MAAG,OAAK,KAAK,SAAS,QAAQ,GAAG,IAAE,KAAK,WAAS,MAAI,KAAK,WAAS,MAAK,KAAK,SAAOC,MAAG,MAAI,KAAK,QAAO,KAAK,SAAOF,GAAE,SAAS,KAAK,KAAK,KAAG,OAAO,KAAK,KAAK,KAAK,EAAE,WAASK,KAAEW,GAAE,UAAU,KAAK,KAAK;AAAG,MAAIV,KAAE,KAAK,UAAQD,MAAG,MAAIA,MAAG;AAAG,SAAOD,MAAG,QAAMA,GAAE,OAAO,EAAE,MAAIA,MAAG,MAAK,KAAK,YAAU,CAACA,MAAGW,GAAEX,EAAC,MAAI,UAAKF,MAAGA,KAAE,QAAMA,MAAG,KAAIL,MAAG,QAAMA,GAAE,OAAO,CAAC,MAAIA,KAAE,MAAIA,OAAIK,OAAIA,KAAE,KAAIJ,MAAG,QAAMA,GAAE,OAAO,CAAC,MAAIA,KAAE,MAAIA,KAAGQ,MAAG,QAAMA,GAAE,OAAO,CAAC,MAAIA,KAAE,MAAIA,KAAGF,KAAEF,MAAGL,KAAEA,GAAE,QAAQ,SAAS,SAASI,IAAE;AAAC,WAAO,mBAAmBA,EAAC;AAAA,EAAC,CAAE,MAAIK,KAAEA,GAAE,QAAQ,KAAI,KAAK,KAAGR;AAAC,GAAEI,GAAE,UAAU,UAAQ,SAASD,IAAE;AAAC,SAAO,KAAK,cAAcE,GAAEF,IAAE,OAAG,IAAE,CAAC,EAAE,OAAO;AAAC,GAAEC,GAAE,UAAU,gBAAc,SAASD,IAAE;AAAC,MAAGD,GAAE,SAASC,EAAC,GAAE;AAAC,QAAIG,KAAE,IAAIF;AAAE,IAAAE,GAAE,MAAMH,IAAE,OAAG,IAAE,GAAEA,KAAEG;AAAA,EAAE;AAAC,WAAQP,KAAE,IAAIK,MAAEJ,KAAE,OAAO,KAAK,IAAI,GAAEO,KAAE,GAAEA,KAAEP,GAAE,QAAOO,MAAI;AAAC,QAAIC,KAAER,GAAEO,EAAC;AAAE,IAAAR,GAAES,EAAC,IAAE,KAAKA,EAAC;AAAA,EAAE;AAAC,MAAGT,GAAE,OAAKI,GAAE,MAAK,OAAKA,GAAE;AAAK,WAAOJ,GAAE,OAAKA,GAAE,OAAO,GAAEA;AAAE,MAAGI,GAAE,WAAS,CAACA,GAAE,UAAS;AAAC,aAAQM,KAAE,OAAO,KAAKN,EAAC,GAAEO,KAAE,GAAEA,KAAED,GAAE,QAAOC,MAAI;AAAC,UAAIT,KAAEQ,GAAEC,EAAC;AAAE,qBAAaT,OAAIF,GAAEE,EAAC,IAAEE,GAAEF,EAAC;AAAA,IAAG;AAAC,WAAOgB,GAAElB,GAAE,QAAQ,KAAGA,GAAE,YAAU,CAACA,GAAE,aAAWA,GAAE,OAAKA,GAAE,WAAS,MAAKA,GAAE,OAAKA,GAAE,OAAO,GAAEA;AAAA,EAAC;AAAC,MAAGI,GAAE,YAAUA,GAAE,aAAWJ,GAAE,UAAS;AAAC,QAAG,CAACkB,GAAEd,GAAE,QAAQ,GAAE;AAAC,eAAQQ,KAAE,OAAO,KAAKR,EAAC,GAAES,KAAE,GAAEA,KAAED,GAAE,QAAOC,MAAI;AAAC,YAAIC,KAAEF,GAAEC,EAAC;AAAE,QAAAb,GAAEc,EAAC,IAAEV,GAAEU,EAAC;AAAA,MAAE;AAAC,aAAOd,GAAE,OAAKA,GAAE,OAAO,GAAEA;AAAA,IAAC;AAAC,QAAGA,GAAE,WAASI,GAAE,UAASA,GAAE,QAAMa,GAAEb,GAAE,QAAQ;AAAE,MAAAJ,GAAE,WAASI,GAAE;AAAA,SAAc;AAAC,eAAQW,MAAGX,GAAE,YAAU,IAAI,MAAM,GAAG,GAAEW,GAAE,UAAQ,EAAEX,GAAE,OAAKW,GAAE,MAAM;AAAI;AAAC,MAAAX,GAAE,SAAOA,GAAE,OAAK,KAAIA,GAAE,aAAWA,GAAE,WAAS,KAAI,OAAKW,GAAE,CAAC,KAAGA,GAAE,QAAQ,EAAE,GAAEA,GAAE,SAAO,KAAGA,GAAE,QAAQ,EAAE,GAAEf,GAAE,WAASe,GAAE,KAAK,GAAG;AAAA,IAAE;AAAC,QAAGf,GAAE,SAAOI,GAAE,QAAOJ,GAAE,QAAMI,GAAE,OAAMJ,GAAE,OAAKI,GAAE,QAAM,IAAGJ,GAAE,OAAKI,GAAE,MAAKJ,GAAE,WAASI,GAAE,YAAUA,GAAE,MAAKJ,GAAE,OAAKI,GAAE,MAAKJ,GAAE,YAAUA,GAAE,QAAO;AAAC,UAAIgB,KAAEhB,GAAE,YAAU,IAAGmB,KAAEnB,GAAE,UAAQ;AAAG,MAAAA,GAAE,OAAKgB,KAAEG;AAAA,IAAE;AAAC,WAAOnB,GAAE,UAAQA,GAAE,WAASI,GAAE,SAAQJ,GAAE,OAAKA,GAAE,OAAO,GAAEA;AAAA,EAAC;AAAC,MAAIM,KAAEN,GAAE,YAAU,QAAMA,GAAE,SAAS,OAAO,CAAC,GAAEoB,KAAEhB,GAAE,QAAMA,GAAE,YAAU,QAAMA,GAAE,SAAS,OAAO,CAAC,GAAEiB,KAAED,MAAGd,MAAGN,GAAE,QAAMI,GAAE,UAASkB,KAAED,IAAEE,KAAEvB,GAAE,YAAUA,GAAE,SAAS,MAAM,GAAG,KAAG,CAAC,GAAEwB,MAAGT,KAAEX,GAAE,YAAUA,GAAE,SAAS,MAAM,GAAG,KAAG,CAAC,GAAEJ,GAAE,YAAU,CAACkB,GAAElB,GAAE,QAAQ;AAAG,MAAGwB,OAAIxB,GAAE,WAAS,IAAGA,GAAE,OAAK,MAAKA,GAAE,SAAO,OAAKuB,GAAE,CAAC,IAAEA,GAAE,CAAC,IAAEvB,GAAE,OAAKuB,GAAE,QAAQvB,GAAE,IAAI,IAAGA,GAAE,OAAK,IAAGI,GAAE,aAAWA,GAAE,WAAS,MAAKA,GAAE,OAAK,MAAKA,GAAE,SAAO,OAAKW,GAAE,CAAC,IAAEA,GAAE,CAAC,IAAEX,GAAE,OAAKW,GAAE,QAAQX,GAAE,IAAI,IAAGA,GAAE,OAAK,OAAMiB,KAAEA,OAAI,OAAKN,GAAE,CAAC,KAAG,OAAKQ,GAAE,CAAC,KAAIH;AAAE,IAAApB,GAAE,OAAKI,GAAE,QAAM,OAAKA,GAAE,OAAKA,GAAE,OAAKJ,GAAE,MAAKA,GAAE,WAASI,GAAE,YAAU,OAAKA,GAAE,WAASA,GAAE,WAASJ,GAAE,UAASA,GAAE,SAAOI,GAAE,QAAOJ,GAAE,QAAMI,GAAE,OAAMmB,KAAER;AAAA,WAAUA,GAAE;AAAO,IAAAQ,OAAIA,KAAE,CAAC,IAAGA,GAAE,IAAI,GAAEA,KAAEA,GAAE,OAAOR,EAAC,GAAEf,GAAE,SAAOI,GAAE,QAAOJ,GAAE,QAAMI,GAAE;AAAA,WAAc,CAACD,GAAE,kBAAkBC,GAAE,MAAM,GAAE;AAAC,QAAGoB;AAAE,MAAAxB,GAAE,WAASA,GAAE,OAAKuB,GAAE,MAAM,IAAGM,KAAE,CAAC,EAAE7B,GAAE,QAAMA,GAAE,KAAK,QAAQ,GAAG,IAAE,MAAIA,GAAE,KAAK,MAAM,GAAG,OAAKA,GAAE,OAAK6B,GAAE,MAAM,GAAE7B,GAAE,OAAKA,GAAE,WAAS6B,GAAE,MAAM;AAAG,WAAO7B,GAAE,SAAOI,GAAE,QAAOJ,GAAE,QAAMI,GAAE,OAAMD,GAAE,OAAOH,GAAE,QAAQ,KAAGG,GAAE,OAAOH,GAAE,MAAM,MAAIA,GAAE,QAAMA,GAAE,WAASA,GAAE,WAAS,OAAKA,GAAE,SAAOA,GAAE,SAAO,MAAKA,GAAE,OAAKA,GAAE,OAAO,GAAEA;AAAA,EAAC;AAAC,MAAG,CAACuB,GAAE;AAAO,WAAOvB,GAAE,WAAS,MAAKA,GAAE,SAAOA,GAAE,OAAK,MAAIA,GAAE,SAAOA,GAAE,OAAK,MAAKA,GAAE,OAAKA,GAAE,OAAO,GAAEA;AAAE,WAAQyB,KAAEF,GAAE,MAAM,EAAE,EAAE,CAAC,GAAEG,MAAG1B,GAAE,QAAMI,GAAE,QAAMmB,GAAE,SAAO,OAAK,QAAME,MAAG,SAAOA,OAAI,OAAKA,IAAEE,KAAE,GAAEC,MAAEL,GAAE,QAAOK,OAAG,GAAEA;AAAI,aAAOH,KAAEF,GAAEK,GAAC,KAAGL,GAAE,OAAOK,KAAE,CAAC,IAAE,SAAOH,MAAGF,GAAE,OAAOK,KAAE,CAAC,GAAED,QAAKA,OAAIJ,GAAE,OAAOK,KAAE,CAAC,GAAED;AAAK,MAAG,CAACN,MAAG,CAACC;AAAE,WAAKK,MAAIA;AAAE,MAAAJ,GAAE,QAAQ,IAAI;AAAE,GAACF,MAAG,OAAKE,GAAE,CAAC,KAAGA,GAAE,CAAC,KAAG,QAAMA,GAAE,CAAC,EAAE,OAAO,CAAC,KAAGA,GAAE,QAAQ,EAAE,GAAEG,MAAG,QAAMH,GAAE,KAAK,GAAG,EAAE,OAAO,EAAE,KAAGA,GAAE,KAAK,EAAE;AAAE,MAAIM,IAAEC,KAAE,OAAKP,GAAE,CAAC,KAAGA,GAAE,CAAC,KAAG,QAAMA,GAAE,CAAC,EAAE,OAAO,CAAC;AAAE,EAAAC,OAAIxB,GAAE,WAASA,GAAE,OAAK8B,KAAE,KAAGP,GAAE,SAAOA,GAAE,MAAM,IAAE,KAAIM,KAAE,CAAC,EAAE7B,GAAE,QAAMA,GAAE,KAAK,QAAQ,GAAG,IAAE,MAAIA,GAAE,KAAK,MAAM,GAAG,OAAKA,GAAE,OAAK6B,GAAE,MAAM,GAAE7B,GAAE,OAAKA,GAAE,WAAS6B,GAAE,MAAM;AAAI,UAAQR,KAAEA,MAAGrB,GAAE,QAAMuB,GAAE,WAAS,CAACO,MAAGP,GAAE,QAAQ,EAAE,GAAEA,GAAE,SAAOvB,GAAE,WAASuB,GAAE,KAAK,GAAG,KAAGvB,GAAE,WAAS,MAAKA,GAAE,OAAK,OAAMG,GAAE,OAAOH,GAAE,QAAQ,KAAGG,GAAE,OAAOH,GAAE,MAAM,MAAIA,GAAE,QAAMA,GAAE,WAASA,GAAE,WAAS,OAAKA,GAAE,SAAOA,GAAE,SAAO,MAAKA,GAAE,OAAKI,GAAE,QAAMJ,GAAE,MAAKA,GAAE,UAAQA,GAAE,WAASI,GAAE,SAAQJ,GAAE,OAAKA,GAAE,OAAO,GAAEA;AAAC,GAAEK,GAAE,UAAU,YAAU,WAAU;AAAC,MAAID,KAAE,KAAK,MAAKG,KAAEE,GAAE,KAAKL,EAAC;AAAE,EAAAG,OAAI,SAAOA,KAAEA,GAAE,CAAC,OAAK,KAAK,OAAKA,GAAE,OAAO,CAAC,IAAGH,KAAEA,GAAE,OAAO,GAAEA,GAAE,SAAOG,GAAE,MAAM,IAAGH,OAAI,KAAK,WAASA;AAAG;AACr9OJ,GAAE;AAAIA,GAAE;AAAOA,GAAE;AAAQA,GAAE;AAE3B,IAAI8C,WAAU,CAAC;AAAf,IACIC,YAAW;AACf,SAASC,OAAM;AACb,MAAID;AAAU,WAAOD;AACrB,EAAAC,YAAW;AACX,MAAIE,WAAU;AAEd,WAAS,WAAWC,OAAM;AACxB,QAAI,OAAOA,UAAS,UAAU;AAC5B,YAAM,IAAI,UAAU,qCAAqC,KAAK,UAAUA,KAAI,CAAC;AAAA,IAC/E;AAAA,EACF;AAGA,WAAS,qBAAqBA,OAAM,gBAAgB;AAClD,QAAI,MAAM;AACV,QAAI,oBAAoB;AACxB,QAAI,YAAY;AAChB,QAAI,OAAO;AACX,QAAI;AAEJ,aAASxC,KAAI,GAAGA,MAAKwC,MAAK,QAAQ,EAAExC,IAAG;AACrC,UAAIA,KAAIwC,MAAK;AAAQ,eAAOA,MAAK,WAAWxC,EAAC;AAAA,eAAW,SAAS;AAE/D;AAAA;AAAW,eAAO;AAIpB,UAAI,SAAS,IAEX;AACA,YAAI,cAAcA,KAAI,KAAK,SAAS;AAAG;AAAA,iBAAW,cAAcA,KAAI,KAAK,SAAS,GAAG;AACnF,cAAI,IAAI,SAAS,KAAK,sBAAsB,KAAK,IAAI,WAAW,IAAI,SAAS,CAAC,MAAM,MAEjF,IAAI,WAAW,IAAI,SAAS,CAAC,MAAM,IAEpC;AACA,gBAAI,IAAI,SAAS,GAAG;AAClB,kBAAI,iBAAiB,IAAI,YAAY,GAAG;AAExC,kBAAI,mBAAmB,IAAI,SAAS,GAAG;AACrC,oBAAI,mBAAmB,IAAI;AACzB,wBAAM;AACN,sCAAoB;AAAA,gBACtB,OAAO;AACL,wBAAM,IAAI,MAAM,GAAG,cAAc;AACjC,sCAAoB,IAAI,SAAS,IAAI,IAAI,YAAY,GAAG;AAAA,gBAC1D;AAEA,4BAAYA;AACZ,uBAAO;AACP;AAAA,cACF;AAAA,YACF,WAAW,IAAI,WAAW,KAAK,IAAI,WAAW,GAAG;AAC/C,oBAAM;AACN,kCAAoB;AACpB,0BAAYA;AACZ,qBAAO;AACP;AAAA,YACF;AAAA,UACF;AAEA,cAAI,gBAAgB;AAClB,gBAAI,IAAI,SAAS;AAAG,qBAAO;AAAA;AAAW,oBAAM;AAC5C,gCAAoB;AAAA,UACtB;AAAA,QACF,OAAO;AACL,cAAI,IAAI,SAAS;AAAG,mBAAO,MAAMwC,MAAK,MAAM,YAAY,GAAGxC,EAAC;AAAA;AAAO,kBAAMwC,MAAK,MAAM,YAAY,GAAGxC,EAAC;AACpG,8BAAoBA,KAAI,YAAY;AAAA,QACtC;AAEA,oBAAYA;AACZ,eAAO;AAAA,MACT,WAAW,SAAS,MAEjB,SAAS,IAAI;AACd,UAAE;AAAA,MACJ,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,QAAQyC,MAAK,YAAY;AAChC,QAAI,MAAM,WAAW,OAAO,WAAW;AACvC,QAAIC,QAAO,WAAW,SAAS,WAAW,QAAQ,OAAO,WAAW,OAAO;AAE3E,QAAI,CAAC,KAAK;AACR,aAAOA;AAAA,IACT;AAEA,QAAI,QAAQ,WAAW,MAAM;AAC3B,aAAO,MAAMA;AAAA,IACf;AAEA,WAAO,MAAMD,OAAMC;AAAA,EACrB;AAEA,MAAIC,SAAQ;AAAA;AAAA,IAEV,SAAS,SAASC,WAAU;AAC1B,UAAI,eAAe;AACnB,UAAI,mBAAmB;AACvB,UAAI;AAEJ,eAAS5C,KAAI,UAAU,SAAS,GAAGA,MAAK,MAAM,CAAC,kBAAkBA,MAAK;AACpE,YAAIwC;AACJ,YAAIxC,MAAK;AAAG,UAAAwC,QAAO,UAAUxC,EAAC;AAAA,aAAO;AACnC,cAAI,QAAQ;AAAW,kBAAMuC,SAAQ,IAAI;AACzC,UAAAC,QAAO;AAAA,QACT;AACA,mBAAWA,KAAI;AAEf,YAAIA,MAAK,WAAW,GAAG;AACrB;AAAA,QACF;AAEA,uBAAeA,QAAO,MAAM;AAC5B,2BAAmBA,MAAK,WAAW,CAAC,MAAM;AAAA,MAG5C;AAKA,qBAAe,qBAAqB,cAAc,CAAC,gBAAgB;AAEnE,UAAI,kBAAkB;AACpB,YAAI,aAAa,SAAS;AAAG,iBAAO,MAAM;AAAA;AAAkB,iBAAO;AAAA,MACrE,WAAW,aAAa,SAAS,GAAG;AAClC,eAAO;AAAA,MACT,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,WAAW,SAASK,WAAUL,OAAM;AAClC,iBAAWA,KAAI;AACf,UAAIA,MAAK,WAAW;AAAG,eAAO;AAC9B,UAAIM,cAAaN,MAAK,WAAW,CAAC,MAAM;AAGxC,UAAI,oBAAoBA,MAAK,WAAWA,MAAK,SAAS,CAAC,MAAM;AAI7D,MAAAA,QAAO,qBAAqBA,OAAM,CAACM,WAAU;AAC7C,UAAIN,MAAK,WAAW,KAAK,CAACM;AAAY,QAAAN,QAAO;AAC7C,UAAIA,MAAK,SAAS,KAAK;AAAmB,QAAAA,SAAQ;AAClD,UAAIM;AAAY,eAAO,MAAMN;AAC7B,aAAOA;AAAA,IACT;AAAA,IACA,YAAY,SAASM,YAAWN,OAAM;AACpC,iBAAWA,KAAI;AACf,aAAOA,MAAK,SAAS,KAAKA,MAAK,WAAW,CAAC,MAAM;AAAA,IAGnD;AAAA,IACA,MAAM,SAASO,QAAO;AACpB,UAAI,UAAU,WAAW;AAAG,eAAO;AACnC,UAAI;AAEJ,eAAS/C,KAAI,GAAGA,KAAI,UAAU,QAAQ,EAAEA,IAAG;AACzC,YAAI,MAAM,UAAUA,EAAC;AACrB,mBAAW,GAAG;AAEd,YAAI,IAAI,SAAS,GAAG;AAClB,cAAI,WAAW;AAAW,qBAAS;AAAA;AAAS,sBAAU,MAAM;AAAA,QAC9D;AAAA,MACF;AAEA,UAAI,WAAW;AAAW,eAAO;AACjC,aAAO2C,OAAM,UAAU,MAAM;AAAA,IAC/B;AAAA,IACA,UAAU,SAASK,UAASC,OAAM,IAAI;AACpC,iBAAWA,KAAI;AACf,iBAAW,EAAE;AACb,UAAIA,UAAS;AAAI,eAAO;AACxB,MAAAA,QAAON,OAAM,QAAQM,KAAI;AACzB,WAAKN,OAAM,QAAQ,EAAE;AACrB,UAAIM,UAAS;AAAI,eAAO;AAExB,UAAI,YAAY;AAEhB,aAAO,YAAYA,MAAK,QAAQ,EAAE,WAAW;AAC3C,YAAIA,MAAK,WAAW,SAAS,MAAM;AAEjC;AAAA,MACJ;AAEA,UAAI,UAAUA,MAAK;AACnB,UAAI,UAAU,UAAU;AAExB,UAAI,UAAU;AAEd,aAAO,UAAU,GAAG,QAAQ,EAAE,SAAS;AACrC,YAAI,GAAG,WAAW,OAAO,MAAM;AAE7B;AAAA,MACJ;AAEA,UAAI,QAAQ,GAAG;AACf,UAAI,QAAQ,QAAQ;AAEpB,UAAIC,UAAS,UAAU,QAAQ,UAAU;AACzC,UAAI,gBAAgB;AACpB,UAAIlD,KAAI;AAER,aAAOA,MAAKkD,SAAQ,EAAElD,IAAG;AACvB,YAAIA,OAAMkD,SAAQ;AAChB,cAAI,QAAQA,SAAQ;AAClB,gBAAI,GAAG,WAAW,UAAUlD,EAAC,MAAM,IAEjC;AAGA,qBAAO,GAAG,MAAM,UAAUA,KAAI,CAAC;AAAA,YACjC,WAAWA,OAAM,GAAG;AAGlB,qBAAO,GAAG,MAAM,UAAUA,EAAC;AAAA,YAC7B;AAAA,UACF,WAAW,UAAUkD,SAAQ;AAC3B,gBAAID,MAAK,WAAW,YAAYjD,EAAC,MAAM,IAErC;AAGA,8BAAgBA;AAAA,YAClB,WAAWA,OAAM,GAAG;AAGlB,8BAAgB;AAAA,YAClB;AAAA,UACF;AAEA;AAAA,QACF;AAEA,YAAI,WAAWiD,MAAK,WAAW,YAAYjD,EAAC;AAC5C,YAAI,SAAS,GAAG,WAAW,UAAUA,EAAC;AACtC,YAAI,aAAa;AAAQ;AAAA,iBAAe,aAAa;AAEnD,0BAAgBA;AAAA,MACpB;AAEA,UAAI,MAAM;AAGV,WAAKA,KAAI,YAAY,gBAAgB,GAAGA,MAAK,SAAS,EAAEA,IAAG;AACzD,YAAIA,OAAM,WAAWiD,MAAK,WAAWjD,EAAC,MAAM,IAE1C;AACA,cAAI,IAAI,WAAW;AAAG,mBAAO;AAAA;AAAU,mBAAO;AAAA,QAChD;AAAA,MACF;AAIA,UAAI,IAAI,SAAS;AAAG,eAAO,MAAM,GAAG,MAAM,UAAU,aAAa;AAAA,WAAO;AACtE,mBAAW;AACX,YAAI,GAAG,WAAW,OAAO,MAAM;AAE7B,YAAE;AACJ,eAAO,GAAG,MAAM,OAAO;AAAA,MACzB;AAAA,IACF;AAAA,IACA,WAAW,SAASmD,WAAUX,OAAM;AAClC,aAAOA;AAAA,IACT;AAAA,IACA,SAAS,SAASY,SAAQZ,OAAM;AAC9B,iBAAWA,KAAI;AACf,UAAIA,MAAK,WAAW;AAAG,eAAO;AAC9B,UAAI,OAAOA,MAAK,WAAW,CAAC;AAC5B,UAAI,UAAU,SAAS;AAGvB,UAAI,MAAM;AACV,UAAI,eAAe;AAEnB,eAASxC,KAAIwC,MAAK,SAAS,GAAGxC,MAAK,GAAG,EAAEA,IAAG;AACzC,eAAOwC,MAAK,WAAWxC,EAAC;AAExB,YAAI,SAAS,IAEX;AACA,cAAI,CAAC,cAAc;AACjB,kBAAMA;AACN;AAAA,UACF;AAAA,QACF,OAAO;AAEL,yBAAe;AAAA,QACjB;AAAA,MACF;AAEA,UAAI,QAAQ;AAAI,eAAO,UAAU,MAAM;AACvC,UAAI,WAAW,QAAQ;AAAG,eAAO;AACjC,aAAOwC,MAAK,MAAM,GAAG,GAAG;AAAA,IAC1B;AAAA,IACA,UAAU,SAASa,UAASb,OAAM,KAAK;AACrC,UAAI,QAAQ,UAAa,OAAO,QAAQ;AAAU,cAAM,IAAI,UAAU,iCAAmC;AACzG,iBAAWA,KAAI;AACf,UAAI,QAAQ;AACZ,UAAI,MAAM;AACV,UAAI,eAAe;AACnB,UAAIxC;AAEJ,UAAI,QAAQ,UAAa,IAAI,SAAS,KAAK,IAAI,UAAUwC,MAAK,QAAQ;AACpE,YAAI,IAAI,WAAWA,MAAK,UAAU,QAAQA;AAAM,iBAAO;AACvD,YAAI,SAAS,IAAI,SAAS;AAC1B,YAAI,mBAAmB;AAEvB,aAAKxC,KAAIwC,MAAK,SAAS,GAAGxC,MAAK,GAAG,EAAEA,IAAG;AACrC,cAAI,OAAOwC,MAAK,WAAWxC,EAAC;AAE5B,cAAI,SAAS,IAEX;AAGA,gBAAI,CAAC,cAAc;AACjB,sBAAQA,KAAI;AACZ;AAAA,YACF;AAAA,UACF,OAAO;AACL,gBAAI,qBAAqB,IAAI;AAG3B,6BAAe;AACf,iCAAmBA,KAAI;AAAA,YACzB;AAEA,gBAAI,UAAU,GAAG;AAEf,kBAAI,SAAS,IAAI,WAAW,MAAM,GAAG;AACnC,oBAAI,EAAE,WAAW,IAAI;AAGnB,wBAAMA;AAAA,gBACR;AAAA,cACF,OAAO;AAGL,yBAAS;AACT,sBAAM;AAAA,cACR;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAEA,YAAI,UAAU;AAAK,gBAAM;AAAA,iBAA0B,QAAQ;AAAI,gBAAMwC,MAAK;AAC1E,eAAOA,MAAK,MAAM,OAAO,GAAG;AAAA,MAC9B,OAAO;AACL,aAAKxC,KAAIwC,MAAK,SAAS,GAAGxC,MAAK,GAAG,EAAEA,IAAG;AACrC,cAAIwC,MAAK,WAAWxC,EAAC,MAAM,IAEzB;AAGA,gBAAI,CAAC,cAAc;AACjB,sBAAQA,KAAI;AACZ;AAAA,YACF;AAAA,UACF,WAAW,QAAQ,IAAI;AAGrB,2BAAe;AACf,kBAAMA,KAAI;AAAA,UACZ;AAAA,QACF;AAEA,YAAI,QAAQ;AAAI,iBAAO;AACvB,eAAOwC,MAAK,MAAM,OAAO,GAAG;AAAA,MAC9B;AAAA,IACF;AAAA,IACA,SAAS,SAASc,SAAQd,OAAM;AAC9B,iBAAWA,KAAI;AACf,UAAI,WAAW;AACf,UAAI,YAAY;AAChB,UAAI,MAAM;AACV,UAAI,eAAe;AAGnB,UAAI,cAAc;AAElB,eAASxC,KAAIwC,MAAK,SAAS,GAAGxC,MAAK,GAAG,EAAEA,IAAG;AACzC,YAAI,OAAOwC,MAAK,WAAWxC,EAAC;AAE5B,YAAI,SAAS,IAEX;AAGA,cAAI,CAAC,cAAc;AACjB,wBAAYA,KAAI;AAChB;AAAA,UACF;AAEA;AAAA,QACF;AAEA,YAAI,QAAQ,IAAI;AAGd,yBAAe;AACf,gBAAMA,KAAI;AAAA,QACZ;AAEA,YAAI,SAAS,IAEX;AAEA,cAAI,aAAa;AAAI,uBAAWA;AAAA,mBAAW,gBAAgB;AAAG,0BAAc;AAAA,QAC9E,WAAW,aAAa,IAAI;AAG1B,wBAAc;AAAA,QAChB;AAAA,MACF;AAEA,UAAI,aAAa,MAAM,QAAQ;AAAA,MAC/B,gBAAgB;AAAA,MAChB,gBAAgB,KAAK,aAAa,MAAM,KAAK,aAAa,YAAY,GAAG;AACvE,eAAO;AAAA,MACT;AAEA,aAAOwC,MAAK,MAAM,UAAU,GAAG;AAAA,IACjC;AAAA,IACA,QAAQ,SAASe,QAAO,YAAY;AAClC,UAAI,eAAe,QAAQ,OAAO,eAAe,UAAU;AACzD,cAAM,IAAI,UAAU,qEAAuE,OAAO,UAAU;AAAA,MAC9G;AAEA,aAAO,QAAQ,KAAK,UAAU;AAAA,IAChC;AAAA,IACA,OAAO,SAASC,OAAMhB,OAAM;AAC1B,iBAAWA,KAAI;AACf,UAAI,MAAM;AAAA,QACR,MAAM;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,QACN,KAAK;AAAA,QACL,MAAM;AAAA,MACR;AACA,UAAIA,MAAK,WAAW;AAAG,eAAO;AAC9B,UAAI,OAAOA,MAAK,WAAW,CAAC;AAC5B,UAAIM,cAAa,SAAS;AAG1B,UAAI;AAEJ,UAAIA,aAAY;AACd,YAAI,OAAO;AACX,gBAAQ;AAAA,MACV,OAAO;AACL,gBAAQ;AAAA,MACV;AAEA,UAAI,WAAW;AACf,UAAI,YAAY;AAChB,UAAI,MAAM;AACV,UAAI,eAAe;AACnB,UAAI9C,KAAIwC,MAAK,SAAS;AAGtB,UAAI,cAAc;AAElB,aAAOxC,MAAK,OAAO,EAAEA,IAAG;AACtB,eAAOwC,MAAK,WAAWxC,EAAC;AAExB,YAAI,SAAS,IAEX;AAGA,cAAI,CAAC,cAAc;AACjB,wBAAYA,KAAI;AAChB;AAAA,UACF;AAEA;AAAA,QACF;AAEA,YAAI,QAAQ,IAAI;AAGd,yBAAe;AACf,gBAAMA,KAAI;AAAA,QACZ;AAEA,YAAI,SAAS,IAEX;AAEA,cAAI,aAAa;AAAI,uBAAWA;AAAA,mBAAW,gBAAgB;AAAG,0BAAc;AAAA,QAC9E,WAAW,aAAa,IAAI;AAG1B,wBAAc;AAAA,QAChB;AAAA,MACF;AAEA,UAAI,aAAa,MAAM,QAAQ;AAAA,MAC/B,gBAAgB;AAAA,MAChB,gBAAgB,KAAK,aAAa,MAAM,KAAK,aAAa,YAAY,GAAG;AACvE,YAAI,QAAQ,IAAI;AACd,cAAI,cAAc,KAAK8C;AAAY,gBAAI,OAAO,IAAI,OAAON,MAAK,MAAM,GAAG,GAAG;AAAA;AAAO,gBAAI,OAAO,IAAI,OAAOA,MAAK,MAAM,WAAW,GAAG;AAAA,QAClI;AAAA,MACF,OAAO;AACL,YAAI,cAAc,KAAKM,aAAY;AACjC,cAAI,OAAON,MAAK,MAAM,GAAG,QAAQ;AACjC,cAAI,OAAOA,MAAK,MAAM,GAAG,GAAG;AAAA,QAC9B,OAAO;AACL,cAAI,OAAOA,MAAK,MAAM,WAAW,QAAQ;AACzC,cAAI,OAAOA,MAAK,MAAM,WAAW,GAAG;AAAA,QACtC;AAEA,YAAI,MAAMA,MAAK,MAAM,UAAU,GAAG;AAAA,MACpC;AAEA,UAAI,YAAY;AAAG,YAAI,MAAMA,MAAK,MAAM,GAAG,YAAY,CAAC;AAAA,eAAWM;AAAY,YAAI,MAAM;AACzF,aAAO;AAAA,IACT;AAAA,IACA,KAAK;AAAA,IACL,WAAW;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AACA,EAAAH,OAAM,QAAQA;AACd,EAAAP,WAAUO;AACV,SAAOP;AACT;AAEA,IAAI,OAAOE,KAAI;AAIf,IAAM,oBAAoB,OAAO,SAAS,cAAe,KAAK,MAAM,OAAO,YAAY,UAAU,KAAK,MAAM,KAAM;AAElHhD,GAAE,MAAM,OAAO,QAAQ,cAAc,MAAM;AAC3CA,GAAE,gBAAgB;AAClBA,GAAE,gBAAgB;AAElBA,GAAE;AACFA,GAAE;AACFA,GAAE;AACFA,GAAE;AAEFA,GAAE;AAEF,IAAM,wBAAwB;AAC9B,IAAM,uBAAuB;AAC7B,IAAM,qBAAqB;AAC3B,IAAM,qBAAqB;AAE3B,IAAM,cAAc,sBAAsB;AAE1C,IAAM,sBAAsB;AAC5B,IAAM,iBAAiB;AACvB,IAAM,mBAAmB;AACzB,IAAM,iBAAiB;AACvB,IAAM,wBAAwB;AAC9B,IAAM,aAAa;AAMnB,SAAS,gBAAgBkD,OAAM;AAC7B,MAAI,OAAOA,UAAS;AAAU,IAAAA,QAAO,IAAI,IAAIA,KAAI;AAAA,WACxC,EAAEA,iBAAgB,MAAM;AAC/B,UAAM,IAAI,KAAK,OAAO;AAAA,MACpB;AAAA,IACF;AAAA,EACF;AACA,MAAIA,MAAK,aAAa,SAAS;AAC7B,UAAM,IAAI,KAAK,OAAO,YAAY,oBAAoB;AAAA,EACxD;AACA,SAAO,cAAc,oBAAoBA,KAAI,IAAI,sBAAsBA,KAAI;AAC7E;AAEA,SAAS,oBAAoB,KAAK;AAChC,QAAM,WAAW,IAAI;AACrB,MAAI,WAAW,IAAI;AACnB,WAASzC,KAAI,GAAGA,KAAI,SAAS,QAAQA,MAAK;AACxC,QAAI,SAASA,EAAC,MAAM,KAAK;AACvB,YAAM,QAAQ,SAAS,YAAYA,KAAI,CAAC,KAAK;AAC7C,UACG,SAASA,KAAI,CAAC,MAAM,OAAO,UAAU;AAAA,MACrC,SAASA,KAAI,CAAC,MAAM,OAAO,UAAU,IACtC;AAEA,cAAM,IAAI,KAAK,OAAO;AAAA,UACpB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,aAAW,SAAS,QAAQ,qBAAqB,IAAI;AACrD,aAAW,mBAAmB,QAAQ;AACtC,MAAI,aAAa,IAAI;AAEnB,WAAO,OAAO,QAAQ,GAAG,QAAQ;AAAA,EACnC,OAAO;AAEL,UAAM,SAAS,SAAS,YAAY,CAAC,IAAI;AACzC,UAAM0C,OAAM,SAAS,CAAC;AACtB,QACE,SAAS,sBACT,SAAS;AAAA,IACTA,SAAQ,KACR;AACA,YAAM,IAAI,KAAK,OAAO,YAAY,gCAAgC;AAAA,IACpE;AACA,WAAO,SAAS,MAAM,CAAC;AAAA,EACzB;AACF;AACA,SAAS,sBAAsB,KAAK;AAClC,MAAI,IAAI,aAAa,IAAI;AACvB,UAAM,IAAI,KAAK,OAAO,YAAY,2BAA2B;AAAA,EAC/D;AACA,QAAM,WAAW,IAAI;AACrB,WAAS1C,KAAI,GAAGA,KAAI,SAAS,QAAQA,MAAK;AACxC,QAAI,SAASA,EAAC,MAAM,KAAK;AACvB,YAAM,QAAQ,SAAS,YAAYA,KAAI,CAAC,KAAK;AAC7C,UAAI,SAASA,KAAI,CAAC,MAAM,OAAO,UAAU,KAAK;AAC5C,cAAM,IAAI,KAAK,OAAO;AAAA,UACpB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO,mBAAmB,QAAQ;AACpC;AAGA,SAAS,gBAAgB,UAAU;AACjC,MAAI,WAAW,KAAK,QAAQ,QAAQ;AAEpC,QAAM,eAAe,SAAS,WAAW,SAAS,SAAS,CAAC;AAC5D,OACG,iBAAiB,wBACf,eAAe,iBAAiB,0BACnC,SAAS,SAAS,SAAS,CAAC,MAAM,KAAK,KACvC;AACA,gBAAY;AAAA,EACd;AACA,QAAM,SAAS,IAAI,IAAI,SAAS;AAChC,MAAI,SAAS,SAAS,GAAG;AAAG,eAAW,SAAS,QAAQ,gBAAgB,KAAK;AAE7E,MAAI,CAAC,eAAe,SAAS,SAAS,IAAI,GAAG;AAC3C,eAAW,SAAS,QAAQ,kBAAkB,KAAK;AAAA,EACrD;AACA,MAAI,SAAS,SAAS,IAAI;AAAG,eAAW,SAAS,QAAQ,gBAAgB,KAAK;AAC9E,MAAI,SAAS,SAAS,IAAI,GAAG;AAC3B,eAAW,SAAS,QAAQ,uBAAuB,KAAK;AAAA,EAC1D;AACA,MAAI,SAAS,SAAS,GAAI;AAAG,eAAW,SAAS,QAAQ,YAAY,KAAK;AAC1E,SAAO,WAAW;AAClB,SAAO;AACT;AAIA,IAAM,kBAAkB,OAAO,SAAS,cAAe,KAAK,MAAM,OAAO,YAAY,UAAU,KAAK,MAAM,KAAM;AAEhHT,GAAE,MAAM,OAAO,QAAQ,cAAc,MAAM;AAC3CA,GAAE,gBAAgB;AAClBA,GAAE,gBAAgB;AAElB,IAAI,MAAMA,GAAE;AACZ,IAAIiE,UAASjE,GAAE;AACf,IAAIsD,WAAUtD,GAAE;AAChB,IAAI,gBAAgBA,GAAE;AACtB,IAAIkE,SAAQlE,GAAE;AAEd,IAAM,OAAOA,GAAE;AAEf,IAAM,sBAAsB;AAC5B,IAAM,qBAAqB;AAC3B,IAAM,mBAAmB;AACzB,IAAM,mBAAmB;AAEzB,IAAM,YAAY,oBAAoB;AAEtC,IAAM,oBAAoB;AAC1B,IAAM,eAAe;AACrB,IAAM,iBAAiB;AACvB,IAAM,eAAe;AACrB,IAAM,sBAAsB;AAC5B,IAAM,WAAW;AAMjB,SAAS,cAAckD,OAAM;AAC3B,MAAI,OAAOA,UAAS;AAAU,IAAAA,QAAO,IAAI,IAAIA,KAAI;AAAA,WACxC,EAAEA,iBAAgB,MAAM;AAC/B,UAAM,IAAI,KAAK,OAAO;AAAA,MACpB;AAAA,IACF;AAAA,EACF;AACA,MAAIA,MAAK,aAAa,SAAS;AAC7B,UAAM,IAAI,KAAK,OAAO,YAAY,oBAAoB;AAAA,EACxD;AACA,SAAO,YAAY,kBAAkBA,KAAI,IAAI,oBAAoBA,KAAI;AACvE;AAEA,SAAS,kBAAkB,KAAK;AAC9B,QAAM,WAAW,IAAI;AACrB,MAAI,WAAW,IAAI;AACnB,WAASzC,KAAI,GAAGA,KAAI,SAAS,QAAQA,MAAK;AACxC,QAAI,SAASA,EAAC,MAAM,KAAK;AACvB,YAAM,QAAQ,SAAS,YAAYA,KAAI,CAAC,KAAK;AAC7C,UACG,SAASA,KAAI,CAAC,MAAM,OAAO,UAAU;AAAA,MACrC,SAASA,KAAI,CAAC,MAAM,OAAO,UAAU,IACtC;AAEA,cAAM,IAAI,KAAK,OAAO;AAAA,UACpB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,aAAW,SAAS,QAAQ,mBAAmB,IAAI;AACnD,aAAW,mBAAmB,QAAQ;AACtC,MAAI,aAAa,IAAI;AAEnB,WAAO,OAAO,QAAQ,GAAG,QAAQ;AAAA,EACnC,OAAO;AAEL,UAAM,SAAS,SAAS,YAAY,CAAC,IAAI;AACzC,UAAM0C,OAAM,SAAS,CAAC;AACtB,QACE,SAAS,oBACT,SAAS;AAAA,IACTA,SAAQ,KACR;AACA,YAAM,IAAI,KAAK,OAAO,YAAY,gCAAgC;AAAA,IACpE;AACA,WAAO,SAAS,MAAM,CAAC;AAAA,EACzB;AACF;AACA,SAAS,oBAAoB,KAAK;AAChC,MAAI,IAAI,aAAa,IAAI;AACvB,UAAM,IAAI,KAAK,OAAO,YAAY,2BAA2B;AAAA,EAC/D;AACA,QAAM,WAAW,IAAI;AACrB,WAAS1C,KAAI,GAAGA,KAAI,SAAS,QAAQA,MAAK;AACxC,QAAI,SAASA,EAAC,MAAM,KAAK;AACvB,YAAM,QAAQ,SAAS,YAAYA,KAAI,CAAC,KAAK;AAC7C,UAAI,SAASA,KAAI,CAAC,MAAM,OAAO,UAAU,KAAK;AAC5C,cAAM,IAAI,KAAK,OAAO;AAAA,UACpB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO,mBAAmB,QAAQ;AACpC;AAGA,SAAS,cAAc,UAAU;AAC/B,MAAI,WAAWqC,SAAU,QAAQ,QAAQ;AAEzC,QAAM,eAAe,SAAS,WAAW,SAAS,SAAS,CAAC;AAC5D,OACG,iBAAiB,sBACf,aAAa,iBAAiB,wBACjC,SAAS,SAAS,SAAS,CAAC,MAAMA,SAAU,KAC5C;AACA,gBAAY;AAAA,EACd;AACA,QAAM,SAAS,IAAI,IAAI,SAAS;AAChC,MAAI,SAAS,SAAS,GAAG;AAAG,eAAW,SAAS,QAAQ,cAAc,KAAK;AAE3E,MAAI,CAAC,aAAa,SAAS,SAAS,IAAI,GAAG;AACzC,eAAW,SAAS,QAAQ,gBAAgB,KAAK;AAAA,EACnD;AACA,MAAI,SAAS,SAAS,IAAI;AAAG,eAAW,SAAS,QAAQ,cAAc,KAAK;AAC5E,MAAI,SAAS,SAAS,IAAI,GAAG;AAC3B,eAAW,SAAS,QAAQ,qBAAqB,KAAK;AAAA,EACxD;AACA,MAAI,SAAS,SAAS,GAAI;AAAG,eAAW,SAAS,QAAQ,UAAU,KAAK;AACxE,SAAO,WAAW;AAClB,SAAO;AACT;;;AGlyBA;AAAA,IAAIqB,aAAY,CAAC;AAAjB,IACIC,cAAa;AACjB,SAASC,SAAQ;AACf,MAAID;AAAY,WAAOD;AACvB,EAAAC,cAAa;AACb,EAAAD,WAAU,aAAa;AACvB,EAAAA,WAAU,cAAc;AACxB,EAAAA,WAAU,gBAAgB;AAC1B,MAAI,SAAS,CAAC;AACd,MAAI,YAAY,CAAC;AACjB,MAAI,MAAM,OAAO,eAAe,cAAc,aAAa;AAC3D,MAAI,OAAO;AAEX,WAASG,KAAI,GAAG,MAAM,KAAK,QAAQA,KAAI,KAAK,EAAEA,IAAG;AAC/C,WAAOA,EAAC,IAAI,KAAKA,EAAC;AAClB,cAAU,KAAK,WAAWA,EAAC,CAAC,IAAIA;AAAA,EAClC;AAIA,YAAU,IAAI,WAAW,CAAC,CAAC,IAAI;AAC/B,YAAU,IAAI,WAAW,CAAC,CAAC,IAAI;AAE/B,WAAS,QAAQ,KAAK;AACpB,QAAIC,OAAM,IAAI;AAEd,QAAIA,OAAM,IAAI,GAAG;AACf,YAAM,IAAI,MAAM,gDAAgD;AAAA,IAClE;AAIA,QAAI,WAAW,IAAI,QAAQ,GAAG;AAC9B,QAAI,aAAa;AAAI,iBAAWA;AAChC,QAAI,kBAAkB,aAAaA,OAAM,IAAI,IAAI,WAAW;AAC5D,WAAO,CAAC,UAAU,eAAe;AAAA,EACnC;AAGA,WAAS,WAAW,KAAK;AACvB,QAAI,OAAO,QAAQ,GAAG;AACtB,QAAI,WAAW,KAAK,CAAC;AACrB,QAAI,kBAAkB,KAAK,CAAC;AAC5B,YAAQ,WAAW,mBAAmB,IAAI,IAAI;AAAA,EAChD;AAEA,WAAS,YAAY,KAAK,UAAU,iBAAiB;AACnD,YAAQ,WAAW,mBAAmB,IAAI,IAAI;AAAA,EAChD;AAEA,WAAS,YAAY,KAAK;AACxB,QAAI;AACJ,QAAI,OAAO,QAAQ,GAAG;AACtB,QAAI,WAAW,KAAK,CAAC;AACrB,QAAI,kBAAkB,KAAK,CAAC;AAC5B,QAAI,MAAM,IAAI,IAAI,YAAY,KAAK,UAAU,eAAe,CAAC;AAC7D,QAAI,UAAU;AAEd,QAAIA,OAAM,kBAAkB,IAAI,WAAW,IAAI;AAC/C,QAAID;AAEJ,SAAKA,KAAI,GAAGA,KAAIC,MAAKD,MAAK,GAAG;AAC3B,YAAM,UAAU,IAAI,WAAWA,EAAC,CAAC,KAAK,KAAK,UAAU,IAAI,WAAWA,KAAI,CAAC,CAAC,KAAK,KAAK,UAAU,IAAI,WAAWA,KAAI,CAAC,CAAC,KAAK,IAAI,UAAU,IAAI,WAAWA,KAAI,CAAC,CAAC;AAC3J,UAAI,SAAS,IAAI,OAAO,KAAK;AAC7B,UAAI,SAAS,IAAI,OAAO,IAAI;AAC5B,UAAI,SAAS,IAAI,MAAM;AAAA,IACzB;AAEA,QAAI,oBAAoB,GAAG;AACzB,YAAM,UAAU,IAAI,WAAWA,EAAC,CAAC,KAAK,IAAI,UAAU,IAAI,WAAWA,KAAI,CAAC,CAAC,KAAK;AAC9E,UAAI,SAAS,IAAI,MAAM;AAAA,IACzB;AAEA,QAAI,oBAAoB,GAAG;AACzB,YAAM,UAAU,IAAI,WAAWA,EAAC,CAAC,KAAK,KAAK,UAAU,IAAI,WAAWA,KAAI,CAAC,CAAC,KAAK,IAAI,UAAU,IAAI,WAAWA,KAAI,CAAC,CAAC,KAAK;AACvH,UAAI,SAAS,IAAI,OAAO,IAAI;AAC5B,UAAI,SAAS,IAAI,MAAM;AAAA,IACzB;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,gBAAgB,KAAK;AAC5B,WAAO,OAAO,OAAO,KAAK,EAAE,IAAI,OAAO,OAAO,KAAK,EAAE,IAAI,OAAO,OAAO,IAAI,EAAE,IAAI,OAAO,MAAM,EAAE;AAAA,EAClG;AAEA,WAAS,YAAY,OAAO,OAAO,KAAK;AACtC,QAAI;AACJ,QAAI,SAAS,CAAC;AAEd,aAASA,KAAI,OAAOA,KAAI,KAAKA,MAAK,GAAG;AACnC,aAAO,MAAMA,EAAC,KAAK,KAAK,aAAa,MAAMA,KAAI,CAAC,KAAK,IAAI,UAAU,MAAMA,KAAI,CAAC,IAAI;AAClF,aAAO,KAAK,gBAAgB,GAAG,CAAC;AAAA,IAClC;AAEA,WAAO,OAAO,KAAK,EAAE;AAAA,EACvB;AAEA,WAAS,cAAc,OAAO;AAC5B,QAAI;AACJ,QAAIC,OAAM,MAAM;AAChB,QAAI,aAAaA,OAAM;AAEvB,QAAI,QAAQ,CAAC;AACb,QAAI,iBAAiB;AAGrB,aAASD,KAAI,GAAGE,QAAOD,OAAM,YAAYD,KAAIE,OAAMF,MAAK,gBAAgB;AACtE,YAAM,KAAK,YAAY,OAAOA,IAAGA,KAAI,iBAAiBE,QAAOA,QAAOF,KAAI,cAAc,CAAC;AAAA,IACzF;AAGA,QAAI,eAAe,GAAG;AACpB,YAAM,MAAMC,OAAM,CAAC;AACnB,YAAM,KAAK,OAAO,OAAO,CAAC,IAAI,OAAO,OAAO,IAAI,EAAE,IAAI,IAAI;AAAA,IAC5D,WAAW,eAAe,GAAG;AAC3B,aAAO,MAAMA,OAAM,CAAC,KAAK,KAAK,MAAMA,OAAM,CAAC;AAC3C,YAAM,KAAK,OAAO,OAAO,EAAE,IAAI,OAAO,OAAO,IAAI,EAAE,IAAI,OAAO,OAAO,IAAI,EAAE,IAAI,GAAG;AAAA,IACpF;AAEA,WAAO,MAAM,KAAK,EAAE;AAAA,EACtB;AAEA,SAAOJ;AACT;AAEA,IAAIM,aAAY,CAAC;AAAjB,IACIC,cAAa;AACjB,SAASC,SAAQ;AACf,MAAID;AAAY,WAAOD;AACvB,EAAAC,cAAa;AAGb,EAAAD,WAAU,OAAO,SAAUG,SAAQ,QAAQ,MAAM,MAAM,QAAQ;AAC7D,QAAIC,IAAGC;AACP,QAAI,OAAO,SAAS,IAAI,OAAO;AAC/B,QAAI,QAAQ,KAAK,QAAQ;AACzB,QAAI,QAAQ,QAAQ;AACpB,QAAI,QAAQ;AACZ,QAAIR,KAAI,OAAO,SAAS,IAAI;AAC5B,QAAIS,KAAI,OAAO,KAAK;AACpB,QAAIC,KAAIJ,QAAO,SAASN,EAAC;AACzB,IAAAA,MAAKS;AACL,IAAAF,KAAIG,MAAK,KAAK,CAAC,SAAS;AACxB,IAAAA,OAAM,CAAC;AACP,aAAS;AAET,WAAO,QAAQ,GAAGH,KAAIA,KAAI,MAAMD,QAAO,SAASN,EAAC,GAAGA,MAAKS,IAAG,SAAS,GAAG;AAAA,IAAC;AAEzE,IAAAD,KAAID,MAAK,KAAK,CAAC,SAAS;AACxB,IAAAA,OAAM,CAAC;AACP,aAAS;AAET,WAAO,QAAQ,GAAGC,KAAIA,KAAI,MAAMF,QAAO,SAASN,EAAC,GAAGA,MAAKS,IAAG,SAAS,GAAG;AAAA,IAAC;AAEzE,QAAIF,OAAM,GAAG;AACX,MAAAA,KAAI,IAAI;AAAA,IACV,WAAWA,OAAM,MAAM;AACrB,aAAOC,KAAI,OAAOE,KAAI,KAAK,KAAK;AAAA,IAClC,OAAO;AACL,MAAAF,KAAIA,KAAI,KAAK,IAAI,GAAG,IAAI;AACxB,MAAAD,KAAIA,KAAI;AAAA,IACV;AAEA,YAAQG,KAAI,KAAK,KAAKF,KAAI,KAAK,IAAI,GAAGD,KAAI,IAAI;AAAA,EAChD;AAEA,EAAAJ,WAAU,QAAQ,SAAUG,SAAQ,OAAO,QAAQ,MAAM,MAAM,QAAQ;AACrE,QAAIC,IAAGC,IAAGG;AACV,QAAI,OAAO,SAAS,IAAI,OAAO;AAC/B,QAAI,QAAQ,KAAK,QAAQ;AACzB,QAAI,QAAQ,QAAQ;AACpB,QAAI,KAAK,SAAS,KAAK,KAAK,IAAI,GAAG,GAAG,IAAI,KAAK,IAAI,GAAG,GAAG,IAAI;AAC7D,QAAIX,KAAI,OAAO,IAAI,SAAS;AAC5B,QAAIS,KAAI,OAAO,IAAI;AACnB,QAAIC,KAAI,QAAQ,KAAK,UAAU,KAAK,IAAI,QAAQ,IAAI,IAAI;AACxD,YAAQ,KAAK,IAAI,KAAK;AAEtB,QAAI,MAAM,KAAK,KAAK,UAAU,UAAU;AACtC,MAAAF,KAAI,MAAM,KAAK,IAAI,IAAI;AACvB,MAAAD,KAAI;AAAA,IACN,OAAO;AACL,MAAAA,KAAI,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG;AAEzC,UAAI,SAASI,KAAI,KAAK,IAAI,GAAG,CAACJ,EAAC,KAAK,GAAG;AACrC,QAAAA;AACA,QAAAI,MAAK;AAAA,MACP;AAEA,UAAIJ,KAAI,SAAS,GAAG;AAClB,iBAAS,KAAKI;AAAA,MAChB,OAAO;AACL,iBAAS,KAAK,KAAK,IAAI,GAAG,IAAI,KAAK;AAAA,MACrC;AAEA,UAAI,QAAQA,MAAK,GAAG;AAClB,QAAAJ;AACA,QAAAI,MAAK;AAAA,MACP;AAEA,UAAIJ,KAAI,SAAS,MAAM;AACrB,QAAAC,KAAI;AACJ,QAAAD,KAAI;AAAA,MACN,WAAWA,KAAI,SAAS,GAAG;AACzB,QAAAC,MAAK,QAAQG,KAAI,KAAK,KAAK,IAAI,GAAG,IAAI;AACtC,QAAAJ,KAAIA,KAAI;AAAA,MACV,OAAO;AACL,QAAAC,KAAI,QAAQ,KAAK,IAAI,GAAG,QAAQ,CAAC,IAAI,KAAK,IAAI,GAAG,IAAI;AACrD,QAAAD,KAAI;AAAA,MACN;AAAA,IACF;AAEA,WAAO,QAAQ,GAAGD,QAAO,SAASN,EAAC,IAAIQ,KAAI,KAAKR,MAAKS,IAAGD,MAAK,KAAK,QAAQ,GAAG;AAAA,IAAC;AAE9E,IAAAD,KAAIA,MAAK,OAAOC;AAChB,YAAQ;AAER,WAAO,OAAO,GAAGF,QAAO,SAASN,EAAC,IAAIO,KAAI,KAAKP,MAAKS,IAAGF,MAAK,KAAK,QAAQ,GAAG;AAAA,IAAC;AAE7E,IAAAD,QAAO,SAASN,KAAIS,EAAC,KAAKC,KAAI;AAAA,EAChC;AAEA,SAAOP;AACT;AAEA,IAAIS,aAAY,CAAC;AAAjB,IACIC,YAAW;AACf,SAASC,OAAM;AACb,MAAID;AAAU,WAAOD;AACrB,EAAAC,YAAW;AAEX,QAAM,SAASd,OAAM;AAErB,QAAM,UAAUM,OAAM;AAEtB,QAAM,sBAAsB,OAAO,WAAW,cAAc,OAAO,OAAO,KAAK,MAAM,aAAa,OAAO,KAAK,EAAE,4BAA4B,IAC1I;AACF,EAAAO,WAAU,SAASG;AACnB,EAAAH,WAAU,aAAa;AACvB,EAAAA,WAAU,oBAAoB;AAC9B,QAAM,eAAe;AACrB,EAAAA,WAAU,aAAa;AAgBvB,EAAAG,QAAO,sBAAsB,kBAAkB;AAE/C,MAAI,CAACA,QAAO,uBAAuB,OAAO,YAAY,eAAe,OAAO,QAAQ,UAAU,YAAY;AACxG,YAAQ,MAAM,+IAAoJ;AAAA,EACpK;AAEA,WAAS,oBAAoB;AAE3B,QAAI;AACF,YAAM,MAAM,IAAI,WAAW,CAAC;AAC5B,YAAM,QAAQ;AAAA,QACZ,KAAK,WAAY;AACf,iBAAO;AAAA,QACT;AAAA,MACF;AACA,aAAO,eAAe,OAAO,WAAW,SAAS;AACjD,aAAO,eAAe,KAAK,KAAK;AAChC,aAAO,IAAI,IAAI,MAAM;AAAA,IACvB,SAASR,IAAG;AACV,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO,eAAeQ,QAAO,WAAW,UAAU;AAAA,IAChD,YAAY;AAAA,IACZ,KAAK,WAAY;AACf,UAAI,CAACA,QAAO,SAAS,IAAI;AAAG,eAAO;AACnC,aAAO,KAAK;AAAA,IACd;AAAA,EACF,CAAC;AACD,SAAO,eAAeA,QAAO,WAAW,UAAU;AAAA,IAChD,YAAY;AAAA,IACZ,KAAK,WAAY;AACf,UAAI,CAACA,QAAO,SAAS,IAAI;AAAG,eAAO;AACnC,aAAO,KAAK;AAAA,IACd;AAAA,EACF,CAAC;AAED,WAAS,aAAaC,SAAQ;AAC5B,QAAIA,UAAS,cAAc;AACzB,YAAM,IAAI,WAAW,gBAAiBA,UAAS,gCAAmC;AAAA,IACpF;AAGA,UAAMC,OAAM,IAAI,WAAWD,OAAM;AACjC,WAAO,eAAeC,MAAKF,QAAO,SAAS;AAC3C,WAAOE;AAAA,EACT;AAYA,WAASF,QAAO,KAAK,kBAAkBC,SAAQ;AAE7C,QAAI,OAAO,QAAQ,UAAU;AAC3B,UAAI,OAAO,qBAAqB,UAAU;AACxC,cAAM,IAAI,UAAU,oEAAsE;AAAA,MAC5F;AAEA,aAAO,YAAY,GAAG;AAAA,IACxB;AAEA,WAAOE,MAAK,KAAK,kBAAkBF,OAAM;AAAA,EAC3C;AAEA,EAAAD,QAAO,WAAW;AAElB,WAASG,MAAK,OAAO,kBAAkBF,SAAQ;AAC7C,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAOG,YAAW,OAAO,gBAAgB;AAAA,IAC3C;AAEA,QAAI,YAAY,OAAO,KAAK,GAAG;AAC7B,aAAO,cAAc,KAAK;AAAA,IAC5B;AAEA,QAAI,SAAS,MAAM;AACjB,YAAM,IAAI,UAAU,oHAAyH,OAAO,KAAK;AAAA,IAC3J;AAEA,QAAI,WAAW,OAAO,WAAW,KAAK,SAAS,WAAW,MAAM,QAAQ,WAAW,GAAG;AACpF,aAAO,gBAAgB,OAAO,kBAAkBH,OAAM;AAAA,IACxD;AAEA,QAAI,OAAO,sBAAsB,gBAAgB,WAAW,OAAO,iBAAiB,KAAK,SAAS,WAAW,MAAM,QAAQ,iBAAiB,IAAI;AAC9I,aAAO,gBAAgB,OAAO,kBAAkBA,OAAM;AAAA,IACxD;AAEA,QAAI,OAAO,UAAU,UAAU;AAC7B,YAAM,IAAI,UAAU,uEAAyE;AAAA,IAC/F;AAEA,UAAM,UAAU,MAAM,WAAW,MAAM,QAAQ;AAE/C,QAAI,WAAW,QAAQ,YAAY,OAAO;AACxC,aAAOD,QAAO,KAAK,SAAS,kBAAkBC,OAAM;AAAA,IACtD;AAEA,UAAMI,KAAI,WAAW,KAAK;AAC1B,QAAIA;AAAG,aAAOA;AAEd,QAAI,OAAO,WAAW,eAAe,OAAO,eAAe,QAAQ,OAAO,MAAM,OAAO,WAAW,MAAM,YAAY;AAClH,aAAOL,QAAO,KAAK,MAAM,OAAO,WAAW,EAAE,QAAQ,GAAG,kBAAkBC,OAAM;AAAA,IAClF;AAEA,UAAM,IAAI,UAAU,oHAAyH,OAAO,KAAK;AAAA,EAC3J;AAWA,EAAAD,QAAO,OAAO,SAAU,OAAO,kBAAkBC,SAAQ;AACvD,WAAOE,MAAK,OAAO,kBAAkBF,OAAM;AAAA,EAC7C;AAIA,SAAO,eAAeD,QAAO,WAAW,WAAW,SAAS;AAC5D,SAAO,eAAeA,SAAQ,UAAU;AAExC,WAAS,WAAW,MAAM;AACxB,QAAI,OAAO,SAAS,UAAU;AAC5B,YAAM,IAAI,UAAU,wCAA0C;AAAA,IAChE,WAAW,OAAO,GAAG;AACnB,YAAM,IAAI,WAAW,gBAAiB,OAAO,gCAAmC;AAAA,IAClF;AAAA,EACF;AAEA,WAASM,OAAM,MAAM,MAAM,UAAU;AACnC,eAAW,IAAI;AAEf,QAAI,QAAQ,GAAG;AACb,aAAO,aAAa,IAAI;AAAA,IAC1B;AAEA,QAAI,SAAS,QAAW;AAItB,aAAO,OAAO,aAAa,WAAW,aAAa,IAAI,EAAE,KAAK,MAAM,QAAQ,IAAI,aAAa,IAAI,EAAE,KAAK,IAAI;AAAA,IAC9G;AAEA,WAAO,aAAa,IAAI;AAAA,EAC1B;AAOA,EAAAN,QAAO,QAAQ,SAAU,MAAM,MAAM,UAAU;AAC7C,WAAOM,OAAM,MAAM,MAAM,QAAQ;AAAA,EACnC;AAEA,WAAS,YAAY,MAAM;AACzB,eAAW,IAAI;AACf,WAAO,aAAa,OAAO,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC;AAAA,EACtD;AAMA,EAAAN,QAAO,cAAc,SAAU,MAAM;AACnC,WAAO,YAAY,IAAI;AAAA,EACzB;AAMA,EAAAA,QAAO,kBAAkB,SAAU,MAAM;AACvC,WAAO,YAAY,IAAI;AAAA,EACzB;AAEA,WAASI,YAAW,QAAQ,UAAU;AACpC,QAAI,OAAO,aAAa,YAAY,aAAa,IAAI;AACnD,iBAAW;AAAA,IACb;AAEA,QAAI,CAACJ,QAAO,WAAW,QAAQ,GAAG;AAChC,YAAM,IAAI,UAAU,uBAAuB,QAAQ;AAAA,IACrD;AAEA,UAAMC,UAAS,WAAW,QAAQ,QAAQ,IAAI;AAC9C,QAAIC,OAAM,aAAaD,OAAM;AAC7B,UAAM,SAASC,KAAI,MAAM,QAAQ,QAAQ;AAEzC,QAAI,WAAWD,SAAQ;AAIrB,MAAAC,OAAMA,KAAI,MAAM,GAAG,MAAM;AAAA,IAC3B;AAEA,WAAOA;AAAA,EACT;AAEA,WAAS,cAAc,OAAO;AAC5B,UAAMD,UAAS,MAAM,SAAS,IAAI,IAAI,QAAQ,MAAM,MAAM,IAAI;AAC9D,UAAMC,OAAM,aAAaD,OAAM;AAE/B,aAAShB,KAAI,GAAGA,KAAIgB,SAAQhB,MAAK,GAAG;AAClC,MAAAiB,KAAIjB,EAAC,IAAI,MAAMA,EAAC,IAAI;AAAA,IACtB;AAEA,WAAOiB;AAAA,EACT;AAEA,WAAS,cAAc,WAAW;AAChC,QAAI,WAAW,WAAW,UAAU,GAAG;AACrC,YAAM,OAAO,IAAI,WAAW,SAAS;AACrC,aAAO,gBAAgB,KAAK,QAAQ,KAAK,YAAY,KAAK,UAAU;AAAA,IACtE;AAEA,WAAO,cAAc,SAAS;AAAA,EAChC;AAEA,WAAS,gBAAgB,OAAO,YAAYD,SAAQ;AAClD,QAAI,aAAa,KAAK,MAAM,aAAa,YAAY;AACnD,YAAM,IAAI,WAAW,sCAAwC;AAAA,IAC/D;AAEA,QAAI,MAAM,aAAa,cAAcA,WAAU,IAAI;AACjD,YAAM,IAAI,WAAW,sCAAwC;AAAA,IAC/D;AAEA,QAAIC;AAEJ,QAAI,eAAe,UAAaD,YAAW,QAAW;AACpD,MAAAC,OAAM,IAAI,WAAW,KAAK;AAAA,IAC5B,WAAWD,YAAW,QAAW;AAC/B,MAAAC,OAAM,IAAI,WAAW,OAAO,UAAU;AAAA,IACxC,OAAO;AACL,MAAAA,OAAM,IAAI,WAAW,OAAO,YAAYD,OAAM;AAAA,IAChD;AAGA,WAAO,eAAeC,MAAKF,QAAO,SAAS;AAC3C,WAAOE;AAAA,EACT;AAEA,WAAS,WAAW,KAAK;AACvB,QAAIF,QAAO,SAAS,GAAG,GAAG;AACxB,YAAM,MAAM,QAAQ,IAAI,MAAM,IAAI;AAClC,YAAME,OAAM,aAAa,GAAG;AAE5B,UAAIA,KAAI,WAAW,GAAG;AACpB,eAAOA;AAAA,MACT;AAEA,UAAI,KAAKA,MAAK,GAAG,GAAG,GAAG;AACvB,aAAOA;AAAA,IACT;AAEA,QAAI,IAAI,WAAW,QAAW;AAC5B,UAAI,OAAO,IAAI,WAAW,YAAY,YAAY,IAAI,MAAM,GAAG;AAC7D,eAAO,aAAa,CAAC;AAAA,MACvB;AAEA,aAAO,cAAc,GAAG;AAAA,IAC1B;AAEA,QAAI,IAAI,SAAS,YAAY,MAAM,QAAQ,IAAI,IAAI,GAAG;AACpD,aAAO,cAAc,IAAI,IAAI;AAAA,IAC/B;AAAA,EACF;AAEA,WAAS,QAAQD,SAAQ;AAGvB,QAAIA,WAAU,cAAc;AAC1B,YAAM,IAAI,WAAW,4DAAiE,aAAa,SAAS,EAAE,IAAI,QAAQ;AAAA,IAC5H;AAEA,WAAOA,UAAS;AAAA,EAClB;AAEA,WAAS,WAAWA,SAAQ;AAC1B,QAAI,CAACA,WAAUA,SAAQ;AAErB,MAAAA,UAAS;AAAA,IACX;AAEA,WAAOD,QAAO,MAAM,CAACC,OAAM;AAAA,EAC7B;AAEA,EAAAD,QAAO,WAAW,SAASO,UAASF,IAAG;AACrC,WAAOA,MAAK,QAAQA,GAAE,cAAc,QAAQA,OAAML,QAAO;AAAA,EAC3D;AAEA,EAAAA,QAAO,UAAU,SAASQ,SAAQC,IAAGJ,IAAG;AACtC,QAAI,WAAWI,IAAG,UAAU;AAAG,MAAAA,KAAIT,QAAO,KAAKS,IAAGA,GAAE,QAAQA,GAAE,UAAU;AACxE,QAAI,WAAWJ,IAAG,UAAU;AAAG,MAAAA,KAAIL,QAAO,KAAKK,IAAGA,GAAE,QAAQA,GAAE,UAAU;AAExE,QAAI,CAACL,QAAO,SAASS,EAAC,KAAK,CAACT,QAAO,SAASK,EAAC,GAAG;AAC9C,YAAM,IAAI,UAAU,uEAA2E;AAAA,IACjG;AAEA,QAAII,OAAMJ;AAAG,aAAO;AACpB,QAAIK,KAAID,GAAE;AACV,QAAIE,KAAIN,GAAE;AAEV,aAASpB,KAAI,GAAG,MAAM,KAAK,IAAIyB,IAAGC,EAAC,GAAG1B,KAAI,KAAK,EAAEA,IAAG;AAClD,UAAIwB,GAAExB,EAAC,MAAMoB,GAAEpB,EAAC,GAAG;AACjB,QAAAyB,KAAID,GAAExB,EAAC;AACP,QAAA0B,KAAIN,GAAEpB,EAAC;AACP;AAAA,MACF;AAAA,IACF;AAEA,QAAIyB,KAAIC;AAAG,aAAO;AAClB,QAAIA,KAAID;AAAG,aAAO;AAClB,WAAO;AAAA,EACT;AAEA,EAAAV,QAAO,aAAa,SAAS,WAAW,UAAU;AAChD,YAAQ,OAAO,QAAQ,EAAE,YAAY,GAAG;AAAA,MACtC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACH,eAAO;AAAA,MAET;AACE,eAAO;AAAA,IACX;AAAA,EACF;AAEA,EAAAA,QAAO,SAAS,SAASY,QAAO,MAAMX,SAAQ;AAC5C,QAAI,CAAC,MAAM,QAAQ,IAAI,GAAG;AACxB,YAAM,IAAI,UAAU,6CAA+C;AAAA,IACrE;AAEA,QAAI,KAAK,WAAW,GAAG;AACrB,aAAOD,QAAO,MAAM,CAAC;AAAA,IACvB;AAEA,QAAIf;AAEJ,QAAIgB,YAAW,QAAW;AACxB,MAAAA,UAAS;AAET,WAAKhB,KAAI,GAAGA,KAAI,KAAK,QAAQ,EAAEA,IAAG;AAChC,QAAAgB,WAAU,KAAKhB,EAAC,EAAE;AAAA,MACpB;AAAA,IACF;AAEA,UAAMM,UAASS,QAAO,YAAYC,OAAM;AACxC,QAAI,MAAM;AAEV,SAAKhB,KAAI,GAAGA,KAAI,KAAK,QAAQ,EAAEA,IAAG;AAChC,UAAIiB,OAAM,KAAKjB,EAAC;AAEhB,UAAI,WAAWiB,MAAK,UAAU,GAAG;AAC/B,YAAI,MAAMA,KAAI,SAASX,QAAO,QAAQ;AACpC,cAAI,CAACS,QAAO,SAASE,IAAG;AAAG,YAAAA,OAAMF,QAAO,KAAKE,IAAG;AAChD,UAAAA,KAAI,KAAKX,SAAQ,GAAG;AAAA,QACtB,OAAO;AACL,qBAAW,UAAU,IAAI,KAAKA,SAAQW,MAAK,GAAG;AAAA,QAChD;AAAA,MACF,WAAW,CAACF,QAAO,SAASE,IAAG,GAAG;AAChC,cAAM,IAAI,UAAU,6CAA+C;AAAA,MACrE,OAAO;AACL,QAAAA,KAAI,KAAKX,SAAQ,GAAG;AAAA,MACtB;AAEA,aAAOW,KAAI;AAAA,IACb;AAEA,WAAOX;AAAA,EACT;AAEA,WAAS,WAAW,QAAQ,UAAU;AACpC,QAAIS,QAAO,SAAS,MAAM,GAAG;AAC3B,aAAO,OAAO;AAAA,IAChB;AAEA,QAAI,YAAY,OAAO,MAAM,KAAK,WAAW,QAAQ,WAAW,GAAG;AACjE,aAAO,OAAO;AAAA,IAChB;AAEA,QAAI,OAAO,WAAW,UAAU;AAC9B,YAAM,IAAI,UAAU,6FAAoG,OAAO,MAAM;AAAA,IACvI;AAEA,UAAM,MAAM,OAAO;AACnB,UAAM,YAAY,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM;AAC3D,QAAI,CAAC,aAAa,QAAQ;AAAG,aAAO;AAEpC,QAAI,cAAc;AAElB,eAAS;AACP,cAAQ,UAAU;AAAA,QAChB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QAET,KAAK;AAAA,QACL,KAAK;AACH,iBAAOa,aAAY,MAAM,EAAE;AAAA,QAE7B,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,MAAM;AAAA,QAEf,KAAK;AACH,iBAAO,QAAQ;AAAA,QAEjB,KAAK;AACH,iBAAO,cAAc,MAAM,EAAE;AAAA,QAE/B;AACE,cAAI,aAAa;AACf,mBAAO,YAAY,KAAKA,aAAY,MAAM,EAAE;AAAA,UAC9C;AAEA,sBAAY,KAAK,UAAU,YAAY;AACvC,wBAAc;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAEA,EAAAb,QAAO,aAAa;AAEpB,WAAS,aAAa,UAAU,OAAO,KAAK;AAC1C,QAAI,cAAc;AAOlB,QAAI,UAAU,UAAa,QAAQ,GAAG;AACpC,cAAQ;AAAA,IACV;AAIA,QAAI,QAAQ,KAAK,QAAQ;AACvB,aAAO;AAAA,IACT;AAEA,QAAI,QAAQ,UAAa,MAAM,KAAK,QAAQ;AAC1C,YAAM,KAAK;AAAA,IACb;AAEA,QAAI,OAAO,GAAG;AACZ,aAAO;AAAA,IACT;AAGA,aAAS;AACT,eAAW;AAEX,QAAI,OAAO,OAAO;AAChB,aAAO;AAAA,IACT;AAEA,QAAI,CAAC;AAAU,iBAAW;AAE1B,WAAO,MAAM;AACX,cAAQ,UAAU;AAAA,QAChB,KAAK;AACH,iBAAO,SAAS,MAAM,OAAO,GAAG;AAAA,QAElC,KAAK;AAAA,QACL,KAAK;AACH,iBAAOc,WAAU,MAAM,OAAO,GAAG;AAAA,QAEnC,KAAK;AACH,iBAAO,WAAW,MAAM,OAAO,GAAG;AAAA,QAEpC,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,YAAY,MAAM,OAAO,GAAG;AAAA,QAErC,KAAK;AACH,iBAAO,YAAY,MAAM,OAAO,GAAG;AAAA,QAErC,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,aAAa,MAAM,OAAO,GAAG;AAAA,QAEtC;AACE,cAAI;AAAa,kBAAM,IAAI,UAAU,uBAAuB,QAAQ;AACpE,sBAAY,WAAW,IAAI,YAAY;AACvC,wBAAc;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAQA,EAAAd,QAAO,UAAU,YAAY;AAE7B,WAAS,KAAKK,IAAGU,IAAGtB,IAAG;AACrB,UAAMR,KAAIoB,GAAEU,EAAC;AACb,IAAAV,GAAEU,EAAC,IAAIV,GAAEZ,EAAC;AACV,IAAAY,GAAEZ,EAAC,IAAIR;AAAA,EACT;AAEA,EAAAe,QAAO,UAAU,SAAS,SAAS,SAAS;AAC1C,UAAM,MAAM,KAAK;AAEjB,QAAI,MAAM,MAAM,GAAG;AACjB,YAAM,IAAI,WAAW,2CAA2C;AAAA,IAClE;AAEA,aAASf,KAAI,GAAGA,KAAI,KAAKA,MAAK,GAAG;AAC/B,WAAK,MAAMA,IAAGA,KAAI,CAAC;AAAA,IACrB;AAEA,WAAO;AAAA,EACT;AAEA,EAAAe,QAAO,UAAU,SAAS,SAAS,SAAS;AAC1C,UAAM,MAAM,KAAK;AAEjB,QAAI,MAAM,MAAM,GAAG;AACjB,YAAM,IAAI,WAAW,2CAA2C;AAAA,IAClE;AAEA,aAASf,KAAI,GAAGA,KAAI,KAAKA,MAAK,GAAG;AAC/B,WAAK,MAAMA,IAAGA,KAAI,CAAC;AACnB,WAAK,MAAMA,KAAI,GAAGA,KAAI,CAAC;AAAA,IACzB;AAEA,WAAO;AAAA,EACT;AAEA,EAAAe,QAAO,UAAU,SAAS,SAAS,SAAS;AAC1C,UAAM,MAAM,KAAK;AAEjB,QAAI,MAAM,MAAM,GAAG;AACjB,YAAM,IAAI,WAAW,2CAA2C;AAAA,IAClE;AAEA,aAASf,KAAI,GAAGA,KAAI,KAAKA,MAAK,GAAG;AAC/B,WAAK,MAAMA,IAAGA,KAAI,CAAC;AACnB,WAAK,MAAMA,KAAI,GAAGA,KAAI,CAAC;AACvB,WAAK,MAAMA,KAAI,GAAGA,KAAI,CAAC;AACvB,WAAK,MAAMA,KAAI,GAAGA,KAAI,CAAC;AAAA,IACzB;AAEA,WAAO;AAAA,EACT;AAEA,EAAAe,QAAO,UAAU,WAAW,SAASgB,YAAW;AAC9C,UAAMf,UAAS,KAAK;AACpB,QAAIA,YAAW;AAAG,aAAO;AACzB,QAAI,UAAU,WAAW;AAAG,aAAOa,WAAU,MAAM,GAAGb,OAAM;AAC5D,WAAO,aAAa,MAAM,MAAM,SAAS;AAAA,EAC3C;AAEA,EAAAD,QAAO,UAAU,iBAAiBA,QAAO,UAAU;AAEnD,EAAAA,QAAO,UAAU,SAAS,SAASiB,QAAOZ,IAAG;AAC3C,QAAI,CAACL,QAAO,SAASK,EAAC;AAAG,YAAM,IAAI,UAAU,2BAA2B;AACxE,QAAI,SAASA;AAAG,aAAO;AACvB,WAAOL,QAAO,QAAQ,MAAMK,EAAC,MAAM;AAAA,EACrC;AAEA,EAAAL,QAAO,UAAU,UAAU,SAASkB,WAAU;AAC5C,QAAI,MAAM;AACV,UAAM,MAAMrB,WAAU;AACtB,UAAM,KAAK,SAAS,OAAO,GAAG,GAAG,EAAE,QAAQ,WAAW,KAAK,EAAE,KAAK;AAClE,QAAI,KAAK,SAAS;AAAK,aAAO;AAC9B,WAAO,aAAa,MAAM;AAAA,EAC5B;AAEA,MAAI,qBAAqB;AACvB,IAAAG,QAAO,UAAU,mBAAmB,IAAIA,QAAO,UAAU;AAAA,EAC3D;AAEA,EAAAA,QAAO,UAAU,UAAU,SAASQ,SAAQ,QAAQ,OAAO,KAAK,WAAW,SAAS;AAClF,QAAI,WAAW,QAAQ,UAAU,GAAG;AAClC,eAASR,QAAO,KAAK,QAAQ,OAAO,QAAQ,OAAO,UAAU;AAAA,IAC/D;AAEA,QAAI,CAACA,QAAO,SAAS,MAAM,GAAG;AAC5B,YAAM,IAAI,UAAU,mFAA0F,OAAO,MAAM;AAAA,IAC7H;AAEA,QAAI,UAAU,QAAW;AACvB,cAAQ;AAAA,IACV;AAEA,QAAI,QAAQ,QAAW;AACrB,YAAM,SAAS,OAAO,SAAS;AAAA,IACjC;AAEA,QAAI,cAAc,QAAW;AAC3B,kBAAY;AAAA,IACd;AAEA,QAAI,YAAY,QAAW;AACzB,gBAAU,KAAK;AAAA,IACjB;AAEA,QAAI,QAAQ,KAAK,MAAM,OAAO,UAAU,YAAY,KAAK,UAAU,KAAK,QAAQ;AAC9E,YAAM,IAAI,WAAW,oBAAoB;AAAA,IAC3C;AAEA,QAAI,aAAa,WAAW,SAAS,KAAK;AACxC,aAAO;AAAA,IACT;AAEA,QAAI,aAAa,SAAS;AACxB,aAAO;AAAA,IACT;AAEA,QAAI,SAAS,KAAK;AAChB,aAAO;AAAA,IACT;AAEA,eAAW;AACX,aAAS;AACT,mBAAe;AACf,iBAAa;AACb,QAAI,SAAS;AAAQ,aAAO;AAC5B,QAAIU,KAAI,UAAU;AAClB,QAAIC,KAAI,MAAM;AACd,UAAM,MAAM,KAAK,IAAID,IAAGC,EAAC;AACzB,UAAM,WAAW,KAAK,MAAM,WAAW,OAAO;AAC9C,UAAM,aAAa,OAAO,MAAM,OAAO,GAAG;AAE1C,aAAS1B,KAAI,GAAGA,KAAI,KAAK,EAAEA,IAAG;AAC5B,UAAI,SAASA,EAAC,MAAM,WAAWA,EAAC,GAAG;AACjC,QAAAyB,KAAI,SAASzB,EAAC;AACd,QAAA0B,KAAI,WAAW1B,EAAC;AAChB;AAAA,MACF;AAAA,IACF;AAEA,QAAIyB,KAAIC;AAAG,aAAO;AAClB,QAAIA,KAAID;AAAG,aAAO;AAClB,WAAO;AAAA,EACT;AAWA,WAAS,qBAAqBnB,SAAQ,KAAK,YAAY,UAAU,KAAK;AAEpE,QAAIA,QAAO,WAAW;AAAG,aAAO;AAEhC,QAAI,OAAO,eAAe,UAAU;AAClC,iBAAW;AACX,mBAAa;AAAA,IACf,WAAW,aAAa,YAAY;AAClC,mBAAa;AAAA,IACf,WAAW,aAAa,aAAa;AACnC,mBAAa;AAAA,IACf;AAEA,iBAAa,CAAC;AAEd,QAAI,YAAY,UAAU,GAAG;AAE3B,mBAAa,MAAM,IAAIA,QAAO,SAAS;AAAA,IACzC;AAGA,QAAI,aAAa;AAAG,mBAAaA,QAAO,SAAS;AAEjD,QAAI,cAAcA,QAAO,QAAQ;AAC/B,UAAI;AAAK,eAAO;AAAA;AAAQ,qBAAaA,QAAO,SAAS;AAAA,IACvD,WAAW,aAAa,GAAG;AACzB,UAAI;AAAK,qBAAa;AAAA;AAAO,eAAO;AAAA,IACtC;AAGA,QAAI,OAAO,QAAQ,UAAU;AAC3B,YAAMS,QAAO,KAAK,KAAK,QAAQ;AAAA,IACjC;AAGA,QAAIA,QAAO,SAAS,GAAG,GAAG;AAExB,UAAI,IAAI,WAAW,GAAG;AACpB,eAAO;AAAA,MACT;AAEA,aAAO,aAAaT,SAAQ,KAAK,YAAY,UAAU,GAAG;AAAA,IAC5D,WAAW,OAAO,QAAQ,UAAU;AAClC,YAAM,MAAM;AAEZ,UAAI,OAAO,WAAW,UAAU,YAAY,YAAY;AACtD,YAAI,KAAK;AACP,iBAAO,WAAW,UAAU,QAAQ,KAAKA,SAAQ,KAAK,UAAU;AAAA,QAClE,OAAO;AACL,iBAAO,WAAW,UAAU,YAAY,KAAKA,SAAQ,KAAK,UAAU;AAAA,QACtE;AAAA,MACF;AAEA,aAAO,aAAaA,SAAQ,CAAC,GAAG,GAAG,YAAY,UAAU,GAAG;AAAA,IAC9D;AAEA,UAAM,IAAI,UAAU,sCAAsC;AAAA,EAC5D;AAEA,WAAS,aAAa,KAAK,KAAK,YAAY,UAAU,KAAK;AACzD,QAAI,YAAY;AAChB,QAAI,YAAY,IAAI;AACpB,QAAI,YAAY,IAAI;AAEpB,QAAI,aAAa,QAAW;AAC1B,iBAAW,OAAO,QAAQ,EAAE,YAAY;AAExC,UAAI,aAAa,UAAU,aAAa,WAAW,aAAa,aAAa,aAAa,YAAY;AACpG,YAAI,IAAI,SAAS,KAAK,IAAI,SAAS,GAAG;AACpC,iBAAO;AAAA,QACT;AAEA,oBAAY;AACZ,qBAAa;AACb,qBAAa;AACb,sBAAc;AAAA,MAChB;AAAA,IACF;AAEA,aAAS4B,MAAKjB,MAAKjB,IAAG;AACpB,UAAI,cAAc,GAAG;AACnB,eAAOiB,KAAIjB,EAAC;AAAA,MACd,OAAO;AACL,eAAOiB,KAAI,aAAajB,KAAI,SAAS;AAAA,MACvC;AAAA,IACF;AAEA,QAAIA;AAEJ,QAAI,KAAK;AACP,UAAI,aAAa;AAEjB,WAAKA,KAAI,YAAYA,KAAI,WAAWA,MAAK;AACvC,YAAIkC,MAAK,KAAKlC,EAAC,MAAMkC,MAAK,KAAK,eAAe,KAAK,IAAIlC,KAAI,UAAU,GAAG;AACtE,cAAI,eAAe;AAAI,yBAAaA;AACpC,cAAIA,KAAI,aAAa,MAAM;AAAW,mBAAO,aAAa;AAAA,QAC5D,OAAO;AACL,cAAI,eAAe;AAAI,YAAAA,MAAKA,KAAI;AAChC,uBAAa;AAAA,QACf;AAAA,MACF;AAAA,IACF,OAAO;AACL,UAAI,aAAa,YAAY;AAAW,qBAAa,YAAY;AAEjE,WAAKA,KAAI,YAAYA,MAAK,GAAGA,MAAK;AAChC,YAAI,QAAQ;AAEZ,iBAASmC,KAAI,GAAGA,KAAI,WAAWA,MAAK;AAClC,cAAID,MAAK,KAAKlC,KAAImC,EAAC,MAAMD,MAAK,KAAKC,EAAC,GAAG;AACrC,oBAAQ;AACR;AAAA,UACF;AAAA,QACF;AAEA,YAAI;AAAO,iBAAOnC;AAAA,MACpB;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,EAAAe,QAAO,UAAU,WAAW,SAAS,SAAS,KAAK,YAAY,UAAU;AACvE,WAAO,KAAK,QAAQ,KAAK,YAAY,QAAQ,MAAM;AAAA,EACrD;AAEA,EAAAA,QAAO,UAAU,UAAU,SAAS,QAAQ,KAAK,YAAY,UAAU;AACrE,WAAO,qBAAqB,MAAM,KAAK,YAAY,UAAU,IAAI;AAAA,EACnE;AAEA,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAY,KAAK,YAAY,UAAU;AAC7E,WAAO,qBAAqB,MAAM,KAAK,YAAY,UAAU,KAAK;AAAA,EACpE;AAEA,WAAS,SAASE,MAAK,QAAQ,QAAQD,SAAQ;AAC7C,aAAS,OAAO,MAAM,KAAK;AAC3B,UAAM,YAAYC,KAAI,SAAS;AAE/B,QAAI,CAACD,SAAQ;AACX,MAAAA,UAAS;AAAA,IACX,OAAO;AACL,MAAAA,UAAS,OAAOA,OAAM;AAEtB,UAAIA,UAAS,WAAW;AACtB,QAAAA,UAAS;AAAA,MACX;AAAA,IACF;AAEA,UAAM,SAAS,OAAO;AAEtB,QAAIA,UAAS,SAAS,GAAG;AACvB,MAAAA,UAAS,SAAS;AAAA,IACpB;AAEA,QAAIhB;AAEJ,SAAKA,KAAI,GAAGA,KAAIgB,SAAQ,EAAEhB,IAAG;AAC3B,YAAM,SAAS,SAAS,OAAO,OAAOA,KAAI,GAAG,CAAC,GAAG,EAAE;AACnD,UAAI,YAAY,MAAM;AAAG,eAAOA;AAChC,MAAAiB,KAAI,SAASjB,EAAC,IAAI;AAAA,IACpB;AAEA,WAAOA;AAAA,EACT;AAEA,WAAS,UAAUiB,MAAK,QAAQ,QAAQD,SAAQ;AAC9C,WAAO,WAAWY,aAAY,QAAQX,KAAI,SAAS,MAAM,GAAGA,MAAK,QAAQD,OAAM;AAAA,EACjF;AAEA,WAAS,WAAWC,MAAK,QAAQ,QAAQD,SAAQ;AAC/C,WAAO,WAAW,aAAa,MAAM,GAAGC,MAAK,QAAQD,OAAM;AAAA,EAC7D;AAEA,WAAS,YAAYC,MAAK,QAAQ,QAAQD,SAAQ;AAChD,WAAO,WAAW,cAAc,MAAM,GAAGC,MAAK,QAAQD,OAAM;AAAA,EAC9D;AAEA,WAAS,UAAUC,MAAK,QAAQ,QAAQD,SAAQ;AAC9C,WAAO,WAAW,eAAe,QAAQC,KAAI,SAAS,MAAM,GAAGA,MAAK,QAAQD,OAAM;AAAA,EACpF;AAEA,EAAAD,QAAO,UAAU,QAAQ,SAASqB,OAAM,QAAQ,QAAQpB,SAAQ,UAAU;AAExE,QAAI,WAAW,QAAW;AACxB,iBAAW;AACX,MAAAA,UAAS,KAAK;AACd,eAAS;AAAA,IACX,WAAWA,YAAW,UAAa,OAAO,WAAW,UAAU;AAC7D,iBAAW;AACX,MAAAA,UAAS,KAAK;AACd,eAAS;AAAA,IACX,WAAW,SAAS,MAAM,GAAG;AAC3B,eAAS,WAAW;AAEpB,UAAI,SAASA,OAAM,GAAG;AACpB,QAAAA,UAASA,YAAW;AACpB,YAAI,aAAa;AAAW,qBAAW;AAAA,MACzC,OAAO;AACL,mBAAWA;AACX,QAAAA,UAAS;AAAA,MACX;AAAA,IACF,OAAO;AACL,YAAM,IAAI,MAAM,yEAAyE;AAAA,IAC3F;AAEA,UAAM,YAAY,KAAK,SAAS;AAChC,QAAIA,YAAW,UAAaA,UAAS;AAAW,MAAAA,UAAS;AAEzD,QAAI,OAAO,SAAS,MAAMA,UAAS,KAAK,SAAS,MAAM,SAAS,KAAK,QAAQ;AAC3E,YAAM,IAAI,WAAW,wCAAwC;AAAA,IAC/D;AAEA,QAAI,CAAC;AAAU,iBAAW;AAC1B,QAAI,cAAc;AAElB,eAAS;AACP,cAAQ,UAAU;AAAA,QAChB,KAAK;AACH,iBAAO,SAAS,MAAM,QAAQ,QAAQA,OAAM;AAAA,QAE9C,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,UAAU,MAAM,QAAQ,QAAQA,OAAM;AAAA,QAE/C,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,WAAW,MAAM,QAAQ,QAAQA,OAAM;AAAA,QAEhD,KAAK;AAEH,iBAAO,YAAY,MAAM,QAAQ,QAAQA,OAAM;AAAA,QAEjD,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,UAAU,MAAM,QAAQ,QAAQA,OAAM;AAAA,QAE/C;AACE,cAAI;AAAa,kBAAM,IAAI,UAAU,uBAAuB,QAAQ;AACpE,sBAAY,KAAK,UAAU,YAAY;AACvC,wBAAc;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAEA,EAAAD,QAAO,UAAU,SAAS,SAAS,SAAS;AAC1C,WAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM,MAAM,UAAU,MAAM,KAAK,KAAK,QAAQ,MAAM,CAAC;AAAA,IACvD;AAAA,EACF;AAEA,WAAS,YAAYE,MAAK,OAAO,KAAK;AACpC,QAAI,UAAU,KAAK,QAAQA,KAAI,QAAQ;AACrC,aAAO,OAAO,cAAcA,IAAG;AAAA,IACjC,OAAO;AACL,aAAO,OAAO,cAAcA,KAAI,MAAM,OAAO,GAAG,CAAC;AAAA,IACnD;AAAA,EACF;AAEA,WAASY,WAAUZ,MAAK,OAAO,KAAK;AAClC,UAAM,KAAK,IAAIA,KAAI,QAAQ,GAAG;AAC9B,UAAM,MAAM,CAAC;AACb,QAAIjB,KAAI;AAER,WAAOA,KAAI,KAAK;AACd,YAAM,YAAYiB,KAAIjB,EAAC;AACvB,UAAI,YAAY;AAChB,UAAI,mBAAmB,YAAY,MAAM,IAAI,YAAY,MAAM,IAAI,YAAY,MAAM,IAAI;AAEzF,UAAIA,KAAI,oBAAoB,KAAK;AAC/B,YAAI,YAAY,WAAW,YAAY;AAEvC,gBAAQ,kBAAkB;AAAA,UACxB,KAAK;AACH,gBAAI,YAAY,KAAK;AACnB,0BAAY;AAAA,YACd;AAEA;AAAA,UAEF,KAAK;AACH,yBAAaiB,KAAIjB,KAAI,CAAC;AAEtB,iBAAK,aAAa,SAAS,KAAK;AAC9B,+BAAiB,YAAY,OAAO,IAAI,aAAa;AAErD,kBAAI,gBAAgB,KAAK;AACvB,4BAAY;AAAA,cACd;AAAA,YACF;AAEA;AAAA,UAEF,KAAK;AACH,yBAAaiB,KAAIjB,KAAI,CAAC;AACtB,wBAAYiB,KAAIjB,KAAI,CAAC;AAErB,iBAAK,aAAa,SAAS,QAAQ,YAAY,SAAS,KAAK;AAC3D,+BAAiB,YAAY,OAAO,MAAM,aAAa,OAAO,IAAI,YAAY;AAE9E,kBAAI,gBAAgB,SAAS,gBAAgB,SAAS,gBAAgB,QAAQ;AAC5E,4BAAY;AAAA,cACd;AAAA,YACF;AAEA;AAAA,UAEF,KAAK;AACH,yBAAaiB,KAAIjB,KAAI,CAAC;AACtB,wBAAYiB,KAAIjB,KAAI,CAAC;AACrB,yBAAaiB,KAAIjB,KAAI,CAAC;AAEtB,iBAAK,aAAa,SAAS,QAAQ,YAAY,SAAS,QAAQ,aAAa,SAAS,KAAK;AACzF,+BAAiB,YAAY,OAAO,MAAM,aAAa,OAAO,MAAM,YAAY,OAAO,IAAI,aAAa;AAExG,kBAAI,gBAAgB,SAAS,gBAAgB,SAAS;AACpD,4BAAY;AAAA,cACd;AAAA,YACF;AAAA,QAEJ;AAAA,MACF;AAEA,UAAI,cAAc,MAAM;AAGtB,oBAAY;AACZ,2BAAmB;AAAA,MACrB,WAAW,YAAY,OAAO;AAE5B,qBAAa;AACb,YAAI,KAAK,cAAc,KAAK,OAAO,KAAK;AACxC,oBAAY,QAAQ,YAAY;AAAA,MAClC;AAEA,UAAI,KAAK,SAAS;AAClB,MAAAA,MAAK;AAAA,IACP;AAEA,WAAOqC,uBAAsB,GAAG;AAAA,EAClC;AAKA,QAAMC,wBAAuB;AAE7B,WAASD,uBAAsB,YAAY;AACzC,UAAM,MAAM,WAAW;AAEvB,QAAI,OAAOC,uBAAsB;AAC/B,aAAO,OAAO,aAAa,MAAM,QAAQ,UAAU;AAAA,IACrD;AAGA,QAAI,MAAM;AACV,QAAItC,KAAI;AAER,WAAOA,KAAI,KAAK;AACd,aAAO,OAAO,aAAa,MAAM,QAAQ,WAAW,MAAMA,IAAGA,MAAKsC,qBAAoB,CAAC;AAAA,IACzF;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,WAAWrB,MAAK,OAAO,KAAK;AACnC,QAAI,MAAM;AACV,UAAM,KAAK,IAAIA,KAAI,QAAQ,GAAG;AAE9B,aAASjB,KAAI,OAAOA,KAAI,KAAK,EAAEA,IAAG;AAChC,aAAO,OAAO,aAAaiB,KAAIjB,EAAC,IAAI,GAAG;AAAA,IACzC;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,YAAYiB,MAAK,OAAO,KAAK;AACpC,QAAI,MAAM;AACV,UAAM,KAAK,IAAIA,KAAI,QAAQ,GAAG;AAE9B,aAASjB,KAAI,OAAOA,KAAI,KAAK,EAAEA,IAAG;AAChC,aAAO,OAAO,aAAaiB,KAAIjB,EAAC,CAAC;AAAA,IACnC;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,SAASiB,MAAK,OAAO,KAAK;AACjC,UAAM,MAAMA,KAAI;AAChB,QAAI,CAAC,SAAS,QAAQ;AAAG,cAAQ;AACjC,QAAI,CAAC,OAAO,MAAM,KAAK,MAAM;AAAK,YAAM;AACxC,QAAI,MAAM;AAEV,aAASjB,KAAI,OAAOA,KAAI,KAAK,EAAEA,IAAG;AAChC,aAAO,oBAAoBiB,KAAIjB,EAAC,CAAC;AAAA,IACnC;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,aAAaiB,MAAK,OAAO,KAAK;AACrC,UAAM,QAAQA,KAAI,MAAM,OAAO,GAAG;AAClC,QAAI,MAAM;AAEV,aAASjB,KAAI,GAAGA,KAAI,MAAM,SAAS,GAAGA,MAAK,GAAG;AAC5C,aAAO,OAAO,aAAa,MAAMA,EAAC,IAAI,MAAMA,KAAI,CAAC,IAAI,GAAG;AAAA,IAC1D;AAEA,WAAO;AAAA,EACT;AAEA,EAAAe,QAAO,UAAU,QAAQ,SAASwB,OAAM,OAAO,KAAK;AAClD,UAAM,MAAM,KAAK;AACjB,YAAQ,CAAC,CAAC;AACV,UAAM,QAAQ,SAAY,MAAM,CAAC,CAAC;AAElC,QAAI,QAAQ,GAAG;AACb,eAAS;AACT,UAAI,QAAQ;AAAG,gBAAQ;AAAA,IACzB,WAAW,QAAQ,KAAK;AACtB,cAAQ;AAAA,IACV;AAEA,QAAI,MAAM,GAAG;AACX,aAAO;AACP,UAAI,MAAM;AAAG,cAAM;AAAA,IACrB,WAAW,MAAM,KAAK;AACpB,YAAM;AAAA,IACR;AAEA,QAAI,MAAM;AAAO,YAAM;AACvB,UAAM,SAAS,KAAK,SAAS,OAAO,GAAG;AAEvC,WAAO,eAAe,QAAQxB,QAAO,SAAS;AAC9C,WAAO;AAAA,EACT;AAMA,WAAS,YAAY,QAAQ,KAAKC,SAAQ;AACxC,QAAI,SAAS,MAAM,KAAK,SAAS;AAAG,YAAM,IAAI,WAAW,oBAAoB;AAC7E,QAAI,SAAS,MAAMA;AAAQ,YAAM,IAAI,WAAW,uCAAuC;AAAA,EACzF;AAEA,EAAAD,QAAO,UAAU,aAAaA,QAAO,UAAU,aAAa,SAAS,WAAW,QAAQyB,aAAY,UAAU;AAC5G,aAAS,WAAW;AACpB,IAAAA,cAAaA,gBAAe;AAC5B,QAAI,CAAC;AAAU,kBAAY,QAAQA,aAAY,KAAK,MAAM;AAC1D,QAAI,MAAM,KAAK,MAAM;AACrB,QAAI,MAAM;AACV,QAAIxC,KAAI;AAER,WAAO,EAAEA,KAAIwC,gBAAe,OAAO,MAAM;AACvC,aAAO,KAAK,SAASxC,EAAC,IAAI;AAAA,IAC5B;AAEA,WAAO;AAAA,EACT;AAEA,EAAAe,QAAO,UAAU,aAAaA,QAAO,UAAU,aAAa,SAAS,WAAW,QAAQyB,aAAY,UAAU;AAC5G,aAAS,WAAW;AACpB,IAAAA,cAAaA,gBAAe;AAE5B,QAAI,CAAC,UAAU;AACb,kBAAY,QAAQA,aAAY,KAAK,MAAM;AAAA,IAC7C;AAEA,QAAI,MAAM,KAAK,SAAS,EAAEA,WAAU;AACpC,QAAI,MAAM;AAEV,WAAOA,cAAa,MAAM,OAAO,MAAM;AACrC,aAAO,KAAK,SAAS,EAAEA,WAAU,IAAI;AAAA,IACvC;AAEA,WAAO;AAAA,EACT;AAEA,EAAAzB,QAAO,UAAU,YAAYA,QAAO,UAAU,YAAY,SAAS,UAAU,QAAQ,UAAU;AAC7F,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,KAAK,MAAM;AAAA,EACpB;AAEA,EAAAA,QAAO,UAAU,eAAeA,QAAO,UAAU,eAAe,SAAS,aAAa,QAAQ,UAAU;AACtG,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,KAAK,MAAM,IAAI,KAAK,SAAS,CAAC,KAAK;AAAA,EAC5C;AAEA,EAAAA,QAAO,UAAU,eAAeA,QAAO,UAAU,eAAe,SAAS,aAAa,QAAQ,UAAU;AACtG,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,KAAK,MAAM,KAAK,IAAI,KAAK,SAAS,CAAC;AAAA,EAC5C;AAEA,EAAAA,QAAO,UAAU,eAAeA,QAAO,UAAU,eAAe,SAAS,aAAa,QAAQ,UAAU;AACtG,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,YAAQ,KAAK,MAAM,IAAI,KAAK,SAAS,CAAC,KAAK,IAAI,KAAK,SAAS,CAAC,KAAK,MAAM,KAAK,SAAS,CAAC,IAAI;AAAA,EAC9F;AAEA,EAAAA,QAAO,UAAU,eAAeA,QAAO,UAAU,eAAe,SAAS,aAAa,QAAQ,UAAU;AACtG,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,KAAK,MAAM,IAAI,YAAY,KAAK,SAAS,CAAC,KAAK,KAAK,KAAK,SAAS,CAAC,KAAK,IAAI,KAAK,SAAS,CAAC;AAAA,EACpG;AAEA,EAAAA,QAAO,UAAU,kBAAkB,mBAAmB,SAAS,gBAAgB,QAAQ;AACrF,aAAS,WAAW;AACpB,mBAAe,QAAQ,QAAQ;AAC/B,UAAM,QAAQ,KAAK,MAAM;AACzB,UAAM,OAAO,KAAK,SAAS,CAAC;AAE5B,QAAI,UAAU,UAAa,SAAS,QAAW;AAC7C,kBAAY,QAAQ,KAAK,SAAS,CAAC;AAAA,IACrC;AAEA,UAAM,KAAK,QAAQ,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK;AAC9F,UAAM,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,OAAO,KAAK;AAC7F,WAAO,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE;AAAA,EAC9C,CAAC;AACD,EAAAA,QAAO,UAAU,kBAAkB,mBAAmB,SAAS,gBAAgB,QAAQ;AACrF,aAAS,WAAW;AACpB,mBAAe,QAAQ,QAAQ;AAC/B,UAAM,QAAQ,KAAK,MAAM;AACzB,UAAM,OAAO,KAAK,SAAS,CAAC;AAE5B,QAAI,UAAU,UAAa,SAAS,QAAW;AAC7C,kBAAY,QAAQ,KAAK,SAAS,CAAC;AAAA,IACrC;AAEA,UAAM,KAAK,QAAQ,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,KAAK,EAAE,MAAM;AAC/F,UAAM,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI;AAC3F,YAAQ,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE;AAAA,EAC/C,CAAC;AAED,EAAAA,QAAO,UAAU,YAAY,SAAS,UAAU,QAAQyB,aAAY,UAAU;AAC5E,aAAS,WAAW;AACpB,IAAAA,cAAaA,gBAAe;AAC5B,QAAI,CAAC;AAAU,kBAAY,QAAQA,aAAY,KAAK,MAAM;AAC1D,QAAI,MAAM,KAAK,MAAM;AACrB,QAAI,MAAM;AACV,QAAIxC,KAAI;AAER,WAAO,EAAEA,KAAIwC,gBAAe,OAAO,MAAM;AACvC,aAAO,KAAK,SAASxC,EAAC,IAAI;AAAA,IAC5B;AAEA,WAAO;AACP,QAAI,OAAO;AAAK,aAAO,KAAK,IAAI,GAAG,IAAIwC,WAAU;AACjD,WAAO;AAAA,EACT;AAEA,EAAAzB,QAAO,UAAU,YAAY,SAAS,UAAU,QAAQyB,aAAY,UAAU;AAC5E,aAAS,WAAW;AACpB,IAAAA,cAAaA,gBAAe;AAC5B,QAAI,CAAC;AAAU,kBAAY,QAAQA,aAAY,KAAK,MAAM;AAC1D,QAAIxC,KAAIwC;AACR,QAAI,MAAM;AACV,QAAI,MAAM,KAAK,SAAS,EAAExC,EAAC;AAE3B,WAAOA,KAAI,MAAM,OAAO,MAAM;AAC5B,aAAO,KAAK,SAAS,EAAEA,EAAC,IAAI;AAAA,IAC9B;AAEA,WAAO;AACP,QAAI,OAAO;AAAK,aAAO,KAAK,IAAI,GAAG,IAAIwC,WAAU;AACjD,WAAO;AAAA,EACT;AAEA,EAAAzB,QAAO,UAAU,WAAW,SAAS,SAAS,QAAQ,UAAU;AAC9D,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,QAAI,EAAE,KAAK,MAAM,IAAI;AAAM,aAAO,KAAK,MAAM;AAC7C,YAAQ,MAAM,KAAK,MAAM,IAAI,KAAK;AAAA,EACpC;AAEA,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAY,QAAQ,UAAU;AACpE,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,UAAM,MAAM,KAAK,MAAM,IAAI,KAAK,SAAS,CAAC,KAAK;AAC/C,WAAO,MAAM,QAAQ,MAAM,aAAa;AAAA,EAC1C;AAEA,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAY,QAAQ,UAAU;AACpE,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,UAAM,MAAM,KAAK,SAAS,CAAC,IAAI,KAAK,MAAM,KAAK;AAC/C,WAAO,MAAM,QAAQ,MAAM,aAAa;AAAA,EAC1C;AAEA,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAY,QAAQ,UAAU;AACpE,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,KAAK,MAAM,IAAI,KAAK,SAAS,CAAC,KAAK,IAAI,KAAK,SAAS,CAAC,KAAK,KAAK,KAAK,SAAS,CAAC,KAAK;AAAA,EAC7F;AAEA,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAY,QAAQ,UAAU;AACpE,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,KAAK,MAAM,KAAK,KAAK,KAAK,SAAS,CAAC,KAAK,KAAK,KAAK,SAAS,CAAC,KAAK,IAAI,KAAK,SAAS,CAAC;AAAA,EAC9F;AAEA,EAAAA,QAAO,UAAU,iBAAiB,mBAAmB,SAAS,eAAe,QAAQ;AACnF,aAAS,WAAW;AACpB,mBAAe,QAAQ,QAAQ;AAC/B,UAAM,QAAQ,KAAK,MAAM;AACzB,UAAM,OAAO,KAAK,SAAS,CAAC;AAE5B,QAAI,UAAU,UAAa,SAAS,QAAW;AAC7C,kBAAY,QAAQ,KAAK,SAAS,CAAC;AAAA,IACrC;AAEA,UAAM,MAAM,KAAK,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,KAAK,IAAI,KAAK,SAAS,CAAC,IAAI,KAAK,MAAM,QAAQ;AAEjG,YAAQ,OAAO,GAAG,KAAK,OAAO,EAAE,KAAK,OAAO,QAAQ,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,EAAE;AAAA,EACnI,CAAC;AACD,EAAAA,QAAO,UAAU,iBAAiB,mBAAmB,SAAS,eAAe,QAAQ;AACnF,aAAS,WAAW;AACpB,mBAAe,QAAQ,QAAQ;AAC/B,UAAM,QAAQ,KAAK,MAAM;AACzB,UAAM,OAAO,KAAK,SAAS,CAAC;AAE5B,QAAI,UAAU,UAAa,SAAS,QAAW;AAC7C,kBAAY,QAAQ,KAAK,SAAS,CAAC;AAAA,IACrC;AAEA,UAAM,OAAO,SAAS;AAAA,IACtB,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,KAAK,EAAE,MAAM;AAClE,YAAQ,OAAO,GAAG,KAAK,OAAO,EAAE,KAAK,OAAO,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,IAAI;AAAA,EAClI,CAAC;AAED,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAY,QAAQ,UAAU;AACpE,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,QAAQ,KAAK,MAAM,QAAQ,MAAM,IAAI,CAAC;AAAA,EAC/C;AAEA,EAAAA,QAAO,UAAU,cAAc,SAAS,YAAY,QAAQ,UAAU;AACpE,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,QAAQ,KAAK,MAAM,QAAQ,OAAO,IAAI,CAAC;AAAA,EAChD;AAEA,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAa,QAAQ,UAAU;AACtE,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,QAAQ,KAAK,MAAM,QAAQ,MAAM,IAAI,CAAC;AAAA,EAC/C;AAEA,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAa,QAAQ,UAAU;AACtE,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,kBAAY,QAAQ,GAAG,KAAK,MAAM;AACjD,WAAO,QAAQ,KAAK,MAAM,QAAQ,OAAO,IAAI,CAAC;AAAA,EAChD;AAEA,WAAS,SAASE,MAAK,OAAO,QAAQ,KAAK,KAAK,KAAK;AACnD,QAAI,CAACF,QAAO,SAASE,IAAG;AAAG,YAAM,IAAI,UAAU,6CAA+C;AAC9F,QAAI,QAAQ,OAAO,QAAQ;AAAK,YAAM,IAAI,WAAW,mCAAqC;AAC1F,QAAI,SAAS,MAAMA,KAAI;AAAQ,YAAM,IAAI,WAAW,oBAAoB;AAAA,EAC1E;AAEA,EAAAF,QAAO,UAAU,cAAcA,QAAO,UAAU,cAAc,SAAS,YAAY,OAAO,QAAQyB,aAAY,UAAU;AACtH,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,IAAAA,cAAaA,gBAAe;AAE5B,QAAI,CAAC,UAAU;AACb,YAAM,WAAW,KAAK,IAAI,GAAG,IAAIA,WAAU,IAAI;AAC/C,eAAS,MAAM,OAAO,QAAQA,aAAY,UAAU,CAAC;AAAA,IACvD;AAEA,QAAI,MAAM;AACV,QAAIxC,KAAI;AACR,SAAK,MAAM,IAAI,QAAQ;AAEvB,WAAO,EAAEA,KAAIwC,gBAAe,OAAO,MAAM;AACvC,WAAK,SAASxC,EAAC,IAAI,QAAQ,MAAM;AAAA,IACnC;AAEA,WAAO,SAASwC;AAAA,EAClB;AAEA,EAAAzB,QAAO,UAAU,cAAcA,QAAO,UAAU,cAAc,SAAS,YAAY,OAAO,QAAQyB,aAAY,UAAU;AACtH,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,IAAAA,cAAaA,gBAAe;AAE5B,QAAI,CAAC,UAAU;AACb,YAAM,WAAW,KAAK,IAAI,GAAG,IAAIA,WAAU,IAAI;AAC/C,eAAS,MAAM,OAAO,QAAQA,aAAY,UAAU,CAAC;AAAA,IACvD;AAEA,QAAIxC,KAAIwC,cAAa;AACrB,QAAI,MAAM;AACV,SAAK,SAASxC,EAAC,IAAI,QAAQ;AAE3B,WAAO,EAAEA,MAAK,MAAM,OAAO,MAAM;AAC/B,WAAK,SAASA,EAAC,IAAI,QAAQ,MAAM;AAAA,IACnC;AAEA,WAAO,SAASwC;AAAA,EAClB;AAEA,EAAAzB,QAAO,UAAU,aAAaA,QAAO,UAAU,aAAa,SAAS,WAAW,OAAO,QAAQ,UAAU;AACvG,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,KAAK,CAAC;AACtD,SAAK,MAAM,IAAI,QAAQ;AACvB,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAA,QAAO,UAAU,gBAAgBA,QAAO,UAAU,gBAAgB,SAAS,cAAc,OAAO,QAAQ,UAAU;AAChH,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,OAAO,CAAC;AACxD,SAAK,MAAM,IAAI,QAAQ;AACvB,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAA,QAAO,UAAU,gBAAgBA,QAAO,UAAU,gBAAgB,SAAS,cAAc,OAAO,QAAQ,UAAU;AAChH,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,OAAO,CAAC;AACxD,SAAK,MAAM,IAAI,UAAU;AACzB,SAAK,SAAS,CAAC,IAAI,QAAQ;AAC3B,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAA,QAAO,UAAU,gBAAgBA,QAAO,UAAU,gBAAgB,SAAS,cAAc,OAAO,QAAQ,UAAU;AAChH,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,YAAY,CAAC;AAC7D,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,SAAK,MAAM,IAAI,QAAQ;AACvB,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAA,QAAO,UAAU,gBAAgBA,QAAO,UAAU,gBAAgB,SAAS,cAAc,OAAO,QAAQ,UAAU;AAChH,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,YAAY,CAAC;AAC7D,SAAK,MAAM,IAAI,UAAU;AACzB,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,SAAK,SAAS,CAAC,IAAI,QAAQ;AAC3B,WAAO,SAAS;AAAA,EAClB;AAEA,WAAS,eAAeE,MAAK,OAAO,QAAQ,KAAK,KAAK;AACpD,eAAW,OAAO,KAAK,KAAKA,MAAK,QAAQ,CAAC;AAC1C,QAAI,KAAK,OAAO,QAAQ,OAAO,UAAU,CAAC;AAC1C,IAAAA,KAAI,QAAQ,IAAI;AAChB,SAAK,MAAM;AACX,IAAAA,KAAI,QAAQ,IAAI;AAChB,SAAK,MAAM;AACX,IAAAA,KAAI,QAAQ,IAAI;AAChB,SAAK,MAAM;AACX,IAAAA,KAAI,QAAQ,IAAI;AAChB,QAAI,KAAK,OAAO,SAAS,OAAO,EAAE,IAAI,OAAO,UAAU,CAAC;AACxD,IAAAA,KAAI,QAAQ,IAAI;AAChB,SAAK,MAAM;AACX,IAAAA,KAAI,QAAQ,IAAI;AAChB,SAAK,MAAM;AACX,IAAAA,KAAI,QAAQ,IAAI;AAChB,SAAK,MAAM;AACX,IAAAA,KAAI,QAAQ,IAAI;AAChB,WAAO;AAAA,EACT;AAEA,WAAS,eAAeA,MAAK,OAAO,QAAQ,KAAK,KAAK;AACpD,eAAW,OAAO,KAAK,KAAKA,MAAK,QAAQ,CAAC;AAC1C,QAAI,KAAK,OAAO,QAAQ,OAAO,UAAU,CAAC;AAC1C,IAAAA,KAAI,SAAS,CAAC,IAAI;AAClB,SAAK,MAAM;AACX,IAAAA,KAAI,SAAS,CAAC,IAAI;AAClB,SAAK,MAAM;AACX,IAAAA,KAAI,SAAS,CAAC,IAAI;AAClB,SAAK,MAAM;AACX,IAAAA,KAAI,SAAS,CAAC,IAAI;AAClB,QAAI,KAAK,OAAO,SAAS,OAAO,EAAE,IAAI,OAAO,UAAU,CAAC;AACxD,IAAAA,KAAI,SAAS,CAAC,IAAI;AAClB,SAAK,MAAM;AACX,IAAAA,KAAI,SAAS,CAAC,IAAI;AAClB,SAAK,MAAM;AACX,IAAAA,KAAI,SAAS,CAAC,IAAI;AAClB,SAAK,MAAM;AACX,IAAAA,KAAI,MAAM,IAAI;AACd,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAF,QAAO,UAAU,mBAAmB,mBAAmB,SAAS,iBAAiB,OAAO,SAAS,GAAG;AAClG,WAAO,eAAe,MAAM,OAAO,QAAQ,OAAO,CAAC,GAAG,OAAO,oBAAoB,CAAC;AAAA,EACpF,CAAC;AACD,EAAAA,QAAO,UAAU,mBAAmB,mBAAmB,SAAS,iBAAiB,OAAO,SAAS,GAAG;AAClG,WAAO,eAAe,MAAM,OAAO,QAAQ,OAAO,CAAC,GAAG,OAAO,oBAAoB,CAAC;AAAA,EACpF,CAAC;AAED,EAAAA,QAAO,UAAU,aAAa,SAAS,WAAW,OAAO,QAAQyB,aAAY,UAAU;AACrF,YAAQ,CAAC;AACT,aAAS,WAAW;AAEpB,QAAI,CAAC,UAAU;AACb,YAAM,QAAQ,KAAK,IAAI,GAAG,IAAIA,cAAa,CAAC;AAC5C,eAAS,MAAM,OAAO,QAAQA,aAAY,QAAQ,GAAG,CAAC,KAAK;AAAA,IAC7D;AAEA,QAAIxC,KAAI;AACR,QAAI,MAAM;AACV,QAAI,MAAM;AACV,SAAK,MAAM,IAAI,QAAQ;AAEvB,WAAO,EAAEA,KAAIwC,gBAAe,OAAO,MAAM;AACvC,UAAI,QAAQ,KAAK,QAAQ,KAAK,KAAK,SAASxC,KAAI,CAAC,MAAM,GAAG;AACxD,cAAM;AAAA,MACR;AAEA,WAAK,SAASA,EAAC,KAAK,QAAQ,OAAO,KAAK,MAAM;AAAA,IAChD;AAEA,WAAO,SAASwC;AAAA,EAClB;AAEA,EAAAzB,QAAO,UAAU,aAAa,SAAS,WAAW,OAAO,QAAQyB,aAAY,UAAU;AACrF,YAAQ,CAAC;AACT,aAAS,WAAW;AAEpB,QAAI,CAAC,UAAU;AACb,YAAM,QAAQ,KAAK,IAAI,GAAG,IAAIA,cAAa,CAAC;AAC5C,eAAS,MAAM,OAAO,QAAQA,aAAY,QAAQ,GAAG,CAAC,KAAK;AAAA,IAC7D;AAEA,QAAIxC,KAAIwC,cAAa;AACrB,QAAI,MAAM;AACV,QAAI,MAAM;AACV,SAAK,SAASxC,EAAC,IAAI,QAAQ;AAE3B,WAAO,EAAEA,MAAK,MAAM,OAAO,MAAM;AAC/B,UAAI,QAAQ,KAAK,QAAQ,KAAK,KAAK,SAASA,KAAI,CAAC,MAAM,GAAG;AACxD,cAAM;AAAA,MACR;AAEA,WAAK,SAASA,EAAC,KAAK,QAAQ,OAAO,KAAK,MAAM;AAAA,IAChD;AAEA,WAAO,SAASwC;AAAA,EAClB;AAEA,EAAAzB,QAAO,UAAU,YAAY,SAAS,UAAU,OAAO,QAAQ,UAAU;AACvE,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,KAAK,IAAI;AACzD,QAAI,QAAQ;AAAG,cAAQ,MAAM,QAAQ;AACrC,SAAK,MAAM,IAAI,QAAQ;AACvB,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAa,OAAO,QAAQ,UAAU;AAC7E,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,OAAO,MAAM;AAC7D,SAAK,MAAM,IAAI,QAAQ;AACvB,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAa,OAAO,QAAQ,UAAU;AAC7E,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,OAAO,MAAM;AAC7D,SAAK,MAAM,IAAI,UAAU;AACzB,SAAK,SAAS,CAAC,IAAI,QAAQ;AAC3B,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAa,OAAO,QAAQ,UAAU;AAC7E,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,YAAY,WAAW;AACvE,SAAK,MAAM,IAAI,QAAQ;AACvB,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAa,OAAO,QAAQ,UAAU;AAC7E,YAAQ,CAAC;AACT,aAAS,WAAW;AACpB,QAAI,CAAC;AAAU,eAAS,MAAM,OAAO,QAAQ,GAAG,YAAY,WAAW;AACvE,QAAI,QAAQ;AAAG,cAAQ,aAAa,QAAQ;AAC5C,SAAK,MAAM,IAAI,UAAU;AACzB,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,SAAK,SAAS,CAAC,IAAI,UAAU;AAC7B,SAAK,SAAS,CAAC,IAAI,QAAQ;AAC3B,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAA,QAAO,UAAU,kBAAkB,mBAAmB,SAAS,gBAAgB,OAAO,SAAS,GAAG;AAChG,WAAO,eAAe,MAAM,OAAO,QAAQ,CAAC,OAAO,oBAAoB,GAAG,OAAO,oBAAoB,CAAC;AAAA,EACxG,CAAC;AACD,EAAAA,QAAO,UAAU,kBAAkB,mBAAmB,SAAS,gBAAgB,OAAO,SAAS,GAAG;AAChG,WAAO,eAAe,MAAM,OAAO,QAAQ,CAAC,OAAO,oBAAoB,GAAG,OAAO,oBAAoB,CAAC;AAAA,EACxG,CAAC;AAED,WAAS,aAAaE,MAAK,OAAO,QAAQ,KAAK,KAAK,KAAK;AACvD,QAAI,SAAS,MAAMA,KAAI;AAAQ,YAAM,IAAI,WAAW,oBAAoB;AACxE,QAAI,SAAS;AAAG,YAAM,IAAI,WAAW,oBAAoB;AAAA,EAC3D;AAEA,WAAS,WAAWA,MAAK,OAAO,QAAQ,cAAc,UAAU;AAC9D,YAAQ,CAAC;AACT,aAAS,WAAW;AAEpB,QAAI,CAAC,UAAU;AACb,mBAAaA,MAAK,OAAO,QAAQ,CAAC;AAAA,IACpC;AAEA,YAAQ,MAAMA,MAAK,OAAO,QAAQ,cAAc,IAAI,CAAC;AACrD,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAF,QAAO,UAAU,eAAe,SAAS,aAAa,OAAO,QAAQ,UAAU;AAC7E,WAAO,WAAW,MAAM,OAAO,QAAQ,MAAM,QAAQ;AAAA,EACvD;AAEA,EAAAA,QAAO,UAAU,eAAe,SAAS,aAAa,OAAO,QAAQ,UAAU;AAC7E,WAAO,WAAW,MAAM,OAAO,QAAQ,OAAO,QAAQ;AAAA,EACxD;AAEA,WAAS,YAAYE,MAAK,OAAO,QAAQ,cAAc,UAAU;AAC/D,YAAQ,CAAC;AACT,aAAS,WAAW;AAEpB,QAAI,CAAC,UAAU;AACb,mBAAaA,MAAK,OAAO,QAAQ,CAAC;AAAA,IACpC;AAEA,YAAQ,MAAMA,MAAK,OAAO,QAAQ,cAAc,IAAI,CAAC;AACrD,WAAO,SAAS;AAAA,EAClB;AAEA,EAAAF,QAAO,UAAU,gBAAgB,SAAS,cAAc,OAAO,QAAQ,UAAU;AAC/E,WAAO,YAAY,MAAM,OAAO,QAAQ,MAAM,QAAQ;AAAA,EACxD;AAEA,EAAAA,QAAO,UAAU,gBAAgB,SAAS,cAAc,OAAO,QAAQ,UAAU;AAC/E,WAAO,YAAY,MAAM,OAAO,QAAQ,OAAO,QAAQ;AAAA,EACzD;AAGA,EAAAA,QAAO,UAAU,OAAO,SAAS,KAAK,QAAQ,aAAa,OAAO,KAAK;AACrE,QAAI,CAACA,QAAO,SAAS,MAAM;AAAG,YAAM,IAAI,UAAU,6BAA6B;AAC/E,QAAI,CAAC;AAAO,cAAQ;AACpB,QAAI,CAAC,OAAO,QAAQ;AAAG,YAAM,KAAK;AAClC,QAAI,eAAe,OAAO;AAAQ,oBAAc,OAAO;AACvD,QAAI,CAAC;AAAa,oBAAc;AAChC,QAAI,MAAM,KAAK,MAAM;AAAO,YAAM;AAElC,QAAI,QAAQ;AAAO,aAAO;AAC1B,QAAI,OAAO,WAAW,KAAK,KAAK,WAAW;AAAG,aAAO;AAErD,QAAI,cAAc,GAAG;AACnB,YAAM,IAAI,WAAW,2BAA2B;AAAA,IAClD;AAEA,QAAI,QAAQ,KAAK,SAAS,KAAK;AAAQ,YAAM,IAAI,WAAW,oBAAoB;AAChF,QAAI,MAAM;AAAG,YAAM,IAAI,WAAW,yBAAyB;AAE3D,QAAI,MAAM,KAAK;AAAQ,YAAM,KAAK;AAElC,QAAI,OAAO,SAAS,cAAc,MAAM,OAAO;AAC7C,YAAM,OAAO,SAAS,cAAc;AAAA,IACtC;AAEA,UAAM,MAAM,MAAM;AAElB,QAAI,SAAS,UAAU,OAAO,WAAW,UAAU,eAAe,YAAY;AAE5E,WAAK,WAAW,aAAa,OAAO,GAAG;AAAA,IACzC,OAAO;AACL,iBAAW,UAAU,IAAI,KAAK,QAAQ,KAAK,SAAS,OAAO,GAAG,GAAG,WAAW;AAAA,IAC9E;AAEA,WAAO;AAAA,EACT;AAMA,EAAAA,QAAO,UAAU,OAAO,SAAS,KAAK,KAAK,OAAO,KAAK,UAAU;AAE/D,QAAI,OAAO,QAAQ,UAAU;AAC3B,UAAI,OAAO,UAAU,UAAU;AAC7B,mBAAW;AACX,gBAAQ;AACR,cAAM,KAAK;AAAA,MACb,WAAW,OAAO,QAAQ,UAAU;AAClC,mBAAW;AACX,cAAM,KAAK;AAAA,MACb;AAEA,UAAI,aAAa,UAAa,OAAO,aAAa,UAAU;AAC1D,cAAM,IAAI,UAAU,2BAA2B;AAAA,MACjD;AAEA,UAAI,OAAO,aAAa,YAAY,CAACA,QAAO,WAAW,QAAQ,GAAG;AAChE,cAAM,IAAI,UAAU,uBAAuB,QAAQ;AAAA,MACrD;AAEA,UAAI,IAAI,WAAW,GAAG;AACpB,cAAM,OAAO,IAAI,WAAW,CAAC;AAE7B,YAAI,aAAa,UAAU,OAAO,OAAO,aAAa,UAAU;AAE9D,gBAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF,WAAW,OAAO,QAAQ,UAAU;AAClC,YAAM,MAAM;AAAA,IACd,WAAW,OAAO,QAAQ,WAAW;AACnC,YAAM,OAAO,GAAG;AAAA,IAClB;AAGA,QAAI,QAAQ,KAAK,KAAK,SAAS,SAAS,KAAK,SAAS,KAAK;AACzD,YAAM,IAAI,WAAW,oBAAoB;AAAA,IAC3C;AAEA,QAAI,OAAO,OAAO;AAChB,aAAO;AAAA,IACT;AAEA,YAAQ,UAAU;AAClB,UAAM,QAAQ,SAAY,KAAK,SAAS,QAAQ;AAChD,QAAI,CAAC;AAAK,YAAM;AAChB,QAAIf;AAEJ,QAAI,OAAO,QAAQ,UAAU;AAC3B,WAAKA,KAAI,OAAOA,KAAI,KAAK,EAAEA,IAAG;AAC5B,aAAKA,EAAC,IAAI;AAAA,MACZ;AAAA,IACF,OAAO;AACL,YAAM,QAAQe,QAAO,SAAS,GAAG,IAAI,MAAMA,QAAO,KAAK,KAAK,QAAQ;AACpE,YAAM,MAAM,MAAM;AAElB,UAAI,QAAQ,GAAG;AACb,cAAM,IAAI,UAAU,gBAAiB,MAAM,mCAAsC;AAAA,MACnF;AAEA,WAAKf,KAAI,GAAGA,KAAI,MAAM,OAAO,EAAEA,IAAG;AAChC,aAAKA,KAAI,KAAK,IAAI,MAAMA,KAAI,GAAG;AAAA,MACjC;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAKA,QAAM,SAAS,CAAC;AAEhB,WAASyC,GAAE,KAAK,YAAY,MAAM;AAChC,WAAO,GAAG,IAAI,MAAM,kBAAkB,KAAK;AAAA,MACzC,cAAc;AACZ,cAAM;AACN,eAAO,eAAe,MAAM,WAAW;AAAA,UACrC,OAAO,WAAW,MAAM,MAAM,SAAS;AAAA,UACvC,UAAU;AAAA,UACV,cAAc;AAAA,QAChB,CAAC;AAED,aAAK,OAAO,GAAG,KAAK,IAAI,KAAK,GAAG;AAGhC,aAAK;AAGL,eAAO,KAAK;AAAA,MACd;AAAA,MAEA,IAAI,OAAO;AACT,eAAO;AAAA,MACT;AAAA,MAEA,IAAI,KAAK,OAAO;AACd,eAAO,eAAe,MAAM,QAAQ;AAAA,UAClC,cAAc;AAAA,UACd,YAAY;AAAA,UACZ;AAAA,UACA,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AAAA,MAEA,WAAW;AACT,eAAO,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM,KAAK,OAAO;AAAA,MAC/C;AAAA,IAEF;AAAA,EACF;AAEA,EAAAA,GAAE,4BAA4B,SAAUC,OAAM;AAC5C,QAAIA,OAAM;AACR,aAAO,GAAGA,KAAI;AAAA,IAChB;AAEA,WAAO;AAAA,EACT,GAAG,UAAU;AACb,EAAAD,GAAE,wBAAwB,SAAUC,OAAM,QAAQ;AAChD,WAAO,QAAQA,KAAI,oDAAoD,OAAO,MAAM;AAAA,EACtF,GAAG,SAAS;AACZ,EAAAD,GAAE,oBAAoB,SAAU,KAAK,OAAO,OAAO;AACjD,QAAI,MAAM,iBAAiB,GAAG;AAC9B,QAAI,WAAW;AAEf,QAAI,OAAO,UAAU,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI;AACxD,iBAAW,sBAAsB,OAAO,KAAK,CAAC;AAAA,IAChD,WAAW,OAAO,UAAU,UAAU;AACpC,iBAAW,OAAO,KAAK;AAEvB,UAAI,QAAQ,OAAO,CAAC,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,OAAO,CAAC,KAAK,OAAO,EAAE,IAAI;AACzE,mBAAW,sBAAsB,QAAQ;AAAA,MAC3C;AAEA,kBAAY;AAAA,IACd;AAEA,WAAO,eAAe,KAAK,cAAc,QAAQ;AACjD,WAAO;AAAA,EACT,GAAG,UAAU;AAEb,WAAS,sBAAsB,KAAK;AAClC,QAAI,MAAM;AACV,QAAIzC,KAAI,IAAI;AACZ,UAAM,QAAQ,IAAI,CAAC,MAAM,MAAM,IAAI;AAEnC,WAAOA,MAAK,QAAQ,GAAGA,MAAK,GAAG;AAC7B,YAAM,IAAI,IAAI,MAAMA,KAAI,GAAGA,EAAC,CAAC,GAAG,GAAG;AAAA,IACrC;AAEA,WAAO,GAAG,IAAI,MAAM,GAAGA,EAAC,CAAC,GAAG,GAAG;AAAA,EACjC;AAIA,WAAS,YAAYiB,MAAK,QAAQuB,aAAY;AAC5C,mBAAe,QAAQ,QAAQ;AAE/B,QAAIvB,KAAI,MAAM,MAAM,UAAaA,KAAI,SAASuB,WAAU,MAAM,QAAW;AACvE,kBAAY,QAAQvB,KAAI,UAAUuB,cAAa,EAAE;AAAA,IACnD;AAAA,EACF;AAEA,WAAS,WAAW,OAAO,KAAK,KAAKvB,MAAK,QAAQuB,aAAY;AAC5D,QAAI,QAAQ,OAAO,QAAQ,KAAK;AAC9B,YAAMV,KAAI,OAAO,QAAQ,WAAW,MAAM;AAC1C,UAAI;AAEJ,UAAIU,cAAa,GAAG;AAClB,YAAI,QAAQ,KAAK,QAAQ,OAAO,CAAC,GAAG;AAClC,kBAAQ,OAAOV,EAAC,WAAWA,EAAC,QAAQU,cAAa,KAAK,CAAC,GAAGV,EAAC;AAAA,QAC7D,OAAO;AACL,kBAAQ,SAASA,EAAC,QAAQU,cAAa,KAAK,IAAI,CAAC,GAAGV,EAAC,iBAAsBU,cAAa,KAAK,IAAI,CAAC,GAAGV,EAAC;AAAA,QACxG;AAAA,MACF,OAAO;AACL,gBAAQ,MAAM,GAAG,GAAGA,EAAC,WAAW,GAAG,GAAGA,EAAC;AAAA,MACzC;AAEA,YAAM,IAAI,OAAO,iBAAiB,SAAS,OAAO,KAAK;AAAA,IACzD;AAEA,gBAAYb,MAAK,QAAQuB,WAAU;AAAA,EACrC;AAEA,WAAS,eAAe,OAAOE,OAAM;AACnC,QAAI,OAAO,UAAU,UAAU;AAC7B,YAAM,IAAI,OAAO,qBAAqBA,OAAM,UAAU,KAAK;AAAA,IAC7D;AAAA,EACF;AAEA,WAAS,YAAY,OAAO1B,SAAQ,MAAM;AACxC,QAAI,KAAK,MAAM,KAAK,MAAM,OAAO;AAC/B,qBAAe,OAAO,IAAI;AAC1B,YAAM,IAAI,OAAO,iBAAiB,QAAQ,UAAU,cAAc,KAAK;AAAA,IACzE;AAEA,QAAIA,UAAS,GAAG;AACd,YAAM,IAAI,OAAO,yBAAyB;AAAA,IAC5C;AAEA,UAAM,IAAI,OAAO,iBAAiB,QAAQ,UAAU,MAAM,OAAO,IAAI,CAAC,WAAWA,OAAM,IAAI,KAAK;AAAA,EAClG;AAIA,QAAM,oBAAoB;AAE1B,WAAS,YAAY,KAAK;AAExB,UAAM,IAAI,MAAM,GAAG,EAAE,CAAC;AAEtB,UAAM,IAAI,KAAK,EAAE,QAAQ,mBAAmB,EAAE;AAE9C,QAAI,IAAI,SAAS;AAAG,aAAO;AAE3B,WAAO,IAAI,SAAS,MAAM,GAAG;AAC3B,YAAM,MAAM;AAAA,IACd;AAEA,WAAO;AAAA,EACT;AAEA,WAASY,aAAY,QAAQ,OAAO;AAClC,YAAQ,SAAS;AACjB,QAAI;AACJ,UAAMZ,UAAS,OAAO;AACtB,QAAI,gBAAgB;AACpB,UAAM,QAAQ,CAAC;AAEf,aAAShB,KAAI,GAAGA,KAAIgB,SAAQ,EAAEhB,IAAG;AAC/B,kBAAY,OAAO,WAAWA,EAAC;AAE/B,UAAI,YAAY,SAAS,YAAY,OAAO;AAE1C,YAAI,CAAC,eAAe;AAElB,cAAI,YAAY,OAAO;AAErB,iBAAK,SAAS,KAAK;AAAI,oBAAM,KAAK,KAAK,KAAK,GAAG;AAC/C;AAAA,UACF,WAAWA,KAAI,MAAMgB,SAAQ;AAE3B,iBAAK,SAAS,KAAK;AAAI,oBAAM,KAAK,KAAK,KAAK,GAAG;AAC/C;AAAA,UACF;AAGA,0BAAgB;AAChB;AAAA,QACF;AAGA,YAAI,YAAY,OAAO;AACrB,eAAK,SAAS,KAAK;AAAI,kBAAM,KAAK,KAAK,KAAK,GAAG;AAC/C,0BAAgB;AAChB;AAAA,QACF;AAGA,qBAAa,gBAAgB,SAAS,KAAK,YAAY,SAAS;AAAA,MAClE,WAAW,eAAe;AAExB,aAAK,SAAS,KAAK;AAAI,gBAAM,KAAK,KAAK,KAAK,GAAG;AAAA,MACjD;AAEA,sBAAgB;AAEhB,UAAI,YAAY,KAAK;AACnB,aAAK,SAAS,KAAK;AAAG;AACtB,cAAM,KAAK,SAAS;AAAA,MACtB,WAAW,YAAY,MAAM;AAC3B,aAAK,SAAS,KAAK;AAAG;AACtB,cAAM,KAAK,aAAa,IAAI,KAAK,YAAY,KAAK,GAAG;AAAA,MACvD,WAAW,YAAY,OAAO;AAC5B,aAAK,SAAS,KAAK;AAAG;AACtB,cAAM,KAAK,aAAa,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,YAAY,KAAK,GAAG;AAAA,MACnF,WAAW,YAAY,SAAS;AAC9B,aAAK,SAAS,KAAK;AAAG;AACtB,cAAM,KAAK,aAAa,KAAK,KAAK,aAAa,KAAK,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,YAAY,KAAK,GAAG;AAAA,MAC/G,OAAO;AACL,cAAM,IAAI,MAAM,oBAAoB;AAAA,MACtC;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,aAAa,KAAK;AACzB,UAAM,YAAY,CAAC;AAEnB,aAAShB,KAAI,GAAGA,KAAI,IAAI,QAAQ,EAAEA,IAAG;AAEnC,gBAAU,KAAK,IAAI,WAAWA,EAAC,IAAI,GAAG;AAAA,IACxC;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,eAAe,KAAK,OAAO;AAClC,QAAIW,IAAG,IAAI;AACX,UAAM,YAAY,CAAC;AAEnB,aAASX,KAAI,GAAGA,KAAI,IAAI,QAAQ,EAAEA,IAAG;AACnC,WAAK,SAAS,KAAK;AAAG;AACtB,MAAAW,KAAI,IAAI,WAAWX,EAAC;AACpB,WAAKW,MAAK;AACV,WAAKA,KAAI;AACT,gBAAU,KAAK,EAAE;AACjB,gBAAU,KAAK,EAAE;AAAA,IACnB;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,cAAc,KAAK;AAC1B,WAAO,OAAO,YAAY,YAAY,GAAG,CAAC;AAAA,EAC5C;AAEA,WAAS,WAAWgC,MAAK,KAAK,QAAQ3B,SAAQ;AAC5C,QAAIhB;AAEJ,SAAKA,KAAI,GAAGA,KAAIgB,SAAQ,EAAEhB,IAAG;AAC3B,UAAIA,KAAI,UAAU,IAAI,UAAUA,MAAK2C,KAAI;AAAQ;AACjD,UAAI3C,KAAI,MAAM,IAAI2C,KAAI3C,EAAC;AAAA,IACzB;AAEA,WAAOA;AAAA,EACT;AAKA,WAAS,WAAW,KAAK,MAAM;AAC7B,WAAO,eAAe,QAAQ,OAAO,QAAQ,IAAI,eAAe,QAAQ,IAAI,YAAY,QAAQ,QAAQ,IAAI,YAAY,SAAS,KAAK;AAAA,EACxI;AAEA,WAAS,YAAY,KAAK;AAExB,WAAO,QAAQ;AAAA,EACjB;AAIA,QAAM,sBAAsB,WAAY;AACtC,UAAM,WAAW;AACjB,UAAM,QAAQ,IAAI,MAAM,GAAG;AAE3B,aAASA,KAAI,GAAGA,KAAI,IAAI,EAAEA,IAAG;AAC3B,YAAM,MAAMA,KAAI;AAEhB,eAASmC,KAAI,GAAGA,KAAI,IAAI,EAAEA,IAAG;AAC3B,cAAM,MAAMA,EAAC,IAAI,SAASnC,EAAC,IAAI,SAASmC,EAAC;AAAA,MAC3C;AAAA,IACF;AAEA,WAAO;AAAA,EACT,EAAE;AAGF,WAAS,mBAAmB,IAAI;AAC9B,WAAO,OAAO,WAAW,cAAc,yBAAyB;AAAA,EAClE;AAEA,WAAS,yBAAyB;AAChC,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACxC;AAEA,SAAOvB;AACT;AAEA,IAAMgC,WAAU9B,KAAI;AACpB8B,SAAQ,QAAQ;AAAGA,SAAQ,YAAY;AAAGA,SAAQ,mBAAmB;AAAGA,SAAQ,YAAY;AAE5F,IAAI,SAASA,SAAQ;AACrB,IAAI,oBAAoBA,SAAQ;AAChC,IAAI,aAAaA,SAAQ;;;AlBlvEzB,IAAI,YAAY,CAAC;AAAjB,IACIC,cAAa;AACjB,SAASC,SAAQ;AACf,MAAID;AAAY,WAAO;AACvB,EAAAA,cAAa;AACb,SAAO,eAAe,WAAW,cAAc;AAAA,IAC7C,OAAO;AAAA,EACT,CAAC;AACD,YAAU,YAAY;AACtB,YAAU,YAAY;AAAA,IACpB,UAAU;AAAA,IACV,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,qBAAqB;AAAA,IACrB,wBAAwB;AAAA,IACxB,8BAA8B;AAAA,IAC9B,eAAe;AAAA,IACf,kBAAkB;AAAA,IAClB,wBAAwB;AAAA,EAC1B;AACA,SAAO;AACT;AAEA,IAAIE,aAAY,CAAC;AAAjB,IACIC,cAAa;AACjB,SAASC,SAAQ;AACf,MAAID;AAAY,WAAOD;AACvB,EAAAC,cAAa;AACb,MAAI,OAAO,WAAW;AAAY,IAAAD,WAAU,UAAU;AAAA;AAAY,IAAAA,WAAU,UAAU,SAAS,qBAAqB;AAClH,YAAM,IAAI,MAAM,8CAA8C;AAAA,IAChE;AACA,SAAOA;AACT;AAEA,IAAIG,aAAY,CAAC;AAAjB,IACIC,cAAa;AACjB,SAASC,SAAQ;AACf,MAAID;AAAY,WAAOD;AACvB,EAAAC,cAAa;AACb,SAAO,eAAeD,YAAW,cAAc;AAAA,IAC7C,OAAO;AAAA,EACT,CAAC;AACD,EAAAA,WAAU,QAAQ;AAElB,MAAI,cAAcJ,OAAM;AAExB,MAAI,cAAcG,OAAM;AAExB,MAAI,SAAS,YAAY,UAAU,QAC/B,UAAU,YAAY,UAAU,SAChC,UAAU,YAAY,UAAU,SAChC,UAAU,YAAY,UAAU,SAChC,UAAU,YAAY,UAAU,SAChC,UAAU,YAAY,UAAU,SAChC,UAAU,YAAY,UAAU,SAChC,WAAW,YAAY,UAAU;AAKrC,MAAII,SAAQ,WAAY;AACtB,aAASA,SAAQ;AAAA,IAAC;AAElB,IAAAA,OAAM,QAAQ,SAAU,MAAM,QAAQ;AACpC,UAAI,WAAW,QAAQ;AACrB,iBAAS;AAAA,MACX;AAEA,UAAI,QAAQ,IAAIA,OAAM;AACtB,UAAI,MAAM,KAAK,KACX,MAAM,KAAK,KACX,QAAQ,KAAK,OACb,QAAQ,KAAK,OACb,QAAQ,KAAK;AACjB,UAAI,gBAAgB,CAAC,SAAS,SAAU,QAAQ;AAC9C,eAAO;AAAA,MACT,IAAI,YAAY;AAIhB,YAAM,MAAM,cAAc,GAAG;AAC7B,YAAM,MAAM,cAAc,GAAG;AAC7B,YAAM,OAAO,cAAc,CAAC;AAC5B,YAAM,UAAU,cAAc,IAAI;AAClC,YAAM,MAAM,cAAc,KAAK,GAAG;AAClC,YAAM,OAAO,cAAc,KAAK,QAAQ,CAAC;AACzC,YAAM,SAAS,cAAc,CAAC;AAC9B,YAAM,QAAQ;AACd,YAAM,QAAQ;AACd,YAAM,QAAQ;AACd,YAAM,YAAY;AAClB,YAAM,UAAU,cAAc,MAAM,QAAQ,CAAC;AAC7C,YAAM,UAAU,cAAc,MAAM,QAAQ,CAAC;AAC7C,UAAI,UAAU,cAAc,MAAM,QAAQ,CAAC;AAC3C,YAAM,UAAU;AAChB,YAAM,cAAc;AACpB,YAAM,MAAM,cAAc,CAAC;AAC3B,YAAM,OAAO,cAAc,KAAK,IAAI;AACpC,YAAM,QAAQ,cAAc,KAAK,KAAK;AACtC,aAAO;AAAA,IACT;AAEA,IAAAA,OAAM,UAAU,qBAAqB,SAAU,UAAU;AACvD,cAAQ,OAAO,KAAK,IAAI,IAAI,YAAY;AAAA,IAC1C;AAEA,IAAAA,OAAM,UAAU,cAAc,WAAY;AACxC,aAAO,KAAK,mBAAmB,OAAO;AAAA,IACxC;AAEA,IAAAA,OAAM,UAAU,SAAS,WAAY;AACnC,aAAO,KAAK,mBAAmB,OAAO;AAAA,IACxC;AAEA,IAAAA,OAAM,UAAU,gBAAgB,WAAY;AAC1C,aAAO,KAAK,mBAAmB,OAAO;AAAA,IACxC;AAEA,IAAAA,OAAM,UAAU,oBAAoB,WAAY;AAC9C,aAAO,KAAK,mBAAmB,OAAO;AAAA,IACxC;AAEA,IAAAA,OAAM,UAAU,iBAAiB,WAAY;AAC3C,aAAO,KAAK,mBAAmB,OAAO;AAAA,IACxC;AAEA,IAAAA,OAAM,UAAU,SAAS,WAAY;AACnC,aAAO,KAAK,mBAAmB,OAAO;AAAA,IACxC;AAEA,IAAAA,OAAM,UAAU,WAAW,WAAY;AACrC,aAAO,KAAK,mBAAmB,QAAQ;AAAA,IACzC;AAEA,WAAOA;AAAA,EACT,EAAE;AAEF,EAAAH,WAAU,QAAQG;AAClB,EAAAH,WAAU,UAAUG;AACpB,SAAOH;AACT;AAEA,IAAII,aAAY,CAAC;AAAjB,IACIC,cAAa;AACjB,SAASC,SAAQ;AACf,MAAID;AAAY,WAAOD;AACvB,EAAAC,cAAa;AAEb,MAAI,gBAAgBD,cAAaA,WAAU,iBAAiB,SAAU,IAAIG,OAAM,MAAM;AACpF,QAAI,QAAQ,UAAU,WAAW;AAAG,eAASC,KAAI,GAAGC,KAAIF,MAAK,QAAQ,IAAIC,KAAIC,IAAGD,MAAK;AACnF,YAAI,MAAM,EAAEA,MAAKD,QAAO;AACtB,cAAI,CAAC;AAAI,iBAAK,MAAM,UAAU,MAAM,KAAKA,OAAM,GAAGC,EAAC;AACnD,aAAGA,EAAC,IAAID,MAAKC,EAAC;AAAA,QAChB;AAAA,MACF;AACA,WAAO,GAAG,OAAO,MAAM,MAAM,UAAU,MAAM,KAAKD,KAAI,CAAC;AAAA,EACzD;AAEA,SAAO,eAAeH,YAAW,cAAc;AAAA,IAC7C,OAAO;AAAA,EACT,CAAC;AACD,EAAAA,WAAU,aAAaA,WAAU,oBAAoBA,WAAU,SAAS;AACxE,MAAI,WAAW;AACf,SAAO,eAAeA,YAAW,UAAU;AAAA,IACzC,YAAY;AAAA,IACZ,KAAK,WAAY;AACf,aAAO,SAAS;AAAA,IAClB;AAAA,EACF,CAAC;AAED,WAAS,oBAAoB,MAAM;AACjC,QAAI,OAAO,CAAC;AAEZ,aAAS,KAAK,GAAG,KAAK,UAAU,QAAQ,MAAM;AAC5C,WAAK,KAAK,CAAC,IAAI,UAAU,EAAE;AAAA,IAC7B;AAEA,WAAO,KAAK,SAAS,OAAO,KAAK,MAAM,SAAS,QAAQ,cAAc,CAAC,QAAQ,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG;AAAA,EACvG;AAEA,MAAI,oBAAoB,SAAS,OAAO,eAAe;AACvD,EAAAA,WAAU,oBAAoB;AAC9B,MAAI,aAAa,SAAS,OAAO,QAAQ;AACzC,EAAAA,WAAU,aAAa;AACvB,SAAOA;AACT;AAEA,IAAIM,aAAY,CAAC;AAAjB,IACIC,cAAa;AAEjB,IAAI,YAAY,OAAO,eAAe,cAAc,aAAa,OAAO,SAAS,cAAc,OAAO;AAEtG,SAASC,SAAQ;AACf,MAAID;AAAY,WAAOD;AACvB,EAAAC,cAAa;AAOb,MAAI,YAAYD,cAAaA,WAAU,aAAa,2BAAY;AAC9D,QAAI,gBAAgB,SAAUG,IAAGC,IAAG;AAClC,sBAAgB,OAAO,kBAAkB;AAAA,QACvC,WAAW,CAAC;AAAA,MACd,aAAa,SAAS,SAAUD,IAAGC,IAAG;AACpC,QAAAD,GAAE,YAAYC;AAAA,MAChB,KAAK,SAAUD,IAAGC,IAAG;AACnB,iBAASC,MAAKD;AAAG,cAAI,OAAO,UAAU,eAAe,KAAKA,IAAGC,EAAC;AAAG,YAAAF,GAAEE,EAAC,IAAID,GAAEC,EAAC;AAAA,MAC7E;AAEA,aAAO,cAAcF,IAAGC,EAAC;AAAA,IAC3B;AAEA,WAAO,SAAUD,IAAGC,IAAG;AACrB,UAAI,OAAOA,OAAM,cAAcA,OAAM;AAAM,cAAM,IAAI,UAAU,yBAAyB,OAAOA,EAAC,IAAI,+BAA+B;AACnI,oBAAcD,IAAGC,EAAC;AAElB,eAAS,KAAK;AACZ,aAAK,cAAcD;AAAA,MACrB;AAEA,MAAAA,GAAE,YAAYC,OAAM,OAAO,OAAO,OAAOA,EAAC,KAAK,GAAG,YAAYA,GAAE,WAAW,IAAI,GAAG;AAAA,IACpF;AAAA,EACF,EAAE;AAEF,SAAO,eAAeJ,YAAW,cAAc;AAAA,IAC7C,OAAO;AAAA,EACT,CAAC;AACD,EAAAA,WAAU,IAAIA,WAAU,iBAAiBA,WAAU,UAAUA,WAAU,aAAaA,WAAU,YAAYA,WAAU,QAAQ;AAC5H,MAAI,SAAS;AACb,MAAI,OAAO;AACX,MAAI,QAAQ,OAAO,WAAW,cAAc,WAAW,OAAO,MAAM;AACpE,MAAI,WAAW,CAAC;AAEhB,WAAS,cAAc,MAAM;AAC3B,WAAO,SAAU,QAAQ;AACvB,gBAAU,WAAW,MAAM;AAE3B,eAAS,UAAU,KAAK;AACtB,YAAI,OAAO,CAAC;AAEZ,iBAAS,KAAK,GAAG,KAAK,UAAU,QAAQ,MAAM;AAC5C,eAAK,KAAK,CAAC,IAAI,UAAU,EAAE;AAAA,QAC7B;AAEA,YAAI,QAAQ,OAAO,KAAK,MAAM,QAAQ,KAAK,IAAI,CAAC,KAAK;AAErD,cAAM,OAAO;AACb,cAAM,KAAK,IAAI;AACf,cAAM,OAAO,OAAO,UAAU,OAAO,OAAO,MAAM,KAAK,IAAI;AAC3D,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT,EAAE,IAAI;AAAA,EACR;AAEA,MAAIM,KAAI,OAAO,eAAe,cAAc,aAAa;AAEzD,MAAIC,kBAAiB,SAAU,QAAQ;AACrC,cAAUA,iBAAgB,MAAM;AAEhC,aAASA,gBAAe,SAAS;AAC/B,UAAI,QAAQ;AAEZ,UAAI,OAAO,YAAY,YAAY,YAAY,MAAM;AACnD,cAAM,IAAIP,WAAU,UAAU,wBAAwB,WAAW,QAAQ;AAAA,MAC3E;AAEA,UAAI,QAAQ,SAAS;AACnB,gBAAQ,OAAO,KAAK,MAAM,QAAQ,OAAO,KAAK;AAAA,MAChD,OAAO;AACL,gBAAQ,OAAO,KAAK,MAAM,KAAK,QAAQ,QAAQ,MAAM,EAAE,MAAM,GAAG,GAAG,IAAI,OAAO,QAAQ,WAAW,MAAM,KAAK,QAAQ,QAAQ,QAAQ,EAAE,MAAM,GAAG,GAAG,EAAE,KAAK;AAAA,MAC3J;AAEA,YAAM,mBAAmB,CAAC,QAAQ;AAClC,YAAM,OAAO;AACb,YAAM,OAAO;AACb,YAAM,SAAS,QAAQ;AACvB,YAAM,WAAW,QAAQ;AACzB,YAAM,WAAW,QAAQ;AACzB,MAAAA,WAAU,MAAM,kBAAkB,OAAO,QAAQ,kBAAkB;AACnE,aAAO;AAAA,IACT;AAEA,WAAOO;AAAA,EACT,EAAED,GAAE,KAAK;AAET,EAAAN,WAAU,iBAAiBO;AAE3B,WAAS,QAAQ,KAAK,MAAM;AAC1B,WAAO,YAAY,OAAO,KAAK,QAAQ;AAEvC,QAAI,MAAM,SAAS,GAAG;AACtB,WAAO,KAAK,4CAA4C,MAAM,GAAG;AACjE,QAAI;AAEJ,QAAI,OAAO,QAAQ,YAAY;AAC7B,YAAM;AAAA,IACR,OAAO;AACL,YAAM,KAAK;AACX,UAAI,SAAS,UAAa,KAAK,WAAW;AAAG,eAAO;AACpD,WAAK,QAAQ,GAAG;AAAA,IAClB;AAEA,WAAO,OAAO,IAAI,MAAM,MAAM,IAAI,CAAC;AAAA,EACrC;AAEA,EAAAP,WAAU,UAAU;AAGpB,WAASQ,GAAE,KAAK,KAAK;AACnB,aAAS,GAAG,IAAI,OAAO,QAAQ,aAAa,MAAM,OAAO,GAAG;AAAA,EAC9D;AAEA,EAAAR,WAAU,IAAIQ;AACd,EAAAR,WAAU,QAAQ,cAAcM,GAAE,KAAK;AACvC,EAAAN,WAAU,YAAY,cAAcM,GAAE,SAAS;AAC/C,EAAAN,WAAU,aAAa,cAAcM,GAAE,UAAU;AAcjD,EAAAE,GAAE,wBAAwB,qBAAqB;AAC/C,EAAAA,GAAE,iBAAiB,IAAI;AACvB,EAAAA,GAAE,4BAA4B,iBAAiB;AAC/C,EAAAA,GAAE,iCAAiC,oCAAoC;AACvE,EAAAA,GAAE,+BAA+B,mDAAmD;AACpF,EAAAA,GAAE,iBAAiB,+BAA+B;AAClD,EAAAA,GAAE,8BAA8B,SAAU,KAAK,SAAS;AACtD,WAAO,oCAAqC,MAAM,QAAS,UAAU;AAAA,EACvE,CAAC;AACD,EAAAA,GAAE,6BAA6B,uCAAuC;AACtE,EAAAA,GAAE,8BAA8B,SAAU,KAAK;AAC7C,WAAO,UAAW,MAAM;AAAA,EAC1B,CAAC;AACD,EAAAA,GAAE,qCAAqC,SAAU,KAAK;AACpD,WAAO,iDAAiD;AAAA,EAC1D,CAAC;AACD,EAAAA,GAAE,yBAAyB,yDAAyD;AACpF,EAAAA,GAAE,gCAAgC,yBAAyB;AAC3D,EAAAA,GAAE,4BAA4B,kDAAkD;AAChF,EAAAA,GAAE,0BAA0B,oBAAoB;AAChD,EAAAA,GAAE,wBAAwB,cAAc;AACxC,EAAAA,GAAE,4BAA4B,SAAUC,OAAM,KAAK,QAAQ;AACzD,WAAO,YAAY,OAAO,QAAQ,QAAQ;AAC1C,WAAO,gBAAiBA,QAAO,eAAgB,SAAS,yBAAyB,MAAM;AAAA,EACzF,CAAC;AACD,EAAAD,GAAE,2BAA2B,sCAAsC;AACnE,EAAAA,GAAE,wBAAwB,6BAA6B;AACvD,EAAAA,GAAE,oBAAoB,yBAAyB;AAC/C,EAAAA,GAAE,0BAA0B,kDAAkD;AAC9E,EAAAA,GAAE,kBAAkB,qCAAuC;AAC3D,EAAAA,GAAE,6BAA6B,kDAAoD;AACnF,EAAAA,GAAE,6BAA6B,kBAAkB;AACjD,EAAAA,GAAE,2BAA2B,iCAAiC;AAC9D,EAAAA,GAAE,0BAA0B,wBAAwB;AACpD,EAAAA,GAAE,yBAAyB,SAAUC,OAAM,OAAO;AAChD,WAAO,gBAAiB,OAAO,KAAK,IAAI,8BAAgCA,QAAO;AAAA,EACjF,CAAC;AACD,EAAAD,GAAE,kCAAkC,SAAU,OAAO;AACnD,WAAO,gBAAiB,OAAO,KAAK,IAAI;AAAA,EAC1C,CAAC;AACD,EAAAA,GAAE,gCAAgC,6DAAiE;AACnG,EAAAA,GAAE,+BAA+B,0EAA0E;AAC3G,EAAAA,GAAE,oBAAoB,oCAAsC;AAC5D,EAAAA,GAAE,qBAAqB,iCAAiC;AACxD,EAAAA,GAAE,mBAAmB,iBAAiB;AACtC,EAAAA,GAAE,0BAA0B,SAAU,UAAU;AAC9C,WAAO,qBAAqB,MAAM,UAAU,QAAQ;AAAA,EACtD,CAAC;AACD,EAAAA,GAAE,0BAA0B,gBAAgB;AAC5C,EAAAA,GAAE,wBAAwB,qCAAqC;AAC/D,EAAAA,GAAE,oBAAoB,0CAA0C;AAChE,EAAAA,GAAE,qBAAqB,2CAA2C;AAClE,EAAAA,GAAE,oBAAoB,WAAW;AACjC,EAAAA,GAAE,yBAAyB,gCAAgC;AAC3D,EAAAA,GAAE,0BAA0B,gCAAgC;AAC5D,EAAAA,GAAE,kCAAkC,yCAAyC;AAC7E,EAAAA,GAAE,iBAAiB,qDAAqD;AACxE,EAAAA,GAAE,2BAA2B,2BAA2B;AACxD,EAAAA,GAAE,0BAA0B,oCAAoC;AAChE,EAAAA,GAAE,4BAA4B,yBAAyB;AACvD,EAAAA,GAAE,uBAAuB,gCAAgC;AACzD,EAAAA,GAAE,uBAAuB,wDAAwD;AACjF,EAAAA,GAAE,0BAA0B,qBAAqB;AACjD,EAAAA,GAAE,qBAAqB,kBAAkB;AACzC,EAAAA,GAAE,gCAAgC,aAAa;AAC/C,EAAAA,GAAE,oBAAoB,iCAAiC;AACvD,EAAAA,GAAE,oBAAoB,iCAAiC;AACvD,EAAAA,GAAE,mBAAmB,kDAAkD;AACvE,EAAAA,GAAE,gCAAgC,uDAAuD;AACzF,EAAAA,GAAE,yBAAyB,SAAU,MAAM;AACzC,WAAO,uBAAuB,OAAO;AAAA,EACvC,CAAC;AACD,EAAAA,GAAE,6BAA6B,uBAAuB;AACtD,EAAAA,GAAE,gCAAgC,uBAAuB;AACzD,EAAAA,GAAE,gCAAgC,0DAA4D;AAC9F,EAAAA,GAAE,0BAA0B,2CAA2C;AACvE,EAAAA,GAAE,sCAAsC,gDAAgD;AACxF,EAAAA,GAAE,+BAA+B,uDAAuD;AACxF,EAAAA,GAAE,wBAAwB,sBAAsB;AAChD,EAAAA,GAAE,sBAAsB,oBAAoB;AAC5C,EAAAA,GAAE,0BAA0B,yBAAyB;AACrD,EAAAA,GAAE,2BAA2B,0BAA0B;AACvD,EAAAA,GAAE,uBAAuB,2EAAgF;AAEzG,WAAS,eAAeC,OAAM,UAAU,QAAQ;AAC9C,WAAOA,OAAM,kBAAkB;AAE/B,QAAI;AAEJ,QAAI,SAAS,SAAS,MAAM,GAAG;AAC7B,mBAAa;AACb,iBAAW,SAAS,MAAM,MAAM,EAAE,CAAC;AAAA,IACrC,OAAO;AACL,mBAAa;AAAA,IACf;AAEA,QAAI;AAEJ,QAAI,MAAM,QAAQA,KAAI,GAAG;AACvB,UAAI,QAAQA,MAAK,IAAI,SAAU,KAAK;AAClC,eAAO,MAAO,MAAM;AAAA,MACtB,CAAC,EAAE,KAAK,IAAI;AACZ,YAAM,SAAS,QAAQ,gBAAgB,aAAa,MAAM,MAAM,UAAU,MAAM;AAAA,IAClF,WAAWA,MAAK,SAAS,WAAW,GAAG;AAErC,YAAM,SAASA,QAAO,MAAM,aAAa,MAAM,MAAM,UAAU,MAAM;AAAA,IACvE,OAAO;AACL,UAAI,OAAOA,MAAK,SAAS,GAAG,IAAI,aAAa;AAC7C,YAAM,UAAWA,QAAO,OAAQ,OAAO,MAAM,aAAa,MAAM,MAAM,UAAU,MAAM;AAAA,IACxF;AAGA,QAAI,UAAU,UAAU,GAAG;AACzB,aAAO,sBAAsB,WAAW,OAAO,OAAO,SAAS;AAAA,IACjE;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,cAAc;AACrB,QAAI,OAAO,CAAC;AAEZ,aAAS,KAAK,GAAG,KAAK,UAAU,QAAQ,MAAM;AAC5C,WAAK,EAAE,IAAI,UAAU,EAAE;AAAA,IACzB;AAEA,WAAO,KAAK,SAAS,GAAG,wCAAwC;AAChE,QAAI,MAAM;AACV,QAAI,MAAM,KAAK;AACf,WAAO,KAAK,IAAI,SAAUC,IAAG;AAC3B,aAAO,MAAOA,KAAI;AAAA,IACpB,CAAC;AAED,YAAQ,KAAK;AAAA,MACX,KAAK;AACH,eAAO,KAAK,CAAC,IAAI;AACjB;AAAA,MAEF,KAAK;AACH,eAAO,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,IAAI;AACrC;AAAA,MAEF;AACE,eAAO,KAAK,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI;AACvC,eAAO,WAAW,KAAK,MAAM,CAAC,IAAI;AAClC;AAAA,IACJ;AAEA,WAAO,MAAM;AAAA,EACf;AAEA,WAAS,MAAM,UAAU,OAAO;AAC9B,WAAO,UAAU,sBAAsB;AACvC,WAAO,OAAO,UAAU,UAAU,mBAAmB;AAErD,QAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,UAAI,MAAM,SAAS;AACnB,aAAO,MAAM,GAAG,mDAAmD;AAEnE,iBAAW,SAAS,IAAI,SAAUZ,IAAG;AACnC,eAAO,OAAOA,EAAC;AAAA,MACjB,CAAC;AAED,UAAI,MAAM,GAAG;AACX,eAAO,YAAY,QAAQ,MAAM,SAAS,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,IAAI,UAAU,SAAS,MAAM,CAAC;AAAA,MACrG,WAAW,QAAQ,GAAG;AACpB,eAAO,YAAY,QAAQ,MAAM,SAAS,CAAC,IAAI,SAAS,SAAS,CAAC;AAAA,MACpE,OAAO;AACL,eAAO,QAAQ,QAAQ,MAAM,SAAS,CAAC;AAAA,MACzC;AAAA,IACF,OAAO;AACL,aAAO,QAAQ,QAAQ,MAAM,OAAO,QAAQ;AAAA,IAC9C;AAAA,EACF;AAEA,WAAS,kBAAkBW,OAAM,WAAW;AAC1C,QAAI,WAAW;AACb,aAAO;AAAA,IACT,OAAO;AACL,aAAO,MAAOA,QAAO;AAAA,IACvB;AAAA,EACF;AAEA,SAAOT;AACT;AAEA,IAAIW,aAAY,CAAC;AAAjB,IACIC,cAAa;AACjB,SAASC,SAAQ;AACf,MAAID;AAAY,WAAOD;AACvB,EAAAC,cAAa;AACb,SAAO,eAAeD,YAAW,cAAc;AAAA,IAC7C,OAAO;AAAA,EACT,CAAC;AACD,EAAAA,WAAU,gBAAgBA,WAAU,iBAAiBA,WAAU,gBAAgB;AAE/E,MAAI,WAAWf,OAAM;AAErB,MAAI,SAASM,OAAM;AAEnB,EAAAS,WAAU,gBAAgB;AAE1B,WAAS,eAAe,UAAU;AAChC,QAAI,YAAY,CAAC,SAAS,OAAO,WAAW,QAAQ;AAAG,YAAM,IAAI,OAAO,UAAU,kCAAkC,QAAQ;AAAA,EAC9H;AAEA,EAAAA,WAAU,iBAAiB;AAE3B,WAAS,cAAc,KAAK,UAAU;AACpC,QAAI,CAAC,YAAY,aAAaA,WAAU;AAAe,aAAO;AAE9D,QAAI,aAAa;AAAU,aAAO,IAAI,SAAS,OAAO,GAAG;AAEzD,WAAO,IAAI,SAAS,OAAO,GAAG,EAAE,SAAS,QAAQ;AAAA,EACnD;AAEA,EAAAA,WAAU,gBAAgB;AAC1B,SAAOA;AACT;AAEA,IAAIG,aAAY,CAAC;AAAjB,IACIC,cAAa;AACjB,SAASC,SAAQ;AACf,MAAID;AAAY,WAAOD;AACvB,EAAAC,cAAa;AACb,SAAO,eAAeD,YAAW,cAAc;AAAA,IAC7C,OAAO;AAAA,EACT,CAAC;AACD,EAAAA,WAAU,SAAS;AAEnB,MAAI,cAAc5B,OAAM;AAExB,MAAI,aAAa2B,OAAM;AAEvB,MAAI,SAAS,YAAY,UAAU,QAC/B,UAAU,YAAY,UAAU,SAChC,UAAU,YAAY,UAAU,SAChC,UAAU,YAAY,UAAU,SAChC,UAAU,YAAY,UAAU,SAChC,UAAU,YAAY,UAAU,SAChC,UAAU,YAAY,UAAU,SAChC,WAAW,YAAY,UAAU;AAKrC,MAAII,UAAS,WAAY;AACvB,aAASA,UAAS;AAChB,WAAK,OAAO;AACZ,WAAK,OAAO;AAAA,IACd;AAEA,IAAAA,QAAO,QAAQ,SAAUC,OAAM,UAAU;AACvC,UAAI,SAAS,IAAID,QAAO;AACxB,UAAI,OAAOC,MAAK,QAAQ,EAAE;AAC1B,aAAO,QAAQ,GAAG,WAAW,eAAeA,MAAK,QAAQ,GAAG,QAAQ;AACpE,aAAO,OAAO;AACd,aAAO;AAAA,IACT;AAEA,IAAAD,QAAO,UAAU,qBAAqB,SAAU,UAAU;AACxD,cAAQ,KAAK,OAAO,YAAY;AAAA,IAClC;AAEA,IAAAA,QAAO,UAAU,cAAc,WAAY;AACzC,aAAO,KAAK,mBAAmB,OAAO;AAAA,IACxC;AAEA,IAAAA,QAAO,UAAU,SAAS,WAAY;AACpC,aAAO,KAAK,mBAAmB,OAAO;AAAA,IACxC;AAEA,IAAAA,QAAO,UAAU,gBAAgB,WAAY;AAC3C,aAAO,KAAK,mBAAmB,OAAO;AAAA,IACxC;AAEA,IAAAA,QAAO,UAAU,oBAAoB,WAAY;AAC/C,aAAO,KAAK,mBAAmB,OAAO;AAAA,IACxC;AAEA,IAAAA,QAAO,UAAU,iBAAiB,WAAY;AAC5C,aAAO,KAAK,mBAAmB,OAAO;AAAA,IACxC;AAEA,IAAAA,QAAO,UAAU,SAAS,WAAY;AACpC,aAAO,KAAK,mBAAmB,OAAO;AAAA,IACxC;AAEA,IAAAA,QAAO,UAAU,WAAW,WAAY;AACtC,aAAO,KAAK,mBAAmB,QAAQ;AAAA,IACzC;AAEA,WAAOA;AAAA,EACT,EAAE;AAEF,EAAAH,WAAU,SAASG;AACnB,EAAAH,WAAU,UAAUG;AACpB,SAAOH;AACT;AAEA,IAAIK,aAAY,CAAC;AAAjB,IACIC,cAAa;AAEjB,IAAIC,aAAY,OAAO,eAAe,cAAc,aAAa,OAAO,SAAS,cAAc,OAAO;AAEtG,SAASC,SAAQ;AACf,MAAIF;AAAY,WAAOD;AACvB,EAAAC,cAAa;AACb,MAAI,YAAYG;AAChB,SAAO,eAAeJ,YAAW,cAAc;AAAA,IAC7C,OAAO;AAAA,EACT,CAAC;AAED,MAAI;AAEJ,MAAI,OAAO,UAAU,aAAa;AAAY,oBAAgB,UAAU,SAAS,KAAK,OAAO,eAAe,cAAc,aAAaE,UAAS;AAAA;AAAO,oBAAgB,WAAW,KAAK,OAAO,eAAe,cAAc,aAAaA,UAAS;AACjP,EAAAF,WAAU,UAAU;AACpB,SAAOA;AACT;AAEA,IAAIK,aAAY,CAAC;AAAjB,IACIC,cAAa;AACjB,SAASC,SAAQ;AACf,MAAID;AAAY,WAAOD;AACvB,EAAAC,cAAa;AACb,MAAI,YAAYF;AAEhB,SAAO,eAAeC,YAAW,cAAc;AAAA,IAC7C,OAAO;AAAA,EACT,CAAC;AACD,EAAAA,WAAU,gBAAgB;AAY1B,MAAI,qBAAqB,WAAY;AACnC,QAAI,OAAO,cAAc,aAAa;AACpC,aAAO;AAAA,IACT;AAEA,QAAI;AACF,aAAOD;AAAA,IACT,SAAS,IAAI;AACX,aAAO;AAAA,IACT;AAAA,EACF;AAEA,WAAS,gBAAgB;AACvB,QAAIlB,KAAI,mBAAmB,KAAK,CAAC;AACjC,QAAI,CAACA,GAAE;AAAQ,MAAAA,GAAE,SAAS,WAAY;AACpC,eAAO;AAAA,MACT;AACA,QAAI,CAACA,GAAE;AAAQ,MAAAA,GAAE,SAAS,WAAY;AACpC,eAAO;AAAA,MACT;AACA,QAAI,CAACA,GAAE;AAAK,MAAAA,GAAE,MAAM,WAAY;AAC9B,eAAO;AAAA,MACT;AACA,QAAI,CAACA,GAAE;AAAU,MAAAA,GAAE,WAAWiB,OAAM,EAAE;AACtC,QAAI,CAACjB,GAAE;AAAa,MAAAA,GAAE,cAAc,SAAU,SAAS,MAAM;AAE3D,gBAAQ,KAAK,KAAK,QAAQ,OAAO,OAAO,MAAM,OAAO;AAAA,MACvD;AACA,QAAI,CAACA,GAAE;AAAK,MAAAA,GAAE,MAAM,CAAC;AACrB,WAAOA;AAAA,EACT;AAEA,EAAAmB,WAAU,gBAAgB;AAC1B,EAAAA,WAAU,UAAU,cAAc;AAClC,SAAOA;AACT;AAEA,IAAIG,aAAY,CAAC;AAAjB,IACIC,cAAa;AACjB,SAASC,SAAQ;AACf,MAAID;AAAY,WAAOD;AACvB,EAAAC,cAAa;AAEb,MAAI,YAAYD,cAAaA,WAAU,aAAa,2BAAY;AAC9D,QAAI,gBAAgB,SAAUxB,IAAGC,IAAG;AAClC,sBAAgB,OAAO,kBAAkB;AAAA,QACvC,WAAW,CAAC;AAAA,MACd,aAAa,SAAS,SAAUD,IAAGC,IAAG;AACpC,QAAAD,GAAE,YAAYC;AAAA,MAChB,KAAK,SAAUD,IAAGC,IAAG;AACnB,iBAASC,MAAKD;AAAG,cAAI,OAAO,UAAU,eAAe,KAAKA,IAAGC,EAAC;AAAG,YAAAF,GAAEE,EAAC,IAAID,GAAEC,EAAC;AAAA,MAC7E;AAEA,aAAO,cAAcF,IAAGC,EAAC;AAAA,IAC3B;AAEA,WAAO,SAAUD,IAAGC,IAAG;AACrB,UAAI,OAAOA,OAAM,cAAcA,OAAM;AAAM,cAAM,IAAI,UAAU,yBAAyB,OAAOA,EAAC,IAAI,+BAA+B;AACnI,oBAAcD,IAAGC,EAAC;AAElB,eAAS,KAAK;AACZ,aAAK,cAAcD;AAAA,MACrB;AAEA,MAAAA,GAAE,YAAYC,OAAM,OAAO,OAAO,OAAOA,EAAC,KAAK,GAAG,YAAYA,GAAE,WAAW,IAAI,GAAG;AAAA,IACpF;AAAA,EACF,EAAE;AAEF,SAAO,eAAeuB,YAAW,cAAc;AAAA,IAC7C,OAAO;AAAA,EACT,CAAC;AACD,EAAAA,WAAU,OAAOA,WAAU,OAAOA,WAAU,OAAOA,WAAU,MAAM;AAEnE,MAAI,YAAYD,OAAM;AAEtB,MAAI,WAAW9B,OAAM;AAErB,MAAI,cAAcV,OAAM;AAExB,MAAI,WAAW;AAEf,MAAI,UAAUM,OAAM;AAEpB,MAAI,SAAS,YAAY,UAAU,QAC/B,UAAU,YAAY,UAAU,SAChC,UAAU,YAAY,UAAU,SAChC,UAAU,YAAY,UAAU,SAChC,WAAW,YAAY,UAAU;AACrC,EAAAmC,WAAU,MAAM;AAKhB,MAAI,OAAO,SAAU,QAAQ;AAC3B,cAAUG,OAAM,MAAM;AAEtB,aAASA,MAAK,KAAK,MAAM;AACvB,UAAI,SAAS,QAAQ;AACnB,eAAO;AAAA,MACT;AAEA,UAAI,QAAQ,OAAO,KAAK,IAAI,KAAK;AAGjC,YAAM,MAAM,UAAU,QAAQ,OAAO;AACrC,YAAM,MAAM,UAAU,QAAQ,OAAO;AACrC,YAAM,QAAQ,oBAAI,KAAK;AACvB,YAAM,QAAQ,oBAAI,KAAK;AACvB,YAAM,QAAQ,oBAAI,KAAK;AACvB,YAAM,OAAO;AAEb,YAAM,OAAO;AAGb,YAAM,QAAQ;AACd,YAAM,OAAO;AACb,YAAM,QAAQ;AACd,YAAM,MAAM;AACZ,aAAO;AAAA,IACT;AAEA,IAAAA,MAAK,UAAU,YAAY,SAAU,UAAU;AAC7C,UAAI,aAAa,QAAQ;AACvB,mBAAW;AAAA,MACb;AAEA,aAAO,KAAK,UAAU,EAAE,SAAS,QAAQ;AAAA,IAC3C;AAEA,IAAAA,MAAK,UAAU,YAAY,SAAU,KAAK;AAExC,WAAK,OAAO,GAAG,SAAS,YAAY,KAAK,MAAM;AAC/C,WAAK,MAAM;AAAA,IACb;AAEA,IAAAA,MAAK,UAAU,YAAY,WAAY;AACrC,UAAI,CAAC,KAAK;AAAK,aAAK,WAAW,GAAG,SAAS,mBAAmB,CAAC,CAAC;AAChE,cAAQ,GAAG,SAAS,YAAY,KAAK,GAAG;AAAA,IAC1C;AAEA,IAAAA,MAAK,UAAU,YAAY,SAAUC,MAAK;AACxC,WAAK,OAAO,GAAG,SAAS,YAAYA,IAAG;AAEvC,WAAK,MAAM;AAAA,IACb;AAEA,IAAAD,MAAK,UAAU,UAAU,WAAY;AACnC,aAAO,KAAK,MAAM,KAAK,IAAI,SAAS;AAAA,IACtC;AAEA,IAAAA,MAAK,UAAU,kBAAkB,SAAU,UAAU;AACnD,WAAK,OAAO,KAAK,OAAO,CAAC,SAAS;AAAA,IACpC;AAEA,IAAAA,MAAK,UAAU,YAAY,WAAY;AACrC,WAAK,gBAAgB,OAAO;AAAA,IAC9B;AAEA,IAAAA,MAAK,UAAU,iBAAiB,WAAY;AAC1C,WAAK,gBAAgB,OAAO;AAAA,IAC9B;AAEA,IAAAA,MAAK,UAAU,eAAe,WAAY;AACxC,WAAK,gBAAgB,OAAO;AAAA,IAC9B;AAEA,IAAAA,MAAK,UAAU,SAAS,WAAY;AAClC,cAAQ,KAAK,OAAO,YAAY;AAAA,IAClC;AAEA,IAAAA,MAAK,UAAU,cAAc,WAAY;AACvC,cAAQ,KAAK,OAAO,YAAY;AAAA,IAClC;AAEA,IAAAA,MAAK,UAAU,YAAY,WAAY;AAErC,cAAQ,KAAK,OAAO,YAAY;AAAA,IAClC;AAEA,IAAAA,MAAK,UAAU,cAAc,SAAU,OAAO;AAC5C,WAAK,UAAU;AACf,WAAK,aAAa;AAAA,IACpB;AAEA,IAAAA,MAAK,UAAU,QAAQ,SAAUC,MAAK,KAAK,KAAK,KAAK;AACnD,UAAI,QAAQ,QAAQ;AAClB,cAAM;AAAA,MACR;AAEA,UAAI,QAAQ,QAAQ;AAClB,cAAMA,KAAI;AAAA,MACZ;AAEA,UAAI,QAAQ,QAAQ;AAClB,cAAM;AAAA,MACR;AAEA,UAAI,CAAC,KAAK;AAAK,aAAK,OAAO,GAAG,SAAS,mBAAmB,CAAC;AAE3D,UAAI,MAAM,MAAM,KAAK,IAAI,QAAQ;AAC/B,YAAI,UAAU,GAAG,SAAS,mBAAmB,MAAM,GAAG;AACtD,aAAK,IAAI,KAAK,QAAQ,GAAG,GAAG,KAAK,IAAI,MAAM;AAC3C,aAAK,MAAM;AAAA,MACb;AAEA,MAAAA,KAAI,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,GAAG;AACtC,WAAK,MAAM;AACX,aAAO;AAAA,IACT;AAGA,IAAAD,MAAK,UAAU,OAAO,SAAUC,MAAK,KAAK,KAAK,KAAK;AAClD,UAAI,QAAQ,QAAQ;AAClB,cAAM;AAAA,MACR;AAEA,UAAI,QAAQ,QAAQ;AAClB,cAAMA,KAAI;AAAA,MACZ;AAEA,UAAI,QAAQ,QAAQ;AAClB,cAAM;AAAA,MACR;AAEA,UAAI,CAAC,KAAK;AAAK,aAAK,OAAO,GAAG,SAAS,mBAAmB,CAAC;AAC3D,UAAI,YAAY;AAEhB,UAAI,YAAYA,KAAI,YAAY;AAC9B,oBAAYA,KAAI;AAAA,MAClB;AAEA,UAAI,YAAY,MAAM,KAAK,IAAI,QAAQ;AACrC,oBAAY,KAAK,IAAI,SAAS;AAAA,MAChC;AAEA,WAAK,IAAI,KAAKA,MAAK,KAAK,KAAK,MAAM,SAAS;AAC5C,aAAO;AAAA,IACT;AAEA,IAAAD,MAAK,UAAU,WAAW,SAAU,KAAK;AACvC,UAAI,QAAQ,QAAQ;AAClB,cAAM;AAAA,MACR;AAEA,UAAI,CAAC;AAAK,aAAK,OAAO,GAAG,SAAS,mBAAmB,CAAC;AAAA,WAAO;AAC3D,YAAI,CAAC,KAAK;AAAK,eAAK,OAAO,GAAG,SAAS,mBAAmB,CAAC;AAE3D,YAAI,OAAO,KAAK,IAAI,QAAQ;AAC1B,eAAK,MAAM,KAAK,IAAI,MAAM,GAAG,GAAG;AAAA,QAClC,OAAO;AACL,cAAIC,QAAO,GAAG,SAAS,mBAAmB,CAAC;AAC3C,eAAK,IAAI,KAAKA,IAAG;AACjB,UAAAA,KAAI,KAAK,GAAG,GAAG;AAAA,QACjB;AAAA,MACF;AACA,WAAK,MAAM;AAAA,IACb;AAEA,IAAAD,MAAK,UAAU,QAAQ,SAAU,MAAM;AACrC,WAAK,OAAO;AACZ,WAAK,OAAO,KAAK,OAAO,CAAC,MAAM;AAC/B,WAAK,MAAM;AAAA,IACb;AAEA,IAAAA,MAAK,UAAU,QAAQ,SAAU,KAAK,KAAK;AACzC,WAAK,MAAM;AACX,WAAK,MAAM;AACX,WAAK,MAAM;AAAA,IACb;AAEA,IAAAA,MAAK,UAAU,QAAQ,WAAY;AACjC,WAAK,QAAQ,oBAAI,KAAK;AACtB,WAAK,KAAK,UAAU,IAAI;AAAA,IAC1B;AAEA,IAAAA,MAAK,UAAU,UAAU,SAAU,KAAK,KAAK;AAC3C,UAAI,QAAQ,QAAQ;AAClB,cAAM,UAAU,QAAQ,OAAO;AAAA,MACjC;AAEA,UAAI,QAAQ,QAAQ;AAClB,cAAM,UAAU,QAAQ,OAAO;AAAA,MACjC;AAEA,UAAI,KAAK,OAAO,GAEd;AACA,eAAO;AAAA,MACT;AAEA,UAAI,QAAQ,KAAK,KAAK;AACpB,YAAI,KAAK,OAAO,IAEd;AACA,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,UAAI,QAAQ,KAAK,KAAK;AACpB,YAAI,KAAK,OAAO,KAEd;AACA,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAEA,IAAAA,MAAK,UAAU,WAAW,SAAU,KAAK,KAAK;AAC5C,UAAI,QAAQ,QAAQ;AAClB,cAAM,UAAU,QAAQ,OAAO;AAAA,MACjC;AAEA,UAAI,QAAQ,QAAQ;AAClB,cAAM,UAAU,QAAQ,OAAO;AAAA,MACjC;AAEA,UAAI,KAAK,OAAO,GAEd;AACA,eAAO;AAAA,MACT;AAEA,UAAI,QAAQ,KAAK,KAAK;AACpB,YAAI,KAAK,OAAO,IAEd;AACA,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,UAAI,QAAQ,KAAK,KAAK;AACpB,YAAI,KAAK,OAAO,KAEd;AACA,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAEA,IAAAA,MAAK,UAAU,MAAM,WAAY;AAC/B,WAAK,KAAK,UAAU,IAAI;AAAA,IAC1B;AAEA,IAAAA,MAAK,UAAU,SAAS,WAAY;AAClC,aAAO;AAAA,QACL,KAAK,KAAK;AAAA,QACV,KAAK,KAAK;AAAA,QACV,KAAK,KAAK;AAAA,QACV,OAAO,KAAK,MAAM,QAAQ;AAAA,QAC1B,OAAO,KAAK,MAAM,QAAQ;AAAA,QAC1B,OAAO,KAAK,MAAM,QAAQ;AAAA,QAC1B,MAAM,KAAK;AAAA,QACX,MAAM,KAAK;AAAA,QACX,OAAO,KAAK;AAAA,QACZ,SAAS,KAAK;AAAA,QACd,MAAM,KAAK,UAAU;AAAA,MACvB;AAAA,IACF;AAEA,WAAOA;AAAA,EACT,EAAE,SAAS,YAAY;AAEvB,EAAAH,WAAU,OAAO;AAKjB,MAAI,OAAO,SAAU,QAAQ;AAC3B,cAAUK,OAAM,MAAM;AAEtB,aAASA,MAAKC,MAAK,QAAQxB,OAAM;AAC/B,UAAI,QAAQ,OAAO,KAAK,IAAI,KAAK;AAEjC,YAAM,WAAW,CAAC;AAElB,YAAM,QAAQ,CAAC;AAEf,YAAM,MAAM;AAEZ,YAAM,SAAS;AACf,YAAM,MAAMwB;AACZ,YAAM,SAAS;AACf,YAAM,QAAQ,SAAS,OAAO,MAAM,OAAO,CAACxB,KAAI,CAAC,IAAI,CAACA,KAAI;AAC1D,aAAO;AAAA,IACT;AAEA,IAAAuB,MAAK,UAAU,UAAU,SAAU,MAAM;AACvC,WAAK,OAAO;AACZ,WAAK,MAAM,KAAK;AAAA,IAClB;AAEA,IAAAA,MAAK,UAAU,UAAU,WAAY;AACnC,aAAO,KAAK;AAAA,IACd;AAEA,IAAAA,MAAK,UAAU,cAAc,SAAUvB,OAAM,MAAM;AACjD,UAAI,SAAS,QAAQ;AACnB,eAAO,KAAK,IAAI,WAAW;AAAA,MAC7B;AAEA,UAAIS,QAAO,IAAIc,MAAK,KAAK,KAAK,MAAMvB,KAAI;AACxC,MAAAS,MAAK,QAAQ,IAAI;AAEjB,UAAI,KAAK,YAAY;AAAG;AAExB,WAAK,SAAST,OAAMS,KAAI;AACxB,aAAOA;AAAA,IACT;AAEA,IAAAc,MAAK,UAAU,WAAW,SAAUvB,OAAMS,OAAM;AAC9C,UAAIA,UAAS,QAAQ;AACnB,QAAAA,QAAO,IAAIc,MAAK,KAAK,KAAK,MAAMvB,KAAI;AAAA,MACtC;AAEA,WAAK,SAASA,KAAI,IAAIS;AACtB,MAAAA,MAAK,SAAS;AACd,WAAK;AACL,WAAK,KAAK,aAAaA,OAAM,IAAI;AACjC,aAAOA;AAAA,IACT;AAEA,IAAAc,MAAK,UAAU,cAAc,SAAUd,OAAM;AAC3C,aAAO,KAAK,SAASA,MAAK,QAAQ,CAAC;AACnC,WAAK;AACL,WAAK,KAAK,gBAAgBA,OAAM,IAAI;AAAA,IACtC;AAEA,IAAAc,MAAK,UAAU,WAAW,SAAUvB,OAAM;AACxC,UAAI,OAAO,eAAe,KAAK,KAAK,UAAUA,KAAI,GAAG;AACnD,eAAO,KAAK,SAASA,KAAI;AAAA,MAC3B;AAAA,IACF;AAEA,IAAAuB,MAAK,UAAU,UAAU,WAAY;AACnC,aAAO,KAAK,MAAM,KAAKL,WAAU,GAAG;AAAA,IACtC;AAEA,IAAAK,MAAK,UAAU,UAAU,WAAY;AACnC,aAAO,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC;AAAA,IACzC;AAmBA,IAAAA,MAAK,UAAU,OAAO,SAAU,OAAO,MAAMlC,IAAG;AAC9C,UAAI,SAAS,QAAQ;AACnB,eAAO,MAAM;AAAA,MACf;AAEA,UAAIA,OAAM,QAAQ;AAChB,QAAAA,KAAI;AAAA,MACN;AAEA,UAAIA,MAAK,MAAM;AAAQ,eAAO;AAC9B,UAAIA,MAAK;AAAM,eAAO;AACtB,UAAI,OAAO,MAAMA,EAAC;AAClB,UAAIoB,QAAO,KAAK,SAAS,IAAI;AAC7B,UAAI,CAACA;AAAM,eAAO;AAClB,aAAOA,MAAK,KAAK,OAAO,MAAMpB,KAAI,CAAC;AAAA,IACrC;AAEA,IAAAkC,MAAK,UAAU,SAAS,WAAY;AAClC,aAAO;AAAA,QACL,OAAO,KAAK;AAAA,QACZ,KAAK,KAAK;AAAA,QACV,UAAU,OAAO,KAAK,KAAK,QAAQ;AAAA,MACrC;AAAA,IACF;AAEA,WAAOA;AAAA,EACT,EAAE,SAAS,YAAY;AAEvB,EAAAL,WAAU,OAAO;AAKjB,MAAI,OAAO,WAAY;AASrB,aAASO,MAAKhB,OAAM,MAAM,OAAO,IAAI;AAKnC,WAAK,WAAW;AAChB,WAAK,OAAOA;AACZ,WAAK,OAAO;AACZ,WAAK,QAAQ;AACb,WAAK,KAAK;AAAA,IACZ;AAEA,IAAAgB,MAAK,UAAU,YAAY,SAAU,UAAU;AAE7C,aAAO,KAAK,KAAK,UAAU;AAAA,IAC7B;AAEA,IAAAA,MAAK,UAAU,YAAY,SAAU,KAAK;AACxC,WAAK,KAAK,UAAU,GAAG;AAAA,IACzB;AAEA,IAAAA,MAAK,UAAU,YAAY,WAAY;AACrC,aAAO,KAAK,KAAK,UAAU;AAAA,IAC7B;AAEA,IAAAA,MAAK,UAAU,YAAY,SAAUH,MAAK;AACxC,WAAK,KAAK,UAAUA,IAAG;AAAA,IACzB;AAEA,IAAAG,MAAK,UAAU,UAAU,WAAY;AACnC,aAAO,KAAK,KAAK,QAAQ;AAAA,IAC3B;AAEA,IAAAA,MAAK,UAAU,WAAW,SAAU,KAAK;AACvC,WAAK,KAAK,SAAS,GAAG;AAAA,IACxB;AAEA,IAAAA,MAAK,UAAU,SAAS,SAAU,UAAU;AAC1C,WAAK,WAAW;AAAA,IAClB;AAEA,IAAAA,MAAK,UAAU,QAAQ,WAAY;AACjC,aAAO,QAAQ,QAAQ,MAAM,KAAK,IAAI;AAAA,IACxC;AAEA,IAAAA,MAAK,UAAU,QAAQ,SAAUH,MAAK,QAAQI,SAAQ,UAAU;AAC9D,UAAI,WAAW,QAAQ;AACrB,iBAAS;AAAA,MACX;AAEA,UAAIA,YAAW,QAAQ;AACrB,QAAAA,UAASJ,KAAI;AAAA,MACf;AAEA,UAAI,OAAO,aAAa;AAAU,mBAAW,KAAK;AAClD,UAAI,KAAK,QAAQ;AAAU,mBAAW,KAAK,QAAQ;AACnD,UAAI,QAAQ,KAAK,KAAK,MAAMA,MAAK,QAAQI,SAAQ,QAAQ;AACzD,WAAK,WAAW,WAAW;AAC3B,aAAO;AAAA,IACT;AAEA,IAAAD,MAAK,UAAU,OAAO,SAAUH,MAAK,QAAQI,SAAQ,UAAU;AAC7D,UAAI,WAAW,QAAQ;AACrB,iBAAS;AAAA,MACX;AAEA,UAAIA,YAAW,QAAQ;AACrB,QAAAA,UAASJ,KAAI;AAAA,MACf;AAEA,UAAI,OAAO,aAAa;AAAU,mBAAW,KAAK;AAClD,UAAI,QAAQ,KAAK,KAAK,KAAKA,MAAK,QAAQI,SAAQ,QAAQ;AACxD,WAAK,WAAW,WAAW;AAC3B,aAAO;AAAA,IACT;AAEA,IAAAD,MAAK,UAAU,QAAQ,SAAU,MAAM;AACrC,WAAK,KAAK,MAAM,IAAI;AAAA,IACtB;AAEA,IAAAA,MAAK,UAAU,QAAQ,SAAU,KAAK,KAAK;AACzC,WAAK,KAAK,MAAM,KAAK,GAAG;AAAA,IAC1B;AAEA,WAAOA;AAAA,EACT,EAAE;AAEF,EAAAP,WAAU,OAAO;AACjB,SAAOA;AACT;AAEA,IAAIS,aAAY,CAAC;AAAjB,IACIC,cAAa;AAEjB,IAAIC,aAAY,OAAO,eAAe,cAAc,aAAa,OAAO,SAAS,cAAc,OAAO;AAEtG,SAASC,SAAQ;AACf,MAAIF;AAAY,WAAOD;AACvB,EAAAC,cAAa;AACb,SAAO,eAAeD,YAAW,cAAc;AAAA,IAC7C,OAAO;AAAA,EACT,CAAC;AAMD,WAAS,gBAAgB,UAAU,MAAM,MAAM;AAC7C,QAAI,MAAM,WAAW,MAAM,OAAO,eAAe,cAAc,aAAaE,YAAW,SAAS;AAChG,QAAI,OAAO,OAAO,QAAQ,YAAY,OAAO,IAAI,UAAU;AAAY,UAAI,MAAM;AACjF,WAAO;AAAA,EACT;AAEA,EAAAF,WAAU,UAAU;AACpB,SAAOA;AACT;AAEA,IAAII,aAAY,CAAC;AAAjB,IACIC,cAAa;AACjB,SAASC,SAAQ;AACf,MAAID;AAAY,WAAOD;AACvB,EAAAC,cAAa;AAEb,MAAI,gBAAgBD,cAAaA,WAAU,iBAAiB,SAAU,IAAI3C,OAAM,MAAM;AACpF,QAAI,QAAQ,UAAU,WAAW;AAAG,eAASC,KAAI,GAAGC,KAAIF,MAAK,QAAQ,IAAIC,KAAIC,IAAGD,MAAK;AACnF,YAAI,MAAM,EAAEA,MAAKD,QAAO;AACtB,cAAI,CAAC;AAAI,iBAAK,MAAM,UAAU,MAAM,KAAKA,OAAM,GAAGC,EAAC;AACnD,aAAGA,EAAC,IAAID,MAAKC,EAAC;AAAA,QAChB;AAAA,MACF;AACA,WAAO,GAAG,OAAO,MAAM,MAAM,UAAU,MAAM,KAAKD,KAAI,CAAC;AAAA,EACzD;AAEA,SAAO,eAAe2C,YAAW,cAAc;AAAA,IAC7C,OAAO;AAAA,EACT,CAAC;AACD,EAAAA,WAAU,aAAa;AAEvB,WAASG,WAAUV,MAAK,IAAI,WAAW;AACrC,QAAI,cAAc,QAAQ;AACxB,kBAAY,SAAU,OAAO;AAC3B,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO,WAAY;AACjB,UAAI,OAAO,CAAC;AAEZ,eAAS,KAAK,GAAG,KAAK,UAAU,QAAQ,MAAM;AAC5C,aAAK,EAAE,IAAI,UAAU,EAAE;AAAA,MACzB;AAEA,aAAO,IAAI,QAAQ,SAAUW,UAAS,QAAQ;AAC5C,QAAAX,KAAI,EAAE,EAAE,KAAKA,IAAG,EAAE,MAAM,QAAQ,cAAc,cAAc,CAAC,GAAG,MAAM,KAAK,GAAG,CAAC,SAAU,OAAO,QAAQ;AACtG,cAAI;AAAO,mBAAO,OAAO,KAAK;AAC9B,iBAAOW,SAAQ,UAAU,MAAM,CAAC;AAAA,QAClC,CAAC,GAAG,KAAK,CAAC;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,EACF;AAEA,MAAI,aAAa,WAAY;AAC3B,aAASC,YAAWZ,MAAK,IAAI;AAC3B,WAAK,MAAMA;AACX,WAAK,KAAK;AAAA,IACZ;AAEA,IAAAY,YAAW,UAAU,aAAa,SAAU,MAAM,SAAS;AACzD,aAAOF,WAAU,KAAK,KAAK,YAAY,EAAE,KAAK,IAAI,MAAM,OAAO;AAAA,IACjE;AAEA,IAAAE,YAAW,UAAU,QAAQ,SAAU,MAAM;AAC3C,aAAOF,WAAU,KAAK,KAAK,QAAQ,EAAE,KAAK,IAAI,IAAI;AAAA,IACpD;AAEA,IAAAE,YAAW,UAAU,QAAQ,SAAU,KAAK,KAAK;AAC/C,aAAOF,WAAU,KAAK,KAAK,QAAQ,EAAE,KAAK,IAAI,KAAK,GAAG;AAAA,IACxD;AAEA,IAAAE,YAAW,UAAU,QAAQ,WAAY;AACvC,aAAOF,WAAU,KAAK,KAAK,OAAO,EAAE,KAAK,EAAE;AAAA,IAC7C;AAEA,IAAAE,YAAW,UAAU,WAAW,WAAY;AAC1C,aAAOF,WAAU,KAAK,KAAK,WAAW,EAAE,KAAK,EAAE;AAAA,IACjD;AAEA,IAAAE,YAAW,UAAU,OAAO,SAAUC,SAAQ,QAAQX,SAAQ,UAAU;AACtE,aAAOQ,WAAU,KAAK,KAAK,QAAQ,SAAU,WAAW;AACtD,eAAO;AAAA,UACL;AAAA,UACA,QAAQG;AAAA,QACV;AAAA,MACF,CAAC,EAAE,KAAK,IAAIA,SAAQ,QAAQX,SAAQ,QAAQ;AAAA,IAC9C;AAEA,IAAAU,YAAW,UAAU,WAAW,SAAU,SAAS;AACjD,aAAOF,WAAU,KAAK,KAAK,UAAU,EAAE,KAAK,IAAI,OAAO;AAAA,IACzD;AAEA,IAAAE,YAAW,UAAU,OAAO,SAAU,SAAS;AAC7C,aAAOF,WAAU,KAAK,KAAK,OAAO,EAAE,KAAK,IAAI,OAAO;AAAA,IACtD;AAEA,IAAAE,YAAW,UAAU,OAAO,WAAY;AACtC,aAAOF,WAAU,KAAK,KAAK,OAAO,EAAE,KAAK,EAAE;AAAA,IAC7C;AAEA,IAAAE,YAAW,UAAU,WAAW,SAAU,KAAK;AAC7C,aAAOF,WAAU,KAAK,KAAK,WAAW,EAAE,KAAK,IAAI,GAAG;AAAA,IACtD;AAEA,IAAAE,YAAW,UAAU,SAAS,SAAU,OAAO,OAAO;AACpD,aAAOF,WAAU,KAAK,KAAK,SAAS,EAAE,KAAK,IAAI,OAAO,KAAK;AAAA,IAC7D;AAEA,IAAAE,YAAW,UAAU,QAAQ,SAAUC,SAAQ,QAAQX,SAAQ,UAAU;AACvE,aAAOQ,WAAU,KAAK,KAAK,SAAS,SAAU,cAAc;AAC1D,eAAO;AAAA,UACL;AAAA,UACA,QAAQG;AAAA,QACV;AAAA,MACF,CAAC,EAAE,KAAK,IAAIA,SAAQ,QAAQX,SAAQ,QAAQ;AAAA,IAC9C;AAEA,IAAAU,YAAW,UAAU,YAAY,SAAU,MAAM,SAAS;AACxD,aAAOF,WAAU,KAAK,KAAK,WAAW,EAAE,KAAK,IAAI,MAAM,OAAO;AAAA,IAChE;AAEA,WAAOE;AAAA,EACT,EAAE;AAEF,EAAAL,WAAU,aAAa;AAEvB,WAAS,kBAAkBP,MAAK;AAC9B,QAAI,OAAO,YAAY;AAAa,aAAO;AAC3C,WAAO;AAAA,MACL;AAAA,MACA,QAAQ,SAAUc,OAAM,MAAM;AAC5B,eAAOJ,WAAUV,MAAK,QAAQ,EAAEc,OAAM,IAAI;AAAA,MAC5C;AAAA,MACA,YAAY,SAAUA,OAAM,MAAM,SAAS;AACzC,eAAOJ,WAAUV,MAAK,YAAY,EAAEc,iBAAgB,aAAaA,MAAK,KAAKA,OAAM,MAAM,OAAO;AAAA,MAChG;AAAA,MACA,OAAO,SAAUA,OAAM,MAAM;AAC3B,eAAOJ,WAAUV,MAAK,OAAO,EAAEc,OAAM,IAAI;AAAA,MAC3C;AAAA,MACA,OAAO,SAAUA,OAAM,KAAK,KAAK;AAC/B,eAAOJ,WAAUV,MAAK,OAAO,EAAEc,OAAM,KAAK,GAAG;AAAA,MAC/C;AAAA,MACA,UAAU,SAAUC,MAAK,MAAM,OAAO;AACpC,eAAOL,WAAUV,MAAK,UAAU,EAAEe,MAAK,MAAM,KAAK;AAAA,MACpD;AAAA,MACA,QAAQ,SAAUD,OAAM,MAAM;AAC5B,eAAOJ,WAAUV,MAAK,QAAQ,EAAEc,OAAM,IAAI;AAAA,MAC5C;AAAA,MACA,QAAQ,SAAUA,OAAM,KAAK,KAAK;AAChC,eAAOJ,WAAUV,MAAK,QAAQ,EAAEc,OAAM,KAAK,GAAG;AAAA,MAChD;AAAA,MACA,MAAM,SAAU,cAAc,SAAS;AACrC,eAAOJ,WAAUV,MAAK,MAAM,EAAE,cAAc,OAAO;AAAA,MACrD;AAAA,MACA,OAAO,SAAUc,OAAM,SAAS;AAC9B,eAAOJ,WAAUV,MAAK,OAAO,EAAEc,OAAM,OAAO;AAAA,MAC9C;AAAA,MACA,OAAO,SAAUA,OAAM,SAAS;AAC9B,eAAOJ,WAAUV,MAAK,OAAO,EAAEc,OAAM,OAAO;AAAA,MAC9C;AAAA,MACA,SAAS,SAAU,QAAQ,SAAS;AAClC,eAAOJ,WAAUV,MAAK,SAAS,EAAE,QAAQ,OAAO;AAAA,MAClD;AAAA,MACA,MAAM,SAAUc,OAAM,OAAO,MAAM;AACjC,eAAOJ,WAAUV,MAAK,QAAQ,SAAU,IAAI;AAC1C,iBAAO,IAAI,WAAWA,MAAK,EAAE;AAAA,QAC/B,CAAC,EAAEc,OAAM,OAAO,IAAI;AAAA,MACtB;AAAA,MACA,SAAS,SAAUA,OAAM,SAAS;AAChC,eAAOJ,WAAUV,MAAK,SAAS,EAAEc,OAAM,OAAO;AAAA,MAChD;AAAA,MACA,UAAU,SAAU,IAAI,SAAS;AAC/B,eAAOJ,WAAUV,MAAK,UAAU,EAAE,cAAc,aAAa,GAAG,KAAK,IAAI,OAAO;AAAA,MAClF;AAAA,MACA,UAAU,SAAUc,OAAM,SAAS;AACjC,eAAOJ,WAAUV,MAAK,UAAU,EAAEc,OAAM,OAAO;AAAA,MACjD;AAAA,MACA,UAAU,SAAUA,OAAM,SAAS;AACjC,eAAOJ,WAAUV,MAAK,UAAU,EAAEc,OAAM,OAAO;AAAA,MACjD;AAAA,MACA,QAAQ,SAAU,SAAS,SAAS;AAClC,eAAOJ,WAAUV,MAAK,QAAQ,EAAE,SAAS,OAAO;AAAA,MAClD;AAAA,MACA,OAAO,SAAUc,OAAM;AACrB,eAAOJ,WAAUV,MAAK,OAAO,EAAEc,KAAI;AAAA,MACrC;AAAA,MACA,MAAM,SAAUA,OAAM,SAAS;AAC7B,eAAOJ,WAAUV,MAAK,MAAM,EAAEc,OAAM,OAAO;AAAA,MAC7C;AAAA,MACA,SAAS,SAAU,QAAQA,OAAM,MAAM;AACrC,eAAOJ,WAAUV,MAAK,SAAS,EAAE,QAAQc,OAAM,IAAI;AAAA,MACrD;AAAA,MACA,UAAU,SAAUA,OAAM,KAAK;AAC7B,eAAOJ,WAAUV,MAAK,UAAU,EAAEc,OAAM,GAAG;AAAA,MAC7C;AAAA,MACA,QAAQ,SAAUA,OAAM;AACtB,eAAOJ,WAAUV,MAAK,QAAQ,EAAEc,KAAI;AAAA,MACtC;AAAA,MACA,QAAQ,SAAUA,OAAM,OAAO,OAAO;AACpC,eAAOJ,WAAUV,MAAK,QAAQ,EAAEc,OAAM,OAAO,KAAK;AAAA,MACpD;AAAA,MACA,WAAW,SAAU,IAAI,MAAM,SAAS;AACtC,eAAOJ,WAAUV,MAAK,WAAW,EAAE,cAAc,aAAa,GAAG,KAAK,IAAI,MAAM,OAAO;AAAA,MACzF;AAAA,IACF;AAAA,EACF;AAEA,EAAAO,WAAU,UAAU;AACpB,SAAOA;AACT;AAEA,IAAIS,aAAY,CAAC;AAAjB,IACIC,cAAa;AACjB,SAASC,SAAQ;AACf,MAAID;AAAY,WAAOD;AACvB,EAAAC,cAAa;AACb,MAAI,YAAY3B;AAChB,SAAO,eAAe0B,YAAW,cAAc;AAAA,IAC7C,OAAO;AAAA,EACT,CAAC;AACD,EAAAA,WAAU,UAAU;AACpB,EAAAA,WAAU,cAAc;AACxB,MAAI,QAAQ,UAAU,aAAa;AAEnC,WAAS,wBAAwB,KAAK;AACpC,QAAInD,KAAI,IAAI,SAAS;AAErB,QAAIA,KAAI,GAAG;AACT,aAAO;AAAA,IACT;AAEA,WAAO,YAAY,KAAKA,EAAC,GAAG;AAC1B,MAAAA;AAAA,IACF;AAEA,WAAO,IAAI,OAAO,GAAGA,KAAI,CAAC;AAAA,EAC5B;AAEA,WAAS,YAAY,KAAKA,IAAG;AAC3B,QAAI,QAAQ,IAAIA,EAAC;AACjB,WAAOA,KAAI,MAAM,UAAU,OAAO,SAAS,UAAU;AAAA,EACvD;AAEA,WAAS,cAAc,KAAK,eAAe;AACzC,QAAI,OAAO,QAAQ,UAAU;AAC3B,YAAM,IAAI,UAAU,mBAAmB;AAAA,IACzC;AAEA,UAAM,IAAI,QAAQ,YAAY,GAAG;AAEjC,QAAI,kBAAkB,OAAO;AAC3B,YAAM,wBAAwB,GAAG;AAAA,IACnC;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,QAAQ,UAAU;AACzB,QAAI,gBAAgB,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAExF,QAAI,OAAO;AACT,iBAAW,cAAc,UAAU,aAAa;AAChD,aAAO,SAAS,QAAQ,sBAAsB,EAAE;AAAA,IAClD;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,YAAY,UAAU;AAC7B,WAAO,QAAQ,SAAS,QAAQ,iBAAiB,IAAI,CAAC;AAAA,EACxD;AAEA,SAAOmD;AACT;AAEA,IAAIG,aAAY,CAAC;AAAjB,IACIC,cAAa;AAEjB,IAAIC,WAAU,OAAO,eAAe,cAAc,aAAa,OAAO,SAAS,cAAc,OAAO;AAEpG,SAASC,SAAQ;AACf,MAAIF;AAAY,WAAOD;AACvB,EAAAC,cAAa;AAEb,MAAI,YAAYD,cAAaA,WAAU,aAAa,2BAAY;AAC9D,QAAI,gBAAgB,SAAUjD,IAAGC,IAAG;AAClC,sBAAgB,OAAO,kBAAkB;AAAA,QACvC,WAAW,CAAC;AAAA,MACd,aAAa,SAAS,SAAUD,IAAGC,IAAG;AACpC,QAAAD,GAAE,YAAYC;AAAA,MAChB,KAAK,SAAUD,IAAGC,IAAG;AACnB,iBAASC,MAAKD;AAAG,cAAI,OAAO,UAAU,eAAe,KAAKA,IAAGC,EAAC;AAAG,YAAAF,GAAEE,EAAC,IAAID,GAAEC,EAAC;AAAA,MAC7E;AAEA,aAAO,cAAcF,IAAGC,EAAC;AAAA,IAC3B;AAEA,WAAO,SAAUD,IAAGC,IAAG;AACrB,UAAI,OAAOA,OAAM,cAAcA,OAAM;AAAM,cAAM,IAAI,UAAU,yBAAyB,OAAOA,EAAC,IAAI,+BAA+B;AACnI,oBAAcD,IAAGC,EAAC;AAElB,eAAS,KAAK;AACZ,aAAK,cAAcD;AAAA,MACrB;AAEA,MAAAA,GAAE,YAAYC,OAAM,OAAO,OAAO,OAAOA,EAAC,KAAK,GAAG,YAAYA,GAAE,WAAW,IAAI,GAAG;AAAA,IACpF;AAAA,EACF,EAAE;AAEF,MAAI,gBAAgBgD,cAAaA,WAAU,iBAAiB,SAAU,IAAIvD,OAAM,MAAM;AACpF,QAAI,QAAQ,UAAU,WAAW;AAAG,eAASC,KAAI,GAAGC,KAAIF,MAAK,QAAQ,IAAIC,KAAIC,IAAGD,MAAK;AACnF,YAAI,MAAM,EAAEA,MAAKD,QAAO;AACtB,cAAI,CAAC;AAAI,iBAAK,MAAM,UAAU,MAAM,KAAKA,OAAM,GAAGC,EAAC;AACnD,aAAGA,EAAC,IAAID,MAAKC,EAAC;AAAA,QAChB;AAAA,MACF;AACA,WAAO,GAAG,OAAO,MAAM,MAAM,UAAU,MAAM,KAAKD,KAAI,CAAC;AAAA,EACzD;AAEA,SAAO,eAAeuD,YAAW,cAAc;AAAA,IAC7C,OAAO;AAAA,EACT,CAAC;AACD,EAAAA,WAAU,YAAYA,WAAU,cAAcA,WAAU,SAASA,WAAU,kBAAkBA,WAAU,mBAAmBA,WAAU,eAAeA,WAAU,YAAYA,WAAU,cAAcA,WAAU,kBAAkBA,WAAU,iBAAiBA,WAAU,gBAAgBA,WAAU,QAAQ;AACpS,MAAI,aAAaI;AAEjB,MAAI,SAAS3B,OAAM;AAEnB,MAAI,UAAUrC,OAAM;AAEpB,MAAI,WAAWwB,OAAM;AAErB,MAAI,WAAWpB,OAAM;AAErB,MAAI,iBAAiB0B,OAAM;AAE3B,MAAI,YAAYI,OAAM;AAEtB,MAAI,oBAAoBa,OAAM;AAE9B,MAAI,WAAWiB;AAEf,MAAI,cAActE,OAAM;AAExB,MAAI,WAAW;AAEf,MAAI,aAAa2B,OAAM;AAEvB,MAAI,SAASX,OAAM;AAEnB,MAAI,OAAO;AAEX,MAAI,aAAawC,OAAM;AAEvB,MAAI,uBAAuB,WAAW;AACtC,MAAI,WAAW,YAAY,UAAU,UACjC,WAAW,YAAY,UAAU,UACjC,SAAS,YAAY,UAAU,QAC/B,UAAU,YAAY,UAAU,SAChC,SAAS,YAAY,UAAU,QAC/B,UAAU,YAAY,UAAU,SAChC,WAAW,YAAY,UAAU,UACjC,SAAS,YAAY,UAAU,QAC/B,cAAc,YAAY,UAAU,aACpCe,QAAO,YAAY,UAAU,MAC7B,gBAAgB,YAAY,UAAU,eACtC,yBAAyB,YAAY,UAAU;AAEnD,MAAI,KAAK,WAAW,QAAQ,WAAW,QAAQ,YAC3CC,OAAM,GAAG,KACTC,YAAW,GAAG,UACdC,QAAO,GAAG,MACVC,WAAU,GAAG;AAEjB,MAAI,QAAQ,UAAU,QAAQ,aAAa;AAC3C,MAAI,gBAAgB;AAIpB,MAAI,SAAS;AAAA,IACX,UAAU;AAAA;AAAA,IAEV,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,IAAI;AAAA,IACJ,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAEA,MAAI,cAAc,SAAU,QAAQ;AAClC,WAAO,kEAAkE,SAAS;AAAA,EACpF;AAGA,MAAI,SAAS;AACb,MAAI,QAAQ;AACZ,MAAI,SAAS;AACb,MAAI,QAAQ;AACZ,MAAI,SAAS;AACb,MAAI,SAAS;AACb,MAAI,UAAU;AACd,MAAI,SAAS;AACb,MAAI,SAAS;AACb,MAAI,SAAS;AACb,MAAI,YAAY;AAChB,MAAI,SAAS;AAEb,WAAS,YAAY,WAAW,MAAMd,OAAMe,QAAO;AACjD,QAAI,SAAS,QAAQ;AACnB,aAAO;AAAA,IACT;AAEA,QAAIf,UAAS,QAAQ;AACnB,MAAAA,QAAO;AAAA,IACT;AAEA,QAAIe,WAAU,QAAQ;AACpB,MAAAA,SAAQ;AAAA,IACV;AAEA,QAAI,gBAAgB;AACpB,QAAIf;AAAM,sBAAgB,OAAOA,QAAO;AACxC,QAAIe;AAAO,uBAAiB,UAAUA,SAAQ;AAE9C,YAAQ,WAAW;AAAA,MACjB,KAAK;AACH,eAAO,wCAAwC,OAAO;AAAA,MAExD,KAAK;AACH,eAAO,iCAAiC,OAAO;AAAA,MAEjD,KAAK;AACH,eAAO,+BAA+B,OAAO;AAAA,MAE/C,KAAK;AACH,eAAO,qCAAqC,OAAO;AAAA,MAErD,KAAK;AACH,eAAO,6BAA6B,OAAO;AAAA,MAE7C,KAAK;AACH,eAAO,kCAAkC,OAAO;AAAA,MAElD,KAAK;AACH,eAAO,+BAA+B,OAAO;AAAA,MAE/C,KAAK;AACH,eAAO,+CAA+C,OAAO;AAAA,MAE/D,KAAK;AACH,eAAO,gCAAgC,OAAO;AAAA,MAEhD,KAAK;AACH,eAAO,qCAAqC,OAAO;AAAA,MAErD,KAAK;AACH,eAAO,kCAAkC,OAAO;AAAA,MAElD,KAAK;AACH,eAAO,uCAAuC,OAAO;AAAA,MAEvD;AACE,eAAO,YAAY,uBAAuB,OAAO;AAAA,IACrD;AAAA,EACF;AAEA,WAAS,YAAY,WAAW,MAAMf,OAAMe,QAAO,aAAa;AAC9D,QAAI,SAAS,QAAQ;AACnB,aAAO;AAAA,IACT;AAEA,QAAIf,UAAS,QAAQ;AACnB,MAAAA,QAAO;AAAA,IACT;AAEA,QAAIe,WAAU,QAAQ;AACpB,MAAAA,SAAQ;AAAA,IACV;AAEA,QAAI,gBAAgB,QAAQ;AAC1B,oBAAc;AAAA,IAChB;AAEA,QAAI,QAAQ,IAAI,YAAY,YAAY,WAAW,MAAMf,OAAMe,MAAK,CAAC;AACrE,UAAM,OAAO;AACb,WAAO;AAAA,EACT;AAIA,MAAI;AAEJ,GAAC,SAAUC,QAAO;AAEhB,IAAAA,OAAMA,OAAM,GAAG,IAAI,QAAQ,IAAI;AAE/B,IAAAA,OAAMA,OAAM,IAAI,IAAI,MAAM,IAAI;AAE9B,IAAAA,OAAMA,OAAM,IAAI,IAAI,WAAW,MAAM,IAAI;AACzC,IAAAA,OAAMA,OAAM,IAAI,IAAIA,OAAM,EAAE,IAAI;AAEhC,IAAAA,OAAMA,OAAM,KAAK,IAAI,SAAS,MAAM,IAAI;AACxC,IAAAA,OAAMA,OAAM,KAAK,IAAIA,OAAM,KAAK,CAAC,IAAI;AAErC,IAAAA,OAAMA,OAAM,GAAG,IAAI,WAAW,UAAU,OAAO,IAAI;AAEnD,IAAAA,OAAMA,OAAM,IAAI,IAAI,WAAW,UAAU,UAAU,MAAM,IAAI;AAC7D,IAAAA,OAAMA,OAAM,IAAI,IAAIA,OAAM,EAAE,IAAI;AAEhC,IAAAA,OAAMA,OAAM,IAAI,IAAI,SAAS,UAAU,OAAO,IAAI;AAElD,IAAAA,OAAMA,OAAM,KAAK,IAAI,SAAS,UAAU,UAAU,MAAM,IAAI;AAC5D,IAAAA,OAAMA,OAAM,KAAK,IAAIA,OAAM,KAAK,CAAC,IAAI;AAErC,IAAAA,OAAMA,OAAM,GAAG,IAAI,WAAW,WAAW,OAAO,IAAI;AAEpD,IAAAA,OAAMA,OAAM,IAAI,IAAI,WAAW,WAAW,UAAU,MAAM,IAAI;AAC9D,IAAAA,OAAMA,OAAM,IAAI,IAAIA,OAAM,EAAE,IAAI;AAEhC,IAAAA,OAAMA,OAAM,IAAI,IAAI,SAAS,WAAW,OAAO,IAAI;AAEnD,IAAAA,OAAMA,OAAM,KAAK,IAAI,SAAS,WAAW,UAAU,MAAM,IAAI;AAC7D,IAAAA,OAAMA,OAAM,KAAK,IAAIA,OAAM,KAAK,CAAC,IAAI;AAAA,EACvC,GAAG,QAAQX,WAAU,UAAUA,WAAU,QAAQ,CAAC,EAAE;AAEpD,WAAS,cAAc,OAAO;AAC5B,QAAI,OAAO,UAAU;AAAU,aAAO;AAEtC,QAAI,OAAO,UAAU,UAAU;AAC7B,UAAI,WAAW,MAAM,KAAK;AAC1B,UAAI,OAAO,aAAa;AAAa,eAAO;AAAA,IAC9C;AAGA,UAAM,IAAI,OAAO,UAAU,yBAAyB,SAAS,KAAK;AAAA,EACpE;AAEA,EAAAA,WAAU,gBAAgB;AAE1B,WAAS,WAAW,UAAU,SAAS;AACrC,QAAI;AACJ,QAAI,CAAC;AAAS,aAAO;AAAA,SAAc;AACjC,UAAI,SAAS,OAAO;AAEpB,cAAQ,QAAQ;AAAA,QACd,KAAK;AACH,iBAAO,OAAO,OAAO,CAAC,GAAG,UAAU;AAAA,YACjC,UAAU;AAAA,UACZ,CAAC;AACD;AAAA,QAEF,KAAK;AACH,iBAAO,OAAO,OAAO,CAAC,GAAG,UAAU,OAAO;AAC1C;AAAA,QAEF;AACE,gBAAM,UAAU,YAAY,MAAM,CAAC;AAAA,MACvC;AAAA,IACF;AACA,QAAI,KAAK,aAAa;AAAU,OAAC,GAAG,WAAW,gBAAgB,KAAK,QAAQ;AAC5E,WAAO;AAAA,EACT;AAEA,WAAS,cAAc,UAAU;AAC/B,WAAO,SAAU,SAAS;AACxB,aAAO,WAAW,UAAU,OAAO;AAAA,IACrC;AAAA,EACF;AAEA,WAAS,iBAAiB,UAAU;AAClC,QAAI,OAAO,aAAa;AAAY,YAAM,UAAU,OAAO,EAAE;AAC7D,WAAO;AAAA,EACT;AAEA,WAAS,mBAAmB,SAAS;AACnC,WAAO,SAAU,SAAS,UAAU;AAClC,aAAO,OAAO,YAAY,aAAa,CAAC,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,OAAO,GAAG,iBAAiB,QAAQ,CAAC;AAAA,IAC7G;AAAA,EACF;AAEA,MAAI,eAAe;AAAA,IACjB,UAAU;AAAA,EACZ;AACA,MAAI,iBAAiB,cAAc,YAAY;AAC/C,MAAI,sBAAsB,mBAAmB,cAAc;AAC3D,MAAI,uBAAuB;AAAA,IACzB,MAAM;AAAA,EACR;AACA,MAAI,qBAAqB,cAAc,oBAAoB;AAC3D,MAAI,oBAAoB;AAAA,IACtB,UAAU;AAAA,IACV,MAAM;AAAA,IAGN,MAAM,MAAM,MAAM,CAAC;AAAA,EACrB;AACA,MAAI,sBAAsB,cAAc,iBAAiB;AACzD,MAAI,qBAAqB;AAAA,IACvB,UAAU;AAAA,IACV,MAAM;AAAA,IAGN,MAAM,MAAM,MAAM,CAAC;AAAA,EACrB;AACA,MAAI,oBAAoB,cAAc,kBAAkB;AACxD,MAAI,yBAAyB,mBAAmB,iBAAiB;AACjE,MAAI,mBAAmB;AACvB,MAAI,qBAAqB,cAAc,gBAAgB;AACvD,MAAI,uBAAuB,mBAAmB,kBAAkB;AAChE,MAAI,gBAAgB;AAAA,IAClB,MAAM;AAAA,IAGN,WAAW;AAAA,EACb;AAEA,MAAI,kBAAkB,SAAU,SAAS;AACvC,QAAI,OAAO,YAAY;AAAU,aAAO,OAAO,OAAO,CAAC,GAAG,eAAe;AAAA,QACvE,MAAM;AAAA,MACR,CAAC;AACD,WAAO,OAAO,OAAO,CAAC,GAAG,eAAe,OAAO;AAAA,EACjD;AAEA,MAAI,gBAAgB;AAAA,IAClB,WAAW;AAAA,EACb;AAEA,MAAI,kBAAkB,SAAU,SAAS;AACvC,WAAO,OAAO,OAAO,CAAC,GAAG,eAAe,OAAO;AAAA,EACjD;AAEA,MAAI,kBAAkB;AAAA,IACpB,UAAU;AAAA,IACV,eAAe;AAAA,EACjB;AACA,MAAI,oBAAoB,cAAc,eAAe;AACrD,MAAI,sBAAsB,mBAAmB,iBAAiB;AAC9D,MAAI,eAAe;AAAA,IACjB,QAAQ;AAAA,EACV;AAEA,MAAI,iBAAiB,SAAU,SAAS;AACtC,QAAI,YAAY,QAAQ;AACtB,gBAAU,CAAC;AAAA,IACb;AAEA,WAAO,OAAO,OAAO,CAAC,GAAG,cAAc,OAAO;AAAA,EAChD;AAEA,MAAI,mBAAmB,SAAU,SAAS,UAAU;AAClD,WAAO,OAAO,YAAY,aAAa,CAAC,eAAe,GAAG,OAAO,IAAI,CAAC,eAAe,OAAO,GAAG,iBAAiB,QAAQ,CAAC;AAAA,EAC3H;AAGA,WAASY,qBAAoB,KAAK;AAChC,QAAI,IAAI,aAAa,IAAI;AACvB,YAAM,IAAI,OAAO,UAAU,6BAA6B,UAAU,QAAQ,QAAQ;AAAA,IACpF;AAEA,QAAI,WAAW,IAAI;AAEnB,aAASC,KAAI,GAAGA,KAAI,SAAS,QAAQA,MAAK;AACxC,UAAI,SAASA,EAAC,MAAM,KAAK;AACvB,YAAI,QAAQ,SAAS,YAAYA,KAAI,CAAC,IAAI;AAE1C,YAAI,SAASA,KAAI,CAAC,MAAM,OAAO,UAAU,KAAK;AAC5C,gBAAM,IAAI,OAAO,UAAU,6BAA6B,uCAAuC;AAAA,QACjG;AAAA,MACF;AAAA,IACF;AAEA,WAAO,mBAAmB,QAAQ;AAAA,EACpC;AAEA,WAAS,eAAelB,OAAM;AAC5B,QAAI,OAAOA,UAAS,YAAY,CAAC,SAAS,OAAO,SAASA,KAAI,GAAG;AAC/D,UAAI;AACF,YAAI,EAAEA,iBAAgBmB,GAAE;AAAM,gBAAM,IAAI,UAAU,OAAO,QAAQ;AAAA,MACnE,SAAS,KAAK;AACZ,cAAM,IAAI,UAAU,OAAO,QAAQ;AAAA,MACrC;AAEA,MAAAnB,QAAOiB,qBAAoBjB,KAAI;AAAA,IACjC;AAEA,QAAI,aAAa,OAAOA,KAAI;AAC5B,cAAU,UAAU;AAEpB,WAAO;AAAA,EACT;AAEA,EAAAK,WAAU,iBAAiB;AAE3B,MAAIR,WAAU,SAAU,UAAUuB,OAAM;AACtC,QAAIA,UAAS,QAAQ;AACnB,MAAAA,QAAO,UAAU,QAAQ,IAAI;AAAA,IAC/B;AAEA,WAAO,qBAAqBA,OAAM,QAAQ;AAAA,EAC5C;AAEA,MAAI,OAAO;AACT,QAAI,aAAavB;AAEjB,QAAI,YAAYO,OAAM,EAAE;AAExB,IAAAP,WAAU,SAAU,UAAUuB,OAAM;AAClC,aAAO,UAAU,WAAW,UAAUA,KAAI,CAAC;AAAA,IAC7C;AAAA,EACF;AAEA,WAAS,gBAAgB,UAAUA,OAAM;AACvC,QAAI,WAAWvB,SAAQ,UAAUuB,KAAI;AACrC,QAAI,oBAAoB,SAAS,OAAO,CAAC;AACzC,QAAI,CAAC;AAAmB,aAAO,CAAC;AAChC,WAAO,kBAAkB,MAAMT,IAAG;AAAA,EACpC;AAEA,EAAAN,WAAU,kBAAkB;AAE5B,WAAS,YAAYL,OAAM;AACzB,WAAO,gBAAgB,eAAeA,KAAI,CAAC;AAAA,EAC7C;AAEA,EAAAK,WAAU,cAAc;AAExB,WAAS,UAAU,MAAM,UAAU;AACjC,QAAI,aAAa,QAAQ;AACvB,iBAAW,WAAW;AAAA,IACxB;AAEA,QAAI,SAAS,OAAO,SAAS,IAAI;AAAG,aAAO,KAAK,SAAS,QAAQ;AAAA,aAAW,gBAAgB;AAAY,cAAQ,GAAG,SAAS,YAAY,IAAI,EAAE,SAAS,QAAQ;AAAA;AAAO,aAAO,OAAO,IAAI;AAAA,EAC1L;AAEA,EAAAA,WAAU,YAAY;AAEtB,WAAS,aAAa,MAAM,UAAU;AACpC,QAAI,aAAa,QAAQ;AACvB,iBAAW,WAAW;AAAA,IACxB;AAEA,QAAI,SAAS,OAAO,SAAS,IAAI;AAAG,aAAO;AAAA,aAAc,gBAAgB;AAAY,cAAQ,GAAG,SAAS,YAAY,IAAI;AAAA;AAAO,cAAQ,GAAG,SAAS,YAAY,OAAO,IAAI,GAAG,QAAQ;AAAA,EACxL;AAEA,EAAAA,WAAU,eAAe;AAEzB,WAAS,iBAAiBN,SAAQ,UAAU;AAC1C,QAAI,CAAC,YAAY,aAAa;AAAU,aAAOA;AAAA;AAAY,aAAOA,QAAO,SAAS,QAAQ;AAAA,EAC5F;AAEA,EAAAM,WAAU,mBAAmB;AAE7B,WAAS,UAAUL,OAAM,UAAU;AACjC,SAAK,KAAKA,OAAM,QAAQ,IAAI,MAAM,IAAI;AACpC,UAAI,KAAK,IAAI,MAAM,0CAA0C;AAC7D,SAAG,OAAO;AACV,UAAI,OAAO,aAAa;AAAY,cAAM;AAC1C,gBAAU,QAAQ,SAAS,UAAU,EAAE;AACvC,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,cAAc,MAAM,KAAK;AAChC,QAAI,OAAO,SAAS;AAAU,aAAO;AACrC,QAAI,OAAO,SAAS;AAAU,aAAO,SAAS,MAAM,CAAC;AACrD,QAAI;AAAK,aAAO,aAAa,GAAG;AAChC,WAAO;AAAA,EACT;AAEA,WAAS,aAAa,MAAM,KAAK;AAC/B,QAAI,SAAS,cAAc,MAAM,GAAG;AAEpC,QAAI,OAAO,WAAW,YAAY,MAAM,MAAM;AAAG,YAAM,IAAI,UAAU,OAAO,QAAQ;AACpF,WAAO;AAAA,EACT;AAEA,WAAS,KAAKA,OAAM;AAClB,WAAOA,UAAS,MAAMA;AAAA,EACxB;AAEA,WAAS,WAAW,IAAI;AACtB,QAAI,CAAC,KAAK,EAAE;AAAG,YAAM,UAAU,OAAO,EAAE;AAAA,EAC1C;AAGA,WAAS,gBAAgB,MAAM;AAE7B,QAAI,OAAO,SAAS,YAAY,CAAC,QAAQ,MAAM;AAC7C,aAAO,CAAC;AAAA,IACV;AAEA,QAAI,gBAAgB,MAAM;AACxB,aAAO,KAAK,QAAQ,IAAI;AAAA,IAC1B;AAEA,QAAI,SAAS,IAAI,GAAG;AAClB,UAAI,OAAO,GAAG;AACZ,eAAO,KAAK,IAAI,IAAI;AAAA,MACtB;AAEA,aAAO;AAAA,IACT;AAEA,UAAM,IAAI,MAAM,wBAAwB,IAAI;AAAA,EAC9C;AAEA,EAAAK,WAAU,kBAAkB;AAE5B,WAAS,YAAY,KAAK;AACxB,QAAI,OAAO,QAAQ;AAAU,YAAM,UAAU,OAAO,GAAG;AAAA,EACzD;AAEA,WAAS,YAAY,KAAK;AACxB,QAAI,OAAO,QAAQ;AAAU,YAAM,UAAU,OAAO,GAAG;AAAA,EACzD;AAEA,WAAS,YAAY,YAAY;AAC/B,QAAI,WAAW,CAAC;AAEhB,aAAS,QAAQ,YAAY,MAAM;AACjC,eAASL,SAAQ,MAAM;AACrB,YAAI,gBAAgB,KAAKA,KAAI;AAC7B,YAAI,aAAaa,MAAK,YAAYb,KAAI;AAEtC,YAAI,OAAO,kBAAkB,UAAU;AACrC,mBAAS,UAAU,IAAI;AAAA,QACzB,WAAW,OAAO,kBAAkB,YAAY,kBAAkB,QAAQ,OAAO,KAAK,aAAa,EAAE,SAAS,GAAG;AAE/G,kBAAQ,YAAY,aAAa;AAAA,QACnC,OAAO;AAGL,mBAAS,UAAU,IAAI;AAAA,QACzB;AAAA,MACF;AAAA,IACF;AAEA,YAAQ,IAAI,UAAU;AACtB,WAAO;AAAA,EACT;AAMA,MAAI,SAAS,WAAY;AACvB,aAASqB,QAAO,OAAO;AACrB,UAAI,UAAU,QAAQ;AACpB,gBAAQ,CAAC;AAAA,MACX;AAGA,WAAK,MAAM;AAEX,WAAK,SAAS,CAAC;AAEf,WAAK,eAAe,CAAC;AAErB,WAAK,MAAM,CAAC;AAGZ,WAAK,cAAc,CAAC;AAEpB,WAAK,WAAW;AAEhB,WAAK,YAAY;AACjB,WAAK,eAAe,GAAG,WAAW,SAAS,IAAI;AAC/C,WAAK,eAAe,CAAC;AACrB,WAAK,QAAQ,OAAO,OAAO;AAAA,QACzB,MAAM,OAAO;AAAA,QACb,MAAM,OAAO;AAAA,QACb,MAAM,OAAO;AAAA,MACf,GAAG,KAAK;AACR,UAAI,OAAO,KAAK,WAAW;AAC3B,WAAK,QAAQ,KAAK,WAAW,IAAI,CAAC;AAClC,UAAIC,QAAO;AAEX,WAAK,cAAc,SAAU,QAAQ;AACnC,kBAAUC,cAAa,MAAM;AAE7B,iBAASA,eAAc;AACrB,iBAAO,OAAO,KAAK,MAAMD,KAAI,KAAK;AAAA,QACpC;AAEA,eAAOC;AAAA,MACT,EAAE,WAAW;AAEb,UAAI,cAAc;AAElB,WAAK,aAAa,SAAU,QAAQ;AAClC,kBAAU,SAAS,MAAM;AAEzB,iBAAS,UAAU;AACjB,cAAI,OAAO,CAAC;AAEZ,mBAAS,KAAK,GAAG,KAAK,UAAU,QAAQ,MAAM;AAC5C,iBAAK,EAAE,IAAI,UAAU,EAAE;AAAA,UACzB;AAEA,iBAAO,OAAO,MAAM,MAAM,cAAc,CAACD,KAAI,GAAG,MAAM,KAAK,CAAC,KAAK;AAAA,QACnE;AAEA,eAAO;AAAA,MACT,EAAE,WAAW;AAEb,UAAI,eAAe;AAEnB,WAAK,cAAc,SAAU,QAAQ;AACnC,kBAAU,SAAS,MAAM;AAEzB,iBAAS,UAAU;AACjB,cAAI,OAAO,CAAC;AAEZ,mBAAS,KAAK,GAAG,KAAK,UAAU,QAAQ,MAAM;AAC5C,iBAAK,EAAE,IAAI,UAAU,EAAE;AAAA,UACzB;AAEA,iBAAO,OAAO,MAAM,MAAM,cAAc,CAACA,KAAI,GAAG,MAAM,KAAK,CAAC,KAAK;AAAA,QACnE;AAEA,eAAO;AAAA,MACT,EAAE,YAAY;AAEd,WAAK,YAAY,SAAU,QAAQ;AACjC,kBAAUE,YAAW,MAAM;AAE3B,iBAASA,aAAY;AACnB,iBAAO,OAAO,KAAK,MAAMF,KAAI,KAAK;AAAA,QACpC;AAEA,eAAOE;AAAA,MACT,EAAE,SAAS;AAMX,WAAK,OAAO;AAAA,IACd;AAEA,IAAAH,QAAO,WAAW,SAAU,MAAM,KAAK;AACrC,UAAInC,OAAM,IAAImC,QAAO;AACrB,MAAAnC,KAAI,SAAS,MAAM,GAAG;AACtB,aAAOA;AAAA,IACT;AAEA,IAAAmC,QAAO,iBAAiB,SAAU,MAAM,KAAK;AAC3C,UAAInC,OAAM,IAAImC,QAAO;AACrB,MAAAnC,KAAI,eAAe,MAAM,GAAG;AAC5B,aAAOA;AAAA,IACT;AAEA,WAAO,eAAemC,QAAO,WAAW,YAAY;AAAA,MAClD,KAAK,WAAY;AACf,YAAI,KAAK,gBAAgB;AAAM,gBAAM,IAAI,MAAM,+CAA+C;AAC9F,eAAO,KAAK;AAAA,MACd;AAAA,MACA,YAAY;AAAA,MACZ,cAAc;AAAA,IAChB,CAAC;AAED,IAAAA,QAAO,UAAU,aAAa,SAAU,QAAQ3D,OAAM,aAAa,MAAM;AACvE,UAAI,gBAAgB,QAAQ;AAC1B,sBAAc;AAAA,MAChB;AAEA,UAAI,CAAC,QAAQ;AACX,eAAO,IAAI,KAAK,MAAM,KAAK,MAAM,MAAM,EAAE;AAAA,MAC3C;AAEA,UAAI,CAACA,OAAM;AACT,cAAM,IAAI,MAAM,kCAAkC;AAAA,MACpD;AAEA,aAAO,OAAO,YAAYA,OAAM,KAAK,WAAW,aAAa,IAAI,CAAC;AAAA,IACpE;AAEA,IAAA2D,QAAO,UAAU,aAAa,SAAUlD,OAAM;AAC5C,UAAI,SAASA,MAAK;AAElB,UAAI,QAAQ;AACV,eAAO,YAAYA,KAAI;AACvB,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT;AAEA,IAAAkD,QAAO,UAAU,eAAe,WAAY;AAC1C,UAAI,aAAa,KAAK,aAAa,IAAI;AACvC,UAAI;AAAY,eAAO;AAAA,WAAgB;AACrC,aAAK,OAAO,KAAK,MAAM,KAAK;AAC5B,eAAO,KAAK;AAAA,MACd;AAAA,IACF;AAEA,IAAAA,QAAO,UAAU,cAAc,WAAY;AACzC,UAAI,aAAa,KAAK,YAAY,IAAI;AACtC,aAAO,OAAO,eAAe,WAAW,aAAaA,QAAO;AAAA,IAC9D;AAEA,IAAAA,QAAO,UAAU,aAAa,SAAU,aAAa,MAAM;AACzD,UAAI,gBAAgB,QAAQ;AAC1B,sBAAc;AAAA,MAChB;AAEA,UAAI,OAAO,IAAI,KAAK,MAAM,KAAK,KAAK,aAAa,GAAG,IAAI;AACxD,UAAI;AAAa,aAAK,eAAe;AACrC,WAAK,OAAO,KAAK,GAAG,IAAI;AACxB,aAAO;AAAA,IACT;AAEA,IAAAA,QAAO,UAAU,UAAU,SAAU,KAAK;AACxC,aAAO,KAAK,OAAO,GAAG;AAAA,IACxB;AAEA,IAAAA,QAAO,UAAU,aAAa,SAAU,MAAM;AAC5C,WAAK,IAAI;AACT,aAAO,KAAK,OAAO,KAAK,GAAG;AAC3B,WAAK,aAAa,KAAK,KAAK,GAAG;AAAA,IACjC;AAGA,IAAAA,QAAO,UAAU,YAAY,WAAY;AACvC,UAAI,OAAO,KAAK,OAAO,IAAI,GAAG,SAAS,EAAE,EAAE,OAAO,GAAG,CAAC;AACtD,UAAI,IAAI,WAAW;AAAG,eAAO;AAAA;AAAS,eAAO,KAAK,UAAU;AAAA,IAC9D;AAGA,IAAAA,QAAO,UAAU,UAAU,SAAU,OAAO;AAC1C,aAAO,KAAK,KAAK,KAAK,KAAK;AAAA,IAC7B;AAGA,IAAAA,QAAO,UAAU,iBAAiB,SAAU,UAAU,UAAU;AAC9D,UAAI,QAAQ,gBAAgB,QAAQ;AACpC,UAAIlD,QAAO,KAAK,QAAQ,KAAK;AAC7B,UAAI,CAACA;AAAM,cAAM,YAAY,QAAQ,UAAU,QAAQ;AACvD,aAAOA;AAAA,IACT;AAGA,IAAAkD,QAAO,UAAU,kBAAkB,SAAU,iBAAiB;AAC5D,UAAI,QAAQ,OAAO,oBAAoB,WAAW,gBAAgB,eAAe,IAAI;AACrF,UAAIlD,QAAO,KAAK;AAChB,UAAIpB,KAAI;AAER,aAAOA,KAAI,MAAM,QAAQ;AACvB,YAAI,OAAO,MAAMA,EAAC;AAClB,QAAAoB,QAAOA,MAAK,SAAS,IAAI;AACzB,YAAI,CAACA;AAAM,iBAAO;AAClB,YAAI,OAAOA,MAAK,QAAQ;AAExB,YAAI,KAAK,UAAU,GAAG;AACpB,kBAAQ,KAAK,QAAQ,OAAO,MAAM,MAAMpB,KAAI,CAAC,CAAC;AAC9C,UAAAoB,QAAO,KAAK;AACZ,UAAApB,KAAI;AACJ;AAAA,QACF;AAEA,QAAAA;AAAA,MACF;AAEA,aAAOoB;AAAA,IACT;AAGA,IAAAkD,QAAO,UAAU,yBAAyB,SAAU,UAAU,UAAU;AACtE,UAAIlD,QAAO,KAAK,gBAAgB,QAAQ;AACxC,UAAI,CAACA;AAAM,cAAM,YAAY,QAAQ,UAAU,QAAQ;AACvD,aAAOA;AAAA,IACT;AAEA,IAAAkD,QAAO,UAAU,kBAAkB,SAAUlD,OAAM;AAQjD,aAAO,KAAK,gBAAgBA,MAAK,MAAM,MAAM,CAAC,CAAC;AAAA,IACjD;AAGA,IAAAkD,QAAO,UAAU,sBAAsB,SAAU,UAAU,UAAU;AACnE,UAAIlD,QAAO,KAAK,eAAe,UAAU,QAAQ;AACjD,UAAI,CAACA,MAAK,QAAQ,EAAE,YAAY;AAAG,cAAM,YAAY,SAAS,UAAU,QAAQ;AAChF,aAAOA;AAAA,IACT;AAGA,IAAAkD,QAAO,UAAU,gBAAgB,SAAU,OAAO;AAChD,aAAO,KAAK,KAAK,KAAK,OAAO,MAAM,SAAS,CAAC;AAAA,IAC/C;AAEA,IAAAA,QAAO,UAAU,4BAA4B,SAAU,iBAAiB,UAAU;AAChF,UAAI,QAAQ,2BAA2B,QAAQ,kBAAkB,gBAAgB,eAAe;AAChG,UAAIlD,QAAO,KAAK,cAAc,KAAK;AACnC,UAAI,CAACA;AAAM,cAAM,YAAY,QAAQ,UAAUwC,OAAM,MAAM,KAAKA,IAAG,CAAC;AACpE,UAAI,CAACxC,MAAK,QAAQ,EAAE,YAAY;AAAG,cAAM,YAAY,SAAS,UAAUwC,OAAM,MAAM,KAAKA,IAAG,CAAC;AAC7F,aAAOxC;AAAA,IACT;AAEA,IAAAkD,QAAO,UAAU,cAAc,SAAU,IAAI;AAC3C,aAAO,KAAK,IAAI,OAAO,EAAE,CAAC;AAAA,IAC5B;AAEA,IAAAA,QAAO,UAAU,qBAAqB,SAAU,IAAI,UAAU;AAC5D,UAAI,CAAC,KAAK,EAAE;AAAG,cAAM,UAAU,OAAO,EAAE;AACxC,UAAI,OAAO,KAAK,YAAY,EAAE;AAC9B,UAAI,CAAC;AAAM,cAAM,YAAY,OAAO,QAAQ;AAC5C,aAAO;AAAA,IACT;AAEA,IAAAA,QAAO,UAAU,sBAAsB,SAAU,IAAI,OAAO,MAAM;AAChE,UAAI,OAAO,OAAO,UAAU;AAC1B,YAAI,OAAO,KAAK,YAAY,EAAE;AAC9B,YAAI,CAAC;AAAM,gBAAM,MAAM,gBAAgB;AACvC,eAAO,KAAK;AAAA,MACd,OAAO;AACL,YAAI,QAAQ,YAAY,EAAE;AAC1B,YAAIlD,QAAO,KAAK,QAAQ,KAAK;AAC7B,YAAIA;AAAM,iBAAOA,MAAK,QAAQ;AAE9B,YAAI,QAAQ,SAAS;AACnB,cAAI,UAAU,KAAK,cAAc,KAAK;AAEtC,cAAI,SAAS;AACX,gBAAI,SAAS,MAAM,MAAM,SAAS,CAAC;AACnC,YAAAA,QAAO,KAAK,WAAW,SAAS,QAAQ,OAAO,IAAI;AACnD,mBAAOA,MAAK,QAAQ;AAAA,UACtB;AAAA,QACF;AAEA,cAAM,YAAY,QAAQ,uBAAuB,eAAe,EAAE,CAAC;AAAA,MACrE;AAAA,IACF;AAEA,IAAAkD,QAAO,UAAU,YAAY,SAAU,QAAQ,MAAM,UAAU;AAC7D,UAAI,QAAQ;AAEZ,uBAAiB,QAAQ;AACzB,OAAC,GAAG,eAAe,SAAS,WAAY;AACtC,YAAI;AAEJ,YAAI;AACF,mBAAS,OAAO,MAAM,OAAO,IAAI;AAAA,QACnC,SAAS,KAAK;AACZ,mBAAS,GAAG;AACZ;AAAA,QACF;AAEA,iBAAS,MAAM,MAAM;AAAA,MACvB,CAAC;AAAA,IACH;AAEA,IAAAA,QAAO,UAAU,UAAU,SAAUlD,OAAM,MAAM6B,OAAM;AACrD,UAAIyB;AAEJ,UAAItD,UAAS,QAAQ;AACnB,QAAAA,QAAO,KAAK;AAAA,MACd;AAEA,UAAI,SAAS,QAAQ;AACnB,eAAO,CAAC;AAAA,MACV;AAEA,UAAI,UAAU;AACd,UAAI,WAAWA,MAAK;AAEpB,UAAIA,MAAK,QAAQ,EAAE,OAAO,GAAG;AAC3B,oBAAYsD,MAAK,CAAC,GAAGA,IAAGtD,MAAK,QAAQ,CAAC,IAAIA,MAAK,OAAO,SAASA,MAAK,QAAQ,CAAC,GAAGsD;AAChF,QAAAtD,QAAOA,MAAK;AAAA,MACd;AAEA,eAAS,UAAU,UAAU;AAC3B,kBAAU;AACV,YAAI,QAAQA,MAAK,SAAS,MAAM;AAEhC,YAAI,CAAC,OAAO;AACV,gBAAM,IAAI,MAAM,+BAA+B;AAAA,QACjD;AAEA,YAAI,OAAO,MAAM,QAAQ;AAEzB,YAAI,KAAK,OAAO,GAAG;AACjB,cAAI,WAAW,MAAM,QAAQ;AAC7B,cAAI6B;AAAM,uBAAWY,UAASZ,OAAM,QAAQ;AAC5C,eAAK,QAAQ,IAAI,KAAK,UAAU;AAAA,QAClC,WAAW,KAAK,YAAY,GAAG;AAC7B,eAAK,QAAQ,OAAO,MAAMA,KAAI;AAAA,QAChC;AAAA,MACF;AAEA,UAAI,UAAU7B,MAAK,QAAQ;AAC3B,UAAI6B;AAAM,kBAAUY,UAASZ,OAAM,OAAO;AAE1C,UAAI,WAAW,SAAS;AACtB,aAAK,OAAO,IAAI;AAAA,MAClB;AAEA,aAAO;AAAA,IACT;AAEA,IAAAqB,QAAO,UAAU,SAAS,SAAU,OAAO,MAAM,YAAY;AAC3D,UAAI,SAAS,QAAQ;AACnB,eAAO,CAAC;AAAA,MACV;AAEA,UAAI,eAAe,QAAQ;AACzB,qBAAa;AAAA,MACf;AAEA,UAAI,QAAQ,CAAC;AAEb,UAAI,OAAO;AACT,YAAI,EAAE,iBAAiB;AAAQ,kBAAQ,CAAC,KAAK;AAE7C,iBAAS,KAAK,GAAG,UAAU,OAAO,KAAK,QAAQ,QAAQ,MAAM;AAC3D,cAAIrB,QAAO,QAAQ,EAAE;AACrB,cAAI,WAAW,eAAeA,KAAI;AAClC,cAAI7B,QAAO,KAAK,gBAAgB,QAAQ;AACxC,cAAI,CAACA;AAAM;AACX,gBAAM,KAAKA,KAAI;AAAA,QACjB;AAAA,MACF,OAAO;AACL,cAAM,KAAK,KAAK,IAAI;AAAA,MACtB;AAEA,UAAI,CAAC,MAAM;AAAQ,eAAO;AAE1B,eAASsD,MAAK,GAAG,UAAU,OAAOA,MAAK,QAAQ,QAAQA,OAAM;AAC3D,YAAItD,QAAO,QAAQsD,GAAE;AAErB,aAAK,QAAQtD,OAAM,MAAM,aAAaA,MAAK,QAAQ,IAAI,EAAE;AAAA,MAC3D;AAEA,aAAO;AAAA,IACT;AAEA,IAAAkD,QAAO,UAAU,WAAW,SAAU,MAAM,KAAK;AAC/C,UAAI,QAAQ,QAAQ;AAClB,cAAM,UAAU,QAAQ,IAAI;AAAA,MAC9B;AAEA,eAAS,YAAY,MAAM;AACzB,YAAI,OAAO,KAAK,QAAQ;AACxB,mBAAWxB,SAAQ,UAAU,GAAG;AAEhC,YAAI,OAAO,SAAS,UAAU;AAC5B,cAAI,MAAMiB,SAAQ,QAAQ;AAC1B,eAAK;AAAA,YAAW;AAAA,YAAK;AAAA;AAAA,UAErB;AACA,eAAK,cAAc,UAAU,IAAI;AAAA,QACnC,OAAO;AACL,eAAK;AAAA,YAAW;AAAA,YAAU;AAAA;AAAA,UAE1B;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,IAAAO,QAAO,UAAU,iBAAiB,SAAU,MAAM,KAAK;AACrD,WAAK,SAAS,YAAY,IAAI,GAAG,GAAG;AAAA,IACtC;AAEA,IAAAA,QAAO,UAAU,QAAQ,WAAY;AACnC,WAAK,MAAM;AACX,WAAK,SAAS,CAAC;AACf,WAAK,eAAe,CAAC;AACrB,WAAK,MAAM,CAAC;AACZ,WAAK,cAAc,CAAC;AACpB,WAAK,YAAY;AACjB,WAAK,OAAO,KAAK,WAAW;AAC5B,WAAK,KAAK,QAAQ,KAAK,WAAW,IAAI,CAAC;AAAA,IACzC;AAGA,IAAAA,QAAO,UAAU,YAAY,SAAU,YAAY,MAAM;AACvD,WAAK,SAAS,MAAM,UAAU;AAAA,IAChC;AAEA,IAAAA,QAAO,UAAU,WAAW,SAAUlD,OAAM,UAAU,iBAAiB;AACrE,UAAI,oBAAoB,QAAQ;AAC9B,0BAAkB;AAAA,MACpB;AAEA,UAAI,KAAK,aAAa,KAAK,UAAU;AAEnC,cAAM,YAAY,QAAQ,QAAQA,MAAK,QAAQ,CAAC;AAAA,MAClD;AAGA,UAAI,WAAWA;AACf,UAAI;AAAiB,mBAAW,KAAK,gBAAgBA,KAAI;AACzD,UAAI,CAAC;AAAU,cAAM,YAAY,QAAQ,QAAQA,MAAK,QAAQ,CAAC;AAC/D,UAAI,OAAO,SAAS,QAAQ;AAE5B,UAAI,KAAK,YAAY,GAAG;AACtB,aAAK,YAAY,WAAW,SAAS,eAAe;AAAU,gBAAM,YAAY,QAAQ,QAAQA,MAAK,QAAQ,CAAC;AAAA,MAChH,OAAO;AACL,YAAI,WAAW;AAAa,gBAAM,YAAY,SAAS,QAAQA,MAAK,QAAQ,CAAC;AAAA,MAC/E;AAGA,UAAI,EAAE,WAAW,WAAW;AAC1B,YAAI,CAAC,KAAK,QAAQ,GAAG;AACnB,gBAAM,YAAY,QAAQ,QAAQA,MAAK,QAAQ,CAAC;AAAA,QAClD;AAAA,MACF;AAEA,UAAI,OAAO,IAAI,KAAK,MAAM,KAAKA,OAAM,MAAM,UAAU,KAAK,YAAY,CAAC;AACvE,WAAK,IAAI,KAAK,EAAE,IAAI;AACpB,WAAK;AACL,UAAI,WAAW;AAAS,aAAK,SAAS;AACtC,aAAO;AAAA,IACT;AAEA,IAAAkD,QAAO,UAAU,WAAW,SAAU,UAAU,UAAU,SAAS,iBAAiB;AAClF,UAAI,oBAAoB,QAAQ;AAC9B,0BAAkB;AAAA,MACpB;AAEA,UAAI,QAAQ,gBAAgB,QAAQ;AACpC,UAAIlD,QAAO,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,KAAK,QAAQ,KAAK;AAE7E,UAAI,CAACA,SAAQ,WAAW,SAAS;AAE/B,YAAI,UAAU,KAAK,gBAAgB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,CAAC;AAEnE,YAAI,CAAC;AAAS,gBAAM,YAAY,QAAQ,QAAQwC,OAAM,MAAM,KAAKA,IAAG,CAAC;AAErE,YAAI,WAAW,WAAW,OAAO,YAAY,UAAU;AACrD,UAAAxC,QAAO,KAAK,WAAW,SAAS,MAAM,MAAM,SAAS,CAAC,GAAG,OAAO,OAAO;AAAA,QACzE;AAAA,MACF;AAEA,UAAIA;AAAM,eAAO,KAAK,SAASA,OAAM,UAAU,eAAe;AAC9D,YAAM,YAAY,QAAQ,QAAQ,QAAQ;AAAA,IAC5C;AAEA,IAAAkD,QAAO,UAAU,WAAW,SAAU,UAAU,UAAU,SAAS,iBAAiB;AAClF,UAAI,oBAAoB,QAAQ;AAC9B,0BAAkB;AAAA,MACpB;AAEA,UAAI,OAAO,KAAK,SAAS,UAAU,UAAU,SAAS,eAAe;AACrE,UAAI,CAAC;AAAM,cAAM,YAAY,QAAQ,QAAQ,QAAQ;AACrD,aAAO,KAAK;AAAA,IACd;AAEA,IAAAA,QAAO,UAAU,WAAW,SAAUrB,OAAM,OAAO,MAAM;AACvD,UAAI,SAAS,QAAQ;AACnB,eAAO;AAAA,MAGT;AAGA,UAAI,UAAU,aAAa,IAAI;AAC/B,UAAI,WAAW,eAAeA,KAAI;AAClC,UAAI,WAAW,cAAc,KAAK;AAClC,aAAO,KAAK,SAAS,UAAU,UAAU,OAAO;AAAA,IAClD;AAEA,IAAAqB,QAAO,UAAU,OAAO,SAAUrB,OAAM,OAAOrC,IAAGN,IAAG;AACnD,UAAI,OAAOM;AACX,UAAI,WAAWN;AAEf,UAAI,OAAOM,OAAM,YAAY;AAC3B,eAAO;AAGP,mBAAWA;AAAA,MACb;AAEA,aAAO,QAAQ;AAGf,UAAI,UAAU,aAAa,IAAI;AAC/B,UAAI,WAAW,eAAeqC,KAAI;AAClC,UAAI,WAAW,cAAc,KAAK;AAClC,WAAK,UAAU,KAAK,UAAU,CAAC,UAAU,UAAU,OAAO,GAAG,QAAQ;AAAA,IACvE;AAEA,IAAAqB,QAAO,UAAU,YAAY,SAAU,MAAM;AAC3C,UAAI,CAAC,KAAK,IAAI,KAAK,EAAE;AAAG;AACxB,WAAK;AACL,aAAO,KAAK,IAAI,KAAK,EAAE;AACvB,WAAK,YAAY,KAAK,KAAK,EAAE;AAAA,IAC/B;AAEA,IAAAA,QAAO,UAAU,YAAY,SAAU,IAAI;AACzC,iBAAW,EAAE;AACb,UAAI,OAAO,KAAK,mBAAmB,IAAI,OAAO;AAC9C,WAAK,UAAU,IAAI;AAAA,IACrB;AAEA,IAAAA,QAAO,UAAU,QAAQ,SAAU,IAAI,UAAU;AAC/C,iBAAW,EAAE;AACb,WAAK,UAAU,KAAK,WAAW,CAAC,EAAE,GAAG,QAAQ;AAAA,IAC/C;AAEA,IAAAA,QAAO,UAAU,oBAAoB,SAAU,IAAI,UAAU,SAAS;AACpE,UAAI,OAAO,OAAO,UAAU;AAC1B,YAAI,OAAO,KAAK,IAAI,EAAE;AACtB,YAAI,CAAC;AAAM,gBAAM,YAAY,MAAM;AACnC,eAAO;AAAA,MACT,OAAO;AACL,eAAO,KAAK,SAAS,eAAe,EAAE,GAAG,UAAU,OAAO;AAAA,MAC5D;AAAA,IACF;AAEA,IAAAA,QAAO,UAAU,WAAW,SAAU,IAAItB,SAAQ,QAAQX,SAAQ,UAAU;AAC1E,UAAI,OAAO,KAAK,mBAAmB,EAAE;AACrC,aAAO,KAAK,KAAKW,SAAQ,OAAO,MAAM,GAAG,OAAOX,OAAM,GAAG,QAAQ;AAAA,IACnE;AAEA,IAAAiC,QAAO,UAAU,WAAW,SAAU,IAAItB,SAAQ,QAAQX,SAAQ,UAAU;AAC1E,iBAAW,EAAE;AACb,aAAO,KAAK,SAAS,IAAIW,SAAQ,QAAQX,SAAQ,QAAQ;AAAA,IAC3D;AAEA,IAAAiC,QAAO,UAAU,OAAO,SAAU,IAAItB,SAAQ,QAAQX,SAAQ,UAAU,UAAU;AAChF,UAAI,QAAQ;AAEZ,uBAAiB,QAAQ;AAEzB,UAAIA,YAAW,GAAG;AAChB,eAAO,UAAU,QAAQ,SAAS,WAAY;AAC5C,cAAI;AAAU,qBAAS,MAAM,GAAGW,OAAM;AAAA,QACxC,CAAC;AAAA,MACH;AAEA,OAAC,GAAG,eAAe,SAAS,WAAY;AACtC,YAAI;AACF,cAAI,QAAQ,MAAM,SAAS,IAAIA,SAAQ,QAAQX,SAAQ,QAAQ;AAE/D,mBAAS,MAAM,OAAOW,OAAM;AAAA,QAC9B,SAAS,KAAK;AACZ,mBAAS,GAAG;AAAA,QACd;AAAA,MACF,CAAC;AAAA,IACH;AAEA,IAAAsB,QAAO,UAAU,eAAe,SAAU,IAAI,UAAU,UAAU;AAChE,UAAI;AACJ,UAAI,WAAW,OAAO,OAAO;AAC7B,UAAI,aAAa,YAAY,KAAK,EAAE;AACpC,UAAI;AACJ,UAAI;AAAY,aAAK;AAAA,WAAQ;AAC3B,YAAI,WAAW,eAAe,EAAE;AAChC,YAAI,QAAQ,gBAAgB,QAAQ;AACpC,YAAIlD,QAAO,KAAK,gBAAgB,KAAK;AAErC,YAAIA,OAAM;AACR,cAAI,OAAOA,MAAK,QAAQ;AACxB,cAAI,KAAK,YAAY;AAAG,kBAAM,YAAY,QAAQ,QAAQA,MAAK,QAAQ,CAAC;AAAA,QAC1E;AAEA,aAAK,KAAK,SAAS,IAAI,QAAQ;AAAA,MACjC;AAEA,UAAI;AACF,iBAAS,iBAAiB,KAAK,mBAAmB,EAAE,EAAE,UAAU,GAAG,QAAQ;AAAA,MAC7E,UAAE;AACA,YAAI,CAAC,YAAY;AACf,eAAK,UAAU,EAAE;AAAA,QACnB;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAEA,IAAAkD,QAAO,UAAU,eAAe,SAAU,MAAM,SAAS;AACvD,UAAI,OAAO,mBAAmB,OAAO;AACrC,UAAI,WAAW,cAAc,KAAK,IAAI;AACtC,aAAO,KAAK,aAAa,MAAM,UAAU,KAAK,QAAQ;AAAA,IACxD;AAEA,IAAAA,QAAO,UAAU,WAAW,SAAU,IAAI1D,IAAGN,IAAG;AAC9C,UAAIoE,MAAK,mBAAmB,kBAAkB,EAAE9D,IAAGN,EAAC,GAChD,OAAOoE,IAAG,CAAC,GACX,WAAWA,IAAG,CAAC;AAEnB,UAAI,WAAW,cAAc,KAAK,IAAI;AACtC,WAAK,UAAU,KAAK,cAAc,CAAC,IAAI,UAAU,KAAK,QAAQ,GAAG,QAAQ;AAAA,IAC3E;AAEA,IAAAJ,QAAO,UAAU,YAAY,SAAU,IAAIrC,MAAK,QAAQI,SAAQ,UAAU;AACxE,UAAI,OAAO,KAAK,mBAAmB,IAAI,OAAO;AAC9C,aAAO,KAAK,MAAMJ,MAAK,QAAQI,SAAQ,QAAQ;AAAA,IACjD;AAEA,IAAAiC,QAAO,UAAU,YAAY,SAAU,IAAI1D,IAAGN,IAAGqE,IAAGtE,IAAG;AACrD,iBAAW,EAAE;AACb,UAAI;AACJ,UAAI;AACJ,UAAIgC;AACJ,UAAI;AACJ,UAAIuC,YAAW,OAAOhE,OAAM;AAE5B,UAAIgE,WAAU;AACZ,kBAAUtE,MAAK,KAAK;AACpB,QAAA+B,UAASsC;AACT,mBAAWtE;AAAA,MACb,OAAO;AACL,mBAAWC;AACX,mBAAWqE;AAAA,MACb;AAEA,UAAI1C,OAAM,aAAarB,IAAG,QAAQ;AAElC,UAAIgE,WAAU;AACZ,YAAI,OAAOvC,YAAW,aAAa;AACjC,UAAAA,UAASJ,KAAI;AAAA,QACf;AAAA,MACF,OAAO;AACL,iBAAS;AACT,QAAAI,UAASJ,KAAI;AAAA,MACf;AAEA,aAAO,KAAK,UAAU,IAAIA,MAAK,QAAQI,SAAQ,QAAQ;AAAA,IACzD;AAEA,IAAAiC,QAAO,UAAU,QAAQ,SAAU,IAAI1D,IAAGN,IAAGqE,IAAGtE,IAAGwE,IAAG;AACpD,UAAI,QAAQ;AAEZ,iBAAW,EAAE;AACb,UAAI;AACJ,UAAIxC;AACJ,UAAI;AACJ,UAAI;AACJ,UAAI;AACJ,UAAI,OAAO,OAAOzB;AAClB,UAAI,OAAO,OAAON;AAClB,UAAI,OAAO,OAAOqE;AAClB,UAAI,OAAO,OAAOtE;AAElB,UAAI,SAAS,UAAU;AACrB,YAAI,SAAS,YAAY;AACvB,qBAAWC;AAAA,QACb,WAAW,SAAS,YAAY;AAC9B,mBAASA,KAAI;AACb,qBAAWqE;AAAA,QACb,WAAW,SAAS,YAAY;AAC9B,mBAASrE,KAAI;AACb,UAAA+B,UAASsC;AACT,qBAAWtE;AAAA,QACb,OAAO;AACL,mBAASC,KAAI;AACb,UAAA+B,UAASsC;AACT,qBAAWtE;AACX,qBAAWwE;AAAA,QACb;AAAA,MACF,OAAO;AACL,YAAI,SAAS,YAAY;AACvB,qBAAWvE;AAAA,QACb,WAAW,SAAS,YAAY;AAC9B,qBAAWA;AACX,qBAAWqE;AAAA,QACb,WAAW,SAAS,YAAY;AAC9B,qBAAWrE;AACX,qBAAWqE;AACX,qBAAWtE;AAAA,QACb;AAAA,MACF;AAEA,UAAI4B,OAAM,aAAarB,IAAG,QAAQ;AAElC,UAAI,SAAS,UAAU;AACrB,YAAI,OAAOyB,YAAW;AAAa,UAAAA,UAASJ,KAAI;AAAA,MAClD,OAAO;AACL,iBAAS;AACT,QAAAI,UAASJ,KAAI;AAAA,MACf;AAEA,UAAI,KAAK,iBAAiB,QAAQ;AAClC,OAAC,GAAG,eAAe,SAAS,WAAY;AACtC,YAAI;AACF,cAAI,QAAQ,MAAM,UAAU,IAAIA,MAAK,QAAQI,SAAQ,QAAQ;AAE7D,cAAI,SAAS,UAAU;AACrB,eAAG,MAAM,OAAOJ,IAAG;AAAA,UACrB,OAAO;AACL,eAAG,MAAM,OAAOrB,EAAC;AAAA,UACnB;AAAA,QACF,SAAS,KAAK;AACZ,aAAG,GAAG;AAAA,QACR;AAAA,MACF,CAAC;AAAA,IACH;AAEA,IAAA0D,QAAO,UAAU,gBAAgB,SAAU,IAAIrC,MAAK,UAAU,SAAS;AAIrE,UAAI,WAAW,OAAO,OAAO;AAC7B,UAAI;AACJ,UAAI;AAAU,aAAK;AAAA,WAAQ;AACzB,aAAK,KAAK,SAAS,eAAe,EAAE,GAAG,UAAU,OAAO;AAAA,MAC1D;AACA,UAAI,SAAS;AACb,UAAII,UAASJ,KAAI;AACjB,UAAI,WAAW,WAAW,WAAW,SAAY;AAEjD,UAAI;AACF,eAAOI,UAAS,GAAG;AACjB,cAAI,UAAU,KAAK,UAAU,IAAIJ,MAAK,QAAQI,SAAQ,QAAQ;AAC9D,oBAAU;AACV,UAAAA,WAAU;AACV,cAAI,aAAa;AAAW,wBAAY;AAAA,QAC1C;AAAA,MACF,UAAE;AACA,YAAI,CAAC;AAAU,eAAK,UAAU,EAAE;AAAA,MAClC;AAAA,IACF;AAEA,IAAAiC,QAAO,UAAU,gBAAgB,SAAU,IAAI,MAAM,SAAS;AAC5D,UAAI,OAAO,oBAAoB,OAAO;AACtC,UAAI,WAAW,cAAc,KAAK,IAAI;AACtC,UAAI,UAAU,aAAa,KAAK,IAAI;AACpC,UAAIrC,OAAM,aAAa,MAAM,KAAK,QAAQ;AAC1C,WAAK,cAAc,IAAIA,MAAK,UAAU,OAAO;AAAA,IAC/C;AAEA,IAAAqC,QAAO,UAAU,YAAY,SAAU,IAAI,MAAM1D,IAAGN,IAAG;AACrD,UAAI,UAAUM;AACd,UAAI,WAAWN;AAEf,UAAI,OAAOM,OAAM,YAAY;AAC3B,kBAAU;AACV,mBAAWA;AAAA,MACb;AAEA,UAAI,KAAK,iBAAiB,QAAQ;AAClC,UAAI,OAAO,oBAAoB,OAAO;AACtC,UAAI,WAAW,cAAc,KAAK,IAAI;AACtC,UAAI,UAAU,aAAa,KAAK,IAAI;AACpC,UAAIqB,OAAM,aAAa,MAAM,KAAK,QAAQ;AAC1C,WAAK,UAAU,KAAK,eAAe,CAAC,IAAIA,MAAK,UAAU,OAAO,GAAG,EAAE;AAAA,IACrE;AAEA,IAAAqC,QAAO,UAAU,WAAW,SAAU,WAAW,WAAW;AAC1D,UAAI,SAAS,gBAAgB,SAAS;AACtC,UAAI,QAAQ,KAAK,QAAQ,MAAM;AAC/B,UAAI,CAAC;AAAO,cAAM,YAAY,QAAQ,QAAQ,WAAW,SAAS;AAClE,UAAI,SAAS,gBAAgB,SAAS;AAEtC,UAAI,OAAO,KAAK,cAAc,MAAM;AACpC,UAAI,CAAC;AAAM,cAAM,YAAY,QAAQ,QAAQ,WAAW,SAAS;AACjE,UAAI3D,QAAO,OAAO,OAAO,SAAS,CAAC;AAEnC,UAAI,KAAK,SAASA,KAAI;AAAG,cAAM,YAAY,QAAQ,QAAQ,WAAW,SAAS;AAC/E,UAAI,OAAO,MAAM,QAAQ;AACzB,WAAK;AACL,WAAK,YAAYA,OAAM,IAAI;AAAA,IAC7B;AAEA,IAAA2D,QAAO,UAAU,eAAe,SAAUpB,MAAK,MAAM,OAAO;AAC1D,UAAIjB,OAAM,KAAK,aAAaiB,IAAG;AAE/B,UAAI,QAAQ,eAAe;AACzB,YAAI,KAAK,WAAW,IAAI,GAAG;AACzB,gBAAM,YAAY,QAAQ,YAAYA,MAAK,IAAI;AAAA,QACjD;AAAA,MACF;AAEA,UAAI,QAAQ,wBAAwB;AAClC,cAAM,YAAY,QAAQ,YAAYA,MAAK,IAAI;AAAA,MACjD;AAEA,WAAK;AAAA,QAAc;AAAA,QAAMjB;AAAA,QAAK,MAAM;AAAA,QAAG;AAAA;AAAA,MAEvC;AAAA,IACF;AAEA,IAAAqC,QAAO,UAAU,eAAe,SAAUpB,MAAK,MAAM,OAAO;AAC1D,UAAI,cAAc,eAAeA,IAAG;AACpC,UAAI,eAAe,eAAe,IAAI;AACtC,aAAO,KAAK,aAAa,aAAa,eAAe,SAAS,KAAK,CAAC;AAAA,IACtE;AAEA,IAAAoB,QAAO,UAAU,WAAW,SAAUpB,MAAK,MAAMtC,IAAGN,IAAG;AACrD,UAAI,cAAc,eAAe4C,IAAG;AACpC,UAAI,eAAe,eAAe,IAAI;AACtC,UAAI;AACJ,UAAI;AAEJ,UAAI,OAAOtC,OAAM,YAAY;AAC3B,gBAAQ;AACR,mBAAWA;AAAA,MACb,OAAO;AACL,gBAAQA;AACR,mBAAWN;AAAA,MACb;AAEA,uBAAiB,QAAQ;AACzB,WAAK,UAAU,KAAK,cAAc,CAAC,aAAa,cAAc,KAAK,GAAG,QAAQ;AAAA,IAChF;AAEA,IAAAgE,QAAO,UAAU,WAAW,SAAU,cAAc,SAAS;AAC3D,UAAI,uBAAuB,eAAe,YAAY;AACtD,UAAI,kBAAkB,eAAe,OAAO;AAC5C,WAAK,SAAS,sBAAsB,eAAe;AAAA,IACrD;AAEA,IAAAA,QAAO,UAAU,OAAO,SAAU,cAAc,SAAS,UAAU;AACjE,UAAI,uBAAuB,eAAe,YAAY;AACtD,UAAI,kBAAkB,eAAe,OAAO;AAC5C,WAAK,UAAU,KAAK,UAAU,CAAC,sBAAsB,eAAe,GAAG,QAAQ;AAAA,IACjF;AAEA,IAAAA,QAAO,UAAU,aAAa,SAAU,UAAU;AAChD,UAAI,QAAQ,gBAAgB,QAAQ;AACpC,UAAIlD,QAAO,KAAK,QAAQ,KAAK;AAC7B,UAAI,CAACA;AAAM,cAAM,YAAY,QAAQ,UAAU,QAAQ;AAEvD,UAAIA,MAAK;AAAQ,cAAM,MAAM,kBAAkB;AAC/C,WAAK,WAAWA,KAAI;AACpB,UAAI,OAAOA,MAAK,QAAQ;AACxB,WAAK;AAEL,UAAI,KAAK,SAAS,GAAG;AACnB,aAAK,WAAW,IAAI;AAAA,MACtB;AAAA,IACF;AAEA,IAAAkD,QAAO,UAAU,aAAa,SAAUrB,OAAM;AAC5C,UAAI,WAAW,eAAeA,KAAI;AAClC,WAAK,WAAW,QAAQ;AAAA,IAC1B;AAEA,IAAAqB,QAAO,UAAU,SAAS,SAAUrB,OAAM,UAAU;AAClD,UAAI,WAAW,eAAeA,KAAI;AAClC,WAAK,UAAU,KAAK,YAAY,CAAC,QAAQ,GAAG,QAAQ;AAAA,IACtD;AAEA,IAAAqB,QAAO,UAAU,cAAc,SAAU,gBAAgB,cAAc;AACrE,UAAI,YAAY,gBAAgB,YAAY;AAE5C,UAAI,UAAU,KAAK,cAAc,SAAS;AAC1C,UAAI,CAAC;AAAS,cAAM,YAAY,QAAQ,WAAW,gBAAgB,YAAY;AAC/E,UAAI3D,QAAO,UAAU,UAAU,SAAS,CAAC;AAEzC,UAAI,QAAQ,SAASA,KAAI;AAAG,cAAM,YAAY,QAAQ,WAAW,gBAAgB,YAAY;AAE7F,UAAImE,WAAU,QAAQ,YAAYnE,KAAI;AACtC,MAAAmE,SAAQ,QAAQ,EAAE,YAAY,gBAAgB,cAAc,CAAC;AAC7D,aAAOA;AAAA,IACT;AAGA,IAAAR,QAAO,UAAU,cAAc,SAAU,QAAQrB,OAAM,MAAM;AAC3D,UAAI,iBAAiB,eAAe,MAAM;AAC1C,UAAI,eAAe,eAAeA,KAAI;AACtC,WAAK,YAAY,gBAAgB,YAAY;AAAA,IAC/C;AAEA,IAAAqB,QAAO,UAAU,UAAU,SAAU,QAAQrB,OAAMrC,IAAGN,IAAG;AACvD,UAAI,WAAW,iBAAiB,OAAOM,OAAM,aAAaA,KAAIN,EAAC;AAC/D,UAAI,iBAAiB,eAAe,MAAM;AAC1C,UAAI,eAAe,eAAe2C,KAAI;AACtC,WAAK,UAAU,KAAK,aAAa,CAAC,gBAAgB,YAAY,GAAG,QAAQ;AAAA,IAC3E;AAEA,IAAAqB,QAAO,UAAU,eAAe,SAAU,UAAU,UAAU;AAC5D,UAAI,QAAQ,gBAAgB,QAAQ;AACpC,UAAI,WAAW,KAAK,gBAAgB,KAAK;AACzC,UAAI,CAAC;AAAU,cAAM,YAAY,QAAQ,YAAY,QAAQ;AAC7D,cAAQ,GAAG,WAAW,eAAe,SAAS,QAAQ,GAAG,QAAQ;AAAA,IACnE;AAEA,IAAAA,QAAO,UAAU,eAAe,SAAUrB,OAAM,SAAS;AACvD,aAAO,KAAK,aAAa,eAAeA,KAAI,GAAG,mBAAmB,OAAO,EAAE,QAAQ;AAAA,IACrF;AAEA,IAAAqB,QAAO,UAAU,WAAW,SAAUrB,OAAMrC,IAAGN,IAAG;AAChD,UAAIoE,MAAK,qBAAqB9D,IAAGN,EAAC,GAC9B,OAAOoE,IAAG,CAAC,GACX,WAAWA,IAAG,CAAC;AAEnB,UAAI,eAAe,eAAezB,KAAI;AACtC,WAAK,UAAU,KAAK,cAAc,CAAC,cAAc,KAAK,QAAQ,GAAG,QAAQ;AAAA,IAC3E;AAEA,IAAAqB,QAAO,UAAU,YAAY,SAAU,UAAU,QAAQ;AACvD,UAAI,WAAW,QAAQ;AACrB,iBAAS;AAAA,MACX;AAEA,UAAIlD,QAAO,KAAK,QAAQ,gBAAgB,QAAQ,CAAC;AACjD,UAAI,CAACA;AAAM,cAAM,YAAY,QAAQ,SAAS,QAAQ;AACtD,aAAO,QAAQ,QAAQ,MAAMA,MAAK,QAAQ,GAAG,MAAM;AAAA,IACrD;AAEA,IAAAkD,QAAO,UAAU,YAAY,SAAUrB,OAAM,SAAS;AACpD,aAAO,KAAK,UAAU,eAAeA,KAAI,GAAG,eAAe,OAAO,EAAE,MAAM;AAAA,IAC5E;AAEA,IAAAqB,QAAO,UAAU,QAAQ,SAAUrB,OAAMrC,IAAGN,IAAG;AAC7C,UAAIoE,MAAK,iBAAiB9D,IAAGN,EAAC,GAC1B,OAAOoE,IAAG,CAAC,GACX,WAAWA,IAAG,CAAC;AAEnB,WAAK,UAAU,KAAK,WAAW,CAAC,eAAezB,KAAI,GAAG,KAAK,MAAM,GAAG,QAAQ;AAAA,IAC9E;AAEA,IAAAqB,QAAO,UAAU,WAAW,SAAU,UAAU,QAAQ;AACtD,UAAI,WAAW,QAAQ;AACrB,iBAAS;AAAA,MACX;AAEA,UAAIlD,QAAO,KAAK,gBAAgB,gBAAgB,QAAQ,CAAC;AACzD,UAAI,CAACA;AAAM,cAAM,YAAY,QAAQ,QAAQ,QAAQ;AACrD,aAAO,QAAQ,QAAQ,MAAMA,MAAK,QAAQ,GAAG,MAAM;AAAA,IACrD;AAEA,IAAAkD,QAAO,UAAU,WAAW,SAAUrB,OAAM,SAAS;AACnD,aAAO,KAAK,SAAS,eAAeA,KAAI,GAAG,eAAe,OAAO,EAAE,MAAM;AAAA,IAC3E;AAEA,IAAAqB,QAAO,UAAU,OAAO,SAAUrB,OAAMrC,IAAGN,IAAG;AAC5C,UAAIoE,MAAK,iBAAiB9D,IAAGN,EAAC,GAC1B,OAAOoE,IAAG,CAAC,GACX,WAAWA,IAAG,CAAC;AAEnB,WAAK,UAAU,KAAK,UAAU,CAAC,eAAezB,KAAI,GAAG,KAAK,MAAM,GAAG,QAAQ;AAAA,IAC7E;AAEA,IAAAqB,QAAO,UAAU,YAAY,SAAU,IAAI,QAAQ;AACjD,UAAI,WAAW,QAAQ;AACrB,iBAAS;AAAA,MACX;AAEA,UAAI,OAAO,KAAK,YAAY,EAAE;AAC9B,UAAI,CAAC;AAAM,cAAM,YAAY,OAAO,OAAO;AAC3C,aAAO,QAAQ,QAAQ,MAAM,KAAK,MAAM,MAAM;AAAA,IAChD;AAEA,IAAAA,QAAO,UAAU,YAAY,SAAU,IAAI,SAAS;AAClD,aAAO,KAAK,UAAU,IAAI,eAAe,OAAO,EAAE,MAAM;AAAA,IAC1D;AAEA,IAAAA,QAAO,UAAU,QAAQ,SAAU,IAAI1D,IAAGN,IAAG;AAC3C,UAAIoE,MAAK,iBAAiB9D,IAAGN,EAAC,GAC1B,OAAOoE,IAAG,CAAC,GACX,WAAWA,IAAG,CAAC;AAEnB,WAAK,UAAU,KAAK,WAAW,CAAC,IAAI,KAAK,MAAM,GAAG,QAAQ;AAAA,IAC5D;AAEA,IAAAJ,QAAO,UAAU,aAAa,SAAU,iBAAiB,iBAAiB;AACxE,UAAIlD,QAAO,KAAK,QAAQ,gBAAgB,eAAe,CAAC;AACxD,UAAI,CAACA;AAAM,cAAM,YAAY,QAAQ,UAAU,iBAAiB,eAAe;AAE/E,UAAI,eAAe,gBAAgB,eAAe;AAElD,UAAI,iBAAiB,KAAK,cAAc,YAAY;AACpD,UAAI,CAAC;AAAgB,cAAM,YAAY,QAAQ,UAAU,iBAAiB,eAAe;AAIzF,UAAI,gBAAgBA,MAAK;AAEzB,UAAI,eAAe;AACjB,sBAAc,YAAYA,KAAI;AAAA,MAChC;AAGA,UAAIT,QAAO,aAAa,aAAa,SAAS,CAAC;AAC/C,MAAAS,MAAK,QAAQ,cAAc,cAAc,CAAC,GAAG,eAAe,OAAO,IAAI,GAAG,CAACT,KAAI,GAAG,KAAK;AACvF,qBAAe,SAASS,MAAK,QAAQ,GAAGA,KAAI;AAAA,IAC9C;AAEA,IAAAkD,QAAO,UAAU,aAAa,SAAU,SAAS,SAAS;AACxD,UAAI,kBAAkB,eAAe,OAAO;AAC5C,UAAI,kBAAkB,eAAe,OAAO;AAC5C,WAAK,WAAW,iBAAiB,eAAe;AAAA,IAClD;AAEA,IAAAA,QAAO,UAAU,SAAS,SAAU,SAAS,SAAS,UAAU;AAC9D,UAAI,kBAAkB,eAAe,OAAO;AAC5C,UAAI,kBAAkB,eAAe,OAAO;AAC5C,WAAK,UAAU,KAAK,YAAY,CAAC,iBAAiB,eAAe,GAAG,QAAQ;AAAA,IAC9E;AAEA,IAAAA,QAAO,UAAU,aAAa,SAAU,UAAU;AAChD,aAAO,CAAC,CAAC,KAAK,SAAS,QAAQ;AAAA,IACjC;AAEA,IAAAA,QAAO,UAAU,aAAa,SAAUrB,OAAM;AAC5C,UAAI;AACF,eAAO,KAAK,WAAW,eAAeA,KAAI,CAAC;AAAA,MAC7C,SAAS,KAAK;AACZ,eAAO;AAAA,MACT;AAAA,IACF;AAEA,IAAAqB,QAAO,UAAU,SAAS,SAAUrB,OAAM,UAAU;AAClD,UAAI,QAAQ;AAEZ,UAAI,WAAW,eAAeA,KAAI;AAClC,UAAI,OAAO,aAAa;AAAY,cAAM,MAAM,OAAO,EAAE;AACzD,OAAC,GAAG,eAAe,SAAS,WAAY;AACtC,YAAI;AACF,mBAAS,MAAM,WAAW,QAAQ,CAAC;AAAA,QACrC,SAAS,KAAK;AACZ,mBAAS,KAAK;AAAA,QAChB;AAAA,MACF,CAAC;AAAA,IACH;AAEA,IAAAqB,QAAO,UAAU,aAAa,SAAU,UAAU,MAAM;AACtD,WAAK,eAAe,UAAU,QAAQ;AAAA,IACxC;AAEA,IAAAA,QAAO,UAAU,aAAa,SAAUrB,OAAM,MAAM;AAClD,UAAI,SAAS,QAAQ;AACnB,eAAOU;AAAA,MACT;AAEA,UAAI,WAAW,eAAeV,KAAI;AAClC,aAAO,OAAO;AACd,WAAK,WAAW,UAAU,IAAI;AAAA,IAChC;AAEA,IAAAqB,QAAO,UAAU,SAAS,SAAUrB,OAAMrC,IAAGN,IAAG;AAC9C,UAAI,OAAOqD;AACX,UAAI;AAEJ,UAAI,OAAO/C,OAAM,YAAY;AAC3B,eAAOA,KAAI;AAEX,mBAAW,iBAAiBN,EAAC;AAAA,MAC/B,OAAO;AACL,mBAAWM;AAAA,MACb;AAEA,UAAI,WAAW,eAAeqC,KAAI;AAClC,WAAK,UAAU,KAAK,YAAY,CAAC,UAAU,IAAI,GAAG,QAAQ;AAAA,IAC5D;AAEA,IAAAqB,QAAO,UAAU,iBAAiB,SAAU,IAAI,MAAM,SAAS;AAC7D,UAAI,YAAY,QAAQ;AACtB,kBAAU;AAAA,MACZ;AAEA,UAAI,OAAO,kBAAkB,OAAO;AAEpC,UAAI,CAAC,KAAK,QAAQ,KAAK,EAAE;AAAG,aAAK,OAAO;AACxC,WAAK,cAAc,IAAI,MAAM,IAAI;AAAA,IACnC;AAEA,IAAAA,QAAO,UAAU,aAAa,SAAU,IAAI,MAAM1D,IAAGN,IAAG;AACtD,UAAIoE,MAAK,uBAAuB9D,IAAGN,EAAC,GAChC,OAAOoE,IAAG,CAAC,GACX,WAAWA,IAAG,CAAC;AAGnB,UAAI,CAAC,KAAK,QAAQ,KAAK,EAAE;AAAG,aAAK,OAAO;AACxC,WAAK,UAAU,IAAI,MAAM,MAAM,QAAQ;AAAA,IACzC;AAEA,IAAAJ,QAAO,UAAU,cAAc,SAAU,UAAU,SAAS;AAC1D,UAAI,QAAQ,gBAAgB,QAAQ;AACpC,UAAIlD,QAAO,KAAK,gBAAgB,KAAK;AACrC,UAAI,CAACA;AAAM,cAAM,YAAY,QAAQ,WAAW,QAAQ;AACxD,UAAI,OAAOA,MAAK,QAAQ;AACxB,UAAI,CAAC,KAAK,YAAY;AAAG,cAAM,YAAY,SAAS,WAAW,QAAQ;AAEvE,UAAI,QAAQ,eAAe;AACzB,YAAI,SAAS,CAAC;AAEd,iBAAS,UAAUA,MAAK,UAAU;AAChC,cAAI,QAAQA,MAAK,SAAS,MAAM;AAEhC,cAAI,CAAC,OAAO;AACV;AAAA,UACF;AAEA,iBAAO,KAAK,SAAS,QAAQ,MAAM,OAAO,QAAQ,QAAQ,CAAC;AAAA,QAC7D;AAEA,YAAI,CAAC,SAAS,QAAQ,aAAa;AAAU,iBAAO,KAAK,SAAUR,IAAGN,IAAG;AACvE,gBAAIM,GAAE,OAAON,GAAE;AAAM,qBAAO;AAC5B,gBAAIM,GAAE,OAAON,GAAE;AAAM,qBAAO;AAC5B,mBAAO;AAAA,UACT,CAAC;AACD,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,CAAC;AAEZ,eAAS,UAAUc,MAAK,UAAU;AAChC,aAAK,MAAM,GAAG,WAAW,eAAe,QAAQ,QAAQ,QAAQ,CAAC;AAAA,MACnE;AAEA,UAAI,CAAC,SAAS,QAAQ,aAAa;AAAU,aAAK,KAAK;AACvD,aAAO;AAAA,IACT;AAEA,IAAAkD,QAAO,UAAU,cAAc,SAAUrB,OAAM,SAAS;AACtD,UAAI,OAAO,kBAAkB,OAAO;AACpC,UAAI,WAAW,eAAeA,KAAI;AAClC,aAAO,KAAK,YAAY,UAAU,IAAI;AAAA,IACxC;AAEA,IAAAqB,QAAO,UAAU,UAAU,SAAUrB,OAAMrC,IAAGN,IAAG;AAC/C,UAAIoE,MAAK,oBAAoB9D,IAAGN,EAAC,GAC7B,UAAUoE,IAAG,CAAC,GACd,WAAWA,IAAG,CAAC;AAEnB,UAAI,WAAW,eAAezB,KAAI;AAClC,WAAK,UAAU,KAAK,aAAa,CAAC,UAAU,OAAO,GAAG,QAAQ;AAAA,IAChE;AAEA,IAAAqB,QAAO,UAAU,eAAe,SAAU,UAAU,UAAU;AAC5D,UAAIlD,QAAO,KAAK,eAAe,UAAU,UAAU;AACnD,UAAI,OAAOA,MAAK,QAAQ;AACxB,UAAI,CAAC,KAAK,UAAU;AAAG,cAAM,YAAY,QAAQ,YAAY,QAAQ;AACrE,UAAI,MAAMwC,OAAM,KAAK,QAAQ,KAAKA,IAAG;AACrC,cAAQ,GAAG,WAAW,eAAe,KAAK,QAAQ;AAAA,IACpD;AAEA,IAAAU,QAAO,UAAU,eAAe,SAAUrB,OAAM,SAAS;AACvD,UAAI,OAAO,eAAe,OAAO;AACjC,UAAI,WAAW,eAAeA,KAAI;AAClC,aAAO,KAAK,aAAa,UAAU,KAAK,QAAQ;AAAA,IAClD;AAEA,IAAAqB,QAAO,UAAU,WAAW,SAAUrB,OAAMrC,IAAGN,IAAG;AAChD,UAAIoE,MAAK,oBAAoB9D,IAAGN,EAAC,GAC7B,OAAOoE,IAAG,CAAC,GACX,WAAWA,IAAG,CAAC;AAEnB,UAAI,WAAW,eAAezB,KAAI;AAClC,WAAK,UAAU,KAAK,cAAc,CAAC,UAAU,KAAK,QAAQ,GAAG,QAAQ;AAAA,IACvE;AAEA,IAAAqB,QAAO,UAAU,YAAY,SAAU,IAAI;AACzC,WAAK,mBAAmB,IAAI,OAAO;AAAA,IACrC;AAEA,IAAAA,QAAO,UAAU,YAAY,SAAU,IAAI;AACzC,WAAK,UAAU,EAAE;AAAA,IACnB;AAEA,IAAAA,QAAO,UAAU,QAAQ,SAAU,IAAI,UAAU;AAC/C,WAAK,UAAU,KAAK,WAAW,CAAC,EAAE,GAAG,QAAQ;AAAA,IAC/C;AAEA,IAAAA,QAAO,UAAU,gBAAgB,SAAU,IAAI;AAC7C,WAAK,mBAAmB,IAAI,WAAW;AAAA,IACzC;AAEA,IAAAA,QAAO,UAAU,gBAAgB,SAAU,IAAI;AAC7C,WAAK,cAAc,EAAE;AAAA,IACvB;AAEA,IAAAA,QAAO,UAAU,YAAY,SAAU,IAAI,UAAU;AACnD,WAAK,UAAU,KAAK,eAAe,CAAC,EAAE,GAAG,QAAQ;AAAA,IACnD;AAEA,IAAAA,QAAO,UAAU,gBAAgB,SAAU,IAAI,KAAK;AAClD,UAAI,OAAO,KAAK,mBAAmB,IAAI,WAAW;AAClD,WAAK,SAAS,GAAG;AAAA,IACnB;AAEA,IAAAA,QAAO,UAAU,gBAAgB,SAAU,IAAI,KAAK;AAClD,WAAK,cAAc,IAAI,GAAG;AAAA,IAC5B;AAEA,IAAAA,QAAO,UAAU,YAAY,SAAU,IAAI1D,IAAGN,IAAG;AAC/C,UAAI,MAAM,OAAOM,OAAM,WAAWA,KAAI;AACtC,UAAI,WAAW,iBAAiB,OAAOA,OAAM,WAAWN,KAAIM,EAAC;AAC7D,WAAK,UAAU,KAAK,eAAe,CAAC,IAAI,GAAG,GAAG,QAAQ;AAAA,IACxD;AAEA,IAAA0D,QAAO,UAAU,eAAe,SAAUrB,OAAM,KAAK;AACnD,UAAI,KAAK,KAAK,SAASA,OAAM,IAAI;AAEjC,UAAI;AACF,aAAK,cAAc,IAAI,GAAG;AAAA,MAC5B,UAAE;AACA,aAAK,UAAU,EAAE;AAAA,MACnB;AAAA,IACF;AAEA,IAAAqB,QAAO,UAAU,eAAe,SAAU,IAAI,KAAK;AACjD,UAAI,KAAK,EAAE;AAAG,eAAO,KAAK,cAAc,IAAI,GAAG;AAC/C,WAAK,aAAa,IAAI,GAAG;AAAA,IAC3B;AAEA,IAAAA,QAAO,UAAU,WAAW,SAAU,IAAI1D,IAAGN,IAAG;AAC9C,UAAI,MAAM,OAAOM,OAAM,WAAWA,KAAI;AACtC,UAAI,WAAW,iBAAiB,OAAOA,OAAM,WAAWN,KAAIM,EAAC;AAC7D,UAAI,KAAK,EAAE;AAAG,eAAO,KAAK,UAAU,IAAI,KAAK,QAAQ;AACrD,WAAK,UAAU,KAAK,cAAc,CAAC,IAAI,GAAG,GAAG,QAAQ;AAAA,IACvD;AAEA,IAAA0D,QAAO,UAAU,cAAc,SAAU,IAAI,OAAO,OAAO;AACzD,UAAI,OAAO,KAAK,mBAAmB,IAAI,SAAS;AAChD,UAAI,OAAO,KAAK;AAChB,WAAK,QAAQ,IAAI,KAAK,QAAQ,GAAI;AAClC,WAAK,QAAQ,IAAI,KAAK,QAAQ,GAAI;AAAA,IACpC;AAEA,IAAAA,QAAO,UAAU,cAAc,SAAU,IAAI,OAAO,OAAO;AACzD,WAAK,YAAY,IAAI,gBAAgB,KAAK,GAAG,gBAAgB,KAAK,CAAC;AAAA,IACrE;AAEA,IAAAA,QAAO,UAAU,UAAU,SAAU,IAAI,OAAO,OAAO,UAAU;AAC/D,WAAK,UAAU,KAAK,aAAa,CAAC,IAAI,gBAAgB,KAAK,GAAG,gBAAgB,KAAK,CAAC,GAAG,QAAQ;AAAA,IACjG;AAEA,IAAAA,QAAO,UAAU,aAAa,SAAU,UAAU,OAAO,OAAO;AAC9D,UAAI,KAAK,KAAK,SAAS,UAAU,IAAI;AAErC,UAAI;AACF,aAAK,YAAY,IAAI,OAAO,KAAK;AAAA,MACnC,UAAE;AACA,aAAK,UAAU,EAAE;AAAA,MACnB;AAAA,IACF;AAEA,IAAAA,QAAO,UAAU,aAAa,SAAUrB,OAAM,OAAO,OAAO;AAC1D,WAAK,WAAW,eAAeA,KAAI,GAAG,gBAAgB,KAAK,GAAG,gBAAgB,KAAK,CAAC;AAAA,IACtF;AAEA,IAAAqB,QAAO,UAAU,SAAS,SAAUrB,OAAM,OAAO,OAAO,UAAU;AAChE,WAAK,UAAU,KAAK,YAAY,CAAC,eAAeA,KAAI,GAAG,gBAAgB,KAAK,GAAG,gBAAgB,KAAK,CAAC,GAAG,QAAQ;AAAA,IAClH;AAEA,IAAAqB,QAAO,UAAU,YAAY,SAAU,UAAU,SAAS;AACxD,UAAI,QAAQ,gBAAgB,QAAQ;AAEpC,UAAI,CAAC,MAAM,QAAQ;AACjB,cAAM,YAAY,QAAQ,SAAS,QAAQ;AAAA,MAC7C;AAEA,UAAI,MAAM,KAAK,0BAA0B,UAAU,OAAO;AAE1D,UAAI3D,QAAO,MAAM,MAAM,SAAS,CAAC;AACjC,UAAI,IAAI,SAASA,KAAI;AAAG,cAAM,YAAY,QAAQ,SAAS,QAAQ;AACnE,UAAI,YAAYA,OAAM,KAAK,WAAW,MAAM,OAAO,CAAC;AAAA,IACtD;AAQA,IAAA2D,QAAO,UAAU,aAAa,SAAU,UAAU,SAAS;AACzD,UAAI,QAAQ,gBAAgB,QAAQ;AACpC,UAAIlD,QAAO,KAAK;AAEhB,eAASpB,KAAI,GAAGA,KAAI,MAAM,QAAQA,MAAK;AACrC,YAAI,OAAO,MAAMA,EAAC;AAClB,YAAI,CAACoB,MAAK,QAAQ,EAAE,YAAY;AAAG,gBAAM,YAAY,SAAS,SAASA,MAAK,QAAQ,CAAC;AACrF,YAAI,QAAQA,MAAK,SAAS,IAAI;AAE9B,YAAI,OAAO;AACT,cAAI,MAAM,QAAQ,EAAE,YAAY;AAAG,YAAAA,QAAO;AAAA;AAAW,kBAAM,YAAY,SAAS,SAAS,MAAM,QAAQ,CAAC;AAAA,QAC1G,OAAO;AACL,UAAAA,QAAOA,MAAK,YAAY,MAAM,KAAK,WAAW,MAAM,OAAO,CAAC;AAAA,QAC9D;AAAA,MACF;AAAA,IACF;AAEA,IAAAkD,QAAO,UAAU,YAAY,SAAUrB,OAAM,SAAS;AACpD,UAAI,OAAO,gBAAgB,OAAO;AAClC,UAAI,UAAU,aAAa,KAAK,MAAM,GAAG;AACzC,UAAI,WAAW,eAAeA,KAAI;AAClC,UAAI,KAAK;AAAW,aAAK,WAAW,UAAU,OAAO;AAAA;AAAO,aAAK,UAAU,UAAU,OAAO;AAAA,IAC9F;AAEA,IAAAqB,QAAO,UAAU,QAAQ,SAAUrB,OAAMrC,IAAGN,IAAG;AAC7C,UAAI,OAAO,gBAAgBM,EAAC;AAC5B,UAAI,WAAW,iBAAiB,OAAOA,OAAM,aAAaA,KAAIN,EAAC;AAC/D,UAAI,UAAU,aAAa,KAAK,MAAM,GAAG;AACzC,UAAI,WAAW,eAAe2C,KAAI;AAClC,UAAI,KAAK;AAAW,aAAK,UAAU,KAAK,YAAY,CAAC,UAAU,OAAO,GAAG,QAAQ;AAAA;AAAO,aAAK,UAAU,KAAK,WAAW,CAAC,UAAU,OAAO,GAAG,QAAQ;AAAA,IACtJ;AAGA,IAAAqB,QAAO,UAAU,aAAa,SAAUrB,OAAM,MAAM;AAClD,WAAK,UAAUA,OAAM;AAAA,QACnB;AAAA,QACA,WAAW;AAAA,MACb,CAAC;AAAA,IACH;AAEA,IAAAqB,QAAO,UAAU,SAAS,SAAUrB,OAAMrC,IAAGN,IAAG;AAC9C,UAAI,OAAO,OAAOM,OAAM,aAAa,SAAYA;AACjD,UAAI,WAAW,iBAAiB,OAAOA,OAAM,aAAaA,KAAIN,EAAC;AAC/D,WAAK,MAAM2C,OAAM;AAAA,QACf;AAAA,QACA,WAAW;AAAA,MACb,GAAG,QAAQ;AAAA,IACb;AAEA,IAAAqB,QAAO,UAAU,cAAc,SAAU,QAAQ,UAAU,OAAO;AAChE,UAAI,UAAU,QAAQ;AACpB,gBAAQ;AAAA,MACV;AAEA,UAAI,WAAW,SAAS,KAAK,UAAU;AAEvC,UAAI;AACF,aAAK;AAAA,UAAU;AAAA,UAAU;AAAA;AAAA,QAEzB;AACA,gBAAQ,GAAG,WAAW,eAAe,UAAU,QAAQ;AAAA,MACzD,SAAS,KAAK;AACZ,YAAI,IAAI,SAAS,QAAQ;AACvB,cAAI,QAAQ;AAAG,mBAAO,KAAK,YAAY,QAAQ,UAAU,QAAQ,CAAC;AAAA;AAAO,kBAAM,MAAM,4BAA4B;AAAA,QACnH;AAAO,gBAAM;AAAA,MACf;AAAA,IACF;AAEA,IAAAA,QAAO,UAAU,cAAc,SAAU,QAAQ,SAAS;AACxD,UAAI,WAAW,eAAe,OAAO,EAAE;AACvC,UAAI,CAAC,UAAU,OAAO,WAAW;AAAU,cAAM,IAAI,UAAU,6BAA6B;AAC5F,gBAAU,MAAM;AAChB,aAAO,KAAK,YAAY,QAAQ,QAAQ;AAAA,IAC1C;AAEA,IAAAA,QAAO,UAAU,UAAU,SAAU,QAAQ1D,IAAGN,IAAG;AACjD,UAAIoE,MAAK,oBAAoB9D,IAAGN,EAAC,GAC7B,WAAWoE,IAAG,CAAC,EAAE,UACjB,WAAWA,IAAG,CAAC;AAEnB,UAAI,CAAC,UAAU,OAAO,WAAW;AAAU,cAAM,IAAI,UAAU,6BAA6B;AAC5F,UAAI,CAAC,UAAU,MAAM;AAAG;AACxB,WAAK,UAAU,KAAK,aAAa,CAAC,QAAQ,QAAQ,GAAG,QAAQ;AAAA,IAC/D;AAEA,IAAAJ,QAAO,UAAU,YAAY,SAAU,UAAU,SAAS;AACxD,UAAI,OAAO,gBAAgB,OAAO;AAClC,UAAIlD,QAAO,KAAK,oBAAoB,UAAU,OAAO;AAErD,UAAIA,MAAK,UAAU,CAAC,KAAK;AAAW,cAAM,YAAY,WAAW,SAAS,QAAQ;AAClF,WAAK,WAAWA,KAAI;AAAA,IACtB;AAEA,IAAAkD,QAAO,UAAU,YAAY,SAAUrB,OAAM,SAAS;AACpD,WAAK,UAAU,eAAeA,KAAI,GAAG,OAAO;AAAA,IAC9C;AAEA,IAAAqB,QAAO,UAAU,QAAQ,SAAUrB,OAAMrC,IAAGN,IAAG;AAC7C,UAAI,OAAO,gBAAgBM,EAAC;AAC5B,UAAI,WAAW,iBAAiB,OAAOA,OAAM,aAAaA,KAAIN,EAAC;AAC/D,WAAK,UAAU,KAAK,WAAW,CAAC,eAAe2C,KAAI,GAAG,IAAI,GAAG,QAAQ;AAAA,IACvE;AAEA,IAAAqB,QAAO,UAAU,aAAa,SAAU,IAAI,SAAS;AACnD,UAAI,OAAO,KAAK,mBAAmB,IAAI,QAAQ;AAC/C,WAAK,MAAM,OAAO;AAAA,IACpB;AAEA,IAAAA,QAAO,UAAU,aAAa,SAAU,IAAI,MAAM;AAChD,WAAK,WAAW,IAAI,aAAa,IAAI,CAAC;AAAA,IACxC;AAEA,IAAAA,QAAO,UAAU,SAAS,SAAU,IAAI,MAAM,UAAU;AACtD,WAAK,UAAU,KAAK,YAAY,CAAC,IAAI,aAAa,IAAI,CAAC,GAAG,QAAQ;AAAA,IACpE;AAEA,IAAAA,QAAO,UAAU,YAAY,SAAU,UAAU,SAAS;AACxD,UAAI,KAAK,KAAK,SAAS,UAAU,IAAI;AAErC,UAAI;AACF,aAAK,WAAW,IAAI,OAAO;AAAA,MAC7B,UAAE;AACA,aAAK,UAAU,EAAE;AAAA,MACnB;AAAA,IACF;AAEA,IAAAA,QAAO,UAAU,YAAY,SAAUrB,OAAM,MAAM;AACjD,UAAI,UAAU,aAAa,IAAI;AAC/B,UAAI,WAAW,eAAeA,KAAI;AAClC,WAAK,UAAU,UAAU,OAAO;AAAA,IAClC;AAEA,IAAAqB,QAAO,UAAU,QAAQ,SAAUrB,OAAM,MAAM,UAAU;AACvD,UAAI,UAAU,aAAa,IAAI;AAC/B,UAAI,WAAW,eAAeA,KAAI;AAClC,WAAK,UAAU,KAAK,WAAW,CAAC,UAAU,OAAO,GAAG,QAAQ;AAAA,IAC9D;AAEA,IAAAqB,QAAO,UAAU,aAAa,SAAU,UAAU,SAAS;AACzD,UAAI,KAAK,KAAK,SAAS,UAAU,QAAQ,GAAG,KAAK;AAEjD,UAAI;AACF,aAAK,WAAW,IAAI,OAAO;AAAA,MAC7B,UAAE;AACA,aAAK,UAAU,EAAE;AAAA,MACnB;AAAA,IACF;AAEA,IAAAA,QAAO,UAAU,aAAa,SAAUrB,OAAM,MAAM;AAClD,UAAI,UAAU,aAAa,IAAI;AAC/B,UAAI,WAAW,eAAeA,KAAI;AAClC,WAAK,WAAW,UAAU,OAAO;AAAA,IACnC;AAEA,IAAAqB,QAAO,UAAU,SAAS,SAAUrB,OAAM,MAAM,UAAU;AACxD,UAAI,UAAU,aAAa,IAAI;AAC/B,UAAI,WAAW,eAAeA,KAAI;AAClC,WAAK,UAAU,KAAK,YAAY,CAAC,UAAU,OAAO,GAAG,QAAQ;AAAA,IAC/D;AAEA,IAAAqB,QAAO,UAAU,aAAa,SAAU,IAAI,KAAK,KAAK;AACpD,WAAK,mBAAmB,IAAI,QAAQ,EAAE,MAAM,KAAK,GAAG;AAAA,IACtD;AAEA,IAAAA,QAAO,UAAU,aAAa,SAAU,IAAI,KAAK,KAAK;AACpD,kBAAY,GAAG;AACf,kBAAY,GAAG;AACf,WAAK,WAAW,IAAI,KAAK,GAAG;AAAA,IAC9B;AAEA,IAAAA,QAAO,UAAU,SAAS,SAAU,IAAI,KAAK,KAAK,UAAU;AAC1D,kBAAY,GAAG;AACf,kBAAY,GAAG;AACf,WAAK,UAAU,KAAK,YAAY,CAAC,IAAI,KAAK,GAAG,GAAG,QAAQ;AAAA,IAC1D;AAEA,IAAAA,QAAO,UAAU,YAAY,SAAU,UAAU,KAAK,KAAK;AACzD,UAAIlD,QAAO,KAAK,uBAAuB,UAAU,OAAO;AACxD,UAAI,OAAOA,MAAK,QAAQ;AACxB,WAAK,MAAM,KAAK,GAAG;AAAA,IAOrB;AAEA,IAAAkD,QAAO,UAAU,YAAY,SAAUrB,OAAM,KAAK,KAAK;AACrD,kBAAY,GAAG;AACf,kBAAY,GAAG;AACf,WAAK,UAAU,eAAeA,KAAI,GAAG,KAAK,GAAG;AAAA,IAC/C;AAEA,IAAAqB,QAAO,UAAU,QAAQ,SAAUrB,OAAM,KAAK,KAAK,UAAU;AAC3D,kBAAY,GAAG;AACf,kBAAY,GAAG;AACf,WAAK,UAAU,KAAK,WAAW,CAAC,eAAeA,KAAI,GAAG,KAAK,GAAG,GAAG,QAAQ;AAAA,IAC3E;AAEA,IAAAqB,QAAO,UAAU,aAAa,SAAU,UAAU,KAAK,KAAK;AAC1D,WAAK,eAAe,UAAU,QAAQ,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG;AAAA,IAClE;AAEA,IAAAA,QAAO,UAAU,aAAa,SAAUrB,OAAM,KAAK,KAAK;AACtD,kBAAY,GAAG;AACf,kBAAY,GAAG;AACf,WAAK,WAAW,eAAeA,KAAI,GAAG,KAAK,GAAG;AAAA,IAChD;AAEA,IAAAqB,QAAO,UAAU,SAAS,SAAUrB,OAAM,KAAK,KAAK,UAAU;AAC5D,kBAAY,GAAG;AACf,kBAAY,GAAG;AACf,WAAK,UAAU,KAAK,YAAY,CAAC,eAAeA,KAAI,GAAG,KAAK,GAAG,GAAG,QAAQ;AAAA,IAC5E;AAEA,IAAAqB,QAAO,UAAU,YAAY,SAAUrB,OAAMrC,IAAGN,IAAG;AACjD,UAAI,WAAW,eAAe2C,KAAI;AAClC,UAAI,UAAUrC;AACd,UAAI,WAAWN;AAEf,UAAI,OAAO,YAAY,YAAY;AACjC,mBAAWM;AACX,kBAAU;AAAA,MACZ;AAEA,UAAI,OAAO,aAAa,YAAY;AAClC,cAAM,MAAM,4CAA8C;AAAA,MAC5D;AAEA,UAAI,WAAW;AACf,UAAI,aAAa;AAEjB,UAAI,WAAW,OAAO,YAAY,UAAU;AAC1C,YAAI,OAAO,QAAQ,aAAa;AAAU,qBAAW,QAAQ;AAC7D,YAAI,OAAO,QAAQ,eAAe;AAAW,uBAAa,QAAQ;AAAA,MACpE;AAEA,UAAI,UAAU,KAAK,aAAa,QAAQ;AAExC,UAAI,CAAC,SAAS;AACZ,kBAAU,IAAI,KAAK,YAAY;AAC/B,gBAAQ,MAAM,UAAU,YAAY,QAAQ;AAC5C,aAAK,aAAa,QAAQ,IAAI;AAAA,MAChC;AAEA,cAAQ,YAAY,UAAU,QAAQ;AACtC,aAAO;AAAA,IACT;AAEA,IAAA0D,QAAO,UAAU,cAAc,SAAUrB,OAAM,UAAU;AACvD,UAAI,WAAW,eAAeA,KAAI;AAClC,UAAI,UAAU,KAAK,aAAa,QAAQ;AACxC,UAAI,CAAC;AAAS;AAEd,UAAI,OAAO,aAAa,YAAY;AAClC,gBAAQ,eAAe,UAAU,QAAQ;AAAA,MAC3C,OAAO;AACL,gBAAQ,mBAAmB,QAAQ;AAAA,MACrC;AAEA,UAAI,QAAQ,cAAc,QAAQ,MAAM,GAAG;AACzC,gBAAQ,KAAK;AACb,eAAO,KAAK,aAAa,QAAQ;AAAA,MACnC;AAAA,IACF;AAEA,IAAAqB,QAAO,UAAU,mBAAmB,SAAUrB,OAAM,SAAS;AAC3D,aAAO,IAAI,KAAK,WAAWA,OAAM,OAAO;AAAA,IAC1C;AAEA,IAAAqB,QAAO,UAAU,oBAAoB,SAAUrB,OAAM,SAAS;AAC5D,aAAO,IAAI,KAAK,YAAYA,OAAM,OAAO;AAAA,IAC3C;AAIA,IAAAqB,QAAO,UAAU,QAAQ,SAAUrB,OAAM,SAAS,UAAU;AAC1D,UAAI,WAAW,eAAeA,KAAI;AAClC,UAAI,eAAe;AAEnB,UAAI,OAAO,YAAY,YAAY;AACjC,mBAAW;AACX,uBAAe;AAAA,MACjB;AAGA,UAAIyB,MAAK,eAAe,YAAY,GAChC,aAAaA,IAAG,YAChB,YAAYA,IAAG,WACf,WAAWA,IAAG;AAElB,UAAI,eAAe;AAAW,qBAAa;AAC3C,UAAI,cAAc;AAAW,oBAAY;AACzC,UAAI,UAAU,IAAI,KAAK,UAAU;AACjC,cAAQ,MAAM,UAAU,YAAY,WAAW,QAAQ;AAEvD,UAAI,UAAU;AACZ,gBAAQ,YAAY,UAAU,QAAQ;AAAA,MACxC;AAEA,aAAO;AAAA,IACT;AAUA,IAAAJ,QAAO,KAAK;AACZ,WAAOA;AAAA,EACT,EAAE;AAEF,EAAAhB,WAAU,SAAS;AAEnB,WAAS,SAASiB,OAAM;AACtB,IAAAA,MAAK,KAAK,MAAM;AAAA,EAClB;AAEA,MAAI,cAAc,SAAU,QAAQ;AAClC,cAAUC,cAAa,MAAM;AAE7B,aAASA,aAAYrC,MAAK;AACxB,UAAI,QAAQ,OAAO,KAAK,IAAI,KAAK;AAEjC,YAAM,aAAa,WAAY;AAC7B,YAAI;AACF,cAAI,QAAQ,MAAM,IAAI,SAAS,MAAM,QAAQ;AAE7C,cAAI,MAAM,WAAW,KAAK,GAAG;AAC3B,kBAAM,KAAK,UAAU,OAAO,MAAM,IAAI;AAEtC,kBAAM,OAAO;AAAA,UACf;AAAA,QACF,UAAE;AACA,gBAAM,KAAK;AAAA,QACb;AAAA,MACF;AAEA,YAAM,MAAMA;AACZ,aAAO;AAAA,IACT;AAEA,IAAAqC,aAAY,UAAU,OAAO,WAAY;AACvC,WAAK,aAAa,KAAK,WAAW,KAAK,YAAY,KAAK,QAAQ;AAAA,IAClE;AAEA,IAAAA,aAAY,UAAU,aAAa,SAAU,OAAO;AAElD,UAAI,MAAM,UAAU,KAAK,KAAK;AAAS,eAAO;AAC9C,UAAI,MAAM,UAAU,KAAK,KAAK;AAAO,eAAO;AAC5C,aAAO;AAAA,IACT;AAEA,IAAAA,aAAY,UAAU,QAAQ,SAAUvB,OAAM,YAAY,UAAU;AAClE,UAAI,eAAe,QAAQ;AACzB,qBAAa;AAAA,MACf;AAEA,UAAI,aAAa,QAAQ;AACvB,mBAAW;AAAA,MACb;AAEA,WAAK,WAAW,eAAeA,KAAI;AACnC,WAAK,aAAa,aAAa,WAAW,KAAK,OAAO,eAAe,cAAc,aAAaO,QAAO,IAAI,kBAAkB;AAC7H,WAAK,WAAW;AAChB,WAAK,OAAO,KAAK,IAAI,SAAS,KAAK,QAAQ;AAC3C,WAAK,KAAK;AAAA,IACZ;AAEA,IAAAgB,aAAY,UAAU,OAAO,WAAY;AACvC,mBAAa,KAAK,UAAU;AAC5B,gBAAU,QAAQ,SAAS,UAAU,IAAI;AAAA,IAC3C;AAEA,WAAOA;AAAA,EACT,EAAE,SAAS,YAAY;AAEvB,EAAAlB,WAAU,cAAc;AACxB,MAAI;AAEJ,WAAS,aAAa,UAAU;AAC9B,YAAQ,GAAG,SAAS,mBAAmB,QAAQ;AAC/C,SAAK,OAAO;AAAA,EACd;AAEA,OAAK,SAAS,cAAc,SAAS,QAAQ;AAC7C,EAAAA,WAAU,aAAa;AAEvB,WAAS,aAAanB,MAAKc,OAAM,SAAS;AACxC,QAAI,EAAE,gBAAgB;AAAe,aAAO,IAAI,aAAad,MAAKc,OAAM,OAAO;AAC/E,SAAK,OAAOd;AAEZ,cAAU,OAAO,OAAO,CAAC,GAAG,WAAW,SAAS,CAAC,CAAC,CAAC;AACnD,QAAI,QAAQ,kBAAkB;AAAW,cAAQ,gBAAgB,KAAK;AACtE,aAAS,SAAS,KAAK,MAAM,OAAO;AACpC,SAAK,OAAO,eAAec,KAAI;AAC/B,SAAK,KAAK,QAAQ,OAAO,SAAY,OAAO,QAAQ;AACpD,SAAK,QAAQ,QAAQ,UAAU,SAAY,MAAM,QAAQ;AACzD,SAAK,OAAO,QAAQ,SAAS,SAAY,MAAM,QAAQ;AACvD,SAAK,QAAQ,QAAQ;AACrB,SAAK,MAAM,QAAQ;AACnB,SAAK,YAAY,QAAQ,cAAc,SAAY,OAAO,QAAQ;AAClE,SAAK,MAAM;AACX,SAAK,YAAY;AAEjB,QAAI,KAAK,UAAU,QAAW;AAC5B,UAAI,OAAO,KAAK,UAAU,UAAU;AAClC,cAAM,IAAI,UAAU,iCAAmC;AAAA,MACzD;AAEA,UAAI,KAAK,QAAQ,QAAW;AAC1B,aAAK,MAAM;AAAA,MACb,WAAW,OAAO,KAAK,QAAQ,UAAU;AACvC,cAAM,IAAI,UAAU,+BAAiC;AAAA,MACvD;AAEA,UAAI,KAAK,QAAQ,KAAK,KAAK;AACzB,cAAM,IAAI,MAAM,wCAA4C;AAAA,MAC9D;AAEA,WAAK,MAAM,KAAK;AAAA,IAClB;AAEA,QAAI,OAAO,KAAK,OAAO;AAAU,WAAK,KAAK;AAC3C,SAAK,GAAG,OAAO,WAAY;AACzB,UAAI,KAAK,WAAW;AAClB,YAAI,KAAK;AAAS,eAAK,QAAQ;AAAA,MACjC;AAAA,IACF,CAAC;AAAA,EACH;AAEA,eAAa,UAAU,OAAO,WAAY;AACxC,QAAIsB,QAAO;AAEX,SAAK,KAAK,KAAK,KAAK,MAAM,KAAK,OAAO,KAAK,MAAM,SAAU,IAAI,IAAI;AACjE,UAAI,IAAI;AACN,YAAIA,MAAK,WAAW;AAClB,cAAIA,MAAK;AAAS,YAAAA,MAAK,QAAQ;AAAA,QACjC;AAEA,QAAAA,MAAK,KAAK,SAAS,EAAE;AACrB;AAAA,MACF;AAEA,MAAAA,MAAK,KAAK;AACV,MAAAA,MAAK,KAAK,QAAQ,EAAE;AAEpB,MAAAA,MAAK,KAAK;AAAA,IACZ,CAAC;AAAA,EACH;AAEA,eAAa,UAAU,QAAQ,SAAUJ,IAAG;AAC1C,QAAI,OAAO,KAAK,OAAO,UAAU;AAC/B,aAAO,KAAK,KAAK,QAAQ,WAAY;AACnC,aAAK,MAAMA,EAAC;AAAA,MACd,CAAC;AAAA,IACH;AAEA,QAAI,KAAK;AAAW;AAEpB,QAAI,CAAC,QAAQ,KAAK,SAAS,KAAK,OAAO,eAAe;AAEpD,mBAAa,KAAK,eAAe,aAAa;AAAA,IAChD;AAKA,QAAI,WAAW;AACf,QAAI,SAAS,KAAK,IAAI,KAAK,SAAS,KAAK,MAAMA,EAAC;AAChD,QAAI,QAAQ,KAAK;AACjB,QAAI,KAAK,QAAQ;AAAW,eAAS,KAAK,IAAI,KAAK,MAAM,KAAK,MAAM,GAAG,MAAM;AAG7E,QAAI,UAAU;AAAG,aAAO,KAAK,KAAK,IAAI;AAEtC,QAAII,QAAO;AAEX,SAAK,KAAK,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,QAAQ,KAAK,KAAK,MAAM;AAGjE,QAAI,KAAK,QAAQ;AAAW,WAAK,OAAO;AACxC,SAAK,QAAQ;AAEb,aAAS,OAAO,IAAI,WAAW;AAC7B,UAAI,IAAI;AACN,YAAIA,MAAK,aAAaA,MAAK,SAAS;AAClC,UAAAA,MAAK,QAAQ;AAAA,QACf;AAEA,QAAAA,MAAK,KAAK,SAAS,EAAE;AAAA,MACvB,OAAO;AACL,YAAIjE,KAAI;AAER,YAAI,YAAY,GAAG;AACjB,UAAAiE,MAAK,aAAa;AAClB,UAAAjE,KAAI,SAAS,MAAM,OAAO,QAAQ,SAAS;AAAA,QAC7C;AAEA,QAAAiE,MAAK,KAAKjE,EAAC;AAAA,MACb;AAAA,IACF;AAAA,EACF;AAEA,eAAa,UAAU,WAAW,SAAU,KAAK,IAAI;AACnD,SAAK,MAAM,SAAU,MAAM;AACzB,SAAG,OAAO,IAAI;AAAA,IAChB,CAAC;AAAA,EACH;AAEA,eAAa,UAAU,QAAQ,SAAU,IAAI;AAC3C,QAAI,QAAQ;AAEZ,QAAI;AAAI,WAAK,KAAK,SAAS,EAAE;AAE7B,QAAI,KAAK,UAAU,OAAO,KAAK,OAAO,UAAU;AAC9C,UAAI,OAAO,KAAK,OAAO,UAAU;AAC/B,aAAK,KAAK,QAAQ,WAAW;AAC7B;AAAA,MACF;AAEA,aAAO,UAAU,QAAQ,SAAS,WAAY;AAC5C,eAAO,MAAM,KAAK,OAAO;AAAA,MAC3B,CAAC;AAAA,IACH;AAEA,SAAK,SAAS;AAEd,SAAK,KAAK,MAAM,KAAK,IAAI,SAAU,IAAI;AACrC,UAAI;AAAI,cAAM,KAAK,SAAS,EAAE;AAAA;AAAO,cAAM,KAAK,OAAO;AAAA,IACzD,CAAC;AAED,SAAK,KAAK;AAAA,EACZ;AAIA,WAAS,YAAY,IAAI;AACvB,SAAK,MAAM;AAAA,EACb;AAEA,OAAK,SAAS,eAAe,SAAS,QAAQ;AAC9C,EAAAgD,WAAU,cAAc;AAExB,WAAS,cAAcnB,MAAKc,OAAM,SAAS;AACzC,QAAI,EAAE,gBAAgB;AAAgB,aAAO,IAAI,cAAcd,MAAKc,OAAM,OAAO;AACjF,SAAK,OAAOd;AACZ,cAAU,OAAO,OAAO,CAAC,GAAG,WAAW,SAAS,CAAC,CAAC,CAAC;AACnD,aAAS,SAAS,KAAK,MAAM,OAAO;AACpC,SAAK,OAAO,eAAec,KAAI;AAC/B,SAAK,KAAK,QAAQ,OAAO,SAAY,OAAO,QAAQ;AACpD,SAAK,QAAQ,QAAQ,UAAU,SAAY,MAAM,QAAQ;AACzD,SAAK,OAAO,QAAQ,SAAS,SAAY,MAAM,QAAQ;AACvD,SAAK,QAAQ,QAAQ;AACrB,SAAK,YAAY,QAAQ,cAAc,SAAY,OAAO,CAAC,CAAC,QAAQ;AACpE,SAAK,MAAM;AACX,SAAK,eAAe;AAEpB,QAAI,KAAK,UAAU,QAAW;AAC5B,UAAI,OAAO,KAAK,UAAU,UAAU;AAClC,cAAM,IAAI,UAAU,iCAAmC;AAAA,MACzD;AAEA,UAAI,KAAK,QAAQ,GAAG;AAClB,cAAM,IAAI,MAAM,yBAA2B;AAAA,MAC7C;AAEA,WAAK,MAAM,KAAK;AAAA,IAClB;AAEA,QAAI,QAAQ;AAAU,WAAK,mBAAmB,QAAQ,QAAQ;AAC9D,QAAI,OAAO,KAAK,OAAO;AAAU,WAAK,KAAK;AAE3C,SAAK,KAAK,UAAU,WAAY;AAC9B,UAAI,KAAK,WAAW;AAClB,aAAK,MAAM;AAAA,MACb;AAAA,IACF,CAAC;AAAA,EACH;AAEA,gBAAc,UAAU,OAAO,WAAY;AACzC,SAAK,KAAK,KAAK,KAAK,MAAM,KAAK,OAAO,KAAK,MAAM,SAAU,IAAI,IAAI;AACjE,UAAI,IAAI;AACN,YAAI,KAAK,aAAa,KAAK,SAAS;AAClC,eAAK,QAAQ;AAAA,QACf;AAEA,aAAK,KAAK,SAAS,EAAE;AACrB;AAAA,MACF;AAEA,WAAK,KAAK;AACV,WAAK,KAAK,QAAQ,EAAE;AAAA,IACtB,EAAE,KAAK,IAAI,CAAC;AAAA,EACd;AAEA,gBAAc,UAAU,SAAS,SAAU,MAAM,UAAU,IAAI;AAC7D,QAAI,EAAE,gBAAgB,SAAS;AAAS,aAAO,KAAK,KAAK,SAAS,IAAI,MAAM,cAAc,CAAC;AAE3F,QAAI,OAAO,KAAK,OAAO,UAAU;AAC/B,aAAO,KAAK,KAAK,QAAQ,WAAY;AACnC,aAAK,OAAO,MAAM,UAAU,EAAE;AAAA,MAChC,CAAC;AAAA,IACH;AAEA,QAAIsB,QAAO;AAEX,SAAK,KAAK,MAAM,KAAK,IAAI,MAAM,GAAG,KAAK,QAAQ,KAAK,KAAK,SAAU,IAAI,OAAO;AAC5E,UAAI,IAAI;AACN,YAAIA,MAAK,aAAaA,MAAK,SAAS;AAClC,UAAAA,MAAK,QAAQ;AAAA,QACf;AAEA,eAAO,GAAG,EAAE;AAAA,MACd;AAEA,MAAAA,MAAK,gBAAgB;AACrB,SAAG;AAAA,IACL,CAAC;AAED,QAAI,KAAK,QAAQ;AAAW,WAAK,OAAO,KAAK;AAAA,EAC/C;AAEA,gBAAc,UAAU,UAAU,SAAU,MAAM,IAAI;AACpD,QAAI,OAAO,KAAK,OAAO,UAAU;AAC/B,aAAO,KAAK,KAAK,QAAQ,WAAY;AACnC,aAAK,QAAQ,MAAM,EAAE;AAAA,MACvB,CAAC;AAAA,IACH;AAEA,QAAIA,QAAO;AAEX,QAAI,MAAM,KAAK;AACf,QAAI,SAAS,IAAI,MAAM,GAAG;AAC1B,QAAI,OAAO;AAEX,aAASvE,KAAI,GAAGA,KAAI,KAAKA,MAAK;AAC5B,UAAI,QAAQ,KAAKA,EAAC,EAAE;AACpB,aAAOA,EAAC,IAAI;AACZ,cAAQ,MAAM;AAAA,IAChB;AAEA,QAAIiC,OAAM,SAAS,OAAO,OAAO,MAAM;AAEvC,SAAK,KAAK,MAAM,KAAK,IAAIA,MAAK,GAAGA,KAAI,QAAQ,KAAK,KAAK,SAAU,IAAI,OAAO;AAC1E,UAAI,IAAI;AACN,YAAIsC,MAAK;AAAS,UAAAA,MAAK,QAAQ;AAC/B,eAAO,GAAG,EAAE;AAAA,MACd;AAEA,MAAAA,MAAK,gBAAgB;AACrB,SAAG;AAAA,IACL,CAAC;AAED,QAAI,KAAK,QAAQ;AAAW,WAAK,OAAO;AAAA,EAC1C;AAEA,gBAAc,UAAU,WAAW,aAAa,UAAU;AAC1D,gBAAc,UAAU,QAAQ,aAAa,UAAU;AAEvD,gBAAc,UAAU,cAAc,cAAc,UAAU;AAE9D,MAAI,YAAY,SAAU,QAAQ;AAChC,cAAUE,YAAW,MAAM;AAE3B,aAASA,WAAUtC,MAAK;AACtB,UAAI,QAAQ,OAAO,KAAK,IAAI,KAAK;AAEjC,YAAM,YAAY;AAClB,YAAM,mBAAmB;AAEzB,YAAM,aAAa;AACnB,YAAM,YAAY,WAAW;AAE7B,YAAM,gBAAgB,WAAY;AAChC,cAAM,MAAM,QAAQ;AAAA,MACtB;AAEA,YAAM,iBAAiB,SAAUf,OAAM;AACrC,YAAIA,MAAK,QAAQ,MAAM,MAAM,SAAS,GAAG;AACvC,gBAAM,MAAM,QAAQ;AAAA,QACtB;AAAA,MACF;AAEA,YAAM,QAAQ,SAAU,MAAM;AAC5B,cAAM,KAAK,UAAU,MAAM,MAAM,gBAAgB;AAAA,MACnD;AAEA,YAAM,WAAW,WAAY;AAC3B,cAAM,SAAS,WAAW,MAAM,UAAU,GAAO;AAAA,MACnD;AAEA,YAAM,OAAOe;AACb,aAAO;AAAA,IAaT;AAEA,IAAAsC,WAAU,UAAU,WAAW,WAAY;AACzC,aAAO,KAAK,OAAO,KAAK,OAAO,SAAS,CAAC;AAAA,IAC3C;AAEA,IAAAA,WAAU,UAAU,QAAQ,SAAUxB,OAAM,YAAY,WAAW,UAAU;AAC3E,UAAI,eAAe,QAAQ;AACzB,qBAAa;AAAA,MACf;AAEA,UAAI,cAAc,QAAQ;AACxB,oBAAY;AAAA,MACd;AAEA,UAAI,aAAa,QAAQ;AACvB,mBAAW,WAAW;AAAA,MACxB;AAEA,WAAK,YAAY,eAAeA,KAAI;AACpC,WAAK,SAAS,gBAAgB,KAAK,SAAS;AAC5C,WAAK,oBAAoB,GAAG,WAAW,eAAe,KAAK,SAAS;AAEpE,WAAK,aAAa;AAClB,WAAK,YAAY;AAEjB,UAAI;AACF,aAAK,QAAQ,KAAK,KAAK,eAAe,KAAK,WAAW,WAAW;AAAA,MACnE,SAAS,KAAK;AACZ,YAAI,QAAQ,IAAI,MAAM,WAAW,KAAK,YAAY,MAAM,IAAI,IAAI;AAChE,cAAM,OAAO,IAAI;AACjB,cAAM,QAAQ,IAAI;AAClB,cAAM;AAAA,MACR;AAEA,WAAK,MAAM,QAAQ,EAAE,GAAG,UAAU,KAAK,aAAa;AAEpD,WAAK,MAAM,GAAG,aAAa,KAAK,aAAa;AAE7C,WAAK,MAAM,GAAG,gBAAgB,KAAK,aAAa;AAEhD,UAAI,SAAS,KAAK,MAAM;AAExB,UAAI,QAAQ;AAEV,eAAO,gBAAgB,OAAO,gBAAgB,IAAI,CAAC;AACnD,eAAO,GAAG,gBAAgB,KAAK,cAAc;AAAA,MAC/C;AAEA,UAAI;AAAY,aAAK,SAAS;AAAA,IAChC;AAEA,IAAAwB,WAAU,UAAU,QAAQ,WAAY;AACtC,mBAAa,KAAK,MAAM;AAExB,WAAK,MAAM,QAAQ,EAAE,eAAe,UAAU,KAAK,aAAa;AAEhE,UAAI,SAAS,KAAK,MAAM;AAExB,UAAI,QAAQ;AAEV,eAAO,eAAe,gBAAgB,KAAK,cAAc;AAAA,MAC3D;AAAA,IACF;AAEA,WAAOA;AAAA,EACT,EAAE,SAAS,YAAY;AAEvB,EAAAnB,WAAU,YAAY;AACtB,SAAOA;AACT;AAEA,IAAIyB,aAAY,CAAC;AAAjB,IACIC,cAAa;AACjB,SAASC,SAAQ;AACf,MAAID;AAAY,WAAOD;AACvB,EAAAC,cAAa;AACb,SAAO,eAAeD,YAAW,cAAc;AAAA,IAC7C,OAAO;AAAA,EACT,CAAC;AACD,EAAAA,WAAU,iBAAiBA,WAAU,gBAAgBA,WAAU,UAAU;AACzE,MAAI,UAAU,CAAC,aAAa,QAAQ,QAAQ,QAAQ,QAAQ,OAAO;AACnE,EAAAA,WAAU,UAAU;AACpB,MAAI,gBAAgB,CAAC,cAAc,iBAAiB,gBAAgB,aAAa,cAAc,cAAc,aAAa,cAAc,cAAc,YAAY,aAAa,aAAa,YAAY,eAAe,gBAAgB,gBAAgB,cAAc,aAAa,aAAa,cAAc,eAAe,aAAa,YAAY,cAAc,eAAe,aAAa,aAAa,YAAY,gBAAgB,iBAAiB,kBAAkB,cAAc,cAAc,iBAAiB,eAAe,gBAAgB,oBAAoB,mBAAmB;AAC9jB,EAAAA,WAAU,gBAAgB;AAC1B,MAAI,iBAAiB,CAAC,UAAU,aAAa,YAAY,SAAS,UAAU,UAAU,SAAS,UAAU,UAAU,QAAQ,SAAS,SAAS,QAAQ,WAAW,YAAY,YAAY,UAAU,SAAS,SAAS,UAAU,WAAW,SAAS,QAAQ,UAAU,WAAW,SAAS,SAAS,QAAQ,YAAY,aAAa,cAAc,UAAU,UAAU,aAAa,WAAW,YAAY,aAAa,eAAe,OAAO;AAC3a,EAAAA,WAAU,iBAAiB;AAC3B,SAAOA;AACT;AAEA,IAAIG,aAAY,CAAC;AAAjB,IACIC,YAAW;AACf,SAASC,OAAM;AACb,MAAID;AAAU,WAAOD;AACrB,EAAAC,YAAW;AAEX,MAAI,WAAWD,cAAaA,WAAU,YAAY,WAAY;AAC5D,eAAW,OAAO,UAAU,SAAUG,IAAG;AACvC,eAASC,IAAGtF,KAAI,GAAGmE,KAAI,UAAU,QAAQnE,KAAImE,IAAGnE,MAAK;AACnD,QAAAsF,KAAI,UAAUtF,EAAC;AAEf,iBAASO,MAAK+E;AAAG,cAAI,OAAO,UAAU,eAAe,KAAKA,IAAG/E,EAAC;AAAG,YAAA8E,GAAE9E,EAAC,IAAI+E,GAAE/E,EAAC;AAAA,MAC7E;AAEA,aAAO8E;AAAA,IACT;AAEA,WAAO,SAAS,MAAM,MAAM,SAAS;AAAA,EACvC;AAEA,SAAO,eAAeH,YAAW,cAAc;AAAA,IAC7C,OAAO;AAAA,EACT,CAAC;AACD,EAAAA,WAAU,KAAKA,WAAU,qBAAqBA,WAAU,MAAMA,WAAU,SAAS;AAEjF,MAAI,UAAUxF,OAAM;AAEpB,MAAI,WAAWwB,OAAM;AAErB,MAAI,WAAWuC,OAAM;AAErB,MAAI,KAAKwB,OAAM,GACX,gBAAgB,GAAG,eACnB,iBAAiB,GAAG;AAExB,MAAI,cAAc7F,OAAM;AAExB,MAAIuE,QAAO,YAAY,UAAU,MAC7B4B,QAAO,YAAY,UAAU,MAC7BC,QAAO,YAAY,UAAU,MAC7BC,QAAO,YAAY,UAAU;AACjC,EAAAP,WAAU,SAAS,SAAS;AAE5B,EAAAA,WAAU,MAAM,IAAI,SAAS,OAAO;AAEpC,WAASQ,oBAAmBvD,MAAK;AAC/B,QAAIwD,MAAK;AAAA,MACP,MAAMhC;AAAA,MACN,MAAM4B;AAAA,MACN,MAAMC;AAAA,MACN,MAAMC;AAAA,MACN,WAAW,YAAY;AAAA,MACvB,OAAO,QAAQ;AAAA,MACf,QAAQ,SAAS;AAAA,IACnB;AAEA,aAAS,KAAK,GAAG,kBAAkB,eAAe,KAAK,gBAAgB,QAAQ,MAAM;AACnF,UAAI,SAAS,gBAAgB,EAAE;AAC/B,UAAI,OAAOtD,KAAI,MAAM,MAAM;AAAY,QAAAwD,IAAG,MAAM,IAAIxD,KAAI,MAAM,EAAE,KAAKA,IAAG;AAAA,IAC1E;AAEA,aAASuC,MAAK,GAAG,mBAAmB,gBAAgBA,MAAK,iBAAiB,QAAQA,OAAM;AACtF,UAAI,SAAS,iBAAiBA,GAAE;AAChC,UAAI,OAAOvC,KAAI,MAAM,MAAM;AAAY,QAAAwD,IAAG,MAAM,IAAIxD,KAAI,MAAM,EAAE,KAAKA,IAAG;AAAA,IAC1E;AAEA,IAAAwD,IAAG,cAAcxD,KAAI;AACrB,IAAAwD,IAAG,YAAYxD,KAAI;AACnB,IAAAwD,IAAG,cAAcxD,KAAI;AACrB,IAAAwD,IAAG,aAAaxD,KAAI;AACpB,IAAAwD,IAAG,WAAWxD,KAAI;AAClB,IAAAwD,IAAG,mBAAmB,SAAS;AAC/B,WAAOA;AAAA,EACT;AAEA,EAAAT,WAAU,qBAAqBQ;AAC/B,EAAAR,WAAU,KAAKQ,oBAAmBR,WAAU,GAAG;AAC/C,EAAAA,aAAY,SAAS,SAAS,CAAC,GAAGA,UAAS,GAAGA,WAAU,EAAE;AAC1D,EAAAA,WAAU,WAAW;AACrB,SAAOA;AACT;AAEA,IAAMU,aAAYR,KAAI;AACtBQ,WAAU,YAAY;AAAGA,WAAU,IAAI;AAAGA,WAAU,oBAAoB;AAAGA,WAAU,KAAK;AAAGA,WAAU,QAAQ;AAAGA,WAAU,UAAU;AAEtI,IAAMlC,WAAUD,OAAM;AACtBC,SAAQ,YAAY;AAAGA,SAAQ,WAAW;AAAGA,SAAQ,aAAa;AAAGA,SAAQ,QAAQ;AAAGA,SAAQ,iBAAiB;AAAGA,SAAQ,kBAAkB;AAAGA,SAAQ,cAAc;AAAGA,SAAQ,WAAW;AAAGA,SAAQ,aAAa;AAAGA,SAAQ,iBAAiB;AAAGA,SAAQ,gBAAgB;AAAGA,SAAQ,eAAe;AAAGA,SAAQ,OAAO;AAAGA,SAAQ,YAAY;AAAGA,SAAQ,aAAa;AAEvW,IAAM,EAAE,KAAK,mBAAmB,IAAIkC;AAEpC,SAAS,cAAcjF,OAAM;AAC3B,QAAM,IAAI,MAAM,cAAcA,KAAI,+CAA+C;AACnF;AAEA,IAAI,eAAe;AAAA,EACjB,QAAQ,EAAE,OAAO,IAAI,QAAQ,IAAI,QAAQ,GAAG;AAAA,EAC5C,YAAY,CAAC;AAAA,EACb,SAAS,CAAC;AAAA,EACV,QAAQ,CAAC;AACX,CAAC;AAED,IAAI,cAAc,CAAC,GAAG,GAAG,CAAC;AAC1B,IAAI,SAAS,cAAc,GAAG;AAC9B,IAAI,SAAS,eAAe,GAAG;AAC/B,IAAI,SAAS,eAAe,GAAG;AAC/B,UAAU,eAAe,GAAG,QAAQ,GAAG;AACvC,UAAU,eAAe,GAAG,QAAQ,KAAK;AACzC,SAAS,UAAUsC,OAAM,IAAI,UAAU;AACrC,MAAI,UAAU;AACd,QAAM,UAAU,IAAI,YAAY;AAChC,MAAI,MAAMA,OAAM,QAAQ,MAAM;AAC5B,UAAM,EAAE,KAAK,IAAI,IAAI,UAAU,EAAE;AACjC,UAAMhB,OAAM,OAAO,MAAM,OAAO,OAAO;AACvC,QAAI,SAAS,IAAIA,MAAK,GAAGA,KAAI,QAAQ,OAAO;AAC5C,cAAU;AACV,aAAS,QAAQ,OAAOA,MAAK,EAAE,QAAQ,KAAK,CAAC,CAAC;AAAA,EAChD,CAAC;AACH;AAEA,IAAM,KAAK,mBAAmB,GAAG;AAEjC,GAAG,UAAU,MAAM,cAAc,SAAS;AAC1C,GAAG,cAAc,MAAM,cAAc,aAAa;AAClD,GAAG,SAAS,UAAU,MAAM,cAAc,kBAAkB;AAC5D,GAAG,KAAK,MAAM,cAAc,IAAI;AAChC,GAAG,SAAS,MAAM,cAAc,QAAQ;AACxC,GAAG,SAAS,KAAK,MAAM,cAAc,aAAa;AAClD,GAAG,QAAQ,MAAM,cAAc,OAAO;AACtC,GAAG,YAAY,MAAM,cAAc,WAAW;AAC9C,GAAG,KAAK,MAAM,cAAc,IAAI;AAChC,GAAG,SAAS,MAAM,cAAc,QAAQ;AACxC,GAAG,SAAS,KAAK,MAAM,cAAc,aAAa;AAClD,GAAG,MAAM,MAAM,cAAc,KAAK;AAClC,GAAG,SAAS,QAAQ,MAAM,cAAc,gBAAgB;AAExD,GAAG,iBAAiB,GAAG;AACvB,GAAG,kBAAkB,GAAG;AAExB,SAAS,YAAa,KAAK,QAAQ;AACjC,MAAI,IAAI,aAAa;AACnB,WAAO,cAAc,GAAG;AAC1B,MAAI,IAAI,aAAa,YAAY,IAAI,aAAa,SAAS;AACzD,UAAMgB,QAAO,cAAc,IAAI,KAAK,WAAW,OAAO,MAAM;AAC5D,QAAI,WAAWA,KAAI;AACjB,aAAOA;AACT,QAAI;AACF,YAAM,IAAI,MAAM,2BAA2B,GAAG,yJAAyJ;AACzM,YAAQ,YAAY;AAClB,YAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,UAAI,CAAC,IAAI;AACP,cAAM,IAAI,MAAM,mBAAmB,IAAI,IAAI,KAAK,IAAI,MAAM,EAAE;AAC9D,YAAMhB,OAAM,MAAM,IAAI,YAAY;AAClC,oBAAcgB,OAAM,OAAO,KAAKhB,IAAG,CAAC;AACpC,aAAOgB;AAAA,IACT,GAAG;AAAA,EACL;AACA,QAAM,IAAI,MAAM,SAAS,MAAM,2CAA2C;AAC5E;AAEA,SAAS,WAAY,IAAI;AACvB,SAAO,SAAUA,UAAS,MAAM;AAC9B,QAAIA,iBAAgB;AAClB,aAAO,GAAG,YAAYA,OAAM,IAAI,GAAG,GAAG,IAAI;AAC5C,WAAO,GAAGA,OAAM,GAAG,IAAI;AAAA,EACzB;AACF;AAEA,SAAS,cAAe,IAAI;AAC1B,SAAO,eAAgBA,UAAS,MAAM;AACpC,QAAIA,iBAAgB;AAClB,aAAO,GAAG,MAAM,YAAYA,KAAI,GAAG,GAAG,IAAI;AAC5C,WAAO,GAAGA,OAAM,GAAG,IAAI;AAAA,EACzB;AACF;AAEA,SAAS,eAAgB,IAAI;AAC3B,SAAO,SAAUA,UAAS,MAAM;AAC9B,UAAM,KAAK,KAAK,KAAK,SAAS,CAAC;AAC/B,QAAIA,iBAAgB,OAAO,OAAO,OAAO,YAAY;AACnD,kBAAYA,KAAI,EAAE,KAAK,CAAAA,UAAQ;AAC7B,WAAGA,OAAM,GAAG,IAAI;AAAA,MAClB,GAAG,EAAE;AAAA,IACP,OACK;AACH,SAAGA,OAAM,GAAG,IAAI;AAAA,IAClB;AAAA,EACF;AACF;AAEA,GAAG,SAAS,WAAW,cAAc,GAAG,SAAS,QAAQ;AACzD,GAAG,WAAW,eAAe,GAAG,QAAQ;AACxC,GAAG,eAAe,WAAW,GAAG,YAAY;AAE5C,IAAM;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW,EAAE,MAAM,MAAM,MAAM,KAAK;AAAA,EACpC;AAAA,EACA,UAAA4C;AACF,IAAI;;;AmBt/IJ;;;ACAA;;;ACAA;;;ACAA;;;ACAA;;;ACAA;AAKA,IAAM,UAAU;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,kBAAkB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAMO,SAAS,GAAI,OAAO;AACzB,MAAI,UAAU,MAAM;AAClB,WAAO;AAAA,EACT;AACA,MAAI,UAAU,QAAW;AACvB,WAAO;AAAA,EACT;AACA,MAAI,UAAU,QAAQ,UAAU,OAAO;AACrC,WAAO;AAAA,EACT;AACA,QAAM,SAAS,OAAO;AACtB,MAAI,QAAQ,SAAS,MAAM,GAAG;AAC5B,WAAO;AAAA,EACT;AAGA,MAAI,WAAW,YAAY;AACzB,WAAO;AAAA,EACT;AACA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO;AAAA,EACT;AACA,MAAIC,UAAS,KAAK,GAAG;AACnB,WAAO;AAAA,EACT;AACA,QAAM,aAAa,cAAc,KAAK;AACtC,MAAI,YAAY;AACd,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAMA,SAASA,UAAU,OAAO;AACxB,SAAO,SAAS,MAAM,eAAe,MAAM,YAAY,YAAY,MAAM,YAAY,SAAS,KAAK,MAAM,KAAK;AAChH;AAMA,SAAS,cAAe,OAAO;AAC7B,QAAM,iBAAiB,OAAO,UAAU,SAAS,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE;AACxE,MAAI,gBAAgB,SAAS,cAAc,GAAG;AAC5C,WAAO;AAAA,EACT;AAEA,SAAO;AACT;;;ACzGA;AAAA,IAAM,OAAN,MAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,YAAa,OAAOC,OAAM,UAAU;AAClC,SAAK,QAAQ;AACb,SAAK,eAAe,SAAS;AAC7B,SAAK,OAAOA;AACZ,SAAK,WAAW;AAAA,EAClB;AAAA;AAAA,EAGA,WAAY;AACV,WAAO,QAAQ,KAAK,KAAK,KAAK,KAAK,IAAI;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAS,KAAK;AAEZ,WAAO,KAAK,QAAQ,IAAI,QAAQ,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI;AAAA,EACpE;AACF;AAGA,KAAK,OAAO,IAAI,KAAK,GAAG,QAAQ,IAAI;AACpC,KAAK,SAAS,IAAI,KAAK,GAAG,UAAU,IAAI;AACxC,KAAK,QAAQ,IAAI,KAAK,GAAG,SAAS,IAAI;AACtC,KAAK,SAAS,IAAI,KAAK,GAAG,UAAU,IAAI;AACxC,KAAK,QAAQ,IAAI,KAAK,GAAG,SAAS,KAAK;AACvC,KAAK,MAAM,IAAI,KAAK,GAAG,OAAO,KAAK;AACnC,KAAK,MAAM,IAAI,KAAK,GAAG,OAAO,KAAK;AACnC,KAAK,QAAQ,IAAI,KAAK,GAAG,SAAS,IAAI;AACtC,KAAK,QAAQ,IAAI,KAAK,GAAG,SAAS,IAAI;AACtC,KAAK,OAAO,IAAI,KAAK,GAAG,QAAQ,IAAI;AACpC,KAAK,OAAO,IAAI,KAAK,GAAG,QAAQ,IAAI;AACpC,KAAK,YAAY,IAAI,KAAK,GAAG,aAAa,IAAI;AAC9C,KAAK,QAAQ,IAAI,KAAK,GAAG,SAAS,IAAI;AAGtC,IAAM,QAAN,MAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMV,YAAa,MAAM,OAAO,eAAe;AACvC,SAAK,OAAO;AACZ,SAAK,QAAQ;AACb,SAAK,gBAAgB;AAErB,SAAK,eAAe;AAEpB,SAAK,YAAY;AAAA,EACnB;AAAA;AAAA,EAGA,WAAY;AACV,WAAO,SAAS,KAAK,IAAI,KAAK,KAAK,KAAK;AAAA,EAC1C;AACF;;;AChEA;;;ACAA;AAIO,IAAM,YAAY,WAAW;AAElC,CAAC,WAAW,QAAQ;AAEpB,WAAW;AAEX,OAAO,WAAW,OAAO,aAAa;AAExC,IAAM,cAAc,IAAI,YAAY;AACpC,IAAM,cAAc,IAAI,YAAY;AAMpC,SAASC,UAAUC,MAAK;AAEtB,SAAO,aAAa,WAAW,OAAO,SAASA,IAAG;AACpD;AAMO,SAAS,MAAOA,MAAK;AAE1B,MAAI,EAAEA,gBAAe,aAAa;AAChC,WAAO,WAAW,KAAKA,IAAG;AAAA,EAC5B;AACA,SAAOD,UAASC,IAAG,IAAI,IAAI,WAAWA,KAAI,QAAQA,KAAI,YAAYA,KAAI,UAAU,IAAIA;AACtF;AAEO,IAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOpB,CAAC,OAAO,OAAO,QAAQ;AACrB,WAAO,MAAM,QAAQ;AAAA;AAAA;AAAA,MAGnB,WAAW,OAAO,KAAK,MAAM,SAAS,OAAO,GAAG,CAAC,EAAE,SAAS,MAAM;AAAA,QAChE,UAAU,OAAO,OAAO,GAAG;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,CAAC,OAAO,OAAO,QAAQ;AACrB,WAAO,MAAM,QAAQ,KACjB,YAAY,OAAO,MAAM,SAAS,OAAO,GAAG,CAAC,IAC7C,UAAU,OAAO,OAAO,GAAG;AAAA,EACjC;AAAA;AAEG,IAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAKtB,CAAC,WAAW;AACV,WAAO,OAAO,SAAS;AAAA;AAAA;AAAA,MAGrB,WAAW,OAAO,KAAK,MAAM;AAAA,QAC3B,YAAY,MAAM;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,CAAC,WAAW;AACV,WAAO,OAAO,SAAS,KAAK,YAAY,OAAO,MAAM,IAAI,YAAY,MAAM;AAAA,EAC7E;AAAA;AAWG,IAAM,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOjB,CAAC,OAAO,OAAO,QAAQ;AACrB,QAAIC,UAAS,KAAK,GAAG;AACnB,aAAO,IAAI,WAAW,MAAM,SAAS,OAAO,GAAG,CAAC;AAAA,IAClD;AACA,WAAO,MAAM,MAAM,OAAO,GAAG;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,CAAC,OAAO,OAAO,QAAQ;AACrB,WAAO,MAAM,MAAM,OAAO,GAAG;AAAA,EAC/B;AAAA;AAEG,IAAM,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOlB,CAAC,QAAQC,YAAW;AAGlB,aAAS,OAAO,IAAI,CAACC,OAAMA,cAAa,aACpCA;AAAA;AAAA;AAAA,MAKF,WAAW,OAAO,KAAKA,EAAC;AAAA,KAAC;AAE3B,WAAO,MAAM,WAAW,OAAO,OAAO,QAAQD,OAAM,CAAC;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,CAAC,QAAQA,YAAW;AAClB,UAAM,MAAM,IAAI,WAAWA,OAAM;AACjC,QAAI,MAAM;AACV,aAASE,MAAK,QAAQ;AACpB,UAAI,MAAMA,GAAE,SAAS,IAAI,QAAQ;AAE/B,QAAAA,KAAIA,GAAE,SAAS,GAAG,IAAI,SAAS,GAAG;AAAA,MACpC;AACA,UAAI,IAAIA,IAAG,GAAG;AACd,aAAOA,GAAE;AAAA,IACX;AACA,WAAO;AAAA,EACT;AAAA;AAEG,IAAM,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMjB,CAAC,SAAS;AAGR,WAAO,WAAW,OAAO,YAAY,IAAI;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,CAAC,SAAS;AACR,WAAO,IAAI,WAAW,IAAI;AAAA,EAC5B;AAAA;AAoFG,SAAS,QAAS,IAAIC,KAAI;AAE/B,MAAIC,UAAS,EAAE,KAAKA,UAASD,GAAE,GAAG;AAGhC,WAAO,GAAG,QAAQA,GAAE;AAAA,EACtB;AACA,WAASE,KAAI,GAAGA,KAAI,GAAG,QAAQA,MAAK;AAClC,QAAI,GAAGA,EAAC,MAAMF,IAAGE,EAAC,GAAG;AACnB;AAAA,IACF;AACA,WAAO,GAAGA,EAAC,IAAIF,IAAGE,EAAC,IAAI,KAAK;AAAA,EAC9B;AACA,SAAO;AACT;AASA,SAAS,YAAa,KAAK;AACzB,QAAM,MAAM,CAAC;AACb,MAAIC,KAAI;AACR,WAASD,KAAI,GAAGA,KAAI,IAAI,QAAQA,MAAK;AACnC,QAAIE,KAAI,IAAI,WAAWF,EAAC;AACxB,QAAIE,KAAI,KAAK;AACX,UAAID,IAAG,IAAIC;AAAA,IACb,WAAWA,KAAI,MAAM;AACnB,UAAID,IAAG,IAAKC,MAAK,IAAK;AACtB,UAAID,IAAG,IAAKC,KAAI,KAAM;AAAA,IACxB,YACIA,KAAI,WAAY,SAAYF,KAAI,IAAK,IAAI,WACzC,IAAI,WAAWA,KAAI,CAAC,IAAI,WAAY,OAAS;AAE/C,MAAAE,KAAI,UAAYA,KAAI,SAAW,OAAO,IAAI,WAAW,EAAEF,EAAC,IAAI;AAC5D,UAAIC,IAAG,IAAKC,MAAK,KAAM;AACvB,UAAID,IAAG,IAAMC,MAAK,KAAM,KAAM;AAC9B,UAAID,IAAG,IAAMC,MAAK,IAAK,KAAM;AAC7B,UAAID,IAAG,IAAKC,KAAI,KAAM;AAAA,IACxB,OAAO;AACL,UAAID,IAAG,IAAKC,MAAK,KAAM;AACvB,UAAID,IAAG,IAAMC,MAAK,IAAK,KAAM;AAC7B,UAAID,IAAG,IAAKC,KAAI,KAAM;AAAA,IACxB;AAAA,EACF;AACA,SAAO;AACT;AAWA,SAAS,UAAWC,MAAK,QAAQ,KAAK;AACpC,QAAM,MAAM,CAAC;AAEb,SAAO,SAAS,KAAK;AACnB,UAAM,YAAYA,KAAI,MAAM;AAC5B,QAAI,YAAY;AAChB,QAAI,mBAAoB,YAAY,MAAQ,IAAK,YAAY,MAAQ,IAAK,YAAY,MAAQ,IAAI;AAElG,QAAI,SAAS,oBAAoB,KAAK;AACpC,UAAI,YAAY,WAAW,YAAY;AAEvC,cAAQ,kBAAkB;AAAA,QACxB,KAAK;AACH,cAAI,YAAY,KAAM;AACpB,wBAAY;AAAA,UACd;AACA;AAAA,QACF,KAAK;AACH,uBAAaA,KAAI,SAAS,CAAC;AAC3B,eAAK,aAAa,SAAU,KAAM;AAChC,6BAAiB,YAAY,OAAS,IAAO,aAAa;AAC1D,gBAAI,gBAAgB,KAAM;AACxB,0BAAY;AAAA,YACd;AAAA,UACF;AACA;AAAA,QACF,KAAK;AACH,uBAAaA,KAAI,SAAS,CAAC;AAC3B,sBAAYA,KAAI,SAAS,CAAC;AAC1B,eAAK,aAAa,SAAU,QAAS,YAAY,SAAU,KAAM;AAC/D,6BAAiB,YAAY,OAAQ,MAAO,aAAa,OAAS,IAAO,YAAY;AAErF,gBAAI,gBAAgB,SAAU,gBAAgB,SAAU,gBAAgB,QAAS;AAC/E,0BAAY;AAAA,YACd;AAAA,UACF;AACA;AAAA,QACF,KAAK;AACH,uBAAaA,KAAI,SAAS,CAAC;AAC3B,sBAAYA,KAAI,SAAS,CAAC;AAC1B,uBAAaA,KAAI,SAAS,CAAC;AAC3B,eAAK,aAAa,SAAU,QAAS,YAAY,SAAU,QAAS,aAAa,SAAU,KAAM;AAC/F,6BAAiB,YAAY,OAAQ,MAAQ,aAAa,OAAS,MAAO,YAAY,OAAS,IAAO,aAAa;AACnH,gBAAI,gBAAgB,SAAU,gBAAgB,SAAU;AACtD,0BAAY;AAAA,YACd;AAAA,UACF;AAAA,MACJ;AAAA,IACF;AAGA,QAAI,cAAc,MAAM;AAGtB,kBAAY;AACZ,yBAAmB;AAAA,IACrB,WAAW,YAAY,OAAQ;AAE7B,mBAAa;AACb,UAAI,KAAK,cAAc,KAAK,OAAQ,KAAM;AAC1C,kBAAY,QAAS,YAAY;AAAA,IACnC;AAEA,QAAI,KAAK,SAAS;AAClB,cAAU;AAAA,EACZ;AAEA,SAAO,sBAAsB,GAAG;AAClC;AAKA,IAAM,uBAAuB;AAMtB,SAAS,sBAAuB,YAAY;AACjD,QAAM,MAAM,WAAW;AACvB,MAAI,OAAO,sBAAsB;AAC/B,WAAO,OAAO,aAAa,MAAM,QAAQ,UAAU;AAAA,EACrD;AAGA,MAAI,MAAM;AACV,MAAIH,KAAI;AACR,SAAOA,KAAI,KAAK;AACd,WAAO,OAAO,aAAa;AAAA,MACzB;AAAA,MACA,WAAW,MAAMA,IAAGA,MAAK,oBAAoB;AAAA,IAC/C;AAAA,EACF;AACA,SAAO;AACT;;;ADxYA,IAAM,mBAAmB;AAElB,IAAM,KAAN,MAAS;AAAA;AAAA;AAAA;AAAA,EAId,YAAa,YAAY,kBAAkB;AACzC,SAAK,YAAY;AAEjB,SAAK,SAAS;AAEd,SAAK,YAAY;AAEjB,SAAK,SAAS,CAAC;AAGf,SAAK,kBAAkB;AAAA,EACzB;AAAA,EAEA,QAAS;AACP,SAAK,SAAS;AACd,SAAK,YAAY;AACjB,QAAI,KAAK,OAAO,QAAQ;AACtB,WAAK,SAAS,CAAC;AAAA,IACjB;AACA,QAAI,KAAK,oBAAoB,MAAM;AACjC,WAAK,OAAO,KAAK,KAAK,eAAe;AACrC,WAAK,YAAY,KAAK,gBAAgB,SAAS;AAAA,IACjD;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,KAAM,OAAO;AACX,QAAI,WAAW,KAAK,OAAO,KAAK,OAAO,SAAS,CAAC;AACjD,UAAM,SAAS,KAAK,SAAS,MAAM;AACnC,QAAI,UAAU,KAAK,YAAY,GAAG;AAEhC,YAAM,WAAW,SAAS,UAAU,KAAK,YAAY,KAAK,UAAU;AAEpE,eAAS,IAAI,OAAO,QAAQ;AAAA,IAC9B,OAAO;AAEL,UAAI,UAAU;AAEZ,cAAM,WAAW,SAAS,UAAU,KAAK,YAAY,KAAK,UAAU;AACpE,YAAI,WAAW,SAAS,QAAQ;AAE9B,eAAK,OAAO,KAAK,OAAO,SAAS,CAAC,IAAI,SAAS,SAAS,GAAG,QAAQ;AACnE,eAAK,YAAY,KAAK,SAAS;AAAA,QACjC;AAAA,MACF;AACA,UAAI,MAAM,SAAS,MAAM,MAAM,SAAS,KAAK,WAAW;AAEtD,mBAAW,MAAM,KAAK,SAAS;AAC/B,aAAK,OAAO,KAAK,QAAQ;AACzB,aAAK,aAAa,SAAS;AAC3B,YAAI,KAAK,oBAAoB,MAAM;AACjC,eAAK,kBAAkB;AAAA,QACzB;AAEA,iBAAS,IAAI,OAAO,CAAC;AAAA,MACvB,OAAO;AAEL,aAAK,OAAO,KAAK,KAAK;AACtB,aAAK,aAAa,MAAM;AAAA,MAC1B;AAAA,IACF;AACA,SAAK,UAAU,MAAM;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAS,QAAQ,OAAO;AACtB,QAAI;AACJ,QAAI,KAAK,OAAO,WAAW,GAAG;AAC5B,YAAM,QAAQ,KAAK,OAAO,CAAC;AAC3B,UAAI,SAAS,KAAK,SAAS,MAAM,SAAS,GAAG;AAG3C,eAAO,KAAK,WAAW,MAAM,SAAS,QAAQ,MAAM,SAAS,GAAG,KAAK,MAAM;AAC3E,aAAK,kBAAkB;AACvB,aAAK,SAAS,CAAC;AAAA,MACjB,OAAO;AAEL,eAAO,MAAM,OAAO,GAAG,KAAK,MAAM;AAAA,MACpC;AAAA,IACF,OAAO;AAEL,aAAO,OAAO,KAAK,QAAQ,KAAK,MAAM;AAAA,IACxC;AACA,QAAI,OAAO;AACT,WAAK,MAAM;AAAA,IACb;AACA,WAAO;AAAA,EACT;AACF;;;AE3HA;AAAA,IAAM,kBAAkB;AACxB,IAAM,kBAAkB;AAExB,IAAM,uBAAuB,CAAC;AAC9B,qBAAqB,EAAE,IAAI;AAC3B,qBAAqB,EAAE,IAAI;AAC3B,qBAAqB,EAAE,IAAI;AAC3B,qBAAqB,EAAE,IAAI;AAC3B,qBAAqB,EAAE,IAAI;AAO3B,SAAS,iBAAkB,MAAM,KAAK,MAAM;AAC1C,MAAI,KAAK,SAAS,MAAM,MAAM;AAC5B,UAAM,IAAI,MAAM,GAAG,eAAe,2BAA2B;AAAA,EAC/D;AACF;;;ACnBA;;;ACAA;AAKO,IAAM,iBAAiB,CAAC,IAAI,KAAK,OAAO,YAAY,OAAO,sBAAsB,CAAC;AAalF,SAAS,UAAW,MAAM,QAAQ,SAAS;AAChD,mBAAiB,MAAM,QAAQ,CAAC;AAChC,QAAM,QAAQ,KAAK,MAAM;AACzB,MAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,CAAC,GAAG;AACxD,UAAM,IAAI,MAAM,GAAG,eAAe,+DAA+D;AAAA,EACnG;AACA,SAAO;AACT;AAQO,SAAS,WAAY,MAAM,QAAQ,SAAS;AACjD,mBAAiB,MAAM,QAAQ,CAAC;AAChC,QAAM,QAAS,KAAK,MAAM,KAAK,IAAK,KAAK,SAAS,CAAC;AACnD,MAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,CAAC,GAAG;AACxD,UAAM,IAAI,MAAM,GAAG,eAAe,+DAA+D;AAAA,EACnG;AACA,SAAO;AACT;AAQO,SAAS,WAAY,MAAM,QAAQ,SAAS;AACjD,mBAAiB,MAAM,QAAQ,CAAC;AAChC,QAAM,QAAS,KAAK,MAAM,IAAI,YAA2B,KAAK,SAAS,CAAC,KAAK,OAAO,KAAK,SAAS,CAAC,KAAK,KAAK,KAAK,SAAS,CAAC;AAC5H,MAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,CAAC,GAAG;AACxD,UAAM,IAAI,MAAM,GAAG,eAAe,+DAA+D;AAAA,EACnG;AACA,SAAO;AACT;AAQO,SAAS,WAAY,MAAM,QAAQ,SAAS;AAEjD,mBAAiB,MAAM,QAAQ,CAAC;AAChC,QAAM,KAAM,KAAK,MAAM,IAAI,YAA2B,KAAK,SAAS,CAAC,KAAK,OAAO,KAAK,SAAS,CAAC,KAAK,KAAK,KAAK,SAAS,CAAC;AACzH,QAAM,KAAM,KAAK,SAAS,CAAC,IAAI,YAA2B,KAAK,SAAS,CAAC,KAAK,OAAO,KAAK,SAAS,CAAC,KAAK,KAAK,KAAK,SAAS,CAAC;AAC7H,QAAM,SAAS,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE;AACpD,MAAI,QAAQ,WAAW,QAAQ,QAAQ,eAAe,CAAC,GAAG;AACxD,UAAM,IAAI,MAAM,GAAG,eAAe,+DAA+D;AAAA,EACnG;AACA,MAAI,SAAS,OAAO,kBAAkB;AACpC,WAAO,OAAO,KAAK;AAAA,EACrB;AACA,MAAI,QAAQ,gBAAgB,MAAM;AAChC,WAAO;AAAA,EACT;AACA,QAAM,IAAI,MAAM,GAAG,eAAe,+DAA+D;AACnG;AAgBO,SAAS,YAAa,MAAM,KAAK,QAAQ,SAAS;AACvD,SAAO,IAAI,MAAM,KAAK,MAAM,UAAU,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC;AAClE;AASO,SAAS,aAAc,MAAM,KAAK,QAAQ,SAAS;AACxD,SAAO,IAAI,MAAM,KAAK,MAAM,WAAW,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC;AACnE;AASO,SAAS,aAAc,MAAM,KAAK,QAAQ,SAAS;AACxD,SAAO,IAAI,MAAM,KAAK,MAAM,WAAW,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC;AACnE;AASO,SAAS,aAAc,MAAM,KAAK,QAAQ,SAAS;AACxD,SAAO,IAAI,MAAM,KAAK,MAAM,WAAW,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC;AACnE;AAMO,SAAS,WAAYI,MAAK,OAAO;AACtC,SAAO,gBAAgBA,MAAK,GAAG,MAAM,KAAK;AAC5C;AAOO,SAAS,gBAAiBA,MAAK,OAAO,MAAM;AACjD,MAAI,OAAO,eAAe,CAAC,GAAG;AAC5B,UAAM,QAAQ,OAAO,IAAI;AAEzB,IAAAA,KAAI,KAAK,CAAC,QAAQ,KAAK,CAAC;AAAA,EAC1B,WAAW,OAAO,eAAe,CAAC,GAAG;AACnC,UAAM,QAAQ,OAAO,IAAI;AAEzB,IAAAA,KAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC;AAAA,EAC9B,WAAW,OAAO,eAAe,CAAC,GAAG;AACnC,UAAM,QAAQ,OAAO,IAAI;AAEzB,IAAAA,KAAI,KAAK,CAAC,QAAQ,IAAI,UAAU,GAAG,QAAQ,GAAI,CAAC;AAAA,EAClD,WAAW,OAAO,eAAe,CAAC,GAAG;AACnC,UAAM,QAAQ,OAAO,IAAI;AAEzB,IAAAA,KAAI,KAAK,CAAC,QAAQ,IAAK,UAAU,KAAM,KAAO,UAAU,KAAM,KAAO,UAAU,IAAK,KAAM,QAAQ,GAAI,CAAC;AAAA,EACzG,OAAO;AACL,UAAM,QAAQ,OAAO,IAAI;AACzB,QAAI,QAAQ,eAAe,CAAC,GAAG;AAE7B,YAAM,MAAM,CAAC,QAAQ,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAE5C,UAAI,KAAK,OAAO,QAAQ,OAAO,UAAU,CAAC;AAC1C,UAAI,KAAK,OAAO,SAAS,OAAO,EAAE,IAAI,OAAO,UAAU,CAAC;AACxD,UAAI,CAAC,IAAI,KAAK;AACd,WAAK,MAAM;AACX,UAAI,CAAC,IAAI,KAAK;AACd,WAAK,MAAM;AACX,UAAI,CAAC,IAAI,KAAK;AACd,WAAK,MAAM;AACX,UAAI,CAAC,IAAI,KAAK;AACd,UAAI,CAAC,IAAI,KAAK;AACd,WAAK,MAAM;AACX,UAAI,CAAC,IAAI,KAAK;AACd,WAAK,MAAM;AACX,UAAI,CAAC,IAAI,KAAK;AACd,WAAK,MAAM;AACX,UAAI,CAAC,IAAI,KAAK;AACd,MAAAA,KAAI,KAAK,GAAG;AAAA,IACd,OAAO;AACL,YAAM,IAAI,MAAM,GAAG,eAAe,iDAAiD;AAAA,IACrF;AAAA,EACF;AACF;AAMA,WAAW,cAAc,SAAS,YAAa,OAAO;AACpD,SAAO,gBAAgB,YAAY,MAAM,KAAK;AAChD;AAMA,gBAAgB,cAAc,SAASC,aAAa,MAAM;AACxD,MAAI,OAAO,eAAe,CAAC,GAAG;AAC5B,WAAO;AAAA,EACT;AACA,MAAI,OAAO,eAAe,CAAC,GAAG;AAC5B,WAAO;AAAA,EACT;AACA,MAAI,OAAO,eAAe,CAAC,GAAG;AAC5B,WAAO;AAAA,EACT;AACA,MAAI,OAAO,eAAe,CAAC,GAAG;AAC5B,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAOA,WAAW,gBAAgB,SAAS,cAAe,MAAM,MAAM;AAC7D,SAAO,KAAK,QAAQ,KAAK,QAAQ,KAAK,KAAK,QAAQ,KAAK,QAAQ;AAAA;AAAA,IAAyB;AAAA;AAC3F;;;AClOA;AAkBO,SAAS,cAAe,MAAM,KAAK,QAAQ,SAAS;AACzD,SAAO,IAAI,MAAM,KAAK,QAAQ,KAAU,UAAU,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC;AAC9E;AASO,SAAS,eAAgB,MAAM,KAAK,QAAQ,SAAS;AAC1D,SAAO,IAAI,MAAM,KAAK,QAAQ,KAAU,WAAW,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC;AAC/E;AASO,SAAS,eAAgB,MAAM,KAAK,QAAQ,SAAS;AAC1D,SAAO,IAAI,MAAM,KAAK,QAAQ,KAAU,WAAW,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC;AAC/E;AAEA,IAAM,QAAQ,OAAO,EAAE;AACvB,IAAM,QAAQ,OAAO,CAAC;AASf,SAAS,eAAgB,MAAM,KAAK,QAAQ,SAAS;AAC1D,QAAM,MAAW,WAAW,MAAM,MAAM,GAAG,OAAO;AAClD,MAAI,OAAO,QAAQ,UAAU;AAC3B,UAAM,QAAQ,KAAK;AACnB,QAAI,SAAS,OAAO,kBAAkB;AACpC,aAAO,IAAI,MAAM,KAAK,QAAQ,OAAO,CAAC;AAAA,IACxC;AAAA,EACF;AACA,MAAI,QAAQ,gBAAgB,MAAM;AAChC,UAAM,IAAI,MAAM,GAAG,eAAe,+DAA+D;AAAA,EACnG;AACA,SAAO,IAAI,MAAM,KAAK,QAAQ,QAAQ,OAAO,GAAG,GAAG,CAAC;AACtD;AAMO,SAAS,aAAcC,MAAK,OAAO;AACxC,QAAM,SAAS,MAAM;AACrB,QAAM,WAAY,OAAO,WAAW,WAAY,SAAS,QAAQ,QAAU,SAAS,KAAK;AACzF,EAAK,gBAAgBA,MAAK,MAAM,KAAK,cAAc,QAAQ;AAC7D;AAMA,aAAa,cAAc,SAASC,aAAa,OAAO;AACtD,QAAM,SAAS,MAAM;AACrB,QAAM,WAAY,OAAO,WAAW,WAAY,SAAS,QAAQ,QAAU,SAAS,KAAK;AAGzF,MAAI,WAAgB,eAAe,CAAC,GAAG;AACrC,WAAO;AAAA,EACT;AACA,MAAI,WAAgB,eAAe,CAAC,GAAG;AACrC,WAAO;AAAA,EACT;AACA,MAAI,WAAgB,eAAe,CAAC,GAAG;AACrC,WAAO;AAAA,EACT;AACA,MAAI,WAAgB,eAAe,CAAC,GAAG;AACrC,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAOA,aAAa,gBAAgB,SAASC,eAAe,MAAM,MAAM;AAE/D,SAAO,KAAK,QAAQ,KAAK,QAAQ,IAAI,KAAK,QAAQ,KAAK,QAAQ;AAAA;AAAA,IAA0B;AAAA;AAC3F;;;AC9GA;AAiBA,SAAS,QAAS,MAAM,KAAK,QAAQC,SAAQ;AAC3C,mBAAiB,MAAM,KAAK,SAASA,OAAM;AAC3C,QAAMC,OAAM,MAAM,MAAM,MAAM,QAAQ,MAAM,SAASD,OAAM;AAC3D,SAAO,IAAI,MAAM,KAAK,OAAOC,MAAK,SAASD,OAAM;AACnD;AASO,SAAS,mBAAoB,MAAM,KAAK,OAAO,UAAU;AAC9D,SAAO,QAAQ,MAAM,KAAK,GAAG,KAAK;AACpC;AASO,SAAS,aAAc,MAAM,KAAK,QAAQ,SAAS;AACxD,SAAO,QAAQ,MAAM,KAAK,GAAQ,UAAU,MAAM,MAAM,GAAG,OAAO,CAAC;AACrE;AASO,SAAS,cAAe,MAAM,KAAK,QAAQ,SAAS;AACzD,SAAO,QAAQ,MAAM,KAAK,GAAQ,WAAW,MAAM,MAAM,GAAG,OAAO,CAAC;AACtE;AASO,SAAS,cAAe,MAAM,KAAK,QAAQ,SAAS;AACzD,SAAO,QAAQ,MAAM,KAAK,GAAQ,WAAW,MAAM,MAAM,GAAG,OAAO,CAAC;AACtE;AAUO,SAAS,cAAe,MAAM,KAAK,QAAQ,SAAS;AACzD,QAAME,KAAS,WAAW,MAAM,MAAM,GAAG,OAAO;AAChD,MAAI,OAAOA,OAAM,UAAU;AACzB,UAAM,IAAI,MAAM,GAAG,eAAe,6CAA6C;AAAA,EACjF;AACA,SAAO,QAAQ,MAAM,KAAK,GAAGA,EAAC;AAChC;AAQA,SAAS,WAAY,OAAO;AAC1B,MAAI,MAAM,iBAAiB,QAAW;AACpC,UAAM,eAAe,MAAM,SAAS,KAAK,SAAS,WAAW,MAAM,KAAK,IAAI,MAAM;AAAA,EACpF;AAEA,SAAO,MAAM;AACf;AAMO,SAAS,YAAaD,MAAK,OAAO;AACvC,QAAM,QAAQ,WAAW,KAAK;AAC9B,EAAK,gBAAgBA,MAAK,MAAM,KAAK,cAAc,MAAM,MAAM;AAC/D,EAAAA,KAAI,KAAK,KAAK;AAChB;AAMA,YAAY,cAAc,SAASE,aAAa,OAAO;AACrD,QAAM,QAAQ,WAAW,KAAK;AAC9B,SAAY,gBAAgB,YAAY,MAAM,MAAM,IAAI,MAAM;AAChE;AAOA,YAAY,gBAAgB,SAASC,eAAe,MAAM,MAAM;AAC9D,SAAO,aAAa,WAAW,IAAI,GAAG,WAAW,IAAI,CAAC;AACxD;AAOO,SAAS,aAAc,IAAIC,KAAI;AACpC,SAAO,GAAG,SAASA,IAAG,SAAS,KAAK,GAAG,SAASA,IAAG,SAAS,IAAI,QAAQ,IAAIA,GAAE;AAChF;;;ACpIA;AAmBA,SAASC,SAAS,MAAM,KAAK,QAAQC,SAAQ,SAAS;AACpD,QAAM,YAAY,SAASA;AAC3B,mBAAiB,MAAM,KAAK,SAAS;AACrC,QAAM,MAAM,IAAI,MAAM,KAAK,QAAQ,SAAS,MAAM,MAAM,QAAQ,MAAM,SAAS,GAAG,SAAS;AAC3F,MAAI,QAAQ,sBAAsB,MAAM;AACtC,QAAI,YAAY,MAAM,MAAM,MAAM,QAAQ,MAAM,SAAS;AAAA,EAC3D;AACA,SAAO;AACT;AASO,SAAS,oBAAqB,MAAM,KAAK,OAAO,SAAS;AAC9D,SAAOD,SAAQ,MAAM,KAAK,GAAG,OAAO,OAAO;AAC7C;AASO,SAAS,cAAe,MAAM,KAAK,QAAQ,SAAS;AACzD,SAAOA,SAAQ,MAAM,KAAK,GAAQ,UAAU,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO;AAC9E;AASO,SAAS,eAAgB,MAAM,KAAK,QAAQ,SAAS;AAC1D,SAAOA,SAAQ,MAAM,KAAK,GAAQ,WAAW,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO;AAC/E;AASO,SAAS,eAAgB,MAAM,KAAK,QAAQ,SAAS;AAC1D,SAAOA,SAAQ,MAAM,KAAK,GAAQ,WAAW,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO;AAC/E;AAUO,SAAS,eAAgB,MAAM,KAAK,QAAQ,SAAS;AAC1D,QAAME,KAAS,WAAW,MAAM,MAAM,GAAG,OAAO;AAChD,MAAI,OAAOA,OAAM,UAAU;AACzB,UAAM,IAAI,MAAM,GAAG,eAAe,8CAA8C;AAAA,EAClF;AACA,SAAOF,SAAQ,MAAM,KAAK,GAAGE,IAAG,OAAO;AACzC;AAEO,IAAM,eAAe;;;ACzF5B;AAgBA,SAASC,SAAS,OAAO,MAAM,QAAQC,SAAQ;AAC7C,SAAO,IAAI,MAAM,KAAK,OAAOA,SAAQ,MAAM;AAC7C;AASO,SAAS,mBAAoB,MAAM,KAAK,OAAO,UAAU;AAC9D,SAAOD,SAAQ,MAAM,KAAK,GAAG,KAAK;AACpC;AASO,SAAS,aAAc,MAAM,KAAK,QAAQ,SAAS;AACxD,SAAOA,SAAQ,MAAM,KAAK,GAAQ,UAAU,MAAM,MAAM,GAAG,OAAO,CAAC;AACrE;AASO,SAAS,cAAe,MAAM,KAAK,QAAQ,SAAS;AACzD,SAAOA,SAAQ,MAAM,KAAK,GAAQ,WAAW,MAAM,MAAM,GAAG,OAAO,CAAC;AACtE;AASO,SAAS,cAAe,MAAM,KAAK,QAAQ,SAAS;AACzD,SAAOA,SAAQ,MAAM,KAAK,GAAQ,WAAW,MAAM,MAAM,GAAG,OAAO,CAAC;AACtE;AAUO,SAAS,cAAe,MAAM,KAAK,QAAQ,SAAS;AACzD,QAAME,KAAS,WAAW,MAAM,MAAM,GAAG,OAAO;AAChD,MAAI,OAAOA,OAAM,UAAU;AACzB,UAAM,IAAI,MAAM,GAAG,eAAe,6CAA6C;AAAA,EACjF;AACA,SAAOF,SAAQ,MAAM,KAAK,GAAGE,EAAC;AAChC;AASO,SAAS,sBAAuB,MAAM,KAAK,QAAQ,SAAS;AACjE,MAAI,QAAQ,oBAAoB,OAAO;AACrC,UAAM,IAAI,MAAM,GAAG,eAAe,sCAAsC;AAAA,EAC1E;AACA,SAAOF,SAAQ,MAAM,KAAK,GAAG,QAAQ;AACvC;AAMO,SAAS,YAAaG,MAAK,OAAO;AACvC,EAAK,gBAAgBA,MAAK,KAAK,MAAM,cAAc,MAAM,KAAK;AAChE;AAIA,YAAY,gBAAqB,WAAW;AAM5C,YAAY,cAAc,SAASC,aAAa,OAAO;AACrD,SAAY,gBAAgB,YAAY,MAAM,KAAK;AACrD;;;AChHA;AAgBA,SAASC,SAAS,OAAO,MAAM,QAAQC,SAAQ;AAC7C,SAAO,IAAI,MAAM,KAAK,KAAKA,SAAQ,MAAM;AAC3C;AASO,SAAS,iBAAkB,MAAM,KAAK,OAAO,UAAU;AAC5D,SAAOD,SAAQ,MAAM,KAAK,GAAG,KAAK;AACpC;AASO,SAAS,WAAY,MAAM,KAAK,QAAQ,SAAS;AACtD,SAAOA,SAAQ,MAAM,KAAK,GAAQ,UAAU,MAAM,MAAM,GAAG,OAAO,CAAC;AACrE;AASO,SAAS,YAAa,MAAM,KAAK,QAAQ,SAAS;AACvD,SAAOA,SAAQ,MAAM,KAAK,GAAQ,WAAW,MAAM,MAAM,GAAG,OAAO,CAAC;AACtE;AASO,SAAS,YAAa,MAAM,KAAK,QAAQ,SAAS;AACvD,SAAOA,SAAQ,MAAM,KAAK,GAAQ,WAAW,MAAM,MAAM,GAAG,OAAO,CAAC;AACtE;AAUO,SAAS,YAAa,MAAM,KAAK,QAAQ,SAAS;AACvD,QAAME,KAAS,WAAW,MAAM,MAAM,GAAG,OAAO;AAChD,MAAI,OAAOA,OAAM,UAAU;AACzB,UAAM,IAAI,MAAM,GAAG,eAAe,2CAA2C;AAAA,EAC/E;AACA,SAAOF,SAAQ,MAAM,KAAK,GAAGE,EAAC;AAChC;AASO,SAAS,oBAAqB,MAAM,KAAK,QAAQ,SAAS;AAC/D,MAAI,QAAQ,oBAAoB,OAAO;AACrC,UAAM,IAAI,MAAM,GAAG,eAAe,sCAAsC;AAAA,EAC1E;AACA,SAAOF,SAAQ,MAAM,KAAK,GAAG,QAAQ;AACvC;AAMO,SAAS,UAAWG,MAAK,OAAO;AACrC,EAAK,gBAAgBA,MAAK,KAAK,IAAI,cAAc,MAAM,KAAK;AAC9D;AAIA,UAAU,gBAAqB,WAAW;AAM1C,UAAU,cAAc,SAASC,aAAa,OAAO;AACnD,SAAY,gBAAgB,YAAY,MAAM,KAAK;AACrD;;;AChHA;AAeO,SAAS,iBAAkB,OAAO,MAAM,OAAO,UAAU;AAC9D,SAAO,IAAI,MAAM,KAAK,KAAK,OAAO,CAAC;AACrC;AASO,SAAS,WAAY,MAAM,KAAK,QAAQ,SAAS;AACtD,SAAO,IAAI,MAAM,KAAK,KAAU,UAAU,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC;AACtE;AASO,SAAS,YAAa,MAAM,KAAK,QAAQ,SAAS;AACvD,SAAO,IAAI,MAAM,KAAK,KAAU,WAAW,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC;AACvE;AASO,SAAS,YAAa,MAAM,KAAK,QAAQ,SAAS;AACvD,SAAO,IAAI,MAAM,KAAK,KAAU,WAAW,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC;AACvE;AASO,SAAS,YAAa,MAAM,KAAK,QAAQ,SAAS;AACvD,SAAO,IAAI,MAAM,KAAK,KAAU,WAAW,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC;AACvE;AAMO,SAAS,UAAWC,MAAK,OAAO;AACrC,EAAK,gBAAgBA,MAAK,KAAK,IAAI,cAAc,MAAM,KAAK;AAC9D;AAEA,UAAU,gBAAqB,WAAW;AAM1C,UAAU,cAAc,SAASC,aAAa,OAAO;AACnD,SAAY,gBAAgB,YAAY,MAAM,KAAK;AACrD;;;AC/EA;AAaA,IAAM,cAAc;AACpB,IAAM,aAAa;AACnB,IAAM,aAAa;AACnB,IAAM,kBAAkB;AASjB,SAAS,gBAAiB,OAAO,MAAM,QAAQ,SAAS;AAC7D,MAAI,QAAQ,mBAAmB,OAAO;AACpC,UAAM,IAAI,MAAM,GAAG,eAAe,qCAAqC;AAAA,EACzE,WAAW,QAAQ,0BAA0B,MAAM;AACjD,WAAO,IAAI,MAAM,KAAK,MAAM,MAAM,CAAC;AAAA,EACrC;AACA,SAAO,IAAI,MAAM,KAAK,WAAW,QAAW,CAAC;AAC/C;AASO,SAAS,YAAa,OAAO,MAAM,QAAQ,SAAS;AACzD,MAAI,QAAQ,oBAAoB,OAAO;AACrC,UAAM,IAAI,MAAM,GAAG,eAAe,sCAAsC;AAAA,EAC1E;AACA,SAAO,IAAI,MAAM,KAAK,OAAO,QAAW,CAAC;AAC3C;AAQA,SAAS,YAAa,OAAO,OAAO,SAAS;AAC3C,MAAI,SAAS;AACX,QAAI,QAAQ,aAAa,SAAS,OAAO,MAAM,KAAK,GAAG;AACrD,YAAM,IAAI,MAAM,GAAG,eAAe,+BAA+B;AAAA,IACnE;AACA,QAAI,QAAQ,kBAAkB,UAAU,UAAU,YAAY,UAAU,YAAY;AAClF,YAAM,IAAI,MAAM,GAAG,eAAe,oCAAoC;AAAA,IACxE;AAAA,EACF;AACA,SAAO,IAAI,MAAM,KAAK,OAAO,OAAO,KAAK;AAC3C;AASO,SAAS,cAAe,MAAM,KAAK,QAAQ,SAAS;AACzD,SAAO,YAAY,YAAY,MAAM,MAAM,CAAC,GAAG,GAAG,OAAO;AAC3D;AASO,SAAS,cAAe,MAAM,KAAK,QAAQ,SAAS;AACzD,SAAO,YAAY,YAAY,MAAM,MAAM,CAAC,GAAG,GAAG,OAAO;AAC3D;AASO,SAAS,cAAe,MAAM,KAAK,QAAQ,SAAS;AACzD,SAAO,YAAY,YAAY,MAAM,MAAM,CAAC,GAAG,GAAG,OAAO;AAC3D;AAOO,SAAS,YAAaC,MAAK,OAAO,SAAS;AAChD,QAAM,QAAQ,MAAM;AAEpB,MAAI,UAAU,OAAO;AACnB,IAAAA,KAAI,KAAK,CAAC,KAAK,MAAM,eAAe,WAAW,CAAC;AAAA,EAClD,WAAW,UAAU,MAAM;AACzB,IAAAA,KAAI,KAAK,CAAC,KAAK,MAAM,eAAe,UAAU,CAAC;AAAA,EACjD,WAAW,UAAU,MAAM;AACzB,IAAAA,KAAI,KAAK,CAAC,KAAK,MAAM,eAAe,UAAU,CAAC;AAAA,EACjD,WAAW,UAAU,QAAW;AAC9B,IAAAA,KAAI,KAAK,CAAC,KAAK,MAAM,eAAe,eAAe,CAAC;AAAA,EACtD,OAAO;AACL,QAAI;AACJ,QAAI,UAAU;AACd,QAAI,CAAC,WAAW,QAAQ,YAAY,MAAM;AACxC,oBAAc,KAAK;AACnB,gBAAU,YAAY,MAAM,CAAC;AAC7B,UAAI,UAAU,WAAW,OAAO,MAAM,KAAK,GAAG;AAC5C,aAAK,CAAC,IAAI;AACV,QAAAA,KAAI,KAAK,KAAK,MAAM,GAAG,CAAC,CAAC;AACzB,kBAAU;AAAA,MACZ,OAAO;AACL,sBAAc,KAAK;AACnB,kBAAU,YAAY,MAAM,CAAC;AAC7B,YAAI,UAAU,SAAS;AACrB,eAAK,CAAC,IAAI;AACV,UAAAA,KAAI,KAAK,KAAK,MAAM,GAAG,CAAC,CAAC;AACzB,oBAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF;AACA,QAAI,CAAC,SAAS;AACZ,oBAAc,KAAK;AACnB,gBAAU,YAAY,MAAM,CAAC;AAC7B,WAAK,CAAC,IAAI;AACV,MAAAA,KAAI,KAAK,KAAK,MAAM,GAAG,CAAC,CAAC;AAAA,IAC3B;AAAA,EACF;AACF;AAOA,YAAY,cAAc,SAASC,aAAa,OAAO,SAAS;AAC9D,QAAM,QAAQ,MAAM;AAEpB,MAAI,UAAU,SAAS,UAAU,QAAQ,UAAU,QAAQ,UAAU,QAAW;AAC9E,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,WAAW,QAAQ,YAAY,MAAM;AACxC,kBAAc,KAAK;AACnB,QAAI,UAAU,YAAY,MAAM,CAAC;AACjC,QAAI,UAAU,WAAW,OAAO,MAAM,KAAK,GAAG;AAC5C,aAAO;AAAA,IACT;AACA,kBAAc,KAAK;AACnB,cAAU,YAAY,MAAM,CAAC;AAC7B,QAAI,UAAU,SAAS;AACrB,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAMC,UAAS,IAAI,YAAY,CAAC;AAChC,IAAM,WAAW,IAAI,SAASA,SAAQ,CAAC;AACvC,IAAM,OAAO,IAAI,WAAWA,SAAQ,CAAC;AAKrC,SAAS,cAAe,KAAK;AAC3B,MAAI,QAAQ,UAAU;AACpB,aAAS,UAAU,GAAG,OAAQ,KAAK;AAAA,EACrC,WAAW,QAAQ,WAAW;AAC5B,aAAS,UAAU,GAAG,OAAQ,KAAK;AAAA,EACrC,WAAW,OAAO,MAAM,GAAG,GAAG;AAC5B,aAAS,UAAU,GAAG,OAAQ,KAAK;AAAA,EACrC,OAAO;AACL,aAAS,WAAW,GAAG,GAAG;AAC1B,UAAM,SAAS,SAAS,UAAU,CAAC;AACnC,UAAM,YAAY,SAAS,eAAe;AAC1C,UAAM,WAAW,SAAS;AAG1B,QAAI,aAAa,KAAM;AAErB,eAAS,UAAU,GAAG,OAAQ,KAAK;AAAA,IACrC,WAAW,aAAa,GAAM;AAE5B,eAAS,UAAU,IAAK,MAAM,eAAe,KAAO,YAAY,IAAK,KAAK;AAAA,IAC5E,OAAO;AAEL,YAAM,kBAAkB,WAAW;AAGnC,UAAI,kBAAkB,KAAK;AAKzB,iBAAS,UAAU,GAAG,CAAC;AAAA,MACzB,WAAW,kBAAkB,KAAK;AAIhC,iBAAS,UAAU,IAAK,SAAS,eAAe;AAAA,QAAsB,KAAM,KAAK,iBAAmB,KAAK;AAAA,MAC3G,OAAO;AACL,iBAAS,UAAU,IAAK,SAAS,eAAe,KAAQ,kBAAkB,MAAO,KAAO,YAAY,IAAK,KAAK;AAAA,MAChH;AAAA,IACF;AAAA,EACF;AACF;AAOA,SAAS,YAAaC,OAAM,KAAK;AAC/B,MAAIA,MAAK,SAAS,MAAM,GAAG;AACzB,UAAM,IAAI,MAAM,GAAG,eAAe,8BAA8B;AAAA,EAClE;AAEA,QAAM,QAAQA,MAAK,GAAG,KAAK,KAAKA,MAAK,MAAM,CAAC;AAC5C,MAAI,SAAS,OAAQ;AACnB,WAAO;AAAA,EACT;AACA,MAAI,SAAS,OAAQ;AACnB,WAAO;AAAA,EACT;AACA,MAAI,SAAS,OAAQ;AACnB,WAAO;AAAA,EACT;AACA,QAAM,MAAO,QAAQ,KAAM;AAC3B,QAAM,OAAO,OAAO;AACpB,MAAI;AACJ,MAAI,QAAQ,GAAG;AACb,UAAM,OAAQ,KAAK;AAAA,EACrB,WAAW,QAAQ,IAAI;AACrB,WAAO,OAAO,QAAS,MAAM,MAAM;AAAA,EAErC,OAAO;AAEL,UAAM,SAAS,IAAI,WAAW;AAAA,EAChC;AACA,SAAQ,OAAO,QAAU,CAAC,MAAM;AAClC;AAKA,SAAS,cAAe,KAAK;AAC3B,WAAS,WAAW,GAAG,KAAK,KAAK;AACnC;AAOA,SAAS,YAAaA,OAAM,KAAK;AAC/B,MAAIA,MAAK,SAAS,MAAM,GAAG;AACzB,UAAM,IAAI,MAAM,GAAG,eAAe,8BAA8B;AAAA,EAClE;AACA,QAAM,UAAUA,MAAK,cAAc,KAAK;AACxC,SAAO,IAAI,SAASA,MAAK,QAAQ,QAAQ,CAAC,EAAE,WAAW,GAAG,KAAK;AACjE;AAKA,SAAS,cAAe,KAAK;AAC3B,WAAS,WAAW,GAAG,KAAK,KAAK;AACnC;AAOA,SAAS,YAAaA,OAAM,KAAK;AAC/B,MAAIA,MAAK,SAAS,MAAM,GAAG;AACzB,UAAM,IAAI,MAAM,GAAG,eAAe,8BAA8B;AAAA,EAClE;AACA,QAAM,UAAUA,MAAK,cAAc,KAAK;AACxC,SAAO,IAAI,SAASA,MAAK,QAAQ,QAAQ,CAAC,EAAE,WAAW,GAAG,KAAK;AACjE;AAOA,YAAY,gBAAgB,WAAW;;;ARxRvC,SAAS,aAAc,MAAM,KAAK,OAAO;AACvC,QAAM,IAAI,MAAM,GAAG,eAAe,+BAA+B,KAAK,eAAe,KAAK,GAAG,MAAM,CAAC,EAAE;AACxG;AAMA,SAAS,QAAS,KAAK;AACrB,SAAO,MAAM;AAAE,UAAM,IAAI,MAAM,GAAG,eAAe,IAAI,GAAG,EAAE;AAAA,EAAE;AAC9D;AAGO,IAAM,OAAO,CAAC;AAGrB,SAASC,KAAI,GAAGA,MAAK,IAAMA,MAAK;AAC9B,OAAKA,EAAC,IAAI;AACZ;AACA,KAAK,EAAI,IAAS;AAClB,KAAK,EAAI,IAAS;AAClB,KAAK,EAAI,IAAS;AAClB,KAAK,EAAI,IAAS;AAClB,KAAK,EAAI,IAAI;AACb,KAAK,EAAI,IAAI;AACb,KAAK,EAAI,IAAI;AACb,KAAK,EAAI,IAAI;AAEb,SAASA,KAAI,IAAMA,MAAK,IAAMA,MAAK;AACjC,OAAKA,EAAC,IAAI;AACZ;AACA,KAAK,EAAI,IAAW;AACpB,KAAK,EAAI,IAAW;AACpB,KAAK,EAAI,IAAW;AACpB,KAAK,EAAI,IAAW;AACpB,KAAK,EAAI,IAAI;AACb,KAAK,EAAI,IAAI;AACb,KAAK,EAAI,IAAI;AACb,KAAK,EAAI,IAAI;AAEb,SAASA,KAAI,IAAMA,MAAK,IAAMA,MAAK;AACjC,OAAKA,EAAC,IAAU;AAClB;AACA,KAAK,EAAI,IAAU;AACnB,KAAK,EAAI,IAAU;AACnB,KAAK,EAAI,IAAU;AACnB,KAAK,EAAI,IAAU;AACnB,KAAK,EAAI,IAAI;AACb,KAAK,EAAI,IAAI;AACb,KAAK,EAAI,IAAI;AACb,KAAK,EAAI,IAAI,QAAQ,mDAAmD;AAExE,SAASA,KAAI,IAAMA,MAAK,KAAMA,MAAK;AACjC,OAAKA,EAAC,IAAW;AACnB;AACA,KAAK,GAAI,IAAW;AACpB,KAAK,GAAI,IAAW;AACpB,KAAK,GAAI,IAAW;AACpB,KAAK,GAAI,IAAW;AACpB,KAAK,GAAI,IAAI;AACb,KAAK,GAAI,IAAI;AACb,KAAK,GAAI,IAAI;AACb,KAAK,GAAI,IAAI,QAAQ,mDAAmD;AAExE,SAASA,KAAI,KAAMA,MAAK,KAAMA,MAAK;AACjC,OAAKA,EAAC,IAAU;AAClB;AACA,KAAK,GAAI,IAAU;AACnB,KAAK,GAAI,IAAU;AACnB,KAAK,GAAI,IAAU;AACnB,KAAK,GAAI,IAAU;AACnB,KAAK,GAAI,IAAI;AACb,KAAK,GAAI,IAAI;AACb,KAAK,GAAI,IAAI;AACb,KAAK,GAAI,IAAU;AAEnB,SAASA,KAAI,KAAMA,MAAK,KAAMA,MAAK;AACjC,OAAKA,EAAC,IAAQ;AAChB;AACA,KAAK,GAAI,IAAQ;AACjB,KAAK,GAAI,IAAQ;AACjB,KAAK,GAAI,IAAQ;AACjB,KAAK,GAAI,IAAQ;AACjB,KAAK,GAAI,IAAI;AACb,KAAK,GAAI,IAAI;AACb,KAAK,GAAI,IAAI;AACb,KAAK,GAAI,IAAQ;AAEjB,SAASA,KAAI,KAAMA,MAAK,KAAMA,MAAK;AACjC,OAAKA,EAAC,IAAQ;AAChB;AACA,KAAK,GAAI,IAAQ;AACjB,KAAK,GAAI,IAAQ;AACjB,KAAK,GAAI,IAAQ;AACjB,KAAK,GAAI,IAAQ;AACjB,KAAK,GAAI,IAAI;AACb,KAAK,GAAI,IAAI;AACb,KAAK,GAAI,IAAI;AACb,KAAK,GAAI,IAAI;AAEb,SAASA,KAAI,KAAMA,MAAK,KAAMA,MAAK;AACjC,OAAKA,EAAC,IAAI,QAAQ,iCAAiC;AACrD;AACA,KAAK,GAAI,IAAI;AACb,KAAK,GAAI,IAAI;AACb,KAAK,GAAI,IAAI;AACb,KAAK,GAAI,IAAU;AACnB,KAAK,GAAI,IAAI,QAAQ,iCAAiC;AACtD,KAAK,GAAI,IAAU;AACnB,KAAK,GAAI,IAAU;AACnB,KAAK,GAAI,IAAU;AACnB,KAAK,GAAI,IAAI;AACb,KAAK,GAAI,IAAI;AACb,KAAK,GAAI,IAAI;AACb,KAAK,GAAI,IAAU;AAGZ,IAAM,QAAQ,CAAC;AAEtB,SAASA,KAAI,GAAGA,KAAI,IAAIA,MAAK;AAC3B,QAAMA,EAAC,IAAI,IAAI,MAAM,KAAK,MAAMA,IAAG,CAAC;AACtC;AAEA,SAASA,KAAI,IAAIA,MAAK,KAAKA,MAAK;AAC9B,QAAM,KAAKA,EAAC,IAAI,IAAI,MAAM,KAAK,QAAQA,IAAG,CAAC;AAC7C;AAEA,MAAM,EAAI,IAAI,IAAI,MAAM,KAAK,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC;AAExD,MAAM,EAAI,IAAI,IAAI,MAAM,KAAK,QAAQ,IAAI,CAAC;AAE1C,MAAM,GAAI,IAAI,IAAI,MAAM,KAAK,OAAO,GAAG,CAAC;AAExC,MAAM,GAAI,IAAI,IAAI,MAAM,KAAK,KAAK,GAAG,CAAC;AAEtC,MAAM,GAAI,IAAI,IAAI,MAAM,KAAK,OAAO,OAAO,CAAC;AAE5C,MAAM,GAAI,IAAI,IAAI,MAAM,KAAK,MAAM,MAAM,CAAC;AAE1C,MAAM,GAAI,IAAI,IAAI,MAAM,KAAK,MAAM,MAAM,CAAC;;;AN/HnC,SAAS,mBAAoB;AAClC,QAAM,WAAW,CAAC;AAClB,WAAS,KAAK,KAAK,KAAK,IAAI;AAC5B,WAAS,KAAK,OAAO,KAAK,IAAI;AAC9B,WAAS,KAAK,MAAM,KAAK,IAAI;AAC7B,WAAS,KAAK,OAAO,KAAK,IAAI;AAC9B,WAAS,KAAK,MAAM,KAAK,IAAI;AAC7B,WAAS,KAAK,IAAI,KAAK,IAAI;AAC3B,WAAS,KAAK,IAAI,KAAK,IAAI;AAC3B,WAAS,KAAK,MAAM,KAAK,IAAI;AAC7B,SAAO;AACT;AAEA,IAAM,eAAe,iBAAiB;AAEtC,IAAM,MAAM,IAAI,GAAG;AAGnB,IAAM,MAAN,MAAM,KAAI;AAAA;AAAA;AAAA;AAAA;AAAA,EAKR,YAAa,KAAK,QAAQ;AACxB,SAAK,MAAM;AACX,SAAK,SAAS;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAU,KAAK;AAEb,QAAIC,KAAI;AACR,OAAG;AACD,UAAIA,GAAE,QAAQ,KAAK;AACjB,eAAO;AAAA,MACT;AAAA,IACF,SAASA,KAAIA,GAAE;AACf,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,YAAa,OAAO,KAAK;AAC9B,QAAI,SAAS,MAAM,SAAS,GAAG,GAAG;AAChC,YAAM,IAAI,MAAM,GAAG,eAAe,sCAAsC;AAAA,IAC1E;AACA,WAAO,IAAI,KAAI,KAAK,KAAK;AAAA,EAC3B;AACF;AAEA,IAAM,eAAe;AAAA,EACnB,MAAM,IAAI,MAAM,KAAK,MAAM,IAAI;AAAA,EAC/B,WAAW,IAAI,MAAM,KAAK,WAAW,MAAS;AAAA,EAC9C,MAAM,IAAI,MAAM,KAAK,MAAM,IAAI;AAAA,EAC/B,OAAO,IAAI,MAAM,KAAK,OAAO,KAAK;AAAA,EAClC,YAAY,IAAI,MAAM,KAAK,OAAO,CAAC;AAAA,EACnC,UAAU,IAAI,MAAM,KAAK,KAAK,CAAC;AACjC;AAGA,IAAM,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQnB,OAAQ,KAAK,MAAM,UAAU,WAAW;AACtC,QAAI,CAAC,OAAO,UAAU,GAAG,KAAK,CAAC,OAAO,cAAc,GAAG,GAAG;AACxD,aAAO,IAAI,MAAM,KAAK,OAAO,GAAG;AAAA,IAClC,WAAW,OAAO,GAAG;AACnB,aAAO,IAAI,MAAM,KAAK,MAAM,GAAG;AAAA,IACjC,OAAO;AACL,aAAO,IAAI,MAAM,KAAK,QAAQ,GAAG;AAAA,IACnC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAQ,KAAK,MAAM,UAAU,WAAW;AACtC,QAAI,OAAO,OAAO,CAAC,GAAG;AACpB,aAAO,IAAI,MAAM,KAAK,MAAM,GAAG;AAAA,IACjC,OAAO;AACL,aAAO,IAAI,MAAM,KAAK,QAAQ,GAAG;AAAA,IACnC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,WAAY,KAAK,MAAM,UAAU,WAAW;AAC1C,WAAO,IAAI,MAAM,KAAK,OAAO,GAAG;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAQ,KAAK,MAAM,UAAU,WAAW;AACtC,WAAO,IAAI,MAAM,KAAK,QAAQ,GAAG;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,QAAS,KAAK,MAAM,UAAU,WAAW;AACvC,WAAO,MAAM,aAAa,OAAO,aAAa;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,KAAM,MAAM,MAAM,UAAU,WAAW;AACrC,WAAO,aAAa;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,UAAW,MAAM,MAAM,UAAU,WAAW;AAC1C,WAAO,aAAa;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,YAAa,KAAK,MAAM,UAAU,WAAW;AAC3C,WAAO,IAAI,MAAM,KAAK,OAAO,IAAI,WAAW,GAAG,CAAC;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,SAAU,KAAK,MAAM,UAAU,WAAW;AACxC,WAAO,IAAI,MAAM,KAAK,OAAO,IAAI,WAAW,IAAI,QAAQ,IAAI,YAAY,IAAI,UAAU,CAAC;AAAA,EACzF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAO,KAAK,MAAM,SAAS,UAAU;AACnC,QAAI,CAAC,IAAI,QAAQ;AACf,UAAI,QAAQ,mBAAmB,MAAM;AACnC,eAAO,CAAC,aAAa,YAAY,IAAI,MAAM,KAAK,KAAK,CAAC;AAAA,MACxD;AACA,aAAO,aAAa;AAAA,IACtB;AACA,eAAW,IAAI,YAAY,UAAU,GAAG;AACxC,UAAM,UAAU,CAAC;AACjB,QAAIC,KAAI;AACR,eAAWC,MAAK,KAAK;AACnB,cAAQD,IAAG,IAAI,eAAeC,IAAG,SAAS,QAAQ;AAAA,IACpD;AACA,QAAI,QAAQ,gBAAgB;AAC1B,aAAO,CAAC,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,GAAG,SAAS,IAAI,MAAM,KAAK,KAAK,CAAC;AAAA,IAC3E;AACA,WAAO,CAAC,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,GAAG,OAAO;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAQ,KAAK,KAAK,SAAS,UAAU;AAEnC,UAAM,QAAQ,QAAQ;AAEtB,UAAM,OAAO,QAAQ,IAAI,KAAK,IAAI,OAAO,KAAK,GAAG;AACjD,UAAMC,UAAS,QAAQ,IAAI,OAAO,KAAK;AACvC,QAAI,CAACA,SAAQ;AACX,UAAI,QAAQ,mBAAmB,MAAM;AACnC,eAAO,CAAC,aAAa,UAAU,IAAI,MAAM,KAAK,KAAK,CAAC;AAAA,MACtD;AACA,aAAO,aAAa;AAAA,IACtB;AACA,eAAW,IAAI,YAAY,UAAU,GAAG;AAExC,UAAM,UAAU,CAAC;AACjB,QAAIF,KAAI;AACR,eAAW,OAAO,MAAM;AACtB,cAAQA,IAAG,IAAI;AAAA,QACb,eAAe,KAAK,SAAS,QAAQ;AAAA,QACrC,eAAe,QAAQ,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,SAAS,QAAQ;AAAA,MACnE;AAAA,IACF;AACA,mBAAe,SAAS,OAAO;AAC/B,QAAI,QAAQ,gBAAgB;AAC1B,aAAO,CAAC,IAAI,MAAM,KAAK,KAAKE,OAAM,GAAG,SAAS,IAAI,MAAM,KAAK,KAAK,CAAC;AAAA,IACrE;AACA,WAAO,CAAC,IAAI,MAAM,KAAK,KAAKA,OAAM,GAAG,OAAO;AAAA,EAC9C;AACF;AAEA,aAAa,MAAM,aAAa;AAChC,aAAa,SAAS,aAAa;AACnC,WAAW,OAAO,iFAAiF,MAAM,GAAG,GAAG;AAC7G,eAAa,GAAG,GAAG,OAAO,IAAI,aAAa;AAC7C;AAQA,SAAS,eAAgB,KAAK,UAAU,CAAC,GAAG,UAAU;AACpD,QAAM,MAAM,GAAG,GAAG;AAClB,QAAM,oBAAqB,WAAW,QAAQ;AAAA,EAAmD,QAAQ,aAAa,GAAG,KAAM,aAAa,GAAG;AAC/I,MAAI,OAAO,sBAAsB,YAAY;AAC3C,UAAM,SAAS,kBAAkB,KAAK,KAAK,SAAS,QAAQ;AAC5D,QAAI,UAAU,MAAM;AAClB,aAAO;AAAA,IACT;AAAA,EACF;AACA,QAAM,cAAc,aAAa,GAAG;AACpC,MAAI,CAAC,aAAa;AAChB,UAAM,IAAI,MAAM,GAAG,eAAe,sBAAsB,GAAG,EAAE;AAAA,EAC/D;AACA,SAAO,YAAY,KAAK,KAAK,SAAS,QAAQ;AAChD;AAyEA,SAAS,eAAgB,SAAS,SAAS;AACzC,MAAI,QAAQ,WAAW;AACrB,YAAQ,KAAK,QAAQ,SAAS;AAAA,EAChC;AACF;;;AevXA;AAUA,IAAM,uBAAuB;AAAA,EAC3B,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,aAAa;AACf;AAKA,IAAM,YAAN,MAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKd,YAAa,MAAM,UAAU,CAAC,GAAG;AAC/B,SAAK,OAAO;AACZ,SAAK,OAAO;AACZ,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,MAAO;AACL,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,OAAQ;AACN,WAAO,KAAK,QAAQ,KAAK,KAAK;AAAA,EAChC;AAAA,EAEA,OAAQ;AACN,UAAM,MAAM,KAAK,KAAK,KAAK,IAAI;AAC/B,QAAI,QAAQ,MAAM,GAAG;AACrB,QAAI,UAAU,QAAW;AACvB,YAAM,UAAU,KAAK,GAAG;AAGxB,UAAI,CAAC,SAAS;AACZ,cAAM,IAAI,MAAM,GAAG,eAAe,8BAA8B,QAAQ,CAAC,YAAY,IAAI,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,GAAG;AAAA,MAC3H;AACA,YAAM,QAAQ,MAAM;AACpB,cAAQ,QAAQ,KAAK,MAAM,KAAK,MAAM,OAAO,KAAK,OAAO;AAAA,IAC3D;AAEA,SAAK,QAAQ,MAAM;AACnB,WAAO;AAAA,EACT;AACF;AAEA,IAAM,OAAO,OAAO,IAAI,MAAM;AAC9B,IAAM,QAAQ,OAAO,IAAI,OAAO;AAQhC,SAAS,aAAc,OAAO,WAAW,SAAS;AAChD,QAAM,MAAM,CAAC;AACb,WAASC,KAAI,GAAGA,KAAI,MAAM,OAAOA,MAAK;AACpC,UAAM,QAAQ,eAAe,WAAW,OAAO;AAC/C,QAAI,UAAU,OAAO;AACnB,UAAI,MAAM,UAAU,UAAU;AAE5B;AAAA,MACF;AACA,YAAM,IAAI,MAAM,GAAG,eAAe,yCAAyC;AAAA,IAC7E;AACA,QAAI,UAAU,MAAM;AAClB,YAAM,IAAI,MAAM,GAAG,eAAe,4CAA4CA,EAAC,cAAc,MAAM,KAAK,GAAG;AAAA,IAC7G;AACA,QAAIA,EAAC,IAAI;AAAA,EACX;AACA,SAAO;AACT;AAQA,SAAS,WAAY,OAAO,WAAW,SAAS;AAC9C,QAAM,UAAU,QAAQ,YAAY;AACpC,QAAM,MAAM,UAAU,SAAY,CAAC;AACnC,QAAMC,KAAI,UAAU,oBAAI,IAAI,IAAI;AAChC,WAASD,KAAI,GAAGA,KAAI,MAAM,OAAOA,MAAK;AACpC,UAAM,MAAM,eAAe,WAAW,OAAO;AAC7C,QAAI,QAAQ,OAAO;AACjB,UAAI,MAAM,UAAU,UAAU;AAE5B;AAAA,MACF;AACA,YAAM,IAAI,MAAM,GAAG,eAAe,uCAAuC;AAAA,IAC3E;AACA,QAAI,QAAQ,MAAM;AAChB,YAAM,IAAI,MAAM,GAAG,eAAe,0CAA0CA,EAAC,uBAAuB,MAAM,KAAK,GAAG;AAAA,IACpH;AACA,QAAI,YAAY,QAAQ,OAAO,QAAQ,UAAU;AAC/C,YAAM,IAAI,MAAM,GAAG,eAAe,uCAAuC,OAAO,GAAG,GAAG;AAAA,IACxF;AACA,QAAI,QAAQ,2BAA2B,MAAM;AAE3C,UAAK,WAAWC,GAAE,IAAI,GAAG,KAAO,CAAC,WAAY,OAAO,KAAO;AACzD,cAAM,IAAI,MAAM,GAAG,eAAe,0BAA0B,GAAG,GAAG;AAAA,MACpE;AAAA,IACF;AACA,UAAM,QAAQ,eAAe,WAAW,OAAO;AAC/C,QAAI,UAAU,MAAM;AAClB,YAAM,IAAI,MAAM,GAAG,eAAe,0CAA0CD,EAAC,yBAAyB,MAAM,KAAK,GAAG;AAAA,IACtH;AACA,QAAI,SAAS;AAEX,MAAAC,GAAE,IAAI,KAAK,KAAK;AAAA,IAClB,OAAO;AAEL,UAAI,GAAG,IAAI;AAAA,IACb;AAAA,EACF;AAEA,SAAO,UAAUA,KAAI;AACvB;AAOA,SAAS,eAAgB,WAAW,SAAS;AAG3C,MAAI,UAAU,KAAK,GAAG;AACpB,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,UAAU,KAAK;AAE7B,MAAI,MAAM,SAAS,KAAK,OAAO;AAC7B,WAAO;AAAA,EACT;AAEA,MAAI,MAAM,KAAK,UAAU;AACvB,WAAO,MAAM;AAAA,EACf;AAEA,MAAI,MAAM,SAAS,KAAK,OAAO;AAC7B,WAAO,aAAa,OAAO,WAAW,OAAO;AAAA,EAC/C;AAEA,MAAI,MAAM,SAAS,KAAK,KAAK;AAC3B,WAAO,WAAW,OAAO,WAAW,OAAO;AAAA,EAC7C;AAEA,MAAI,MAAM,SAAS,KAAK,KAAK;AAC3B,QAAI,QAAQ,QAAQ,OAAO,QAAQ,KAAK,MAAM,KAAK,MAAM,YAAY;AACnE,YAAM,SAAS,eAAe,WAAW,OAAO;AAChD,aAAO,QAAQ,KAAK,MAAM,KAAK,EAAE,MAAM;AAAA,IACzC;AACA,UAAM,IAAI,MAAM,GAAG,eAAe,uBAAuB,MAAM,KAAK,GAAG;AAAA,EACzE;AAEA,QAAM,IAAI,MAAM,aAAa;AAC/B;AAOA,SAAS,YAAa,MAAM,SAAS;AACnC,MAAI,EAAE,gBAAgB,aAAa;AACjC,UAAM,IAAI,MAAM,GAAG,eAAe,sCAAsC;AAAA,EAC1E;AACA,YAAU,OAAO,OAAO,CAAC,GAAG,sBAAsB,OAAO;AACzD,QAAM,YAAY,QAAQ,aAAa,IAAI,UAAU,MAAM,OAAO;AAClE,QAAM,UAAU,eAAe,WAAW,OAAO;AACjD,MAAI,YAAY,MAAM;AACpB,UAAM,IAAI,MAAM,GAAG,eAAe,qCAAqC;AAAA,EACzE;AACA,MAAI,YAAY,OAAO;AACrB,UAAM,IAAI,MAAM,GAAG,eAAe,uBAAuB;AAAA,EAC3D;AACA,SAAO,CAAC,SAAS,KAAK,SAAS,UAAU,IAAI,CAAC,CAAC;AACjD;AAOA,SAAS,OAAQ,MAAM,SAAS;AAC9B,QAAM,CAAC,SAAS,SAAS,IAAI,YAAY,MAAM,OAAO;AACtD,MAAI,UAAU,SAAS,GAAG;AACxB,UAAM,IAAI,MAAM,GAAG,eAAe,0CAA0C;AAAA,EAC9E;AACA,SAAO;AACT;;;AC9MA;;;ACAA;;;ACAA;;;ACAA;AAKA,SAAS,KAAM,UAAUC,OAAM;AAC7B,MAAI,SAAS,UAAU,KAAK;AAAE,UAAM,IAAI,UAAU,mBAAmB;AAAA,EAAE;AACvE,MAAI,WAAW,IAAI,WAAW,GAAG;AACjC,WAASC,KAAI,GAAGA,KAAI,SAAS,QAAQA,MAAK;AACxC,aAASA,EAAC,IAAI;AAAA,EAChB;AACA,WAASC,KAAI,GAAGA,KAAI,SAAS,QAAQA,MAAK;AACxC,QAAIC,KAAI,SAAS,OAAOD,EAAC;AACzB,QAAI,KAAKC,GAAE,WAAW,CAAC;AACvB,QAAI,SAAS,EAAE,MAAM,KAAK;AAAE,YAAM,IAAI,UAAUA,KAAI,eAAe;AAAA,IAAE;AACrE,aAAS,EAAE,IAAID;AAAA,EACjB;AACA,MAAI,OAAO,SAAS;AACpB,MAAI,SAAS,SAAS,OAAO,CAAC;AAC9B,MAAI,SAAS,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG;AAC1C,MAAI,UAAU,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,IAAI;AAC3C,WAASE,QAAQ,QAAQ;AACvB,QAAI,kBAAkB;AAAY;AAAA,aAAW,YAAY,OAAO,MAAM,GAAG;AACvE,eAAS,IAAI,WAAW,OAAO,QAAQ,OAAO,YAAY,OAAO,UAAU;AAAA,IAC7E,WAAW,MAAM,QAAQ,MAAM,GAAG;AAChC,eAAS,WAAW,KAAK,MAAM;AAAA,IACjC;AACA,QAAI,EAAE,kBAAkB,aAAa;AAAE,YAAM,IAAI,UAAU,qBAAqB;AAAA,IAAE;AAClF,QAAI,OAAO,WAAW,GAAG;AAAE,aAAO;AAAA,IAAG;AAErC,QAAI,SAAS;AACb,QAAIC,UAAS;AACb,QAAI,SAAS;AACb,QAAI,OAAO,OAAO;AAClB,WAAO,WAAW,QAAQ,OAAO,MAAM,MAAM,GAAG;AAC9C;AACA;AAAA,IACF;AAEA,QAAI,QAAS,OAAO,UAAU,UAAU,MAAO;AAC/C,QAAI,MAAM,IAAI,WAAW,IAAI;AAE7B,WAAO,WAAW,MAAM;AACtB,UAAI,QAAQ,OAAO,MAAM;AAEzB,UAAIH,KAAI;AACR,eAAS,MAAM,OAAO,IAAI,UAAU,KAAKA,KAAIG,YAAY,QAAQ,IAAK,OAAOH,MAAK;AAChF,iBAAU,MAAM,IAAI,GAAG,MAAO;AAC9B,YAAI,GAAG,IAAK,QAAQ,SAAU;AAC9B,gBAAS,QAAQ,SAAU;AAAA,MAC7B;AACA,UAAI,UAAU,GAAG;AAAE,cAAM,IAAI,MAAM,gBAAgB;AAAA,MAAE;AACrD,MAAAG,UAASH;AACT;AAAA,IACF;AAEA,QAAI,MAAM,OAAOG;AACjB,WAAO,QAAQ,QAAQ,IAAI,GAAG,MAAM,GAAG;AACrC;AAAA,IACF;AAEA,QAAI,MAAM,OAAO,OAAO,MAAM;AAC9B,WAAO,MAAM,MAAM,EAAE,KAAK;AAAE,aAAO,SAAS,OAAO,IAAI,GAAG,CAAC;AAAA,IAAG;AAC9D,WAAO;AAAA,EACT;AACA,WAAS,aAAc,QAAQ;AAC7B,QAAI,OAAO,WAAW,UAAU;AAAE,YAAM,IAAI,UAAU,iBAAiB;AAAA,IAAE;AACzE,QAAI,OAAO,WAAW,GAAG;AAAE,aAAO,IAAI,WAAW;AAAA,IAAE;AACnD,QAAI,MAAM;AAEV,QAAI,OAAO,GAAG,MAAM,KAAK;AAAE;AAAA,IAAO;AAElC,QAAI,SAAS;AACb,QAAIA,UAAS;AACb,WAAO,OAAO,GAAG,MAAM,QAAQ;AAC7B;AACA;AAAA,IACF;AAEA,QAAI,QAAU,OAAO,SAAS,OAAO,SAAU,MAAO;AACtD,QAAI,OAAO,IAAI,WAAW,IAAI;AAE9B,WAAO,OAAO,GAAG,GAAG;AAElB,UAAI,QAAQ,SAAS,OAAO,WAAW,GAAG,CAAC;AAE3C,UAAI,UAAU,KAAK;AAAE;AAAA,MAAO;AAC5B,UAAIH,KAAI;AACR,eAAS,MAAM,OAAO,IAAI,UAAU,KAAKA,KAAIG,YAAY,QAAQ,IAAK,OAAOH,MAAK;AAChF,iBAAU,OAAO,KAAK,GAAG,MAAO;AAChC,aAAK,GAAG,IAAK,QAAQ,QAAS;AAC9B,gBAAS,QAAQ,QAAS;AAAA,MAC5B;AACA,UAAI,UAAU,GAAG;AAAE,cAAM,IAAI,MAAM,gBAAgB;AAAA,MAAE;AACrD,MAAAG,UAASH;AACT;AAAA,IACF;AAEA,QAAI,OAAO,GAAG,MAAM,KAAK;AAAE;AAAA,IAAO;AAElC,QAAI,MAAM,OAAOG;AACjB,WAAO,QAAQ,QAAQ,KAAK,GAAG,MAAM,GAAG;AACtC;AAAA,IACF;AACA,QAAI,MAAM,IAAI,WAAW,UAAU,OAAO,IAAI;AAC9C,QAAIJ,KAAI;AACR,WAAO,QAAQ,MAAM;AACnB,UAAIA,IAAG,IAAI,KAAK,KAAK;AAAA,IACvB;AACA,WAAO;AAAA,EACT;AACA,WAASK,QAAQ,QAAQ;AACvB,QAAIC,UAAS,aAAa,MAAM;AAChC,QAAIA,SAAQ;AAAE,aAAOA;AAAA,IAAO;AAC5B,UAAM,IAAI,MAAM,OAAOP,KAAI,YAAY;AAAA,EACzC;AACA,SAAO;AAAA,IACL,QAAQI;AAAA,IACR;AAAA,IACA,QAAQE;AAAA,EACV;AACF;AACA,IAAI,MAAM;AAEV,IAAI,kCAAkC;AAEtC,IAAO,iBAAQ;;;AC9Hf;AAAA,IAAM,QAAQ,IAAI,WAAW,CAAC;AAmB9B,IAAM,SAAS,CAAC,IAAI,OAAO;AACzB,MAAI,OAAO;AAAI,WAAO;AACtB,MAAI,GAAG,eAAe,GAAG,YAAY;AACnC,WAAO;AAAA,EACT;AAEA,WAAS,KAAK,GAAG,KAAK,GAAG,YAAY,MAAM;AACzC,QAAI,GAAG,EAAE,MAAM,GAAG,EAAE,GAAG;AACrB,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;AAMA,IAAM,SAAS,CAAAE,OAAK;AAClB,MAAIA,cAAa,cAAcA,GAAE,YAAY,SAAS;AAAc,WAAOA;AAC3E,MAAIA,cAAa;AAAa,WAAO,IAAI,WAAWA,EAAC;AACrD,MAAI,YAAY,OAAOA,EAAC,GAAG;AACzB,WAAO,IAAI,WAAWA,GAAE,QAAQA,GAAE,YAAYA,GAAE,UAAU;AAAA,EAC5D;AACA,QAAM,IAAI,MAAM,mCAAmC;AACrD;;;AC7CA;;;AHiBA,IAAM,UAAN,MAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMZ,YAAaC,OAAM,QAAQ,YAAY;AACrC,SAAK,OAAOA;AACZ,SAAK,SAAS;AACd,SAAK,aAAa;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAQ,OAAO;AACb,QAAI,iBAAiB,YAAY;AAC/B,aAAO,GAAG,KAAK,MAAM,GAAG,KAAK,WAAW,KAAK,CAAC;AAAA,IAChD,OAAO;AACL,YAAM,MAAM,mCAAmC;AAAA,IACjD;AAAA,EACF;AACF;AAiBA,IAAM,UAAN,MAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMZ,YAAaA,OAAM,QAAQ,YAAY;AACrC,SAAK,OAAOA;AACZ,SAAK,SAAS;AAEd,QAAI,OAAO,YAAY,CAAC,MAAM,QAAW;AACvC,YAAM,IAAI,MAAM,0BAA0B;AAAA,IAC5C;AAEA,SAAK;AAAA,IAAyC,OAAO,YAAY,CAAC;AAClE,SAAK,aAAa;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,OAAQ,MAAM;AACZ,QAAI,OAAO,SAAS,UAAU;AAC5B,UAAI,KAAK,YAAY,CAAC,MAAM,KAAK,iBAAiB;AAChD,cAAM,MAAM,qCAAqC,KAAK,UAAU,IAAI,CAAC,KAAK,KAAK,IAAI,+CAA+C,KAAK,MAAM,EAAE;AAAA,MACjJ;AACA,aAAO,KAAK,WAAW,KAAK,MAAM,KAAK,OAAO,MAAM,CAAC;AAAA,IACvD,OAAO;AACL,YAAM,MAAM,mCAAmC;AAAA,IACjD;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,GAAI,SAAS;AACX,WAAO,GAAG,MAAM,OAAO;AAAA,EACzB;AACF;AAYA,IAAM,kBAAN,MAAsB;AAAA;AAAA;AAAA;AAAA,EAIpB,YAAa,UAAU;AACrB,SAAK,WAAW;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,GAAI,SAAS;AACX,WAAO,GAAG,MAAM,OAAO;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAQ,OAAO;AACb,UAAM;AAAA;AAAA,MAAgC,MAAM,CAAC;AAAA;AAC7C,UAAM,UAAU,KAAK,SAAS,MAAM;AACpC,QAAI,SAAS;AACX,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B,OAAO;AACL,YAAM,WAAW,qCAAqC,KAAK,UAAU,KAAK,CAAC,+BAA+B,OAAO,KAAK,KAAK,QAAQ,CAAC,gBAAgB;AAAA,IACtJ;AAAA,EACF;AACF;AASO,IAAM,KAAK,CAAC,MAAM,UAAU,IAAI;AAAA;AAAA,EAA6C;AAAA,IAClF,GAAI,KAAK,YAAY,EAAE;AAAA;AAAA,MAAoC,KAAM;AAAA,IAAM,GAAG,KAAK;AAAA,IAC/E,GAAI,MAAM,YAAY,EAAE;AAAA;AAAA,MAAoC,MAAO;AAAA,IAAM,GAAG,MAAM;AAAA,EACpF;AAAE;AAaK,IAAM,QAAN,MAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOjB,YAAaA,OAAM,QAAQ,YAAY,YAAY;AACjD,SAAK,OAAOA;AACZ,SAAK,SAAS;AACd,SAAK,aAAa;AAClB,SAAK,aAAa;AAClB,SAAK,UAAU,IAAI,QAAQA,OAAM,QAAQ,UAAU;AACnD,SAAK,UAAU,IAAI,QAAQA,OAAM,QAAQ,UAAU;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA,EAKA,OAAQ,OAAO;AACb,WAAO,KAAK,QAAQ,OAAO,KAAK;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA,EAKA,OAAQ,OAAO;AACb,WAAO,KAAK,QAAQ,OAAO,KAAK;AAAA,EAClC;AACF;AAYO,IAAM,OAAO,CAAC,EAAE,MAAAA,OAAM,QAAQ,QAAAC,SAAQ,QAAAC,QAAO,MAClD,IAAI,MAAMF,OAAM,QAAQC,SAAQC,OAAM;AAWjC,IAAM,QAAQ,CAAC,EAAE,QAAQ,MAAAF,OAAM,SAAS,MAAM;AACnD,QAAM,EAAE,QAAAC,SAAQ,QAAAC,QAAO,IAAI,eAAM,UAAUF,KAAI;AAC/C,SAAO,KAAK;AAAA,IACV;AAAA,IACA,MAAAA;AAAA,IACA,QAAAC;AAAA;AAAA;AAAA;AAAA,IAIA,QAAQ,UAAQ,OAAOC,QAAO,IAAI,CAAC;AAAA,EACrC,CAAC;AACH;AASA,IAAMA,UAAS,CAAC,QAAQ,UAAU,aAAaF,UAAS;AAGtD,QAAM,QAAQ,CAAC;AACf,WAASG,KAAI,GAAGA,KAAI,SAAS,QAAQ,EAAEA,IAAG;AACxC,UAAM,SAASA,EAAC,CAAC,IAAIA;AAAA,EACvB;AAGA,MAAI,MAAM,OAAO;AACjB,SAAO,OAAO,MAAM,CAAC,MAAM,KAAK;AAC9B,MAAE;AAAA,EACJ;AAGA,QAAM,MAAM,IAAI,WAAY,MAAM,cAAc,IAAK,CAAC;AAGtD,MAAI,OAAO;AACX,MAAIC,UAAS;AACb,MAAI,UAAU;AACd,WAASD,KAAI,GAAGA,KAAI,KAAK,EAAEA,IAAG;AAE5B,UAAM,QAAQ,MAAM,OAAOA,EAAC,CAAC;AAC7B,QAAI,UAAU,QAAW;AACvB,YAAM,IAAI,YAAY,OAAOH,KAAI,YAAY;AAAA,IAC/C;AAGA,IAAAI,UAAUA,WAAU,cAAe;AACnC,YAAQ;AAGR,QAAI,QAAQ,GAAG;AACb,cAAQ;AACR,UAAI,SAAS,IAAI,MAAQA,WAAU;AAAA,IACrC;AAAA,EACF;AAGA,MAAI,QAAQ,eAAe,MAAQA,WAAW,IAAI,MAAQ;AACxD,UAAM,IAAI,YAAY,wBAAwB;AAAA,EAChD;AAEA,SAAO;AACT;AAQA,IAAMH,UAAS,CAAC,MAAM,UAAU,gBAAgB;AAC9C,QAAM,MAAM,SAAS,SAAS,SAAS,CAAC,MAAM;AAC9C,QAAM,QAAQ,KAAK,eAAe;AAClC,MAAI,MAAM;AAEV,MAAI,OAAO;AACX,MAAIG,UAAS;AACb,WAASD,KAAI,GAAGA,KAAI,KAAK,QAAQ,EAAEA,IAAG;AAEpC,IAAAC,UAAUA,WAAU,IAAK,KAAKD,EAAC;AAC/B,YAAQ;AAGR,WAAO,OAAO,aAAa;AACzB,cAAQ;AACR,aAAO,SAAS,OAAQC,WAAU,IAAK;AAAA,IACzC;AAAA,EACF;AAGA,MAAI,MAAM;AACR,WAAO,SAAS,OAAQA,WAAW,cAAc,IAAM;AAAA,EACzD;AAGA,MAAI,KAAK;AACP,WAAQ,IAAI,SAAS,cAAe,GAAG;AACrC,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;AAaO,IAAM,UAAU,CAAC,EAAE,MAAAJ,OAAM,QAAQ,aAAa,SAAS,MAAM;AAClE,SAAO,KAAK;AAAA,IACV;AAAA,IACA,MAAAA;AAAA,IACA,OAAQ,OAAO;AACb,aAAOC,QAAO,OAAO,UAAU,WAAW;AAAA,IAC5C;AAAA,IACA,OAAQ,OAAO;AACb,aAAOC,QAAO,OAAO,UAAU,aAAaF,KAAI;AAAA,IAClD;AAAA,EACF,CAAC;AACH;;;ADxVO,IAAM,SAAS,QAAQ;AAAA,EAC5B,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AACf,CAAC;AAEM,IAAM,cAAc,QAAQ;AAAA,EACjC,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AACf,CAAC;AAEM,IAAM,YAAY,QAAQ;AAAA,EAC/B,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AACf,CAAC;AAEM,IAAM,iBAAiB,QAAQ;AAAA,EACpC,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AACf,CAAC;AAEM,IAAM,YAAY,QAAQ;AAAA,EAC/B,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AACf,CAAC;AAEM,IAAM,iBAAiB,QAAQ;AAAA,EACpC,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AACf,CAAC;AAEM,IAAM,eAAe,QAAQ;AAAA,EAClC,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AACf,CAAC;AAEM,IAAM,oBAAoB,QAAQ;AAAA,EACvC,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AACf,CAAC;AAEM,IAAM,UAAU,QAAQ;AAAA,EAC7B,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AACf,CAAC;;;AK/DD;AAEO,IAAM,YAAY,MAAM;AAAA,EAC7B,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AACZ,CAAC;AAEM,IAAM,eAAe,MAAM;AAAA,EAChC,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AACZ,CAAC;;;ACZD;;;ACAA;;;ACAA;AAAA,IAAI,WAAWK;AAEf,IAAI,MAAM;AAAV,IACI,OAAO;AADX,IAEI,SAAS,CAAC;AAFd,IAGI,MAAM,KAAK,IAAI,GAAG,EAAE;AAExB,SAASA,QAAO,KAAK,KAAK,QAAQ;AAChC,QAAM,OAAO,CAAC;AACd,WAAS,UAAU;AACnB,MAAI,YAAY;AAEhB,SAAM,OAAO,KAAK;AAChB,QAAI,QAAQ,IAAK,MAAM,MAAQ;AAC/B,WAAO;AAAA,EACT;AACA,SAAM,MAAM,QAAQ;AAClB,QAAI,QAAQ,IAAK,MAAM,MAAQ;AAC/B,aAAS;AAAA,EACX;AACA,MAAI,MAAM,IAAI,MAAM;AAEpB,EAAAA,QAAO,QAAQ,SAAS,YAAY;AAEpC,SAAO;AACT;AAEA,IAAIC,UAASC;AAEb,IAAI,QAAQ;AAAZ,IACI,SAAS;AAEb,SAASA,MAAKC,MAAK,QAAQ;AACzB,MAAI,MAAS,GACT,SAAS,UAAU,GACnB,QAAS,GACT,UAAU,QACVC,IACAC,KAAIF,KAAI;AAEZ,KAAG;AACD,QAAI,WAAWE,IAAG;AAChB,MAAAH,MAAK,QAAQ;AACb,YAAM,IAAI,WAAW,yBAAyB;AAAA,IAChD;AACA,IAAAE,KAAID,KAAI,SAAS;AACjB,WAAO,QAAQ,MACVC,KAAI,WAAW,SACfA,KAAI,UAAU,KAAK,IAAI,GAAG,KAAK;AACpC,aAAS;AAAA,EACX,SAASA,MAAK;AAEd,EAAAF,MAAK,QAAQ,UAAU;AAEvB,SAAO;AACT;AAEA,IAAI,KAAK,KAAK,IAAI,GAAI,CAAC;AACvB,IAAII,MAAK,KAAK,IAAI,GAAG,EAAE;AACvB,IAAIC,MAAK,KAAK,IAAI,GAAG,EAAE;AACvB,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AACvB,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE;AAEvB,IAAI,SAAS,SAAU,OAAO;AAC5B,SACE,QAAQ,KAAK,IACb,QAAQD,MAAK,IACb,QAAQC,MAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACb,QAAQ,KAAK,IACA;AAEjB;AAEA,IAAI,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQN;AAAA,EACR,gBAAgB;AACpB;AAEA,IAAI,eAAe;AAEnB,IAAO,iBAAQ;;;ADnFR,IAAMO,UAAS,CAAC,MAAM,SAAS,MAAM;AAC1C,QAAM,OAAO,eAAO,OAAO,MAAM,MAAM;AACvC,SAAO,CAAC,MAAM,eAAO,OAAO,KAAK;AACnC;AAOO,IAAM,WAAW,CAAC,KAAK,QAAQ,SAAS,MAAM;AACnD,iBAAO,OAAO,KAAK,QAAQ,MAAM;AACjC,SAAO;AACT;AAMO,IAAM,iBAAiB,CAAC,QAAQ;AACrC,SAAO,eAAO,eAAe,GAAG;AAClC;;;ADlBO,IAAM,SAAS,CAAC,MAAM,WAAW;AACtC,QAAM,OAAO,OAAO;AACpB,QAAM,aAAoB,eAAe,IAAI;AAC7C,QAAM,eAAe,aAAoB,eAAe,IAAI;AAE5D,QAAM,QAAQ,IAAI,WAAW,eAAe,IAAI;AAChD,EAAO,SAAS,MAAM,OAAO,CAAC;AAC9B,EAAO,SAAS,MAAM,OAAO,UAAU;AACvC,QAAM,IAAI,QAAQ,YAAY;AAE9B,SAAO,IAAI,OAAO,MAAM,MAAM,QAAQ,KAAK;AAC7C;AAQO,IAAMC,UAAS,CAAC,cAAc;AACnC,QAAM,QAAQ,OAAO,SAAS;AAC9B,QAAM,CAAC,MAAM,UAAU,IAAWA,QAAO,KAAK;AAC9C,QAAM,CAAC,MAAM,YAAY,IAAWA,QAAO,MAAM,SAAS,UAAU,CAAC;AACrE,QAAM,SAAS,MAAM,SAAS,aAAa,YAAY;AAEvD,MAAI,OAAO,eAAe,MAAM;AAC9B,UAAM,IAAI,MAAM,kBAAkB;AAAA,EACpC;AAEA,SAAO,IAAI,OAAO,MAAM,MAAM,QAAQ,KAAK;AAC7C;AAOO,IAAMC,UAAS,CAACC,IAAGC,OAAM;AAC9B,MAAID,OAAMC,IAAG;AACX,WAAO;AAAA,EACT,OAAO;AACL,UAAM;AAAA;AAAA,MAAqEA;AAAA;AAE3E,WACED,GAAE,SAAS,KAAK,QAChBA,GAAE,SAAS,KAAK,QAChB,KAAK,iBAAiB,cACtB,OAAWA,GAAE,OAAO,KAAK,KAAK;AAAA,EAElC;AACF;AAeO,IAAM,SAAN,MAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASlB,YAAa,MAAM,MAAM,QAAQ,OAAO;AACtC,SAAK,OAAO;AACZ,SAAK,OAAO;AACZ,SAAK,SAAS;AACd,SAAK,QAAQ;AAAA,EACf;AACF;;;AG1FA;;;AVmBO,IAAME,UAAS,CAACC,OAAMC,UAAS;AACpC,QAAM,EAAE,OAAO,QAAQ,IAAID;AAC3B,UAAQ,SAAS;AAAA,IACf,KAAK;AACH,aAAO;AAAA,QACL;AAAA,QACA,UAAUA,KAAI;AAAA;AAAA,QAC4BC,SAAS,UAAU;AAAA,MAC/D;AAAA,IACF;AACE,aAAO;AAAA,QACL;AAAA,QACA,UAAUD,KAAI;AAAA;AAAA,QAC+BC,SAAQ,OAAO;AAAA,MAC9D;AAAA,EACJ;AACF;AAmBA,IAAM,QAAQ,oBAAI,QAAQ;AAM1B,IAAM,YAAY,SAAO;AACvB,QAAMC,aAAY,MAAM,IAAI,GAAG;AAC/B,MAAIA,cAAa,MAAM;AACrB,UAAMA,aAAY,oBAAI,IAAI;AAC1B,UAAM,IAAI,KAAKA,UAAS;AACxB,WAAOA;AAAA,EACT;AACA,SAAOA;AACT;AAUO,IAAM,MAAN,MAAM,KAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOf,YAAa,SAAS,MAAM,WAAW,OAAO;AAE5C,SAAK,OAAO;AAEZ,SAAK,UAAU;AAEf,SAAK,YAAY;AAEjB,SAAK,QAAQ;AAKb,SAAK,GAAG,IAAI;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,IAAI,QAAS;AACX,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,IAAI,aAAc;AAChB,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA;AAAA,EAGA,IAAI,aAAc;AAChB,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,OAAQ;AACN,YAAQ,KAAK,SAAS;AAAA,MACpB,KAAK,GAAG;AACN;AAAA;AAAA,UAA6D;AAAA;AAAA,MAC/D;AAAA,MACA,KAAK,GAAG;AACN,cAAM,EAAE,MAAM,UAAU,IAAI;AAE5B,YAAI,SAAS,aAAa;AACxB,gBAAM,IAAI,MAAM,0CAA0C;AAAA,QAC5D;AAGA,YAAI,UAAU,SAAS,cAAc;AACnC,gBAAM,IAAI,MAAM,oDAAoD;AAAA,QACtE;AAEA;AAAA;AAAA,UACE,KAAI;AAAA;AAAA,YAC+C;AAAA,UACnD;AAAA;AAAA,MAEJ;AAAA,MACA,SAAS;AACP,cAAM;AAAA,UACJ,+BAA+B,KAAK,OAAO;AAAA,QAC7C;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,OAAQ;AACN,YAAQ,KAAK,SAAS;AAAA,MACpB,KAAK,GAAG;AACN,cAAM,EAAE,MAAM,OAAO,IAAI,KAAK;AAC9B,cAAM,YAAmB,OAAO,MAAM,MAAM;AAC5C;AAAA;AAAA,UACE,KAAI,SAAS,KAAK,MAAM,SAAS;AAAA;AAAA,MAErC;AAAA,MACA,KAAK,GAAG;AACN;AAAA;AAAA,UAAiD;AAAA;AAAA,MACnD;AAAA,MACA,SAAS;AACP,cAAM;AAAA,UACJ,+BAA+B,KAAK,OAAO;AAAA,QAC7C;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAQ,OAAO;AACb,WAAO,KAAI,OAAO,MAAM,KAAK;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAO,OAAQC,OAAM,OAAO;AAC1B,UAAM;AAAA;AAAA,MAEF;AAAA;AAEJ,WACE,WACAA,MAAK,SAAS,QAAQ,QACtBA,MAAK,YAAY,QAAQ,WAClBC,QAAOD,MAAK,WAAW,QAAQ,SAAS;AAAA,EAEnD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAUE,OAAM;AACd,WAAOC,QAAO,MAAMD,KAAI;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA,EAKA,SAAU;AACR,WAAO,EAAE,KAAKC,QAAO,IAAI,EAAE;AAAA,EAC7B;AAAA,EAEA,OAAQ;AACN,WAAO;AAAA,EACT;AAAA,EAEA,KAAK,OAAO,WAAW,IAAK;AAC1B,WAAO;AAAA,EACT;AAAA;AAAA,EAIA,CAAC,OAAO,IAAI,4BAA4B,CAAC,IAAK;AAC5C,WAAO,OAAO,KAAK,SAAS,CAAC;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBA,OAAO,MAAO,OAAO;AACnB,QAAI,SAAS,MAAM;AACjB,aAAO;AAAA,IACT;AAEA,UAAM;AAAA;AAAA,MAA4B;AAAA;AAClC,QAAI,iBAAiB,MAAK;AAExB,aAAO;AAAA,IACT,WAAY,MAAM,GAAG,KAAK,QAAQ,MAAM,GAAG,MAAM,MAAM,SAAU,MAAM,UAAU,OAAO;AAMtF,YAAM,EAAE,SAAS,MAAM,WAAW,MAAM,IAAI;AAC5C,aAAO,IAAI;AAAA,QACT;AAAA,QACA;AAAA;AAAA,QACyC;AAAA,QACzC,SAAS,UAAU,SAAS,MAAM,UAAU,KAAK;AAAA,MACnD;AAAA,IACF,WAAW,MAAM,SAAS,MAAM,MAAM;AAIpC,YAAM,EAAE,SAAS,WAAW,KAAK,IAAI;AACrC,YAAM;AAAA;AAAA,QAEIC,QAAO,SAAS;AAAA;AAC1B,aAAO,KAAI,OAAO,SAAS,MAAM,MAAM;AAAA,IACzC,OAAO;AAGL,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,OAAO,OAAQ,SAAS,MAAM,QAAQ;AACpC,QAAI,OAAO,SAAS,UAAU;AAC5B,YAAM,IAAI,MAAM,uCAAuC;AAAA,IACzD;AAEA,QAAI,EAAE,OAAO,iBAAiB,aAAa;AACzC,YAAM,IAAI,MAAM,gBAAgB;AAAA,IAClC;AAEA,YAAQ,SAAS;AAAA,MACf,KAAK,GAAG;AACN,YAAI,SAAS,aAAa;AACxB,gBAAM,IAAI;AAAA,YACR,wCAAwC,WAAW;AAAA,UACrD;AAAA,QACF,OAAO;AACL,iBAAO,IAAI,KAAI,SAAS,MAAM,QAAQ,OAAO,KAAK;AAAA,QACpD;AAAA,MACF;AAAA,MACA,KAAK,GAAG;AACN,cAAM,QAAQ,UAAU,SAAS,MAAM,OAAO,KAAK;AACnD,eAAO,IAAI,KAAI,SAAS,MAAM,QAAQ,KAAK;AAAA,MAC7C;AAAA,MACA,SAAS;AACP,cAAM,IAAI,MAAM,iBAAiB;AAAA,MACnC;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAO,SAAU,QAAQ;AACvB,WAAO,KAAI,OAAO,GAAG,aAAa,MAAM;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,OAAO,SAAU,MAAM,QAAQ;AAC7B,WAAO,KAAI,OAAO,GAAG,MAAM,MAAM;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBA,OAAO,OAAQ,OAAO;AACpB,UAAM,CAAC,KAAK,SAAS,IAAI,KAAI,YAAY,KAAK;AAC9C,QAAI,UAAU,QAAQ;AACpB,YAAM,IAAI,MAAM,kBAAkB;AAAA,IACpC;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBA,OAAO,YAAa,OAAO;AACzB,UAAM,QAAQ,KAAI,aAAa,KAAK;AACpC,UAAM,aAAa,MAAM,OAAO,MAAM;AACtC,UAAM,iBAAiB;AAAA,MACrB,MAAM,SAAS,YAAY,aAAa,MAAM,aAAa;AAAA,IAC7D;AACA,QAAI,eAAe,eAAe,MAAM,eAAe;AACrD,YAAM,IAAI,MAAM,kBAAkB;AAAA,IACpC;AACA,UAAM,cAAc,eAAe;AAAA,MACjC,MAAM,gBAAgB,MAAM;AAAA,IAC9B;AACA,UAAM,SAAS,IAAW;AAAA,MACxB,MAAM;AAAA,MACN,MAAM;AAAA,MACN;AAAA,MACA;AAAA,IACF;AACA,UAAM,MACJ,MAAM,YAAY,IACd,KAAI;AAAA;AAAA,MAA0D;AAAA,IAAO,IACrE,KAAI,SAAS,MAAM,OAAO,MAAM;AACtC,WAAO;AAAA;AAAA,MAAgC;AAAA,MAAM,MAAM,SAAS,MAAM,IAAI;AAAA,IAAC;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBA,OAAO,aAAc,cAAc;AACjC,QAAI,SAAS;AACb,UAAM,OAAO,MAAM;AACjB,YAAM,CAACC,IAAGC,OAAM,IAAWF,QAAO,aAAa,SAAS,MAAM,CAAC;AAC/D,gBAAUE;AACV,aAAOD;AAAA,IACT;AAEA,QAAI;AAAA;AAAA,MAA4B,KAAK;AAAA;AACrC,QAAI;AAAA;AAAA,MAA0B;AAAA;AAC9B;AAAA;AAAA,MAA0B,YAAa;AAAA,MAAI;AAEzC;AAAA,MAA4B;AAC5B,eAAS;AAAA,IACX,OAAO;AACL;AAAA,MAA0B,KAAK;AAAA,IACjC;AAEA,QAAI,YAAY,KAAK,YAAY,GAAG;AAClC,YAAM,IAAI,WAAW,uBAAuB,OAAO,EAAE;AAAA,IACvD;AAEA,UAAM,aAAa;AACnB,UAAM;AAAA;AAAA,MAAkC,KAAK;AAAA;AAC7C,UAAM,aAAa,KAAK;AACxB,UAAM,OAAO,SAAS;AACtB,UAAM,gBAAgB,OAAO;AAE7B,WAAO,EAAE,SAAS,OAAO,eAAe,YAAY,eAAe,KAAK;AAAA,EAC1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,OAAO,MAAO,QAAQH,OAAM;AAC1B,UAAM,CAAC,QAAQ,KAAK,IAAI,gBAAgB,QAAQA,KAAI;AAEpD,UAAM,MAAM,KAAI,OAAO,KAAK;AAE5B,QAAI,IAAI,YAAY,KAAK,OAAO,CAAC,MAAM,KAAK;AAC1C,YAAM,MAAM,wDAAwD;AAAA,IACtE;AAGA,cAAU,GAAG,EAAE,IAAI,QAAQ,MAAM;AAEjC,WAAO;AAAA,EACT;AACF;AAYA,IAAM,kBAAkB,CAAC,QAAQA,UAAS;AACxC,UAAQ,OAAO,CAAC,GAAG;AAAA,IAEjB,KAAK,KAAK;AACR,YAAM,UAAUA,SAAQ;AACxB,aAAO;AAAA;AAAA,QACkB,UAAU;AAAA,QACjC,QAAQ,OAAO,GAAG,UAAU,MAAM,GAAG,MAAM,EAAE;AAAA,MAC/C;AAAA,IACF;AAAA,IACA,KAAK,UAAU,QAAQ;AACrB,YAAM,UAAUA,SAAQ;AACxB,aAAO;AAAA;AAAA,QAAuB,UAAU;AAAA,QAAS,QAAQ,OAAO,MAAM;AAAA,MAAC;AAAA,IACzE;AAAA,IACA,KAAK,OAAO,QAAQ;AAClB,YAAM,UAAUA,SAAQ;AACxB,aAAO;AAAA;AAAA,QAAuB,OAAO;AAAA,QAAS,QAAQ,OAAO,MAAM;AAAA,MAAC;AAAA,IACtE;AAAA,IACA,SAAS;AACP,UAAIA,SAAQ,MAAM;AAChB,cAAM;AAAA,UACJ;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA;AAAA,QAAuB,OAAO,CAAC;AAAA,QAAIA,MAAK,OAAO,MAAM;AAAA,MAAC;AAAA,IAC/D;AAAA,EACF;AACF;AAQA,IAAM,aAAa,CAAC,OAAOK,QAAOL,UAAS;AACzC,QAAM,EAAE,OAAO,IAAIA;AACnB,MAAI,WAAW,UAAU,QAAQ;AAC/B,UAAM,MAAM,8BAA8BA,MAAK,IAAI,WAAW;AAAA,EAChE;AAEA,QAAM,MAAMK,OAAM,IAAI,MAAM;AAC5B,MAAI,OAAO,MAAM;AACf,UAAMC,OAAMN,MAAK,OAAO,KAAK,EAAE,MAAM,CAAC;AACtC,IAAAK,OAAM,IAAI,QAAQC,IAAG;AACrB,WAAOA;AAAA,EACT,OAAO;AACL,WAAO;AAAA,EACT;AACF;AAQA,IAAM,aAAa,CAAC,OAAOD,QAAOL,UAAS;AACzC,QAAM,EAAE,OAAO,IAAIA;AACnB,QAAM,MAAMK,OAAM,IAAI,MAAM;AAC5B,MAAI,OAAO,MAAM;AACf,UAAMC,OAAMN,MAAK,OAAO,KAAK;AAC7B,IAAAK,OAAM,IAAI,QAAQC,IAAG;AACrB,WAAOA;AAAA,EACT,OAAO;AACL,WAAO;AAAA,EACT;AACF;AAEA,IAAM,cAAc;AACpB,IAAM,eAAe;AAQrB,IAAM,YAAY,CAAC,SAAS,MAAM,cAAc;AAC9C,QAAM,aAAoB,eAAe,OAAO;AAChD,QAAM,aAAa,aAAoB,eAAe,IAAI;AAC1D,QAAM,QAAQ,IAAI,WAAW,aAAa,UAAU,UAAU;AAC9D,EAAO,SAAS,SAAS,OAAO,CAAC;AACjC,EAAO,SAAS,MAAM,OAAO,UAAU;AACvC,QAAM,IAAI,WAAW,UAAU;AAC/B,SAAO;AACT;AAEA,IAAM,YAAY,OAAO,IAAI,kBAAkB;;;AlBjlB/C,IAAM,eAAe;AA2ErB,SAAS,WAAY,OAAO;AAC1B,MAAI,MAAM,CAAC,MAAM,GAAG;AAClB,UAAM,IAAI,MAAM,oDAAoD;AAAA,EACtE;AACA,SAAO,IAAI,OAAO,MAAM,SAAS,CAAC,CAAC;AACrC;AAEA,IAAM,gBAAgB;AAAA,EACpB,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,UAAU;AAAA,EACV,eAAe;AAAA,EACf,aAAa;AAAA;AAAA;AAAA,EAEb,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,wBAAwB;AAAA;AAAA,EAExB,MAAM,CAAC;AACT;AACA,cAAc,KAAK,YAAY,IAAI;AAiB5B,IAAMC,UAAS,CAAC,SAAe,OAAO,MAAM,aAAa;;;A6BpHhE;AAAA,IAAAC,iBAAmB;AAEZ,IAAM,cAAc;AAAA,EACzB,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AACV;AAEO,IAAM;AAAA;AAAA,EAAyC,KAAqB,IAAkB,IAAuB;AAAA;AAc7G,SAAS,aAAc,OAAO,QAAQ;AAC3C,MAAI,CAAC,MAAM,QAAQ;AACjB,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AACA,QAAMC,KAAI,eAAAC,QAAO,OAAO,KAAK;AAC7B,SAAO;AAAA;AAAA,IAA2B,eAAAA,QAAO,OAAO;AAAA,EAAM;AACtD,SAAOD;AACT;AAaO,SAAS,eAAgB,OAAO;AACrC,QAAM,KAAK,IAAI,SAAS,MAAM,QAAQ,MAAM,YAAY,MAAM,UAAU;AACxE,MAAI,SAAS;AACb,QAAM,SAAS;AAAA,IACb,SAAS;AAAA;AAAA,IAET,iBAAiB;AAAA,MACf,GAAG,aAAa,QAAQ,IAAI;AAAA,MAC5B,GAAG,aAAa,UAAU,GAAG,IAAI;AAAA,IACnC;AAAA,IACA,YAAY,OAAO,GAAG,aAAa,UAAU,GAAG,IAAI,CAAC;AAAA,IACrD,UAAU,OAAO,GAAG,aAAa,UAAU,GAAG,IAAI,CAAC;AAAA,IACnD,aAAa,OAAO,GAAG,aAAa,UAAU,GAAG,IAAI,CAAC;AAAA,EACxD;AACA,SAAO;AACT;AAYO,SAAS,mBAAoB,OAAO;AAKzC,iBAAAC,QAAO,OAAO,KAAK;AACnB,QAAM;AAAA;AAAA,IAAmC,eAAAA,QAAO,OAAO;AAAA;AACvD,QAAMC,UAAS,eAAAD,QAAO,OAAO,MAAM,SAAS,eAAAA,QAAO,OAAO,KAAK,CAAC;AAChE,QAAM;AAAA;AAAA,IAAqC,eAAAA,QAAO,OAAO;AAAA;AACzD,QAAM,WAAW,aAAa,eAAeC;AAE7C,SAAO;AACT;;;ACjFA;AAuBA,IAAM,QAAQ;AAAA,EACZ;AAAA;AAAA,IAAuC,CAAoB,QAAQ,QAAQ,OAAO,MAAM;AAAA;AAAA,EACxF;AAAA;AAAA,IAAwC,CAAoB,QAAQ,OAAO,UAAU,GAAG,IAAI,MAAM;AAAA;AAAA,EAClG;AAAA;AAAA,IAA0C,CAAoB,QAAQ,OAAO,QAAQ,YAAY,OAAO,SAAS,GAAG,IAAI,MAAM;AAAA;AAAA,EAC9H;AAAA;AAAA,IAA2C,CAAoB,QAAQ,OAAO,QAAQ,WAAW,MAAM;AAAA;AAAA,EACvG;AAAA;AAAA,IAA0C,CAAoB,QAAQ,OAAO,QAAQ,YAAY,MAAM;AAAA;AAAA,EACvG;AAAA;AAAA,IAA8C,CAAoB,QAAQ,eAAe,aAAa,MAAM;AAAA;AAAA,EAC5G;AAAA;AAAA,IAAyC,CAAoB,QAAQ,QAAQ,QAAQ,OAAO,QAAQ,YAAY,IAAI,UAAU,MAAM,MAAM;AAAA;AAAA,EAC1I;AAAA;AAAA,IAA6C,CAAoB,QAAQ,MAAM,QAAQ,GAAG,IAAI,MAAM;AAAA;AAAA,EACpG;AAAA;AAAA,IAAwC,CAAoB,QAAQ,QAAQ,QAAQ,OAAO,QAAQ,YAAY,IAAI,UAAU,OAAO,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,eAAe,cAAc,MAAM;AAAA;AAClM;AAEA,IAAM,QAAQ;AAAA,EACZ,2DAA2D,MAAM;AAAA,EACjE;AAAA;AAAA,IAAwE,CAAoB,QAAQ;AAClG,UAAI,MAAM,KAAK,GAAG,MAAM,QAAW;AACjC,eAAO;AAAA,MACT;AACA,eAASC,KAAI,GAAGA,KAAI,IAAI,QAAQA,MAAK;AACnC,YAAIC,KAAI,IAAID,EAAC;AACb,QAAAC,KAAI,MAAM,yDAAyD,EAAEA,EAAC;AACtE,YAAIA,OAAM,QAAW;AACnB,iBAAO;AAAA,QACT;AACA,YAAIA,OAAM,IAAID,EAAC,GAAG;AAChB,gBAAM,MAAM,IAAI,MAAM,GAAGA,EAAC;AAC1B,mBAASE,KAAIF,IAAGE,KAAI,IAAI,QAAQA,MAAK;AACnC,gBAAID,KAAI,IAAIC,EAAC;AACb,YAAAD,KAAI,MAAM,yDAAyD,EAAEA,EAAC;AACtE,gBAAIA,OAAM,QAAW;AACnB,qBAAO;AAAA,YACT;AACA,gBAAI,KAAKA,EAAC;AAAA,UACZ;AACA,iBAAO;AAAA,QACT;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA;AAAA,EACA,KAAK,MAAM;AAAA,EACX;AAAA;AAAA,IAAuD,CAAoB,QAAQ;AACjF,UAAI,MAAM,IAAI,GAAG,MAAM,QAAW;AAChC,eAAO;AAAA,MACT;AACA,YAAM,UAAU,OAAO,QAAQ,GAAG;AAElC,UAAI,MAAM;AACV,UAAI,gBAAgB;AACpB,eAASD,KAAI,GAAGA,KAAI,QAAQ,QAAQA,MAAK;AACvC,cAAM,CAAC,KAAK,KAAK,IAAI,QAAQA,EAAC;AAC9B,gBAAQ,KAAK;AAAA,UACX,KAAK;AACH;AACE,oBAAMC,KAAI,MAAM,sCAAsC,EAAE,IAAI,GAAG,CAAC;AAChE,kBAAIA,OAAM,QAAW;AACnB,uBAAO;AAAA,cACT;AACA,kBAAIA,OAAM,SAAS,QAAQ,KAAK;AAC9B,oBAAI,QAAQ,KAAK;AAEf,wBAAM,CAAC;AACP,2BAASC,KAAI,GAAGA,KAAIF,IAAGE,MAAK;AAC1B,wBAAI,QAAQA,EAAC,EAAE,CAAC,CAAC,IAAI,QAAQA,EAAC,EAAE,CAAC;AAAA,kBACnC;AAAA,gBACF;AACA,oBAAI,QAAQD;AAAA,cACd;AAAA,YACF;AACA;AAAA,UACF,KAAK;AACH;AACE;AACA,oBAAMA,KAAI,MAAM,IAAI,IAAI,GAAG,CAAC;AAC5B,kBAAIA,OAAM,QAAW;AACnB,uBAAO;AAAA,cACT;AACA,kBAAIA,OAAM,SAAS,QAAQ,KAAK;AAC9B,oBAAI,QAAQ,KAAK;AAEf,wBAAM,CAAC;AACP,2BAASC,KAAI,GAAGA,KAAIF,IAAGE,MAAK;AAC1B,wBAAI,QAAQA,EAAC,EAAE,CAAC,CAAC,IAAI,QAAQA,EAAC,EAAE,CAAC;AAAA,kBACnC;AAAA,gBACF;AACA,oBAAI,UAAUD;AAAA,cAChB;AAAA,YACF;AACA;AAAA,UACF;AACE,mBAAO;AAAA,QACX;AAAA,MACF;AAEA,UAAI,gBAAgB,GAAG;AACrB,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAAA;AACF;AAEA,IAAM,QAAQ;AAAA,EACZ,2DAA2D,MAAM;AAAA,EACjE;AAAA;AAAA,IAAwE,CAAoB,QAAQ;AAClG,UAAI,MAAM,KAAK,GAAG,MAAM,QAAW;AACjC,eAAO;AAAA,MACT;AACA,eAASD,KAAI,GAAGA,KAAI,IAAI,QAAQA,MAAK;AACnC,YAAIC,KAAI,IAAID,EAAC;AACb,QAAAC,KAAI,MAAM,yDAAyD,EAAEA,EAAC;AACtE,YAAIA,OAAM,QAAW;AACnB,iBAAO;AAAA,QACT;AACA,YAAIA,OAAM,IAAID,EAAC,GAAG;AAChB,gBAAM,MAAM,IAAI,MAAM,GAAGA,EAAC;AAC1B,mBAASE,KAAIF,IAAGE,KAAI,IAAI,QAAQA,MAAK;AACnC,gBAAID,KAAI,IAAIC,EAAC;AACb,YAAAD,KAAI,MAAM,yDAAyD,EAAEA,EAAC;AACtE,gBAAIA,OAAM,QAAW;AACnB,qBAAO;AAAA,YACT;AACA,gBAAI,KAAKA,EAAC;AAAA,UACZ;AACA,iBAAO;AAAA,QACT;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA;AAAA,EACA,KAAK,MAAM;AAAA,EACX;AAAA;AAAA,IAAuD,CAAoB,QAAQ;AACjF,UAAI,MAAM,IAAI,GAAG,MAAM,QAAW;AAChC,eAAO;AAAA,MACT;AACA,YAAM,UAAU,OAAO,QAAQ,GAAG;AAElC,UAAI,MAAM;AACV,UAAI,gBAAgB;AACpB,eAASD,KAAI,GAAGA,KAAI,QAAQ,QAAQA,MAAK;AACvC,cAAM,CAAC,KAAK,KAAK,IAAI,QAAQA,EAAC;AAC9B,gBAAQ,KAAK;AAAA,UACX,KAAK;AACH;AACE,oBAAMC,KAAI,MAAM,sCAAsC,EAAE,KAAK;AAC7D,kBAAIA,OAAM,QAAW;AACnB,uBAAO;AAAA,cACT;AACA,kBAAIA,OAAM,SAAS,QAAQ,KAAK;AAC9B,oBAAI,QAAQ,KAAK;AAEf,wBAAM,CAAC;AACP,2BAASC,KAAI,GAAGA,KAAIF,IAAGE,MAAK;AAC1B,wBAAI,QAAQA,EAAC,EAAE,CAAC,CAAC,IAAI,QAAQA,EAAC,EAAE,CAAC;AAAA,kBACnC;AAAA,gBACF;AACA,oBAAI,QAAQD;AAAA,cACd;AAAA,YACF;AACA;AAAA,UACF,KAAK;AACH;AACE;AACA,oBAAMA,KAAI,MAAM,IAAI,KAAK;AACzB,kBAAIA,OAAM,QAAW;AACnB,uBAAO;AAAA,cACT;AACA,kBAAIA,OAAM,SAAS,QAAQ,KAAK;AAC9B,oBAAI,QAAQ,KAAK;AAEf,wBAAM,CAAC;AACP,2BAASC,KAAI,GAAGA,KAAIF,IAAGE,MAAK;AAC1B,wBAAI,QAAQA,EAAC,EAAE,CAAC,CAAC,IAAI,QAAQA,EAAC,EAAE,CAAC;AAAA,kBACnC;AAAA,gBACF;AACA,oBAAI,UAAUD;AAAA,cAChB;AAAA,YACF;AACA;AAAA,UACF;AACE,mBAAO;AAAA,QACX;AAAA,MACF;AACA,UAAI,gBAAgB,GAAG;AACrB,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAAA;AACF;AAEO,IAAM,wBAAwB;AAAA,EACnC,SAAS,MAAM;AAAA,EACf,kBAAkB,MAAM;AAC1B;;;ApD5MA,IAAM,SAAS,GAAG;;;AqDTlB;;;ACAA;AASA,IAAME,gBAAe,iBAAiB;;;ADNtC,IAAAC,iBAAmB;AAmMnB,IAAM,sBAAsB;AAAA,EAC1B,IAAI,MAAM,KAAK,KAAK,CAAC;AAAA,EACrB,IAAI,MAAM,KAAK,QAAQ,SAAS;AAAA,EAChC,IAAI,MAAM,KAAK,MAAM,CAAC;AAAA,EACtB,IAAI,MAAM,KAAK,QAAQ,OAAO;AAChC;AAEA,IAAM,UAAU,IAAI,MAAM,KAAK,KAAK,EAAE;;;AE7MtC;;;ACAA;;;ACAA;AA0BA,eAAsB,WAAY,QAAQ,eAAe;AACvD,QAAMC,UAAS,aAAa,MAAM,OAAO,KAAK,CAAC,GAAG,MAAM;AACxD,MAAIA,YAAW,GAAG;AAChB,UAAM,IAAI,MAAM,kCAAkC;AAAA,EACpD;AACA,QAAM,SAAS,MAAM,OAAO,QAAQA,SAAQ,IAAI;AAChD,QAAM,QAAQC,QAAc,MAAM;AAClC,MAAI,sBAAsB,QAAQ,KAAK,MAAM,QAAW;AACtD,UAAM,IAAI,MAAM,2BAA2B;AAAA,EAC7C;AACA,MAAK,MAAM,YAAY,KAAK,MAAM,YAAY,KAAO,kBAAkB,UAAa,MAAM,YAAY,eAAgB;AACpH,UAAM,IAAI,MAAM,wBAAwB,MAAM,OAAO,GAAG,kBAAkB,SAAY,cAAc,aAAa,MAAM,EAAE,EAAE;AAAA,EAC7H;AACA,MAAI,MAAM,YAAY,GAAG;AAEvB,QAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,GAAG;AAC/B,YAAM,IAAI,MAAM,2BAA2B;AAAA,IAC7C;AACA,WAAO;AAAA,EACT;AAEA,MAAI,MAAM,UAAU,QAAW;AAC7B,UAAM,IAAI,MAAM,2BAA2B;AAAA,EAC7C;AACA,QAAM,WAAW,eAAe,MAAM,OAAO,QAAQ,kBAAkB,IAAI,CAAC;AAC5E,SAAO,KAAK,SAAS,aAAa,OAAO,GAAG;AAC5C,QAAM,WAAW,MAAM,WAAW,QAAQ,CAAC;AAC3C,SAAO,OAAO,OAAO,UAAU,QAAQ;AACzC;AAMA,eAAe,QAAS,QAAQ;AAC9B,QAAM,QAAQ,MAAM,OAAO,QAAQ,GAAG,KAAK;AAC3C,MAAI,MAAM,CAAC,MAAM,YAAY,YAAY,MAAM,CAAC,MAAM,YAAY,QAAQ;AAExE,UAAMC,SAAQ,MAAM,OAAO,QAAQ,IAAI,IAAI;AAC3C,UAAMC,aAAmBF,QAAOC,MAAK;AACrC,WAAO,IAAI,OAAO,GAAG,YAAY,QAAQC,UAAS;AAAA,EACpD;AAEA,QAAM,UAAU,aAAa,MAAM,OAAO,KAAK,CAAC,GAAG,MAAM;AACzD,MAAI,YAAY,GAAG;AACjB,UAAM,IAAI,MAAM,2BAA2B,OAAO,GAAG;AAAA,EACvD;AACA,QAAM,QAAQ,aAAa,MAAM,OAAO,KAAK,CAAC,GAAG,MAAM;AACvD,QAAM,QAAQ,MAAM,OAAO,QAAQ,mBAAmB,MAAM,OAAO,KAAK,CAAC,CAAC,GAAG,IAAI;AACjF,QAAM,YAAmBF,QAAO,KAAK;AACrC,SAAO,IAAI,OAAO,SAAS,OAAO,SAAS;AAC7C;AAYA,eAAsB,cAAe,QAAQ;AAG3C,QAAM,QAAQ,OAAO;AACrB,MAAID,UAAS,aAAa,MAAM,OAAO,KAAK,CAAC,GAAG,MAAM;AACtD,MAAIA,YAAW,GAAG;AAChB,UAAM,IAAI,MAAM,mCAAmC;AAAA,EACrD;AACA,EAAAA,WAAW,OAAO,MAAM;AACxB,QAAM,MAAM,MAAM,QAAQ,MAAM;AAChC,QAAM,cAAcA,UAAS,OAAO,OAAO,MAAM,KAAK;AAEtD,SAAO,EAAE,KAAK,QAAAA,SAAQ,YAAY;AACpC;AAMA,eAAe,UAAW,QAAQ;AAChC,QAAM,EAAE,KAAK,YAAY,IAAI,MAAM,cAAc,MAAM;AACvD,QAAM,QAAQ,MAAM,OAAO,QAAQ,aAAa,IAAI;AACpD,SAAO,EAAE,OAAO,IAAI;AACtB;AAMA,eAAe,eAAgB,QAAQ;AACrC,QAAM,SAAS,OAAO;AACtB,QAAM,EAAE,KAAK,QAAAA,SAAQ,YAAY,IAAI,MAAM,cAAc,MAAM;AAC/D,QAAM,QAAQ,EAAE,KAAK,QAAAA,SAAQ,aAAa,QAAQ,aAAa,OAAO,IAAI;AAC1E,SAAO,KAAK,MAAM,WAAW;AAC7B,SAAO;AACT;AAWO,SAAS,cAAe,QAAQ;AACrC,QAAM,iBAAiB,YAAY;AACjC,UAAM,SAAS,MAAM,WAAW,MAAM;AACtC,QAAI,OAAO,YAAY,GAAG;AACxB,YAAM,WAAW,OAAO,MAAM,OAAO;AACrC,eAAS,YAAY,QAAQ,OAAO,WAAW,QAAQ;AAAA,IACzD;AACA,WAAO;AAAA,EACT,GAAG;AAEH,SAAO;AAAA,IACL,QAAQ,MAAM;AAAA,IAEd,OAAQ,SAAU;AAChB,YAAM;AACN,cAAQ,MAAM,OAAO,KAAK,CAAC,GAAG,SAAS,GAAG;AACxC,cAAM,MAAM,UAAU,MAAM;AAAA,MAC9B;AAAA,IACF;AAAA,IAEA,OAAQ,cAAe;AACrB,YAAM;AACN,cAAQ,MAAM,OAAO,KAAK,CAAC,GAAG,SAAS,GAAG;AACxC,cAAM,MAAM,eAAe,MAAM;AAAA,MACnC;AAAA,IACF;AAAA,EACF;AACF;AASO,SAAS,YAAa,OAAO;AAClC,MAAI,MAAM;AAGV,SAAO;AAAA,IACL,MAAM,KAAMA,SAAQ;AAClB,YAAM,MAAM,MAAM,SAAS,KAAK,MAAM,KAAK,IAAIA,SAAQ,MAAM,SAAS,GAAG,CAAC;AAC1E,aAAO;AAAA,IACT;AAAA,IAEA,MAAM,QAASA,SAAQ,OAAO,OAAO;AACnC,UAAIA,UAAS,MAAM,SAAS,KAAK;AAC/B,cAAM,IAAI,MAAM,wBAAwB;AAAA,MAC1C;AACA,YAAM,MAAM,MAAM,SAAS,KAAK,MAAMA,OAAM;AAC5C,UAAI,MAAM;AACR,eAAOA;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAAA,IAEA,KAAMA,SAAQ;AACZ,aAAOA;AAAA,IACT;AAAA,IAEA,IAAI,MAAO;AACT,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAUO,SAAS,YAAa,WAAyB;AACpD,MAAI,MAAM;AACV,MAAI,OAAO;AACX,MAAI,SAAS;AACb,MAAI,eAAe,IAAI,WAAW,CAAC;AAEnC,QAAMI,QAAO,OAA6BJ,YAAW;AACnD,WAAO,aAAa,SAAS;AAC7B,UAAM,OAAO,CAAC,aAAa,SAAS,MAAM,CAAC;AAC3C,WAAO,OAAOA,SAAQ;AACpB,YAAM,QAAQ,MAAM,UAAU;AAC9B,UAAI,SAAS,MAAM;AACjB;AAAA,MACF;AAGA,UAAI,OAAO,GAAG;AAGZ,YAAI,MAAM,SAAS,MAAM;AACvB,eAAK,KAAK,MAAM,SAAS,CAAC,IAAI,CAAC;AAAA,QACjC;AAAA,MACF,OAAO;AACL,aAAK,KAAK,KAAK;AAAA,MACjB;AACA,cAAQ,MAAM;AAAA,IAChB;AACA,mBAAe,IAAI,WAAW,KAAK,OAAO,CAACK,IAAGC,OAAMD,KAAIC,GAAE,QAAQ,CAAC,CAAC;AACpE,QAAI,MAAM;AACV,eAAWC,MAAK,MAAM;AACpB,mBAAa,IAAIA,IAAG,GAAG;AACvB,aAAOA,GAAE;AAAA,IACX;AACA,aAAS;AAAA,EACX;AAGA,SAAO;AAAA,IACL,MAAM,KAAMP,SAAQ;AAClB,UAAI,aAAa,SAAS,SAASA,SAAQ;AACzC,cAAMI,MAAKJ,OAAM;AAAA,MACnB;AACA,aAAO,aAAa,SAAS,QAAQ,SAAS,KAAK,IAAI,aAAa,SAAS,QAAQA,OAAM,CAAC;AAAA,IAC9F;AAAA,IAEA,MAAM,QAASA,SAAQ,OAAO,OAAO;AACnC,UAAI,aAAa,SAAS,SAASA,SAAQ;AACzC,cAAMI,MAAKJ,OAAM;AAAA,MACnB;AACA,UAAI,aAAa,SAAS,SAASA,SAAQ;AACzC,cAAM,IAAI,MAAM,wBAAwB;AAAA,MAC1C;AACA,YAAM,MAAM,aAAa,SAAS,QAAQ,SAASA,OAAM;AACzD,UAAI,MAAM;AACR,eAAOA;AACP,kBAAUA;AAAA,MACZ;AACA,aAAO;AAAA,IACT;AAAA,IAEA,KAAMA,SAAQ;AACZ,aAAOA;AACP,gBAAUA;AAAA,IACZ;AAAA,IAEA,IAAI,MAAO;AACT,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAUO,SAAS,oBAAqB,eAAe;AAClD,QAAM,WAAW,cAAc,OAAO,aAAa,EAAE;AAErD,iBAAe,YAAa;AAC1B,UAAM,OAAO,MAAM,SAAS,KAAK;AACjC,QAAI,KAAK,MAAM;AACb,aAAO;AAAA,IACT;AACA,WAAO,KAAK;AAAA,EACd;AAEA,SAAO,YAAY,SAAS;AAC9B;AAYO,SAAS,YAAa,QAAQ,WAAW;AAC9C,MAAI,YAAY;AAGhB,SAAO;AAAA,IACL,MAAM,KAAMA,SAAQ;AAClB,UAAI,QAAQ,MAAM,OAAO,KAAKA,OAAM;AACpC,UAAI,MAAM,SAAS,YAAY,WAAW;AACxC,gBAAQ,MAAM,SAAS,GAAG,YAAY,SAAS;AAAA,MACjD;AACA,aAAO;AAAA,IACT;AAAA,IAEA,MAAM,QAASA,SAAQ,OAAO,OAAO;AACnC,YAAM,QAAQ,MAAM,OAAO,QAAQA,SAAQ,IAAI;AAC/C,UAAI,MAAM,SAAS,YAAY,WAAW;AACxC,cAAM,IAAI,MAAM,wBAAwB;AAAA,MAC1C;AACA,UAAI,MAAM;AACR,qBAAaA;AAAA,MACf;AACA,aAAO;AAAA,IACT;AAAA,IAEA,KAAMA,SAAQ;AACZ,mBAAaA;AACb,aAAO,KAAKA,OAAM;AAAA,IACpB;AAAA,IAEA,IAAI,MAAO;AACT,aAAO,OAAO;AAAA,IAChB;AAAA,EACF;AACF;;;AD9SO,IAAM,aAAN,MAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMtB,YAAa,SAAS,OAAO,UAAU;AACrC,SAAK,WAAW;AAChB,SAAK,SAAS;AACd,SAAK,YAAY;AAAA,EACnB;AAAA,EAEA,IAAI,UAAW;AACb,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAM,WAAY;AAChB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,CAAC,OAAO,aAAa,IAAK;AACxB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,aAAa,UAAW,OAAO;AAC7B,QAAI,EAAE,iBAAiB,aAAa;AAClC,YAAM,IAAI,UAAU,mCAAmC;AAAA,IACzD;AACA,WAAO,sBAAsB,YAAY,KAAK,CAAC;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,aAAa,aAAc,eAAe;AACxC,QAAI,CAAC,iBAAiB,EAAE,OAAO,cAAc,OAAO,aAAa,MAAM,aAAa;AAClF,YAAM,IAAI,UAAU,2CAA2C;AAAA,IACjE;AACA,WAAO,sBAAsB,oBAAoB,aAAa,CAAC;AAAA,EACjE;AACF;AAOA,eAAe,sBAAuB,QAAQ;AAC5C,QAAM,UAAU,cAAc,MAAM;AACpC,QAAM,EAAE,SAAS,MAAM,IAAI,MAAM,QAAQ,OAAO;AAEhD,SAAO,IAAI,WAAW,SAAS,OAAO,QAAQ,YAAY,CAAC;AAC7D;;;AEjIA;;;ACAA;AAgCO,IAAM,YAAN,MAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMrB,YAAa,QAAQ,QAAQ;AAC3B,SAAK,UAAU;AACf,SAAK,UAAU;AACf,SAAK,QAAQ,OAAO,IAAI,CAACQ,OAAMA,GAAE,IAAI,SAAS,CAAC;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,UAAW;AACb,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAM,WAAY;AAChB,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,MAAM,IAAK,KAAK;AACd,WAAO,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,IAAI;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,MAAM,IAAK,KAAK;AACd,UAAM,QAAQ,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC;AAC/C,WAAO,QAAQ,KAAK,KAAK,QAAQ,KAAK,IAAI;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,OAAQ,SAAU;AAChB,eAAW,SAAS,KAAK,SAAS;AAChC,YAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,OAAQ,OAAQ;AACd,eAAW,SAAS,KAAK,SAAS;AAChC,YAAM,MAAM;AAAA,IACd;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,aAAa,UAAW,OAAO;AAC7B,QAAI,EAAE,iBAAiB,aAAa;AAClC,YAAM,IAAI,UAAU,mCAAmC;AAAA,IACzD;AACA,WAAO,qBAAqB,YAAY,KAAK,CAAC;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBA,aAAa,aAAc,eAAe;AACxC,QAAI,CAAC,iBAAiB,EAAE,OAAO,cAAc,OAAO,aAAa,MAAM,aAAa;AAClF,YAAM,IAAI,UAAU,2CAA2C;AAAA,IACjE;AACA,WAAO,qBAAqB,oBAAoB,aAAa,CAAC;AAAA,EAChE;AACF;AAOA,eAAsB,qBAAsB,QAAQ;AAClD,QAAM,UAAU,cAAc,MAAM;AACpC,QAAM,SAAS,MAAM,QAAQ,OAAO;AACpC,QAAM,SAAS,CAAC;AAChB,mBAAiB,SAAS,QAAQ,OAAO,GAAG;AAC1C,WAAO,KAAK,KAAK;AAAA,EACnB;AAEA,SAAO,IAAI,UAAU,QAAQ,MAAM;AACrC;;;ADrLA,IAAMC,UAASC,WAAU,GAAG,IAAI;AAMzB,IAAMC,aAAN,cAAwB,UAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqB9C,aAAa,QAAS,IAAI,YAAY;AACpC,UAAM,EAAE,KAAK,aAAa,YAAY,IAAI;AAC1C,UAAM,QAAQ,IAAI,WAAW,WAAW;AACxC,QAAIC;AACJ,QAAI,OAAO,OAAO,UAAU;AAC1B,MAAAA,SAAQ,MAAMH,QAAO,IAAI,OAAO,GAAG,aAAa,WAAW,GAAG;AAAA,IAChE,WAAW,OAAO,OAAO,YAAY,OAAO,GAAG,SAAS,YAAY;AAClE,MAAAG,SAAQ,MAAM,GAAG,KAAK,OAAO,GAAG,aAAa,WAAW,GAAG;AAAA,IAC7D,OAAO;AACL,YAAM,IAAI,UAAU,QAAQ;AAAA,IAC9B;AACA,QAAIA,UAAS,aAAa;AACxB,YAAM,IAAI,MAAM,gCAAgCA,KAAI,eAAe,WAAW,GAAG;AAAA,IACnF;AACA,WAAO,EAAE,KAAK,MAAM;AAAA,EACtB;AACF;;;AErDA;AAkBO,IAAM,kBAAN,MAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM3B,YAAa,SAAS,OAAO,UAAU;AACrC,SAAK,WAAW;AAChB,SAAK,SAAS;AACd,SAAK,YAAY;AACjB,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,IAAI,UAAW;AACb,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,WAAY;AAChB,WAAO,KAAK;AAAA,EACd;AACF;AA8BO,IAAM,mBAAN,MAAM,0BAAyB,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBpD,CAAC,OAAO,aAAa,IAAK;AACxB,QAAI,KAAK,UAAU;AACjB,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAEA,QAAI,CAAC,KAAK,WAAW;AACnB,YAAM,IAAI,MAAM,0BAA0B;AAAA,IAC5C;AACA,SAAK,WAAW;AAChB,WAAO,KAAK,UAAU,OAAO,aAAa,EAAE;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,aAAa,UAAW,OAAO;AAC7B,UAAM,EAAE,SAAS,OAAO,SAAS,IAAI,MAAMC,WAAU,KAAK;AAC1D,WAAO,IAAI,kBAAiB,SAAS,OAAO,QAAQ;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,aAAa,aAAc,eAAe;AACxC,UAAM,EAAE,SAAS,OAAO,SAAS,IAAI,MAAM,aAAa,aAAa;AACrE,WAAO,IAAI,kBAAiB,SAAS,OAAO,QAAQ;AAAA,EACtD;AACF;AA8BO,IAAM,iBAAN,MAAM,wBAAuB,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBlD,CAAC,OAAO,aAAa,IAAK;AACxB,QAAI,KAAK,UAAU;AACjB,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAEA,QAAI,CAAC,KAAK,WAAW;AACnB,YAAM,IAAI,MAAM,0BAA0B;AAAA,IAC5C;AACA,SAAK,WAAW;AAChB,UAAM,WAAW,KAAK,UAAU,OAAO,aAAa,EAAE;AACtD,WAAO;AAAA,MACL,MAAM,OAAQ;AACZ,cAAM,OAAO,MAAM,SAAS,KAAK;AACjC,YAAI,KAAK,MAAM;AACb,iBAAO;AAAA,QACT;AACA,eAAO,EAAE,MAAM,OAAO,OAAO,KAAK,MAAM,IAAI;AAAA,MAC9C;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,aAAa,UAAW,OAAO;AAC7B,UAAM,EAAE,SAAS,OAAO,SAAS,IAAI,MAAMA,WAAU,KAAK;AAC1D,WAAO,IAAI,gBAAe,SAAS,OAAO,QAAQ;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,aAAa,aAAc,eAAe;AACxC,UAAM,EAAE,SAAS,OAAO,SAAS,IAAI,MAAM,aAAa,aAAa;AACrE,WAAO,IAAI,gBAAe,SAAS,OAAO,QAAQ;AAAA,EACpD;AACF;AAMA,eAAeA,WAAW,OAAO;AAC/B,MAAI,EAAE,iBAAiB,aAAa;AAClC,UAAM,IAAI,UAAU,mCAAmC;AAAA,EACzD;AACA,SAAO,eAAe,YAAY,KAAK,CAAC;AAC1C;AAMA,eAAe,aAAc,eAAe;AAC1C,MAAI,CAAC,iBAAiB,EAAE,OAAO,cAAc,OAAO,aAAa,MAAM,aAAa;AAClF,UAAM,IAAI,UAAU,2CAA2C;AAAA,EACjE;AACA,SAAO,eAAe,oBAAoB,aAAa,CAAC;AAC1D;AAOA,eAAe,eAAgB,QAAQ;AACrC,QAAM,UAAU,cAAc,MAAM;AACpC,QAAM,EAAE,SAAS,MAAM,IAAI,MAAM,QAAQ,OAAO;AAChD,SAAO,EAAE,SAAS,OAAO,UAAU,QAAQ,OAAO,EAAE;AACtD;;;AC1QA;;;ACAA;AACA,IAAAC,iBAAmB;;;ACDnB;;;ACAA;;;AD0LO,IAAM,eAAN,MAAmB;AAAA;AAAA;AAAA;AAAA,EAIxB,YAAa,UAAU;AACrB,SAAK,YAAY;AAAA,EACnB;AAAA,EAEA,CAAC,OAAO,aAAa,IAAK;AACxB,QAAI,KAAK,YAAY;AACnB,YAAM,IAAI,MAAM,iCAAiC;AAAA,IACnD;AACA,SAAK,aAAa;AAClB,WAAO,KAAK;AAAA,EACd;AACF;;;AFnMA,IAAMC,UAASC,WAAU,GAAG,IAAI;AAChC,IAAM,UAAUA,WAAU,GAAG,KAAK;;;A/DJlC,SAAS,0BAA0B;;;AmEHnC;;;ACAA;AAAA,6BAAkC;AAClC,wCAAsB;AAMtB,IAAI,sBAAsB;AAC1B,IAAI,6BAA6B;AACjC,IAAI,+BAAQ;AAEV,wBAAsB,SAAS,KAAK,qBAAqB,SAAS,KAAK,uBAAuB,SAAS;AACvG,+BAA6B,SAAS,KAAK,qBAAqB,SAAS,KAAK,uBAAuB,SAAS;AAChH;AACA,IAAM,iBAAiB,OAAO,OAAO;AAAA,EACnC,QAAQ;AAAA,EACR,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,sBAAsB,CAAC;AAAA,EACvB,0BAA0B;AAAA;AAAA;AAAA;AAAA,EAI1B,yBAAyB;AAAA,EACzB,KAAK;AACP,CAAC;AAIM,IAAM,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAShC;AAoBO,IAAMC,KAAN,MAAQ;AAAA,EAGb,YAAY,YAAoB,WAAmB;AAFnD,sCAAa;AACb,qCAAY;AAEV,WAAO,OAAO,MAAM,EAAE,YAAY,UAAU,CAAC;AAAA,EAC/C;AAAA,EAEA,WAAW;AACT,UAAM,gBAAiB,KAAK,aAAa;AACzC,UAAM,aAAa,cAAc,QAAQ,gBAAgB,IAAI,IAAI,CAAC;AAClE,UAAM,YACF,KAAK,YAAY,MACf,GAAG,KAAK,UAAU,QAAQ,CAAC,CAAC,GAAG,SAAS,GAAG,GAAG,IAC9C,GAAG,IAAI,KAAK,YAAY,MAAO,QAAQ,KAAK,YAAY,MAAQ,IAAI,CAAC,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC;AAC/F,WAAO,IAAI,CAAC,sBAAsB,aAAa,MAAM,6BAA6B,YAAY,IAAI,EAAE,KAAK,GAAG,CAAC;AAAA,EAC/G;AACF;AAEO,IAAM,QAAN,MAAY;AAAA,EACjB,YAAY,OAAe,QAAgB;AACzC,WAAO,OAAO,MAAM,EAAE,OAAO,OAAO,CAAC;AAAA,EACvC;AACF;AACA,IAAI,oBAAoB;AAEjB,IAAM,UAAN,MAAM,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA6BlB,OAAO,MAAM,OAA2B,SAAiB,CAAC,GAAG;AAC3D,aAAS,OAAO,OAAO,CAAC,GAAG,gBAAgB,MAAM;AACjD,QAAG,QAAM;AAAI,cAAQ,MAAM,gBAAe,EAAC,OAAM,CAAC;AAElD,UAAM,kBAAkB,KAAK,QAAQ,QAAQ,OAAO,EAAE,GAAG,QAAQ,KAAK,OAAO,iBAAiB,CAAC;AAC/F,UAAM,OAAO,IAAI,SAAgB;AAE/B,UAAI,QAAQ;AACV,wBAAgB,GAAG,IAAI;AAAA,IAC3B;AACA,SAAK,aAAa;AAClB,SAAK,YAAY;AACjB,UAAM,iBAAiB,KAAK,QAAQ,QAAQ,gBAAgB,MAAM;AAElE,UAAM,cAAc,CAAC,SAAkB,SAA8E;AAEnH,eAAS,SACJ,MAC0E;AAC7E,cAAM,iBAAiB,KAAK,KAAK,SAAS,CAAC;AAE3C,YAAI,mBAA2B;AAC7B,iBAAO,eAAe;AAExB,uBAAe,GAAG,KAAK,MAAM,GAAG,EAAE,CAAC;AAEnC,cAAM,eAAe,YAAY;AAC/B,cAAI;AACF,kBAAM,SAAS,eAAe;AAC9B,mBAAO,kBAAkB,UAAU,MAAM,SAAS;AAAA,UACpD,UAAE;AACA,oBAAQ,SAAS;AAAA,UACnB;AAAA,QACF;AAEA,eAAO,aAAa;AAAA,MACtB;AAEA,YAAM,WAAW,OAAO;AAAA,QACtB,KAAK,KAAK,CAAC,CAAC;AAAA;AAAA,QACZ;AAAA,UACE,WAAW;AAAA,UACX,YAAY,CAAC;AAAA,UACb;AAAA,UACA,OAAO;AAAA,QACT;AAAA,MACF;AACA,UAAI,SAAS;AACX,eAAO;AAAA,MACT,OAAO;AACL,eAAO,OAAO;AAAA,UACZ,KAAK,KAAK,CAAC,CAAC;AAAA;AAAA,UACZ;AAAA,YACE,WAAW;AAAA,YACX,YAAY,CAAC;AAAA,YACb;AAAA,YACA,OAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,UAAM,QAAQ,YAAY,SAAS,QAAO,OAAO,KAAK,QAAQ,QAAQ,OAAO,MAAM,CAAC;AACpF,UAAMC,SAAQ,IAAI,WAAkB;AAClC,YAAM,GAAG,MAAM;AACf,aAAO,IAAI,UAAM,kCAAAC,SAAU,MAAM,CAAC;AAAA,IACpC;AAEA,WAAO;AAAA,MACL,OAAAD;AAAA,MACA,MAAM,YAAY,SAAS,QAAO,MAAM,KAAK,QAAQ,QAAQ,MAAM,MAAM,CAAC;AAAA,MAC1E,KAAK,YAAY,SAAS,QAAO,MAAM,KAAK,QAAQ,QAAQ,KAAK,MAAM,CAAC;AAAA,MACxE,OAAO,YAAY,SAAS,QAAO,OAAO,KAAK,QAAQ,QAAQ,KAAK,EAAE,GAAG,QAAQ,KAAK,OAAO,iBAAiB,CAAC,CAAC;AAAA;AAAA,MAChH,SAAS,YAAY,SAAS,QAAO,SAAS,KAAK,QAAQ,QAAQ,OAAO,EAAE,GAAG,QAAQ,KAAK,OAAO,iBAAiB,CAAC,CAAC;AAAA,IACxH;AAAA,EACF;AAAA,EAEA,OAAO,QAAQ,SAAoB,QAAgB;AACjD,QAAI,CAAC,+BAAQ;AAYX,YAAM,YAAY,CAAC;AAEnB,UAAI,OAAO,oBAAoB;AAC7B,cAAM,WAAW,oCAAa,UAAU,UAAU,SAAS,QAAQ;AAEnE,cAAME,KAAI,WACN,CAAC,IAAI,QAAO,KAAK,CAAC,IAClB,CAAC;AACL,kBAAU,KAAK,GAAGA,EAAC;AAAA,MACrB;AACA,UAAI,OAAO,QAAQ;AACjB,YAAI;AACF,oBAAU,KAAK,IAAI,MAAM,OAAO,OAAO,MAAM,CAAC;AAAA;AAC3C,oBAAU,KAAK,OAAO,MAAM;AAAA,MACnC;AAEA,aAAO,QAAQ,KAAK,SAAS,GAAG,SAAS;AAAA,IAC3C,OAAO;AAGL,aAAO,QAAQ,KAAK,OAAO;AAAA,IAC7B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,KAAK,iBAAiB,GAA2B;AACtD,QAAI,CAAC,YAAY;AACf,aAAO;AACT,UAAM,MAAM,YAAY,IAAI;AAC5B,QAAI,CAAC,QAAO,UAAU;AACpB,cAAO,WAAW;AAClB,cAAO,UAAU;AAAA,IACnB;AACA,UAAMA,KAAI,IAAIH,GAAE,MAAM,QAAO,UAAU,MAAM,QAAO,OAAO;AAC3D,YAAO,UAAU;AACjB,WAAO,iBAAiBG,GAAE,SAAS,IAAIA;AAAA,EACzC;AAAA;AAAA,EAGA,OAAO,mBAAmB,OAAgC;AACxD,QAAI,eAAe;AACnB,eAAW,QAAQ,MAAM,MAAM,IAAI,GAAG;AACpC,YAAM,UAAU,KAAK,MAAM,eAAe;AAC1C,UAAI,SAAS;AACX,YAAI,cAAc;AAGhB,iBACE,QAAQ,CAAC,EACN,KAAK,EAKL,QAAQ,WAAW,EAAE;AAAA,QAE5B;AACA,uBAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AACF;AAvLE,cADW,SACJ,SAAQ;AACf,cAFW,SAEJ,QAAO;AACd,cAHW,SAGJ,QAAO;AAAA;AACd,cAJW,SAIJ,OAAM;AACb,cALW,SAKJ,SAAQ;AACf,cANW,SAMJ,WAAU;AAEjB,cARW,SAQJ,YAAW;AAClB,cATW,SASJ,WAAU;AATZ,IAAM,SAAN;AA0LP,IAAI,kCAAW;AAIb,SAAO,qBAAqB,OAAO,sBAAsB,CAAC;AAG1D,SAAO,mBAAmB;AAAA,IACxB;AAAA;AAAA,MAEE,QAAQ,CAAC,QAAa;AACpB,YAAI,oBAAoB,iBAAiB,QAAQ;AAC/C,qBAAW,aAAa,kBAAkB;AACxC,gBAAI,UAAU,MAAM,GAAG;AACrB,qBAAO,CAAC,QAAQ,CAAC,GAAG,UAAU,OAAO,GAAG,CAAC;AAAA,UAC7C;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAAA,MACA,SAAS,MAAM;AAAA,IACjB;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQE,QAAQ,CAAC,QAAa;AACpB,YAAI,EAAE,eAAeH;AACnB,iBAAO;AACT,YAAI,CAAC;AACH,8BAAoB;AACtB,cAAMG,KAAI,OAAO,KAAK;AACtB,eAAO;AAAA,UACL;AAAA,UACA,EAAE,OAAO,kCAAkC;AAAA,UAC3CA,IAAG,SAAS;AAAA;AAAA,QAEd;AAAA,MACF;AAAA,MACA,SAAS,MAAM;AAAA,IACjB;AAAA,IACA;AAAA;AAAA,MAEE,QAAQ,CAAC,QAAyB;AAChC,YAAI,EAAE,eAAe;AACnB,iBAAO;AACT,YAAI,CAAC;AACH,8BAAoB;AACtB,eAAO,CAAC,QAAQ;AAAA,UAAE,OAAO;AAAA;AAAA,QAA6D,GAAG,IAAI,MAAM;AAAA,MACrG;AAAA,MACA,SAAS,MAAM;AAAA,IACjB;AAAA,EACF;AACF,WACS,+BAAQ;AAGjB;;;ApElUA,IAAM,EAAE,MAAM,KAAK,OAAO,SAAS,MAAM,IAAI,OAAO,MAAM,OAAO,IAAI;AAKrE,eAAsB,wBAAwB,MAAgE;AAC7G,MAAI;AACJ,MAAI;AACH,UAAM,MAAM;AAAA;AAAA,MAA+B;AAAA;AAAA,IAAY;AAAA,EACxD,SAAS,KAAK;AACb,UAAM,MAAM,0BAA0B,MAAM,GAAG;AAAA,EAChD;AAEA,QAAM,MAAM,MAAM,YAAY,IAAI,SAAS,CAAC;AAC5C,SAAO,MAAM,mBAAmB,GAAG;AACpC;AAEA,eAAsB,YAAYC,OAAiD;AAClF,QAAM,WAAW,MAAM,MAAM,kCAAkCA,KAAI,EAAE;AACrE,QAAM,SAAS,MAAM,SAAS,KAAK;AAInC,MAAI,CAAC,OAAO,MAAM,WAAW,QAAQ,GAAG;AACvC,YAAQ,KAAK,2BAA2B,MAAM;AAAA,EAC/C;AACA,SAAO,OAAO,MAAM,QAAQ,UAAU,EAAE;AACzC;AAEA,eAAsB,YAAY,KAAoC;AAErE,QAAM,eAAe,GAAG;AAGxB,QAAM,WAAW,MAAM,MAAM,oCAAoC,GAAG,2BAA2B;AAC/F,MAAI,CAAC,UAAU,MAAM,CAAC,UAAU,MAAM;AACrC,UAAM,IAAI,MAAM,uBAAuB,UAAU,UAAU,EAAE;AAAA,EAC9D;AAGA,QAAM,OAAkC,iBAAiB,SAAU,KAAK,UAAU,CAAC;AAGnF,SAAO,MAAMC,WAAU,aAAa,IAAI;AACzC;AAEA,SAAS,iBAAiB,YAA4C;AACrE,SAAQ,mBAAkB;AACzB,WAAO,MAAM;AACZ,YAAM,EAAE,MAAM,MAAM,IAAI,MAAM,WAAW,KAAK;AAC9C,UAAI,MAAM;AACT;AAAA,MACD;AACA,YAAM;AAAA,IACP;AAAA,EACD,EAAG;AACJ;","names":["exports","encode","MSB","REST","MSBALL","INT","exports","read","MSB","REST","buf","b","l","exports","N1","N2","N3","N4","N5","N6","N7","N8","N9","exports","exports","isBrowser","isNode","exports","f","a","b","stringify","i","e","t","n","r","i","o","s","v","a","u","f","e","t","n","r","o","i","u","c","l","s","f","a","h","p","t","e","o","n","r","l","c","u","i","f","a","s","p","y","d","m","h","v","T","TextEncoder","TextDecoder","process","e","i","name","r$1","r","t","e","n","o","a","h","c","d","n$2","f","A","e$2","u","c$1","t$1","o$2","a$1","h$1","M","p","w","i","N","l","s","i$1","y","F","l$1","_","z","g","O","I","S","R","T","L","v","b","m","D","E","B","U","Y","x","C","P","k","j","e$1","n$1","u$1","o$1","i","len","len2","buffer","e","m","d","s","c","Buffer","length","buf","from","fromString","b","alloc","isBuffer","compare","a","x","y","concat","utf8ToBytes","utf8Slice","n","toString","equals","inspect","read","j","write","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","slice","byteLength","E","name","src","inherits","v","join","p","_","process","err","self","deprecate","Writable","Duplex","Stream","realHasInstance","writev","finished","l","keys","Readable","once","onlegacyfinish","onfinish","onend","onerror","onclose","onrequest","createIterResult","resolve","createReadableStreamAsyncIterator","_global","EElistenerCount","debug","e$1","Transform","PassThrough","exports","_dewExec","dew","pipeline","e","r","t","n","o","a","l","i","c","b","e$1","r$1","u","f","p","s","y","g","h","$","j","w","o$1","n$1","c$1","l$1","u$1","f$1","t$1","f$2","t$2","o$2","a$2","i$1","d","u$2","A","v","P","s$1","m","N","E","S","O","x","q","R","k","_","T","I","D","F","L","M","U","G","V","B","C","z","Q","Y","W","H","J","K","X","Z","m$1","_extend","callbackify","debuglog","deprecate","format","inherits","inspect","isArray","isBoolean","isBuffer","isDate","isError","isFunction","isNull","isNullOrUndefined","isNumber","isObject","isPrimitive","isRegExp","isString","isSymbol","isUndefined","log","promisify","types","TextEncoder","TextDecoder","exports$1","_dewExec","dew","process","path","i","sep","base","posix","resolve","normalize","isAbsolute","join","relative","from","length","_makeLong","dirname","basename","extname","format","parse","exports","exports","format","resolve","finished","p","exports$1","_dewExec","_global","dew","Stream","inherits","exports","exports","src","promisify","t","o","n","e","r","c","s","i","f","l","u","a","d","h","p","e","n","r","t","o","a","u","c","i","s","p","f","d","y","m","l","h","e","p","a","t","r","O","s","o","n","i","l","c","u","f","m","v","g","y","b","d","j","q","x","A","C","I","w","N","U","k","S","R","$","z","H","L","Z","_","E","P","T","B","D","F","G","exports","_dewExec","dew","process","path","sep","base","posix","resolve","normalize","isAbsolute","join","relative","from","length","_makeLong","dirname","basename","extname","format","parse","exports$3","_dewExec$2","dew$2","i","len","len2","exports$2","_dewExec$1","dew$1","buffer","e","m","d","s","c","exports$1","_dewExec","dew","Buffer","length","buf","from","fromString","b","alloc","isBuffer","compare","a","x","y","concat","utf8ToBytes","utf8Slice","n","toString","equals","inspect","read","j","write","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","slice","byteLength","E","name","src","exports","_dewExec$f","dew$f","exports$g","_dewExec$e","dew$e","exports$f","_dewExec$d","dew$d","Stats","exports$e","_dewExec$c","dew$c","from","i","l","exports$d","_dewExec$b","dew$b","d","b","p","g","AssertionError","E","name","a","exports$c","_dewExec$a","dew$a","exports$b","_dewExec$9","dew$9","Dirent","link","exports$a","_dewExec$8","_global$2","dew$8","process","exports$9","_dewExec$7","dew$7","exports$8","_dewExec$6","dew$6","Node","buf","Link","vol","File","length","exports$7","_dewExec$5","_global$1","dew$5","exports$6","_dewExec$4","dew$4","promisify","resolve","FileHandle","buffer","path","src","exports$5","_dewExec$3","dew$3","exports$4","_dewExec$2","_global","dew$2","exports","F_OK","sep","relative","join","dirname","path2","FLAGS","getPathFromURLPosix","n","h","base","Volume","self","StatWatcher","FSWatcher","_a","c","isBuffer","e","symlink","exports$3","_dewExec$1","dew$1","exports$2","_dewExec","dew","t","s","R_OK","W_OK","X_OK","createFsFromVolume","fs","exports$1","promises","isBuffer","name","isBuffer","buf","isBuffer","length","c","b","b2","isBuffer","i","p","c","buf","buf","encodedSize","buf","encodedSize","compareTokens","length","buf","l","encodedSize","compareTokens","b2","toToken","length","l","toToken","length","l","buf","encodedSize","toToken","length","l","buf","encodedSize","buf","encodedSize","buf","encodedSize","buffer","ui8a","i","p","i","e","length","i","m","name","j","i","x","encode","length","decode","buffer","o","name","encode","decode","i","buffer","encode","decode","read","buf","b","l","N2","N3","decode","decode","equals","a","b","format","link","base","baseCache","self","equals","base","format","decode","i","length","cache","cid","decode","import_varint","i","varint","length","i","v","j","cborEncoders","import_varint","length","decode","bytes","multihash","read","p","c","b","b","fsread","promisify","CarReader","read","fromBytes","import_varint","fsread","promisify","P","ERROR","stringify","p","name","CarReader"]}
|